gpt4 book ai didi

.net - 工具条 (ToolStripDropDownButton) 关闭并失去窗口焦点

转载 作者:行者123 更新时间:2023-12-03 21:38:56 26 4
gpt4 key购买 nike

我有一个带有 ToolStripDropDownButton 的 ToolStrip。这又会弹出一个带有 DateTimePicker 的 UserControl。当我单击日历上的顶部数字(绿色)时,一切正常(用户控件保持打开状态)。当我单击较低的日期之一(红色)时,ToolStripDropDown 关闭,应用程序失去焦点。这会导致用户必须双击以再次打开下拉菜单(一次聚焦应用程序,另一次打开下拉菜单)。

当日历日期不在用户控件之上时会发生这种情况。如您所见,用户控件在“绿色”日期停止。

我希望这很清楚。这似乎是一个 Windows 错误,因为这发生在一个非常简单的项目中。有没有人看到这个问题?有没有办法解决这个问题?

[更新]

我注意到下拉列表同样的事情。

它不会发生在用户控件非常大的情况下。

Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load

Dim uc As New UserControl1
Dim cms As New ContextMenuStrip()
cms.Items.Add(New ToolStripControlHost(uc))
ToolStripButton1.DropDown = cms

End Sub

最佳答案

功能,不是错误。控件需要知道用户在下拉菜单外单击,以便它可以自动关闭下拉菜单。这是通过“鼠标捕获”完成的,通过 Capture 属性在 Winforms 中公开。捕获鼠标可确保将鼠标消息发送到控件,即使鼠标不再位于控件窗口内。

也许现在正在发生的事情很明显,您实际上并没有点击日历。显示下拉列表后,控件将捕获鼠标。单击被重定向到 ToolStripDropDown。当您单击“红色区域”并因此关闭下拉窗口时,它会看到鼠标不再位于下拉列表中。

像这样的下拉菜单实际上只适用于简单的项目,在其中放置任何控件来创建顶级窗口,例如 DateTimePicker 或 ComboBox 只是不支持的场景。

关于.net - 工具条 (ToolStripDropDownButton) 关闭并失去窗口焦点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13919634/

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