使用ListBox的WinForm C#DLL - SelectedValueChanged事件触发不一致

时间:2014-12-30 06:09:48

标签: c# winforms listbox

我正在开发一个DLL,它被加载到Enteprise应用程序的Tab页面中。

ListBox控件(单选)在listBox_SelectedValueChanged上有一个事件,其中使用在不同的“显示样式”之间选择,当更改触发子例程以重新加载具有不同信息的DataViewGrid控件时。代码如下:

private void listBox_SelectedValueChanged(object sender, EventArgs e)
{
    MessageBox.Show("LBSVC Value:" + listBoxDisplayStyles.SelectedValue + " -- Index:" + listBoxDisplayStyles.SelectedIndex);
    if (listBoxDisplayStyles.SelectedValue != null)
        PatientChanged(true); // true = force a refresh           
}

现在与DGV控件完成交互时不一致(没有编辑,只是滚动和工具提示触发以显示单元格上的扩展信息)我将鼠标移回列表框控件并单击另一行。新的列表框行变为当前(显示选择栏),但事件似乎没有被触发(即MessageBox没有出现,没有任何反应。

1 个答案:

答案 0 :(得分:0)

为什么不尝试SelectedIndexChanged事件。在其中,您仍然可以使用listBox.SelectedValue来获取当前值并采取相应的行动。

BTW看起来你在这里与多个ListBox合作。事件处理程序使用对象名listBox,而事件正文使用listBoxDisplayStyles。这可能与您面临的问题有关。但首先尝试SelectedIndexChanged并告诉我们。