禁用按钮直到组合框加载

时间:2014-06-11 05:58:24

标签: c# combobox

我正在尝试禁用按钮,直到同一屏幕上的组合框加载。为此,我写了以下代码:

屏幕加载时:

TabButton okButton = _tabMultipleButtons.ListButtons.Find(a => a.ButtonType == TabButtonType.Confirm);
Action act = () => { okButton.Enabled = false; };

if (okButton.InvokeRequired)
    okButton.BeginInvoke(act);
else
    okButton.Invoke(act);  

组合框改变指数:

private void CmbBoxOrgUnitSelectedIndexChanged(object sender, EventArgs e)
{  
    TabButton okButton = _tabMultipleButtons.ListButtons.Find(a => a.ButtonType == TabButtonType.Confirm);
    Action action = () => { okButton.Enabled = true; };

    if (okButton.InvokeRequired)
        okButton.BeginInvoke(action);
    else
        okButton.Invoke(action);  
}  

当我运行应用程序时,在组合框加载之前,如果我单击该按钮,它将被禁用。但是只要组合框加载,点击事件就会激活。似乎禁用状态下的按钮单击在启用状态下继续。

我不确定为什么会这样。事件之间可能不会发生属性更改。

我还尝试在屏幕加载时将按钮文本设置为空字符串,并在组合框加载时再次将文本设置为确定,以检查此事件期间的视觉更改。但是文本从未设置为空字符串。它似乎总是 Ok

0 个答案:

没有答案