【发布时间】:2017-12-28 23:23:12
【问题描述】:
我一直在使用允许我在 vb.net 中的文本框周围画线的代码,但这些线是实线。我想用虚线甚至虚线来修饰应用程序。有没有办法像在表单上那样在文本框周围制作虚线?我正在使用的当前代码是这样..
Dim g As Graphics = e.Graphics
Dim pen As New Pen(Color.Aqua, 2.0)
Dim txtBox As Control
For Each txtBox In Me.Controls
If TypeOf (txtBox) Is TextBox Then
g.DrawRectangle(pen, New Rectangle(txtBox.Location, txtBox.Size))
End If
Next
pen.Dispose()
我还想提一下,我可以在绘制事件中使用此代码在我的表单周围画一条虚线。将它放在文本框周围看起来真的很好,我希望这是可能的!
ControlPaint.DrawBorder(e.Graphics, e.ClipRectangle,Color.Aqua, ButtonBorderStyle.Dashed)
编辑:我刚刚尝试过这段代码,它似乎在绘制虚线矩形,但它们并没有绕过我的文本框,所以不知道如何修复它。
Dim txtBox As Control
For Each txtBox In Me.Controls
If TypeOf (txtBox) Is TextBox Then
ControlPaint.DrawBorder(e.Graphics, txtBox.ClientRectangle, txtBox.ForeColor, ButtonBorderStyle.Dashed)
End If
Next
【问题讨论】:
-
见this question on Experts' Exchange。您可能还想查看this page on MSDN。强烈建议您在将问题发布到 StackExchange 网络之前进行一些研究;通过谷歌搜索vb draw dashed border around textbox,我在不到一分钟的时间内找到了这两个。
-
Experts Exchange 上的示例仅显示做一个文本框是否可以循环并获取表单上的每个文本框,因此我不必将此代码放在每个绘制事件中文本框。我确实发布了上面的代码,表明我正在尝试对所有文本框执行此操作,而不仅仅是一个。
-
您可以进行实验并找出自己是否可以循环进行。或者你可以自己做更多的研究。编程通常是一个类似于组装乐高积木的过程。你的问题表明你错过了一块特定的砖,我的回答告诉你在哪里可以找到那块砖。如何将它们组合在一起取决于您,您需要了解如何做到这一点才能真正将自己视为程序员。
-
我不认为自己是程序员。当我需要一个程序来做一些简单的事情时,我这样做是为了好玩。我来这里之前确实搜索了谷歌,但没有找到我要找的东西。我确实觉得我的问题可能措辞不同。我对编码很陌生,我很难自己想出办法来做这样的事情。我从例子中学习得更好。当我需要自己做的时候,我的头脑就不能很好地工作。感谢您的回复。
-
@JoeBobJr 您需要将边框膨胀到比您要绘制的控件的大小大一点。