Как отобразить выпадающий список выпадающего списка в WinForms (Telerik)

#c# #winforms #winapi #telerik

#c# #winforms #winapi #telerik

Вопрос:

Я пытаюсь инициировать щелчок выпадающего списка для выпадающего списка типа MultiColumnComboBox (RadMultiColumnComboBox).

Поведение, которое я пытаюсь имитировать, заключается в том, что пользователь нажимает кнопку [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 и может помочь мне понять, как запустить событие Show Items / Elements / List (или как бы оно ни называлось), я был бы очень признателен!

Ответ №1:

Эквивалентный c #:

 RadTextBoxItem item = this.radMultiColumnComboBox1.MultiColumnComboBoxElement.Children(2).Children(0).Children(0) as RadTextBoxItem;

if (item != null) {
    item.Click  = OnTextBoxItem_Click;
}
  

Проверьте, работает ли это для вас.

Ответ №2:

Если я правильно понимаю, вы хотите открыть выпадающий список программно. Если это так, вот как вы можете это сделать:

 radMultiColumnComboBox1.MultiColumnComboBoxElement.ShowPopup();