Переопределение поведения ToolStripSplitButton - PullRequest
3 голосов
/ 03 февраля 2011

Я пытаюсь понять, что мне нужно сделать, чтобы переопределить поведение элемента управления ToolStripDropDown на System.Windows.Forms, где, если вы используете этот конструктор:

 var button = new ToolStripSplitButton("text","path to image", clickEventHandler)

, тогда выпадающий список будет отображаться только в том случае, если я удерживаю мышь нажатой и если использую эту другую

var button = new ToolStripSplitButton("text","path to image")

тогда выпадающий список покажет, когда я нажму.

Мне ясно, что предоставление обработчика события щелчка очень явно говорит: «эй, когда я нажимаю, выполни это», но в случае ToolStripSplitButton различие немного размывается из-за расщепленной природы контролировать себя.

Итак, что мне нравится делать, так это a) Когда пользователь нажимает на часть кнопки ToolStripSplitButton, обработчик события click выполняется как обычно б) Когда я нажимаю ИЛИ, нажмите мышью на части стрелки ToolStripSplitButton, тогда в раскрывающемся списке отобразится

.

Есть ли какое-либо свойство / метод OOB для этого?

Спасибо

1 Ответ

9 голосов
/ 03 февраля 2011

ToolStripSplitButton имеет два обработчика щелчков. Один называется «Click», а другой - «ButtonClick». Один из конструктора - это обработчик «Click», который срабатывает независимо от того, где вы нажимаете элемент управления. Обработчик ButtonClick срабатывает только при нажатии самой кнопки, а не стрелки.

Попробуйте это:

var button = new ToolStripSplitButton("text","path to image");
button.ButtonClick += clickEventHandler;
...