Краска из окна (и элементы управления) - PullRequest
1 голос
/ 12 января 2012

Я думаю, что если бы я использовал изображение, было бы лучше: enter image description here

Мне нужно, чтобы мой элемент управления был вне окна, как календарь datetimepicker. Я использую panelKalendar = new PanelDoubleBuffer();, затем в методе: void panelKalendar_Paint(object sender, PaintEventArgs e) Я все рисую. Но это окраска окон и белов всех остальных элементов управления. Как я могу получить «эффект», который используется в DateTimePicker?

Ответы [ 2 ]

2 голосов
/ 12 января 2012

Раскрывающийся список поля со списком (а также, возможно, раскрывающаяся панель элемента управления календаря) является дочерним окном рабочего стола. Это то, что вы также должны сделать: вложите свой элемент управления в форму без полей и дайте этой форме нулевой родительский элемент, чтобы это было окно верхнего уровня, а не дочерний элемент окна вашего приложения.

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

0 голосов
/ 12 января 2012

Боюсь, что вы не можете достичь того, чего хотите, с помощью child элемента управления вашего form (именно это вы и делаете на самом деле), потому что это будет обрезано родителем ( form) границы.

Имо, вы можете попробовать использовать отдельный элемент управления WidnowdForm, который появляется точно в том месте, где сейчас появляется panel.

Надеюсь, это поможет.

...