Я хочу знать, есть ли способ очистить текстовое поле, когда я нажимаю contextMenuStrip (1 элемент с именем clear). У меня есть 4 текстовых поля, которым я дал одно и то же имя contextMenuStrip для всех текстовых полей. при запуске приложения я добавил текст в textbox1. когда я щелкаю правой кнопкой мыши текстовое поле1 и выбираю очистить (contextMenuStripItem), весь текст должен быть очищен. Точно так же, когда я щелкаю правой кнопкой мыши по текстовому полю 2 и выбираю «Очистить», весь текст должен быть очищен. Я программирую в winforms VS2010
Заранее спасибо :)
РЕДАКТИРОВАТЬ: код, который я пробовал, может не соответствовать правильному соглашению об именах:
В Designer.cs
// contextMenuStrip1
//
this.contextMenuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.clearToolStripMenuItem});
this.contextMenuStrip1.Name = "contextMenuStrip1";
this.contextMenuStrip1.Size = new System.Drawing.Size(100, 26);
//
// textBox1
//
this.textBox1.ContextMenuStrip = this.contextMenuStrip1;
this.textBox1.Location = new System.Drawing.Point(224, 191);
this.textBox1.Name = "textBox1";
this.textBox1.Size = new System.Drawing.Size(100, 20);
this.textBox1.TabIndex = 8;
//
// clearToolStripMenuItem
//
this.clearToolStripMenuItem.Name = "clearToolStripMenuItem";
this.clearToolStripMenuItem.Size = new System.Drawing.Size(152, 22);
this.clearToolStripMenuItem.Text = "clear";
this.clearToolStripMenuItem.Click += new System.EventHandler(this.clearToolStripMenuItem_Click);
this.Controls.Add(this.textBox1);
private System.Windows.Forms.ContextMenuStrip contextMenuStrip1;
private System.Windows.Forms.ToolStripMenuItem clearToolStripMenuItem;
private System.Windows.Forms.TextBox textBox1;
В Form.cs
private void clearToolStripMenuItem_Click(object sender, EventArgs e)
{
ToolStripItem menuItem = sender as ToolStripItem;
if (menuItem != null)
{
ContextMenuStrip owner = menuItem.Owner as ContextMenuStrip;
if (owner != null)
{
Control sourceControl = owner.SourceControl;
MessageBox.Show(sourceControl.Name);
MessageBox.Show(sourceControl.Text);
}
}
}
поэтому, когда я щелкаю правой кнопкой мыши по textBox1, отображается его текст и имя. Итак, мой вопрос в том, как очистить этот текст. Достаточно ли иметь одно и то же contextMenu для всех текстовых полей и очищать текст, или мне нужно использовать разные contextMenu для разных текстовых полей.