【问题标题】:Handling mouse events处理鼠标事件
【发布时间】:2012-08-01 23:21:33
【问题描述】:

我正在使用 Windows 窗体。我在处理鼠标事件时遇到问题。在我的应用程序中,顶部有菜单栏。在菜单栏中,我有几个工具条菜单项。我希望当工具条菜单项突出显示时,它会在标签中显示一些描述。我完全糊涂了。我用什么事件来处理这个问题。我使用了鼠标进入、鼠标移动和鼠标离开事件,但是当鼠标进入任何菜单项的区域时,它就可以了。当鼠标进入或鼠标在项目上移动时,标签会显示一些描述。但是当我在表单的其他区域移动鼠标时。标签仍然显示有关项目的描述。我希望当鼠标离开工具条菜单项的区域时,标签变为空白。帮我解决这个问题


我将它用于工具条菜单。鼠标进入和鼠标移动事件工作正常,但鼠标离开事件的主要问题。当我在“打开”选项上移动鼠标时,它会在标签中显示描述,但是当我的鼠标离开此选项或离开此选项的可见部分时。标签描述相同。实际上,在离开“打开”选项后,当任何其他控件处于焦点时,鼠标离开事件就会触发。例如我有 menustrip & 在 menustrip 我有几个选项。例如,第一个选项是“打开”,我希望当鼠标进入“打开”选项的可见部分时,它会在状态栏标签“打开文件”中显示描述,当我的鼠标离开“打开”选项的可见部分时,状态栏标签会显示空白但问题是当鼠标离开事件触发时我无法正确理解。感谢您回答这个问题。


这是我的代码。看看并告诉我有什么问题?

private void openToolStripMenuItem_MouseEnter(object sender, EventArgs e)
{
         label1.Text =  "Open files";

}


private void openToolStripMenuItem_MouseLeave(object sender, EventArgs e)
{
         label1.Text = "";

}

【问题讨论】:

    标签: c# .net winforms


    【解决方案1】:

    在 menuStrip 中使用 MouseLeave 事件并将标签文本设置为“”。
    或在表单中使用相同的鼠标事件并将标签文本设置为“”.. 我的意思是:

     private void Form1_MouseMove(object sender, MouseEventArgs e)
            {
                label1.Text = "";
            }
    

    如果您想在鼠标悬停在表单上时显示文本,可以使用此解决方案。

    【讨论】:

      【解决方案2】:

      使用MouseLeave 事件。与MouseOver 一样,当您捕获菜单项的MouseLeave 时,将Label 的Text 属性更改为“”(即空白)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-05-03
        • 2018-08-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-02-06
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多