资源简介
1 我个人感觉,这个实例用文本框实现下拉框的最好办法.
2 先把数据填充到datatale表(内存中的数据表), 我是手动填进去的.大家也可以从SQL取出数据赋给datatable表
3 实现的模糊查询, 是直接从内存中查询, 从SQL库中查或从内存中查, 我觉得后者最好. 因为客户端多
的时候, 可以非常大程序上减轻服务器的负担.
4 我写了很久很认真, 全部清楚的注释了. 希望能帮到几个学习中的朋友
代码片段和文件信息
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
/*******************************************************************************************
*1 我个人感觉这个实例用文本框实现下拉框的最好办法.
*2 先把数据填充到内存中datatale表 我是手动填进去的.大家可以从SQL取出数据赋给这张datatable表
*3 实现的模糊查询 是直接从内存中查询 从SQL库中查或从内存中查 我觉得后者最好. 因为客户端多
* 的时候 可以非常大程序上减轻服务器的负担.
*4 我写了很久很认真 全部清楚的注释了. 希望能帮到几个学习中的朋友
*5 吴官迪 QQ357818109 2014/01/18
* *****************************************************************************************/
namespace textbox下拉提示
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void textBox_费用名称_TextChanged(object sender EventArgs e)//在文本框里输入字的时候触发的事件执行的语句.
{
listBox2.Items.Clear();//先清空一下这个控件的值. 不然就会造成文本框里不输时这里面全部都是值
DataTable dt = new DataTable();//在内存中创建一个表
dt.Columns.Add(“名称“); //在表中增加一列 名称叫做“名称“
dt.Rows.Add(“C#语言“);//开始一行一行的添加数据
dt.Rows.Add(“javaSE“);
dt.Rows.Add(“java“);
dt.Rows.Add(“C++语言“);
dt.Rows.Add(“delphi“);
dt.Rows.Add(“java入门通“);
dt.Rows.Add(“C++入门通“);
dt.Rows.Add(“M#入门通“);//以上这段落 是手动添加数据到内存中. 这一段可以改为从SQL中获取数据后赋值给这个datatable对象
DataRow[] dr = dt.Select(“名称 like‘%“ + textBox_费用名称.Text + “%‘“);
DataTable newdt = new DataTable(); //再新创建一个表
newdt=dt.Clone();//复制dt表的所有结构
foreach (DataRow row in dr) { newdt.Rows.Add(row.ItemArray); }//这一句可以改成用for循环替代 循环内就用 newdt.ImportRow(dr[i]);
if (dt.Rows.Count > 0 && (textBox_费用名称.Text != ““))//如果这个DS表里的行数总数大于零并且文本框不为空就运行以下代码
{
listBox2.Visible = true; //listBox2显示出来
for (int i = 0; i < newdt.Rows.Count; i++)//循环所有行数
{
listBox2.Items.Add(newdt.Rows[i][“名称“].ToString());//每行的名称值给listBox2
}
}
}
private void textBox_费用名称_KeyUp(object sender KeyEventArgs e)//这个事件 作用是按上下键选择下拉列表里的值
{
if (e.KeyCode == Keys.Up)//如果按了向上键
{
int idx = listBox2.SelectedIndex;//获取当前所选择的是哪一项
if (idx == -1)//如果所选荐是-1就表示没有选中任何值是刚进入的
{
listBox2.SelectedItem = listBox2.Items[listBox2.Items.Count - 1];//让他选中最后一个也就是总数减1
}
else
{
if (idx == 0)//等于零表示此时选中的是在第一行.
{
listBox2.SelectedItem = listBox2.Items[listBox2.Items.Count - 1];//再按向上键就跳到最后一个.
idx = listBox2.Items.Count;//当前选中的这一行就是值的总数
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 187 2014-01-18 10:31 textbox下拉提示源代码\App.config
文件 11264 2014-01-18 12:59 textbox下拉提示源代码\bin\Debug\textbox下拉提示.exe
文件 187 2014-01-18 10:31 textbox下拉提示源代码\bin\Debug\textbox下拉提示.exe.config
文件 26112 2014-01-18 12:59 textbox下拉提示源代码\bin\Debug\textbox下拉提示.pdb
文件 22984 2014-01-18 13:00 textbox下拉提示源代码\bin\Debug\textbox下拉提示.vshost.exe
文件 187 2014-01-18 10:31 textbox下拉提示源代码\bin\Debug\textbox下拉提示.vshost.exe.config
文件 490 2012-06-06 02:06 textbox下拉提示源代码\bin\Debug\textbox下拉提示.vshost.exe.manifest
文件 6252 2014-01-18 12:59 textbox下拉提示源代码\Form1.cs
文件 4701 2014-01-18 12:59 textbox下拉提示源代码\Form1.Designer.cs
文件 5817 2014-01-18 12:59 textbox下拉提示源代码\Form1.resx
文件 7028 2014-01-18 10:31 textbox下拉提示源代码\obj\Debug\DesignTimeResolveAssemblyReferencesInput.cache
文件 0 2014-01-18 10:31 textbox下拉提示源代码\obj\Debug\TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs
文件 0 2014-01-18 10:31 textbox下拉提示源代码\obj\Debug\TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs
文件 0 2014-01-18 10:31 textbox下拉提示源代码\obj\Debug\TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs
文件 1113 2014-01-18 13:00 textbox下拉提示源代码\obj\Debug\textbox下拉提示.csproj.FileListAbsolute.txt
文件 975 2014-01-18 12:59 textbox下拉提示源代码\obj\Debug\textbox下拉提示.csproj.GenerateResource.Cache
文件 2143 2014-01-18 10:49 textbox下拉提示源代码\obj\Debug\textbox下拉提示.csprojResolveAssemblyReference.cache
文件 11264 2014-01-18 12:59 textbox下拉提示源代码\obj\Debug\textbox下拉提示.exe
文件 180 2014-01-18 12:59 textbox下拉提示源代码\obj\Debug\textbox下拉提示.Form1.resources
文件 26112 2014-01-18 12:59 textbox下拉提示源代码\obj\Debug\textbox下拉提示.pdb
文件 180 2014-01-18 12:54 textbox下拉提示源代码\obj\Debug\textbox下拉提示.Properties.Resources.resources
文件 531 2014-01-18 10:31 textbox下拉提示源代码\Program.cs
文件 1392 2014-01-18 10:31 textbox下拉提示源代码\Properties\AssemblyInfo.cs
文件 2890 2014-01-18 10:31 textbox下拉提示源代码\Properties\Resources.Designer.cs
文件 5612 2014-01-18 10:31 textbox下拉提示源代码\Properties\Resources.resx
文件 1106 2014-01-18 10:31 textbox下拉提示源代码\Properties\Settings.Designer.cs
文件 249 2014-01-18 10:31 textbox下拉提示源代码\Properties\Settings.settings
文件 3817 2014-01-18 12:54 textbox下拉提示源代码\textbox下拉提示.csproj
文件 11264 2014-01-18 12:59 textbox下拉提示实例.exe
目录 0 2014-01-18 10:31 textbox下拉提示源代码\obj\Debug\TempPE
............此处省略9个文件信息
相关资源
- PC/SC 微软智能卡C#开发框架库
- 智能水表c##代码
- 微软智能语音C#Demo
- C#上位机控制WiFi智能小车
- IP智能网络视频监控系统源码
- 蓝牙版智能车上位机程序源代码C#.N
- california_housing_train.csv
- 智能化学校排课系统c#
- VC中PC SC智能卡接口的编程
- 智能计算器DEMO(附数字转中文、大写
-
AForge.NET_fr
amework-2.1.3 一个C#下面的图 - california_housing_test.csv
- 专家系统水壶倒水问题C#程序
- 智能停车场管理系统C#版.
- 基于C#的图灵人工智能语音交流机器人
- 用C# 2005编写的一个世界时钟程序
- c#人工智能AI 源码
- 网络信息智能采集系统
- winform 自动完成(智能提示autocomplet
- 智能聊天机器人
- 智能E卡通管理系统(IC卡操作)
- C# winform 输入提示(自动完成)
- C# textbox 自动完成(智能提示)
- wpf autocomplate textbox 智能提示
- C#DropDownList下拉框带搜索提示(selec
- 智能控制—流式控制结构
- 自定义下拉选择框下拉智能提示文本
- 实现在线编辑C#脚本(带智能提示)
评论
共有 条评论