Ian*_*oyd 5 c# winforms drop-down-menu
我知道Windows Combobox控件不过是一个Textbox和ListBox粘在一起的控件。
我需要在WinForms中模拟相同的东西。我试图弄清楚必须设置以获得适当效果的Windows窗口选项。
到目前为止,我管理的最好的就是创建
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None)this.TopMost = true)this.ShowInTaskbar = false)中未显示的表单这个无边界的最上面的表单包含我的“下拉”控件。当下拉列表失去焦点时,我会“隐藏”我的下拉列表:
this.Deactivate += new EventHandler(TheDropDownForm_Deactivate);
void TheDropDownForm_Deactivate(object sender, EventArgs e)
{
...
this.Close();
}
Run Code Online (Sandbox Code Playgroud)
这种混乱的局面效果很好。

...除了“下拉菜单”使焦点从所有者表单移开。
这是我的问题,我的弹出窗口应具有哪些属性?
但是,当我失去下拉菜单时(如何无法失去焦点),我该如何隐藏它呢?
如何在.NET中模拟组合框下拉菜单?
注意:请勿将示例屏幕快照中看到的内容与其他内容混淆。我问如何在Winforms中创建“下拉”表单-内容可能与上面的屏幕截图不同:

使用aToolStripControlHost和aToolStripDropDown可以达到同样的效果。
从这个答案:
Private Sub ShowControl(ByVal fromControl As Control, ByVal whichControl As Control)
'\\ whichControl needs MinimumSize set:'
whichControl.MinimumSize = whichControl.Size
Dim toolDrop As New ToolStripDropDown()
Dim toolHost As New ToolStripControlHost(whichControl)
toolHost.Margin = New Padding(0)
toolDrop.Padding = New Padding(0)
toolDrop.Items.Add(toolHost)
toolDrop.Show(Me, New Point(fromControl.Left, fromControl.Bottom))
End Sub
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3190 次 |
| 最近记录: |