我正在尝试触发鼠标右键单击Panel
的事件并调用一个函数但它没有触发。这是我的代码:
private void viewscreen_MouseClick(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Right)
{
generate_editpanel();
}
}
“viewscreen”是Panel
。我的设计师代码是:
// viewscreen
//
this.viewscreen.BackColor = System.Drawing.SystemColors.ActiveCaptionText;
this.viewscreen.Location = new System.Drawing.Point(208, 16);
this.viewscreen.Name = "viewscreen";
this.viewscreen.Size = new System.Drawing.Size(370, 289);
this.viewscreen.TabIndex = 0;
this.viewscreen.MouseClick +=
new System.Windows.Forms.MouseEventHandler(this.viewscreen_MouseClick);
任何人都可以帮助我吗?
答案 0 :(得分:1)
Panel中的视频对象必须覆盖Panel的整个区域(停靠)。在这种情况下,面板的事件不会被触发,因为所有点击都将发生在视频对象上 但是,如果您仍希望触发面板事件,则可以修改表单设计器代码,如下所示:
this.pictureBox1.MouseClick += new System.Windows.Forms.MouseEventHandler(this.pictureBox1_MouseClick);
this.pictureBox1.MouseClick += new System.Windows.Forms.MouseEventHandler(this.viewscreen_MouseClick);
这里我将PictureBox(pictureBox1)停靠在面板(viewscreen)中。现在在表单代码中,您可以像这样测试:
private void viewscreen_MouseClick(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Right)
{
MessageBox.Show(this, "Right Clicked on Panel");
}
}
private void pictureBox1_MouseClick(object sender, MouseEventArgs e)
{
MessageBox.Show(this, "Picture Clicked");
//this.viewscreen_MouseClick(sender, e);
}
答案 1 :(得分:0)
粘贴此处与this.viewscreen相关的完整代码....如果该面板上有任何其他控件,那么这些控件将不允许鼠标单击面板。最重要的控制事件将触发
答案 2 :(得分:0)
而不是......
private void viewscreen_MouseClick(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Right)
{
generate_editpanel();
}
}
使用这个...
private void viewscreen_MouseDown(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Right)
{
generate_editpanel();
}
}
正在为我工作