我有一个C#DataGridView显示最多5个定时器的时间。使用DataGridView的MouseClick事件,我可以用选项“Start Timer”和“Stop Timer”创建一个动态的上下文菜单。见下面的代码。C#DataGridView动态上下文菜单
我遇到的麻烦是将动态上下文菜单链接到方法。例如,选择“启动计时器1”时,我需要启动第一个计时器,但“启动计时器2”需要启动另一个计时器。我已经有一个方法(非上下文菜单相关),启动相关的计时器,但我不知道如何链接两个。
我想我需要一个上下文菜单事件,但我有点失落。
任何帮助将是非常有帮助的。
private void dataGridView1_MouseClick(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Right)
{
ContextMenu m = new ContextMenu();
int r = dataGridView1.HitTest(e.X,e.Y).RowIndex;
m.MenuItems.Add(new MenuItem("Start Timer " + r.ToString()));
m.MenuItems.Add(new MenuItem("Stop Timer " + r.ToString()));
m.Show(dataGridView1, new Point(e.X, e.Y));
}
}
private void StartTimer(int t)
{
... code starts the t timer ...
}
谢谢尼古拉。会试试看。 – Jayie 2012-03-20 09:48:22
尼古拉。我确实尝试了上面的代码,但无法使其工作。我了解它背后的想法,所以我已经发布了一个自己的答案与工作版本。虽然非常非常粗糙。 – Jayie 2012-03-20 21:40:33