我正在尝试禁用按钮,直到同一屏幕上的组合框加载。为此,我写了以下代码:
屏幕加载时:
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 。