【发布时间】:2017-05-19 01:28:41
【问题描述】:
我有一部分程序具有普通搜索功能,用户在文本框中输入数据,它将根据用户输入的内容显示结果。这是我的代码:
private void textBox1_TextChanged(object sender, EventArgs e)
{
Boolean find = false;
if (cmbSearchFilter.Text == "Product Name")
{
int row = 0;
string line, search;
string[] strArray = new string[6];
dataGridView1.Rows.Clear();
dataGridView1.ColumnCount = 7;
dataGridView1.Columns[0].Name = "Nugget ID";
dataGridView1.Columns[1].Name = "Nugget Name";
dataGridView1.Columns[2].Name = "Nugget Description";
dataGridView1.Columns[3].Name = "Nugget Ingredient";
dataGridView1.Columns[4].Name = "Nugget Stock";
dataGridView1.Columns[5].Name = "Nugget Price";
F = new FileStream("Nugget.txt", FileMode.Open, FileAccess.Read);
R = new StreamReader(F);
search = txtSearch.Text;
while ((line = R.ReadLine()) != null)
{
strArray = line.Split(new string[] { "#" }, StringSplitOptions.None);
if (search.Equals(strArray[1]))
{
find = true;
dataGridView1.Rows.Add();
String[] s = line.Split('#');
for (int i = 0; i <= s.Count() - 1; i++)
{
dataGridView1[i, row].Value = s[i];
}
row++;
}
}
R.Close();
F.Close();
}
}
我根据用户在组合框中选择的内容使用IF 条件。所以这个案例的代码和问题都没有问题。
回到主要问题,我想让搜索结果响应,例如,如果我在文本文件中有这些数据:
Chicken Nugget
Cheese Nugget
Tofu Nugget
Vegetable Nugget
首先当用户输入“C”字时,dgv 上的结果将显示数据鸡块和奶酪块。其次,当键入“h”(在“C”之后)时,结果将显示 Chicken Nugget 和 Cheese Nugget(再次)。第三,当输入“e”时,(在“Ch”之后),结果将只显示 Cheese Nugget,而且很快。那么有没有简单的代码来解决这个问题?
【问题讨论】: