.NET:绘画(剪辑)只是控件的一部分?

时间:2009-02-17 01:47:03

标签: .net vb.net paint clipping

我有一个VB.NET程序,我正在使用WebBrowser控件来模拟时间表表单。对于数据输入,我使用位于WebBrowser控件顶部的DateTimePicker控件,当我单击WebBrowser控件时,我已将其编程为在WebBrowser控件中移动到表格单元格的顶部。 (如果你想问为什么我没有使用DataGridView,那就是出于格式化的目的)

我的问题是我想要将WebBrowser(标题,滚动条)的部分视为在DateTimePicker之上,特别是在用户滚动WebBrowser时。我的想法是以某种方式为DateTimePicker提供一个矩形,使其仅绘制该区域内控件的一部分。不幸的是,我几乎是.NET的新手(但不是一般的编程),在用了半天的谷歌搜索后,我仍然不知道该怎么做。

有没有人知道如何做到这一点,并可以告诉我/指向我哪里告诉我如何?

2 个答案:

答案 0 :(得分:2)

我认为您正在寻找Control.Invalidate方法。

但在重新阅读你的问题之后,我并不确定。也许你试图让DateTimePicker被WebBrowser控件的边框剪切......在这种情况下,你需要确保将DateTimePicker添加到WebBrowser的Controls集合中。

我通过使用WebBrowser,DateTimePicker和Button创建表单来运行一个简单的测试。将此代码放在按钮的Click事件中:

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

如果你进行了设置,以便DTP扩展到WebBrowser的边缘,你会看到一旦你点击按钮就会被剪裁。它移动的原因是它相对于它的容器定位,一旦你点击按钮就变成了WebBrowser。

答案 1 :(得分:0)

JeffK: 我只是尝试将DTP添加到WebBrowser的控件集合中,但DTP仍然显示在WebBrowser的滚动条和表头之上(表头是固定定位的HTML元素)。你有任何想法如何防止这种情况发生吗?

肖恩: 不,在你提到它之前,我实际上从未听说过WPF。您是否有任何良好的链接,我可以在哪里了解更多关于它/如何使用它?