如何在WinForms(Telerik)中显示组合框的DropDown列表

如何在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();