我在 .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;
}
}
我的问题是如何转换此代码,以便所有文本框都可以使用相同的代码,而不是为所有文本框实例一遍又一遍地重写。我为所有文本框分配了相同的上下文菜单,但更具体地说,如何将调用文本框的名称传递给函数?我希望它可能很简单:
// Disable Undo if CanUndo property returns false
if (this.CanUndo)
{
contextMenuStrip1.Items["Undo"].Enabled = true;
}
else
{
contextMenuStrip1.Items["Undo"].Enabled = false;
}
不幸的是,这不起作用。有任何想法吗?