public partial class Form1 : Form { string[] a = { "a", "b", "c" }; string[] b = { "a", "b" }; public Form1() { InitializeComponent(); foreach (string s in a) { comboBox.Items.Add(s); comboBox.SelectedIndex = 0; } } private void comboBox_Click(object sender, EventArgs e) { comboBox.Items.Clear(); foreach (string s in b) { comboBox.Items.Add(s); comboBox.SelectedIndex = 0; } } }
serialPortNames 应该没有空字符吧?
是没有。public partial class Form1 : Form { string[] a = { "a", "b", "c" }; string[] b = { "a", "b" }; public Form1() { InitializeComponent(); foreach (string s in a) { comboBox.Items.Add(s); } comboBox.SelectedIndex = 0; } private void comboBox_Click(object sender, EventArgs e) { comboBox.Items.Clear(); foreach (string s in b) { comboBox.Items.Add(s); } comboBox.SelectedIndex = 0; } } 我试了这个代码,也会发生这种情况,而且 string[] a = { "a", "b", "c" ,“d”};则会出现两个空白
是没有。public partial class Form1 : Form { string[] a = { "a", "b", "c" }; string[] b = { "a", "b" }; public Form1() { InitializeComponent(); foreach (string s in a) { comboBox.Items.Add(s); } comboBox.SelectedIndex = 0; } private void comboBox_Click(object sender, EventArgs e) { comboBox.Items.Clear(); foreach (string s in b) { comboBox.Items.Add(s); } comboBox.SelectedIndex = 0; } } 我试了这个代码,也会发生这种情况,而且 string[] a = { "a", "b", "c" ,“d”};则会出现两个空白 经测试,不会有你说的情况 我的是VS2005
是没有。public partial class Form1 : Form { string[] a = { "a", "b", "c" }; string[] b = { "a", "b" }; public Form1() { InitializeComponent(); foreach (string s in a) { comboBox.Items.Add(s); } comboBox.SelectedIndex = 0; } private void comboBox_Click(object sender, EventArgs e) { comboBox.Items.Clear(); foreach (string s in b) { comboBox.Items.Add(s); } comboBox.SelectedIndex = 0; } } 我试了这个代码,也会发生这种情况,而且 string[] a = { "a", "b", "c" ,“d”};则会出现两个空白 在它的DropDown事件中操作,别在click事件中。
是没有。public partial class Form1 : Form { string[] a = { "a", "b", "c" }; string[] b = { "a", "b" }; public Form1() { InitializeComponent(); foreach (string s in a) { comboBox.Items.Add(s); } comboBox.SelectedIndex = 0; } private void comboBox_Click(object sender, EventArgs e) { comboBox.Items.Clear(); foreach (string s in b) { comboBox.Items.Add(s); } comboBox.SelectedIndex = 0; } } 我试了这个代码,也会发生这种情况,而且 string[] a = { "a", "b", "c" ,“d”};则会出现两个空白 经测试,不会有你说的情况 我的是VS2005我试了一下,vs2005也会出现耶,第二次点击就会正常
是没有。public partial class Form1 : Form { string[] a = { "a", "b", "c" }; string[] b = { "a", "b" }; public Form1() { InitializeComponent(); foreach (string s in a) { comboBox.Items.Add(s); } comboBox.SelectedIndex = 0; } private void comboBox_Click(object sender, EventArgs e) { comboBox.Items.Clear(); foreach (string s in b) { comboBox.Items.Add(s); } comboBox.SelectedIndex = 0; } } 我试了这个代码,也会发生这种情况,而且 string[] a = { "a", "b", "c" ,“d”};则会出现两个空白 在它的DropDown事件中操作,别在click事件中。 真的是这样啊!谢谢啊。但不明白为什么在点击事件上不能正确处理
是没有。public partial class Form1 : Form { string[] a = { "a", "b", "c" }; string[] b = { "a", "b" }; public Form1() { InitializeComponent(); foreach (string s in a) { comboBox.Items.Add(s); } comboBox.SelectedIndex = 0; } private void comboBox_Click(object sender, EventArgs e) { comboBox.Items.Clear(); foreach (string s in b) { comboBox.Items.Add(s); } comboBox.SelectedIndex = 0; } } 我试了这个代码,也会发生这种情况,而且 string[] a = { "a", "b", "c" ,“d”};则会出现两个空白 在它的DropDown事件中操作,别在click事件中。 真的是这样啊!谢谢啊。但不明白为什么在点击事件上不能正确处理 这个和事件响应顺序有关,触发了click,然后进行add操作,还没有add完,就触发了dropdown事件,此时的 仔细会发现,其实第三项 d 的值是“一闪”而过,之后就成了不可点击的条目。应该选择它的“最终事件”来处理items。
string[] serialPortNames = null;
serialPortNames = SerialPort.GetPortNames();
我测试过SerialPortcomboBox.Items里面并没有空白字符。但显示却有空白,但不可选。难道是“clear后C#还记住原来有三项,拔掉某串口后剩下两项,最后一项自动加了个空白部分”?
public partial class Form1 : Form
{
string[] a = { "a", "b", "c" };
string[] b = { "a", "b" };
public Form1()
{
InitializeComponent();
foreach (string s in a)
{
comboBox.Items.Add(s);
comboBox.SelectedIndex = 0;
}
}
private void comboBox_Click(object sender, EventArgs e)
{
comboBox.Items.Clear();
foreach (string s in b)
{
comboBox.Items.Add(s);
comboBox.SelectedIndex = 0;
}
}
}
{
string[] a = { "a", "b", "c" };
string[] b = { "a", "b" };
public Form1()
{
InitializeComponent();
foreach (string s in a)
{
comboBox.Items.Add(s);
}
comboBox.SelectedIndex = 0;
}
private void comboBox_Click(object sender, EventArgs e)
{
comboBox.Items.Clear();
foreach (string s in b)
{
comboBox.Items.Add(s);
}
comboBox.SelectedIndex = 0;
}
}
我试了这个代码,也会发生这种情况,而且 string[] a = { "a", "b", "c" ,“d”};则会出现两个空白
{
string[] a = { "a", "b", "c" };
string[] b = { "a", "b" };
public Form1()
{
InitializeComponent();
foreach (string s in a)
{
comboBox.Items.Add(s);
}
comboBox.SelectedIndex = 0;
}
private void comboBox_Click(object sender, EventArgs e)
{
comboBox.Items.Clear();
foreach (string s in b)
{
comboBox.Items.Add(s);
}
comboBox.SelectedIndex = 0;
}
}
我试了这个代码,也会发生这种情况,而且 string[] a = { "a", "b", "c" ,“d”};则会出现两个空白
经测试,不会有你说的情况
我的是VS2005
{
string[] a = { "a", "b", "c" };
string[] b = { "a", "b" };
public Form1()
{
InitializeComponent();
foreach (string s in a)
{
comboBox.Items.Add(s);
}
comboBox.SelectedIndex = 0;
}
private void comboBox_Click(object sender, EventArgs e)
{
comboBox.Items.Clear();
foreach (string s in b)
{
comboBox.Items.Add(s);
}
comboBox.SelectedIndex = 0;
}
}
我试了这个代码,也会发生这种情况,而且 string[] a = { "a", "b", "c" ,“d”};则会出现两个空白
在它的DropDown事件中操作,别在click事件中。
{
string[] a = { "a", "b", "c" };
string[] b = { "a", "b" };
public Form1()
{
InitializeComponent();
foreach (string s in a)
{
comboBox.Items.Add(s);
}
comboBox.SelectedIndex = 0;
}
private void comboBox_Click(object sender, EventArgs e)
{
comboBox.Items.Clear();
foreach (string s in b)
{
comboBox.Items.Add(s);
}
comboBox.SelectedIndex = 0;
}
}
我试了这个代码,也会发生这种情况,而且 string[] a = { "a", "b", "c" ,“d”};则会出现两个空白
经测试,不会有你说的情况
我的是VS2005我试了一下,vs2005也会出现耶,第二次点击就会正常
{
string[] a = { "a", "b", "c" };
string[] b = { "a", "b" };
public Form1()
{
InitializeComponent();
foreach (string s in a)
{
comboBox.Items.Add(s);
}
comboBox.SelectedIndex = 0;
}
private void comboBox_Click(object sender, EventArgs e)
{
comboBox.Items.Clear();
foreach (string s in b)
{
comboBox.Items.Add(s);
}
comboBox.SelectedIndex = 0;
}
}
我试了这个代码,也会发生这种情况,而且 string[] a = { "a", "b", "c" ,“d”};则会出现两个空白
在它的DropDown事件中操作,别在click事件中。
真的是这样啊!谢谢啊。但不明白为什么在点击事件上不能正确处理
{
string[] a = { "a", "b", "c" };
string[] b = { "a", "b" };
public Form1()
{
InitializeComponent();
foreach (string s in a)
{
comboBox.Items.Add(s);
}
comboBox.SelectedIndex = 0;
}
private void comboBox_Click(object sender, EventArgs e)
{
comboBox.Items.Clear();
foreach (string s in b)
{
comboBox.Items.Add(s);
}
comboBox.SelectedIndex = 0;
}
}
我试了这个代码,也会发生这种情况,而且 string[] a = { "a", "b", "c" ,“d”};则会出现两个空白
在它的DropDown事件中操作,别在click事件中。
真的是这样啊!谢谢啊。但不明白为什么在点击事件上不能正确处理
这个和事件响应顺序有关,触发了click,然后进行add操作,还没有add完,就触发了dropdown事件,此时的 仔细会发现,其实第三项 d 的值是“一闪”而过,之后就成了不可点击的条目。应该选择它的“最终事件”来处理items。
话说,你为什么要在点击combobox的时候要去修改combobox???
下拉时修改也不靠谱吧
不如做个"重新检测"的按钮,点一下就刷新
或者调用API检测USB口的接入和拔出,然后刷新
下拉时修改也不靠谱吧
不如做个"重新检测"的按钮,点一下就刷新
或者调用API检测USB口的接入和拔出,然后刷新
嗯,这个会更加实时刷新,我原本是想要这种效果的,但考虑到,一般只有去点击才会有改变端口的可能,所以选择了这个简单的方法