如何在WinForms(Telerik)中显示组合框的DropDown列表
问题描述:
我试图启动下拉列表单击MultiColumnComboBox(RadMultiColumnComboBox)类型的组合框。如何在WinForms(Telerik)中显示组合框的DropDown列表
我试图模拟的行为是,当用户点击下拉的[v]按钮,它显示实际列表。
我的控件是一个Telerik.WinControls.UI.RadMultiColumnComboBox。
我看到Telerik的论坛建议做这样的一个帖子:
Dim item As RadTextBoxItem = TryCast(Me.radMultiColumnComboBox1.MultiColumnComboBoxElement.Children(2).Children(0).Children(0), RadTextBoxItem)
If item IsNot Nothing Then
AddHandler item.Click, AddressOf OnTextBoxItem_Click
End If
似乎是一个可行的解决方案,但我不知道如何做到这一点对我的C#的控制工作。
还有一个Win32破解我发现,但是这不会通过代码审查:
// Declare the following in your class
[DllImport("user32.dll")]
public static extern int SendMessage(int hWnd, int msg, int wParam, IntPtr lParam);
public const int CB_SHOWDROPDOWN = 0x14F;
// In the leave event of combobox, use the following code:
SendMessage(comboBox1.Handle.ToInt32(), CB_SHOWDROPDOWN, 1, IntPtr.Zero);
如果有人熟悉的WinForms组合框,可以帮助我弄清楚如何揭开序幕,展会项目/元素/列表事件(或任何它的名称),我真的很感激它!
答
等效C#是:
RadTextBoxItem item = this.radMultiColumnComboBox1.MultiColumnComboBoxElement.Children(2).Children(0).Children(0) as RadTextBoxItem;
if (item != null) {
item.Click += OnTextBoxItem_Click;
}
检查它是否适合你。
答
如果我理解正确,您希望以编程方式打开下拉列表。如果是这种情况,你可以这样做:
radMultiColumnComboBox1.MultiColumnComboBoxElement.ShowPopup();