0

.NET アプリケーションでテキスト ボックスのコンテキスト メニューを作成しましたが、うまく機能します。ここで、アプリケーションのすべてのテキスト ボックスに同じコンテキスト メニューを使用したいと考えています。現在、次のようなコードを使用して既存の機能を操作しています。

private void contextMenuStrip1_Opening(object sender, System.ComponentModel.CancelEventArgs e)
{
        // Disable Undo if CanUndo property returns false
        if (mainTextBox.CanUndo)
        {
            contextMenuStrip1.Items["Undo"].Enabled = true;
        }
        else
        {
            contextMenuStrip1.Items["Undo"].Enabled = false;
        }
}

私の質問は、すべてのテキスト ボックス インスタンスに対してこれを何度も書き直すのではなく、すべてのテキスト ボックスが同じコードを使用できるように、このコードを変換するにはどうすればよいかということです。すべてのテキスト ボックスに同じ contextmenu を割り当てましたが、具体的には、呼び出し元のテキスト ボックスの名前を関数に渡すにはどうすればよいですか? おそらく次のように簡単になることを望んでいました:

// Disable Undo if CanUndo property returns false
if (this.CanUndo)
{
   contextMenuStrip1.Items["Undo"].Enabled = true;
}
else
{
   contextMenuStrip1.Items["Undo"].Enabled = false;
}

残念ながら、これは機能していません。何か案は?

4

0 に答える 0