我尝试设置这样的:如何在winform c#中设置列表框的默认选定项?
ListBox lb = new ListBox();
/* Bind datas */
lb.SelectedItem = someObject;
磅忠实地选择了someObject项目。但它会首先选择第一项。那个动作会导致我不想要的SelectedIndexChanged事件。
我只想在选择someObject时调用SelectedIndexChanged。 我该如何解决这个问题?
我尝试设置这样的:如何在winform c#中设置列表框的默认选定项?
ListBox lb = new ListBox();
/* Bind datas */
lb.SelectedItem = someObject;
磅忠实地选择了someObject项目。但它会首先选择第一项。那个动作会导致我不想要的SelectedIndexChanged事件。
我只想在选择someObject时调用SelectedIndexChanged。 我该如何解决这个问题?
当您不希望它触发时,在窗体/控件上使用标志来禁用事件。
public class Form1 : Form
{
private bool itemsLoading;
public Form1()
{
InitializeComponent();
LoadListItems();
}
private void LoadListItems()
{
itemsLoading = true;
try
{
listBox1.DataSource = ...
listBox1.SelectedItem = ...
}
finally
{
itemsLoading = false;
}
}
private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
if (itemsLoading)
return;
// Handle the changed event here...
}
}
直到您将selectedItem更改为someObject之后才添加selectedIndexChanged事件?
将事件从表单编辑器或者designer.cs中移出,然后使用自动生成的相同代码手动添加它?
这是很酷的解决方案! 谢谢! – Jennal 2010-02-13 01:03:09