使用C#與.net 2.0(雖然在4.0出現問題)如何保持在ToolStripControlHost的所有者焦點在ToolStrip的
似乎有涉及ToolStrip控件的ToolStripControlHosts Windows窗體的重點和錯誤。考慮這個例子:用戶點擊ToolStripMenuItem「測試A」,然後將鼠標對角地移動到ToolStripMenuItem下拉菜單「5」上。當鼠標經過「測試B」對角線拖動時,但當鼠標進入下拉列表時,焦點自動從「測試B」移回「測試A」。這工作正常。
例1:http://i.stack.imgur.com/0X9mZ.png
現在考慮一個類似的例子,但與ToolStripControlHost在下拉列表中。鼠標斜向移動,經過接受焦點的「測試B」。當鼠標進入ToolStripControlHost時,焦點不會返回給父節點「Test A」,因此下拉列表關閉,並且ToolStripControlHost被隱藏。
例2:http://i.stack.imgur.com/XJ75K.png
我的問題是,我該怎麼處理這種情況?有沒有辦法將焦點強制到ToolStripMenuItem「測試A」上?
我已經嘗試將「測試A」的DropDown的autoclose屬性設置爲false,然後手動處理關閉事件,但這會導致幾個問題。當單擊ToolStripControlHost時,ToolStrip會收到一個OnClick事件,ToolStripDropDownCloseReason被AppClicked。此外,ToolStripControlHost中的任何文本框都不會接收文本事件,因爲ToolStrip似乎正在消耗它們(退格將焦點移到下拉列表中,而不是刪除文本等)。
感謝您的幫助
西蒙
微軟術語「拖動」是指在鼠標按鈕關閉的情況下移動鼠標。我想你想說「移動」而不是「拖動」? – Elmue 2014-11-28 12:30:57