C# 鼠标右键单击事件不适用于使用c的winform中的面板?

C# 鼠标右键单击事件不适用于使用c的winform中的面板?,c#,winforms,panel,C#,Winforms,Panel,我试图触发面板的鼠标右键单击事件,并调用一个函数,但它没有触发。这是我的代码: private void viewscreen_MouseClick(object sender, MouseEventArgs e) { if (e.Button == MouseButtons.Right) { generate_editpanel(); } } “查看屏幕”是一个面板。我的设计器代码是: // viewscreen // this.viewscreen

我试图触发
面板
的鼠标右键单击事件,并调用一个函数,但它没有触发。这是我的代码:

private void viewscreen_MouseClick(object sender, MouseEventArgs e)
{
    if (e.Button == MouseButtons.Right)
    {
        generate_editpanel();
    }
}
“查看屏幕”是一个
面板
。我的设计器代码是:

// 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);

有人能帮我吗?

在这里粘贴与此相关的完整代码。viewscreen…如果该面板上有任何其他控件,则这些控件将不允许鼠标单击面板。最上面的控件事件将触发

在此处粘贴与此相关的完整代码。viewscreen…如果该面板上有任何其他控件,则这些控件将不允许鼠标单击面板。最上面的控件事件将触发

面板中的视频对象必须覆盖面板的整个区域(停靠)。在这种情况下,面板事件不会被触发,因为所有的点击都会发生在视频对象上。
但是,如果您仍然希望触发面板事件,可以修改表单设计器代码,如下所示:

this.pictureBox1.MouseClick += new System.Windows.Forms.MouseEventHandler(this.pictureBox1_MouseClick);
this.pictureBox1.MouseClick += new System.Windows.Forms.MouseEventHandler(this.viewscreen_MouseClick);  
在这里,我在面板(viewscreen)中停靠了一个PictureBox(pictureBox1)。现在,在表单代码中,您可以进行如下测试:

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);
    }

面板中的视频对象必须覆盖面板的整个区域(停靠)。在这种情况下,面板事件不会被触发,因为所有的点击都会发生在视频对象上。
但是,如果您仍然希望触发面板事件,可以修改表单设计器代码,如下所示:

this.pictureBox1.MouseClick += new System.Windows.Forms.MouseEventHandler(this.pictureBox1_MouseClick);
this.pictureBox1.MouseClick += new System.Windows.Forms.MouseEventHandler(this.viewscreen_MouseClick);  
在这里,我在面板(viewscreen)中停靠了一个PictureBox(pictureBox1)。现在,在表单代码中,您可以进行如下测试:

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);
    }
而不是

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();
        }
    }
正在为我工作,而不是

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();
        }
    }


正在为我工作

检查事件是否会在没有
e.Button==MouseButtons的情况下引发。右
否viewscreen\u MouseClick事件未命中:)嗯,尝试检查面板中的其他事件,如mouseover,是否有效否否,没有事件对该面板工作我在bcoz之前尝试过,但该面板不工作,因此我尝试了此。。没有事件在该面板上工作。您可以添加代码来声明this.viewscreen吗?检查事件是否会在没有
e.Button==MouseButtons的情况下引发。对
no viewscreen\u MouseClick事件未命中:)嗯,尝试检查面板中的其他事件,如mouseover,是否有效否,没有任何事件对该面板有效我在bcoz之前尝试过,但它不起作用,所以我尝试了这个。。没有事件在该面板上工作。您可以添加代码来声明this.viewscreen吗?是的,我在该面板上有一个视频对象。。。那块面板起着屏幕的作用。。我的视频对象是否完全停靠在该面板上?
Video=newvideo(vpath[0]);video.Owner=viewscreen;video.Stop();viewscreen.Size=新尺寸(宽度、高度)这就是我doing@Drone如果视频对象在面板上,如果右键单击它将触发视频对象鼠标单击事件,则不会触发任何面板事件…而不是
viewscreen\u MouseClick
event它应该是
viewscreen\u MouseDown
是,我在该面板上有一个视频对象。。。那块面板起着屏幕的作用。。我的视频对象是否完全停靠在该面板上?
Video=newvideo(vpath[0]);video.Owner=viewscreen;video.Stop();viewscreen.Size=新尺寸(宽度、高度)这就是我doing@Drone如果视频对象在面板上,如果右键单击它将触发视频对象鼠标单击事件,则不会触发任何面板事件…而不是
viewscreen\u MouseClick
event它应该是
viewscreen\u MouseDown
yeah,但在解决此问题的最后几分钟,我看到MouseClick事件可能不适用于Panel,但MouseDown事件确实适用,这救了我是的,但在解决此问题的最后几分钟,我看到MouseClick事件可能不适用于Panel,但MouseDown事件适用,这救了我