#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();