【问题标题】:mousewheel problem on mdichild after setting focus on base form controlls and comming back to the mdichild在将焦点设置在基本表单控件上并返回到 mdi 子后,mdi 子上的鼠标滚轮问题
【发布时间】:2011-05-27 09:19:44
【问题描述】:

嗨 今天我遇到了一个新的MouseWheel问题 我在 mdichild 表单的 mousewheel 事件中编写了一些代码,当我打开新的 mdichild 表单并选择它并执行 mousewheel 时,它会检测到该事件,但是当我单击基本表单上的控件并返回 mdichild 并使用鼠标滚轮时,除非我将焦点设置在另一个 MDIChildform 上并再次返回子窗体,否则不会再触发 mousewheel 事件。 请帮我解决问题 谢谢

这里是这个问题的一个示例,它是对默认 MDIAPP 模板的一些修改 http://egmahdi.com/mdiApptemplate.rar

【问题讨论】:

  • 使用“MDI 应用程序”模板轻松复制。 也很容易复制这个问题。给出了这个问题的答案 f.i.在问题中:stackoverflow.com/questions/4172307/… - stackoverflow.com/questions/2251019/…
  • 嗨,tnx,但我认为它们与我的问题不同,他们正在谈论在不支持鼠标滚轮或没有焦点的控件上使用鼠标滚轮,但我的问题是表单有焦点,即使我在子窗体上的 mouseenter 事件上使用 self.focus 但它不起作用。MDI 应用程序模板也与鼠标滚轮没有任何关系
  • @Dr - 如果您在 MDI 应用程序模板的“MDIChild”表单上放置一个“OnMouseWheel”处理程序,并在“MainForm”的工具栏上放置一个控件,您的问题将会重复。难吗?
  • @Dr - 这个问题可能看起来不同 - 与 MDI 有关,这就是为什么我没有投票关闭作为完全相同的副本。但是,它并没有什么不同,原因与 Andreas 的回答中所述相同。无论如何,答案确实是完全相同的。你为什么不试试安德烈亚斯的回答?因为它解决了这里的重复问题。
  • 放置在主窗体工具栏上的控件没有问题,但是当我双击列表框或单击它时,主窗体上有一个未放置在工具栏上的列表框再回到 MDIChild,问题就出现了。在这里你可以看到这个问题。它是默认的 MDI 模板,打开一个新的 mdichild 表单,然后单击列表框,然后在 mdichildform 上,向下和向上滚动鼠标应该将 mdichildform 值更改为 wheeldata 值,但单击列表框后,它什么也不做。

标签: delphi mousewheel mdichild


【解决方案1】:

嗨 这个问题还有另一个非常简单的答案,我注意到当mdichildform上有一个控件并且我点击这个控件时,一切正常,所以我在mdichildform上放置了一个TButton并在form.mousedown事件上添加了button1.setfocus和现在一切都好,我也将按钮移到 -200 , -200 ,所以按钮永远不会显示, 实际上我对我的表单没有任何其他控制,我只是在表单上绘画,

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-26
    • 2023-04-06
    相关资源
    最近更新 更多