【问题标题】:C# MouseHover with form control带有表单控件的 C# MouseHover
【发布时间】:2012-10-31 23:05:20
【问题描述】:

在 VS 2010 Pro 中使用 C#。

我有一个在标签上实现 MouseHover 事件的 MDI 父窗体。在 MouseHover 上显示一个表单。我对这种形式的随机定位不满意。是否可以控制该表单的显示位置?我希望它显示鼠标光标的位置。

任何建议都非常感谢,谢谢!

【问题讨论】:

  • 我没有尝试过,但也许这样的东西会起作用。在 MouseHover 事件中,使用此...this.PointToClient(Control.MousePosition) 获取鼠标的位置。然后将新表单的顶部和左侧位置设置为此。如果PointToClient 不起作用,那么可能是PointToScreen
  • 抱歉,我并不清楚我的意思。我说“我希望它显示鼠标光标在哪里”,我应该说标签在哪里。不过,我认为您对此有所了解。
  • 是的...PointToClient 或 PointToScreen 应该仍然可以工作,只需使用标签位置作为参数值。

标签: c# visual-studio-2010 mousehover


【解决方案1】:

将表单上的Location 属性设置为您想要的位置。

【讨论】:

  • 我认为这会起作用,只是不确定如何执行该过程。我在其他地方发现了类似的问题,并且正在重用该代码。
  • PrntFrmLctn = GetFormLocation(MDIParentForm);但是 MDIParentForm 是表单的名称和保留的类名,我该如何解决?抱歉,如果我遗漏了一些明显的东西......
  • @Xantom,我不清楚你在问什么。您是否要在子表单上获取父表单?还是父表单上的子表单?无论哪种情况,这都是一个完全不同的问题。
  • 对不起 Jon B,我会尽力解释。我有一个 GetFormLocation 方法,它将返回一个 Point,即传递的表单的左上角位置。我将什么作为表单名称的变量传递? MDIParentForm 是保留的,但它也是表单名称。对不起,如果我解释得不好。
  • @Xantom - 这听起来像是一个完全不同的问题。您需要发布一些代码来进一步解释它。我建议单独问这个问题。
猜你喜欢
  • 2012-09-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-17
  • 1970-01-01
相关资源
最近更新 更多