1

我正在尝试创建一个包含自定义控件的“工具提示”。我使用ToolStripDropDownwhich 实现了它,它可以满足我的需要 - 当用户单击其他地方时关闭,或者激活另一个窗口等。

但是,即使显示了,我也希望能够MouseMove在父控件中获取事件ToolStripDropDown。我尝试Capture在各个阶段设置父控件的属性(在显示下拉列表之前,在其Opened事件处理程序中等),但它总是立即设置回 false。有没有办法(不一定使用属性)在父控件Capture中获取事件?MouseMove不,我不想考虑像使用计时器和定期检查鼠标位置这样的丑陋黑客。

4

1 回答 1

0

如果您想一直知道鼠标位置,那么您应该MouseDown为父控件和ToolStripDropDown控件注册事件,如下所示:

private void Form1_MouseMove(object sender, MouseEventArgs e)
{
    lblPosition.Text = e.Location.ToString();
}

private void toolStripDropDownButton2_MouseMove(object sender, MouseEventArgs e)
{
    lblPosition.Text = e.Location.X + toolStripDropDownButton2.Bounds.Location.X + ", " + toolStripDropDownButton2.Bounds.Location.Y + e.Location.Y;
}

因为ToolStripDropDown您应该计算与其父级的相对位置

于 2012-10-19T19:59:16.003 回答