gpt4 book ai didi

c# - 工具条按钮 "Reset Appearance"/"Fire Leave Event"

转载 作者:行者123 更新时间:2023-11-30 18:03:48 25 4
gpt4 key购买 nike

我有一个执行操作的 ToolStripButton。用户单击该按钮,该按钮将被禁用,以防止该操作被执行两次。操作完成后,按钮将重新启用。一切都很完美……除了:

因为按钮被禁用,它不会触发“MouseLeave”事件,因此按钮的外观不会更新。绝对清楚,当鼠标进入 ToolStripButton 时,该按钮以橙色(默认情况下)突出显示,周围有一个黑框。当我重新启用按钮时,此突出显示不会被删除。此时,鼠标光标早已脱离控件。将鼠标悬停在按钮上会自然地通过重绘来修复按钮。

我想做的是在 ToolStripButton 上“重置”其外观的某种方法。这样的方法甚至可能存在于 ToolStrip 上,但尽管进行了搜索,但我一直无法找到类似的方法。

作为替代方案,我可以直接在按钮上触发“鼠标离开”事件。据我所知,在 C# .NET 中没有办法轻松地做到这一点。

非常感谢此时的任何建议,自然我不想撕掉我的应用程序并更换工具条。

最佳答案

更新:我重现了您的问题,正在尝试找出答案!

除了在点击事件中重置样式,我没有找到更好的方法

    private void toolStripButton1_Click(object sender, EventArgs e)
{
toolStripButton1.BackColor = Color.FromKnownColor(KnownColor.Control);
toolStripButton1.Enabled = false;
}

private void toolStripButton1_MouseEnter(object sender, EventArgs e)
{
toolStripButton1.BackColor = Color.Red;
}

private void toolStripButton1_MouseLeave(object sender, EventArgs e)
{
toolStripButton1.BackColor = Color.FromKnownColor(KnownColor.Control);
}

希望这对您有所帮助!


你试过 Control.Invalidate() 了吗?

from MSDN: Invalidates the entire surface of the control and causes the control to be redrawn.

关于c# - 工具条按钮 "Reset Appearance"/"Fire Leave Event",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6769864/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com