【发布时间】:2014-05-29 08:31:14
【问题描述】:
我有问题。我有三个主要类别的按钮,当您单击其中一个按钮时,ListBox 中会出现一些内容,并且会出现带有子类别的按钮。如果单击子类别,则 ListBox 中会出现不同的内容。
我有这样的方法:
private void DisplayPeople(string category); //I use it ParentClicked and SubClicked
private void ParentClicked(object sender, EventArgs e); //for parent category
private void SubCatClicked(object sender, EventArgs e); //for subcategory
myListBox.SelectedIndexChanged+= new EventHandler(selectedIndexChange);
当您在列表框中选择某物时,它应该会出现在我的 DataGridView 中,并且可以完美运行。但是,当我单击按钮并且内容出现在列表框中时,我会像 myListBox.ClearSelected(); 或 my.SelectedItem = null; 这样的东西我看不到任何东西在开始时选择但 SelectedIndexChange 事件仍然有效,因为它将第一行添加到我的 DataGridView。我不知道为什么,你能帮帮我吗?
更短: 在我的程序中,当您在 ListBox 中选择 sth 时,它会出现在 DataGridView 中。当我设置 myListBox.ClearSelected(); 或 my.SelectedItem = null; 时,一开始没有选择任何内容,但 SelectedIndexChange 事件有效并且首先列表框中的东西被添加到 DataGridView。我不希望这样,我希望它仅在用户选择它时出现在 datagridview 中。
现在我的事件处理程序看起来像这样:
private void selectedIndexChange(object sender, EventArgs e)
{
Person person = (Person)MyListBox.SelectedItem;
if (MyListBox.Items.Count > 0 && MyListBox.SelectedItems.Count > 0)
{
Basket.Add(person);
dataGridView1.DataSource = Basket;
}
}
PS。 我解决了这个问题。当用户单击 ListBox 并出现 SelectedIndexChange 事件时,我将列表框中的内容添加到 DataGridView 中。但也许有更简单、更漂亮的解决方案?
【问题讨论】:
-
请向我们展示列表框的 SelectedIndex Change 事件中的代码...
-
我更新了我的主帖;)
标签: c# winforms datagridview