.NET: Рисование (вырезка) только часть элемента управления? - PullRequest
0 голосов
/ 17 февраля 2009

У меня есть программа VB.NET, в которой я использую элемент управления WebBrowser для имитации формы расписания. Для ввода данных я использую элемент управления DateTimePicker, который находится поверх элемента управления WebBrowser, который я запрограммировал для перемещения поверх ячейки таблицы в элементе управления WebBrowser при нажатии на элемент управления WebBrowser. (Если вы хотите спросить, почему я не использую DataGridView, это для форматирования)

Моя проблема в том, что есть части WebBrowser (заголовки, полосы прокрутки), которые я хочу рассматривать как находящиеся выше DateTimePicker, особенно когда пользователь прокручивает WebBrowser. Моя идея состоит в том, чтобы каким-то образом предоставить прямоугольнику DateTimePicker, чтобы он рисовал только ту часть элемента управления, которая находится внутри этого региона. К сожалению, я почти новичок в .NET (но не программирую в целом) и, потратив половину дня на поиски в Google, я все еще не знаю, как это сделать.

Кто-нибудь знает, как это сделать, и может показать мне / указать мне где-нибудь, что показывает мне, как?

Ответы [ 2 ]

2 голосов
/ 17 февраля 2009

Я думаю, вы ищете метод Control.Invalidate .

Но после перечитывания вашего вопроса я не совсем уверен. Возможно, вы пытаетесь ограничить DateTimePicker границами элемента управления WebBrowser ... В этом случае вам необходимо убедиться, что вы добавили DateTimePicker в коллекцию Controls WebBrowser.

Я выполнил простой тест, создав форму с помощью WebBrowser, DateTimePicker и Button. Поместите этот код в событие нажатия кнопки:

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    WebBrowser1.Controls.Add(DateTimePicker1)
End Sub

Если вы настроите все так, чтобы DTP простирался через край веб-браузера, вы увидите, что он обрезается при нажатии кнопки. Причина, по которой он перемещается, заключается в том, что он расположен относительно своего контейнера, который становится веб-браузером, когда вы нажимаете кнопку.

0 голосов
/ 17 февраля 2009

JeffK: Я только что попытался добавить DTP в коллекцию элементов управления WebBrowser, но DTP по-прежнему отображается поверх полос прокрутки и заголовков таблиц WebBrowser (заголовки таблиц - это элементы HTML с фиксированным расположением). У вас есть идеи, как этого избежать?

Шон: Нет, я никогда не слышал о WPF до того, как вы упомянули об этом. У вас есть хорошие ссылки, где я могу узнать больше об этом / как его использовать?

...