如果语句带有ContextMenuStrip

时间:2015-10-14 19:38:53

标签: c# winforms if-statement contextmenu

我正在使用WinForms。在我的WinForms应用程序中,我有一个contextMenuStrip 如果右键单击图片框,contextMenuStrip将显示一个您可以单击的项目列表。如何将“sizeMEToolStripMenuItem_Click”方法调用到另一种方法中。

示例:

enter image description here

 private void sizeMEToolStripMenuItem_Click(object sender, EventArgs e)
 {
    if(sizeMEToolStripMenuItem.isclicked) //.isClicked is somthing i made up
     {
       e.Graphics.DrawImage(pictureBox1.Image, movingPoint); <- This draws and shows image
     }
    else 
    {
      //e.Graphics.DrawImage(pictureBox1.Image, movingPoint); <- Hide this image
    }

 } 


private void pictureBox1_Paint_1(object sender, PaintEventArgs e)
{
 //e.Graphics.DrawImage(pictureBox1.Image, movingPoint);

}

1 个答案:

答案 0 :(得分:1)

您可以简单地点击该项目的点击事件,并将您的代码放入Click事件处理程序。

打开设计器,选择上下文菜单,选择sizeMEToolStripMenuItem并双击它。这样,当您单击sizeMEToolStripMenuItem时,此方法就会运行。

您还可以将CheckOnClick的{​​{1}}属性设置为true,并检查sizeMEToolStripMenuItem属性的值。

Checked

要强制绘制事件触发器,请在单击事件中调用此方法:

private void sizeMEToolStripMenuItem_Click(object sender, EventArgs e)
{
    if( sizeMEToolStripMenuItem.Checked )
    {  
        //Do what you need, for example:
        //MessageBox.Show("checked");
        //To force paint event trigger you can uncomment next line:
        //pictureBox1.Invalidate();  
    }
}

在绘画事件中,如果您需要检查是否已点击该项目,请检查pictureBox1.Invalidate(); 的值:

Checked

您还可以在代码中设置private void pictureBox1_Paint_1(object sender, PaintEventArgs e) { if( sizeMEToolStripMenuItem.Checked ) { //Do somethings } } 属性值。