1
我有一个带有无编号项目和一个contexmenustrip的列表框。我写了这段代码(我知道它看起来太原始了,因为我的不熟练)它工作正常,但我有一个小问题。 当您点击列表框中的某个项目时,我想让cms在您的鼠标位置附近打开。当您点击空白时,它会在之前的位置打开。没关系,但每次点击都会重新打开cms。当您点击空白而不是项目时,是否可以使其保持打开状态?如何防止contexmenustrip关闭?
public Form1()
{
InitializeComponent();
}
int a, b, tx, ty;
int mx=0;
private void listBox1_MouseClick(object sender, MouseEventArgs e)
{
b = a;
a = listBox1.SelectedIndex;
if (listBox1.SelectedIndex != -1)
{
if (a!= b)
{
contextMenuStrip1.Show(MousePosition.X + 10, MousePosition.Y);
tx = MousePosition.X;
ty = MousePosition.Y;
mx =1;
}
else if (a==0 && b==0 && mx== 0)
{
tx = MousePosition.X;
ty = MousePosition.Y;
contextMenuStrip1.Show(tx + 10, ty);
mx = 1;
}
else
{
contextMenuStrip1.Show(tx + 10, ty);
}
}
}
我创建了一个布尔cmscls设置
e.Cancel = true
。然后void cms_Closing(object sender,ToolStripDropDownClosingEventArgs e) if(cmscls == false) e.Cancel = true; } }并将cmscls = false添加到last else {}中。它没有工作。无论如何,我可能会放弃。 – emmett