Visual C++ MFCには、メニュー項目の状態を設定するための組み込みのメカニズムがあります。私はC#とWindowsFormオブジェクトで同じことをしようとしています。MenuStripのメニュー項目状態の設定
私はかなり同じではありませんこれはこれを見つけた:ここ
Grey out menustrip items when certain forms are open/active/focused
は私のメニュー構造である:
だから、私はこれを試してみることにしました:
private void viewToolStripMenuView_Click(object sender, EventArgs e)
{
zoomExtentsToolStripMenuItem.Enabled = viewCtrl != null;
}
それは仕事の種類です。しかし、私は少しばかげています。アイテムが有効になっているメニューが表示され、が表示され、が表示され、無効になっています。
メニュー項目の状態を正しく設定するにはの前にのメニューが表示されますか?私はこれが簡単な問題のように聞こえるが、同等の方法論を見つけることができないことを知っているON_UPDATE_COMMAND_UI。
興味深い質問がある(http://stackoverflow.com/questions/2405592/updating-ui-objects-in-windows-forms) –
@JohnnyMopp [WindowsフォームでのUIオブジェクトの更新]の可能重複同じように見える、ありがとう。しかし、UIを更新するためのバックグラウンドスレッドを行う必要はありません。 Enabledなどに設定するだけでいいはずですが、適切なイベントハンドラを選んで実行します。[表示]メニューの[イベントハンドラをクリックする]の操作は遅すぎます。 –