Как получить ширину кнопки в DateTimePicker-Control / Controls в целом? - PullRequest
4 голосов
/ 30 июля 2009

Я реализовал пользовательский DateTimePicker. На DateTimePicker есть кнопка. В примерах, которые я нашел, его ширина установлена ​​в 16. Это работает, но я бы хотел использовать динамический подход.

Итак, есть ли способ получить размер этой кнопки или есть общий способ получения информации о подэлементах .Net-Control, таких как размер и т. Д .?

Попытка DateTimePicker.Controls мне не помогла (пусто).

enter image description here

Ответы [ 4 ]

1 голос
/ 24 февраля 2011

Большинство всех кнопок со стрелками Win32 отключают метрику полосы прокрутки:

Вы хотите SystemInformation.VerticalScrollBarArrowHeight

Два полезных класса: SystemInformation и ControlPaint. При работе с пользовательскими элементами управления они могут оказаться неоценимыми.

Int32 size = SystemInformation.VerticalScrollBarArrowHeight;
ControlPaint.DrawScrollButton(e.Graphics, 0, 0, size, size, ScrollButton.Down, ButtonState.Normal);
0 голосов
/ 07 июня 2010

Средство выбора DateTime использует собственные элементы управления Windows. Упомянутая вами «кнопка» - это то, что нарисовано самой Windows.

В вашей текущей ОС может быть что-то похожее на кнопку, но в старой или будущей ОС выборщик DateTime может быть совершенно другим.

Просто нарисуйте свой элемент управления самым хорошим и простым для пользователя, и он будет счастлив.

0 голосов
/ 07 июня 2010

Можете ли вы опубликовать код для DateTimePicker, который вы реализовали? Это может помочь проиллюстрировать вашу проблему. Судя по звукам, кнопка находится не внутри DateTimePicker, а в форме рядом с ней. Пожалуйста, поправьте меня, если я ошибаюсь.

Итак, если у вас было следующее:

DateTimePicker dtp = new DateTimePicker();
Button btn = new Button();
btn.Size.Width = btn.Size.Width * 2;

Вы можете получить доступ и заново установить размер кнопки управления.

Если кнопка действительно содержится в DateTimePicker, то выставьте ее как открытое свойство (или, в идеале, как внутреннее свойство) и получите к ней доступ напрямую через DTP.

0 голосов
/ 30 июля 2009

Всем элементам управления окнами назначена структура, называемая «Размер», если вы ссылаетесь на myButton.Size.Width, вы сможете изменить размер кнопки, которая является целым числом. И наоборот, вы можете сделать то же самое с myButton.Size.Height.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...