C++中要做这件事,可以通过ON_UPDATE_COMMENT_UI实现,我们知道,说到底ON_UPDATE_COMMENT_UI是沾了
OnIdle 的光。
其实,在C#里面,也可以通过类似的方法去动态地更新菜单栏、工具栏。
C#提供了一个Application.Idle事件,通过注册这个事件,我们就可以让自己的应用程序在没事干时帮我们维护一下状态啥的。
很简单,两个步骤:
1. 在你的Form的构造函数里注册Application.Idle事件:
Application.Idle += new EventHandler(OnApplicationIdle);
这里,OnApplicationIdle是你的事件响应函数,应该长得象这个样子:
void OnApplicationIdle(object sender, EventArgs e);
2. 实现OnApplicationIdle,因为只被Form内部使用,Private就够了:
private void OnApplicationIdle(object sender, EventArgs e)
{
//更新工具栏按钮m_tbtnOpen使能状态
{
//更新工具栏按钮m_tbtnOpen使能状态
this.m_tbtnOpen.Enabled = !this.m_bOpened;
}
}