using System; using System.ComponentModel; using System.Windows.Forms; namespace ContextMenuStripTest { public partial class Form1 : Form { Control ContextMenuStrip1_Source; public Form1() { InitializeComponent(); contextMenuStrip1.Opening += contextMenuStrip1_Opening; copyToolStripMenuItem.Click += CopyToolStripMenuItem_Click; } private void contextMenuStrip1_Opening(object sender, CancelEventArgs e) { ContextMenuStrip Menu = sender as ContextMenuStrip; if (Menu == null) { return; } ContextMenuStrip1_Source = Menu.SourceControl; } private void CopyToolStripMenuItem_Click(object sender, EventArgs e) { if (ContextMenuStrip1_Source == null) { return; } Clipboard.SetText(ContextMenuStrip1_Source.Text); } } }
OpeningイベントでContextMenuStrip.SourceControlを獲得し、広域変数に設定します。このSourceはControl型です。そのためControlから継承された、例えばTextなどはそのまま使用することができるため、いくつかのテキストボックスに1つのContextMenuStripを設定し、そのテキストボックスに入っている文字列を獲得する ということが出来ます。
0 件のコメント:
コメントを投稿