[英]How to change the 'object sender'?
我在makeDataGridView函數中創建了DataGridView,也許datagridview右鍵單擊->出現上下文菜單
這是示例代碼
public void click(object sender, MouseEventArgs e) {
if(e.button == MouseButtons.Right) {
ContextMenuStrip menu = new ContextMenuStrip();
ToolStripItem insert = menu.Items.Add("insert");
insert.Click += new EventHandler(context_menu_click);
}
}
public void context_menu_click(object sender, EventArgs e) {
/ *
Other event and
printing .txt file from DataGridView
*/
}
我想從'context_menu_click'函數中的datagridview打印一個.txt文件。 click
函數的發送者是DataGridView,但是context_menu_click
發送者是ToolStripMenu。
那么,如何在context_menu_click
函數中從DataGridView打印.txt文件?
public void context_menu_click(object sender, EventArgs e)
{
/*
Other event and
printing .txt file from DataGridView
*/
var item = sender as ToolStripItem ;
if (item != null)
{
DataGridView gv = item.Tag as DataGridView;
Console.WriteLine(gv.Name);
}
}
private void dataGridView1_MouseClick(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Right)
{
ContextMenuStrip menu = new ContextMenuStrip();
ToolStripItem insert = menu.Items.Add("insert");
insert.Tag = sender;
insert.Click += new EventHandler(context_menu_click);
menu.Show(this.dataGridView1.PointToScreen(new Point(e.X, e.Y)));
}
}
您可以將當前的DataGridView
作為Tag
添加到剛創建的ToolStripItem
使用它來獲取點擊事件中的DataGridView
((ContextMenuStrip)((ToolStripMenuItem)sender).GetCurrentParent()).SourceControl
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.