0

我在 Windows 应用程序中有一个包含多个控件的表单:单选按钮、命令按钮、文本框、datagridview 和 ListBox。

dataGridView 绑定到一个数据表,而 ListBox 绑定到另一个数据表。我使用单选按钮和 ListBox 来过滤 dataGridView 的内容。

如果我单击任何单选按钮,网格中的数据会相应更改。我也可以单击其他控件,它们也会响应。

我也可以毫无问题地滚动 ListBox。但是,一旦我单击 ListBox 中的某个项目,数据网格就会更新,并会随着从 ListBox 中选择的每个项目继续更新。但是所有其他控件都处于非活动状态,就好像它们被锁定了一样。

是什么原因造成的,我该如何解决?

这是代码:

    private void lstColor_SelectedIndexChanged(object sender, EventArgs e)
    {
            viewLocalMatsALLBindingSource.Filter = "GRM_COLOR_DESCR = '" + lstColor.Text + "'";
    }

    private void rdbLogomat_CheckedChanged(object sender, EventArgs e)
    {
        if (rdbLogomat.Checked)
        {
            viewLocalMatsALLBindingSource.Filter = "Description LIKE '%LOGO%' OR Description LIKE '%LO-GO%'";
        }
    }

广播事件工作得很好,我可以使用表单上的其他控件。但是 ListBox 事件会导致所有其他控件冻结,甚至是窗口上的红色“X”关闭按钮。但是,在列表框中选择一个项目后,我可以选择数据网格中的单元格和行。但是,如果我尝试在单元格中键入任何内容,则 ListBox 所选项目会根据我键入的字符而更改。(数据网格是只读的,所以编辑单元格没有意义。)显然列表框保持焦点,但我不知道如何失去焦点。另一件事是我可以对数据网格中的列进行排序,直到我从 ListBox 中选择一个项目,然后该功能消失。

4

0 回答 0