如何通过鼠标点击Combobox在记事本(运行时)中获取数据?

时间:2013-03-10 17:32:21

标签: c# asp.net winforms

我制作了一个完整的INTERNET资源管理器。我做了很多选择,书签创建了一个问题。假设我根据我的想法点击记事本文件中的新值来获取值。一个问题再次面临我,每次点击都会得到一个重复的值。如何避免重复数据请指导我。 我的编码部分是: -

private void comboBox1_SelectedIndexChanged_1(object sender, EventArgs e)
{
   int kkk = comboBox1.Items.Count;

   string path = File.ReadAllText("F:\\kmm.txt");
   string[] y = path.Split('\n');
   foreach (string kk in y)
   {
      comboBox1.Items.Add(kk);
   }
   // comboBox1.Items.Clear();
   string km = comboBox1.SelectedItem.ToString();
   wb.Navigate(km);
}
快照组合框:: enter image description here

1 个答案:

答案 0 :(得分:0)

每次更改ComboBox Selection Index时,都会从F:\kmm.txt加载项目。

您正在应用一个非常错误的逻辑来加载ComboBox

中的项目

更好的方法是在Form_Load事件的ComboBox中加载项目一次。

但是如果您想要在comboBox1_SelectedIndexChanged_1事件中将项目添加到ComboBox,则需要清除comboBox1中的项目。

尝试这种方式:

private void comboBox1_SelectedIndexChanged_1(object sender, EventArgs e)
{
   int kkk = comboBox1.Items.Count;

   string path = File.ReadAllText("F:\\kmm.txt");
   string[] y = path.Split('\n');

   // clear all existing items first
   comboBox1.Items.Clear();

   foreach (string kk in y)
   {
      comboBox1.Items.Add(kk);
   }
   // comboBox1.Items.Clear();
   string km = comboBox1.SelectedItem.ToString();
   wb.Navigate(km);
}