189 8069 5689

vb.net画笔选择直线 vb画直线代码

VB.NET 画直线 问题 怎样让直线置顶(就是不被其它控件覆盖) 100分(希望详细些)如较麻烦,会追加分数

这个必须用控件的方法解决,VB6有个Line控件很容易解决这个问题,但是VB.NET没有了,幸好微软也想到了这个缺陷,提供免费的Visual Basic PowerPacks控件箱,其中有Line控件。

阿巴嘎ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为创新互联的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:18980820575(备注:SSL证书合作)期待与您的合作!

Visual Basic PowerPacks下载地址:

使用 LineShape 控件绘制直线:

vb.net 画线再画保留以前画得

可以把所有画的线都保存在一个列表中,画的时候全部画出即可。如下:

Public Class Form1

Class Line      '直线类

  Public Point1, Point2 As Point     '成员,直线的两个端点

  Sub New(p1 As Point, p2 As Point)   '构造方法

      Point1 = p1

      Point2 = p2

  End Sub

  Public Sub Draw(g As Graphics)      '绘制方法

      g.DrawLine(Pens.Black, Point1, Point2)

  End Sub

End Class

Private Lines As New List(Of Line)      '列表用于保存所有画下的直线

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load

  BackColor = Color.White

  DoubleBuffered = True       '开启双缓冲可有效避免闪烁

End Sub

Private Sub Form1_MouseDown(sender As Object, e As MouseEventArgs) Handles Me.MouseDown

  Lines.Add(New Line(e.Location, e.Location))     '在直线列表中添加直线

End Sub

Private Sub Form1_MouseMove(sender As Object, e As MouseEventArgs) Handles Me.MouseMove

  If e.Button  Windows.Forms.MouseButtons.Left Then Return '左键未按下

  '鼠标拖动时改变列表最后一条直线(也即当前直线的第二个端点)

  Lines(Lines.Count - 1).Point2 = e.Location

  Refresh()       '刷新窗体

End Sub

'在Form的Paint事件中绘制所有直线,每次Form1重绘时都会触发Paint事件

'PS: 也可以通过重写OnPaint方法来达到类似的效果

Private Sub Form1_Paint(sender As Object, e As PaintEventArgs) Handles Me.Paint

  e.Graphics.SmoothingMode = Drawing2D.SmoothingMode.AntiAlias    '开启抗锯齿

  For Each l In Lines     '遍历所有直线

      l.Draw(e.Graphics)  '调用绘制方法,传入的参数可以理解为画布

  Next

End Sub

End Class

运行效果:

vb.net的picturebox画直线的函数是哪个?vb6.0是picture1.line就可以,但是vb.net没有啊

Dim PtStart As Point '记录绘制直线的起始点

Dim PtEnd As Point '记录绘制直线的终点

Dim ShouldDrawLine As Boolean '是否绘制直线

'记录鼠标左键点击的位置,第二次点击后开始绘制直线

Private Sub Pic1_MouseDown()Sub Pic1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Pic1.MouseDown

If e.Button = Windows.Forms.MouseButtons.Left Then

If Not ShouldDrawLine Then

PtStart = New Point(e.X, e.Y)

ShouldDrawLine = True

Else

PtEnd = New Point(e.X, e.Y)

'下面两句根据需要进行取舍

'Call DrawLine(PtStart, PtEnd) '绘制一条直线

Call DrawLines(PtStart, PtEnd) '绘制多条直线

ShouldDrawLine = False

End If

End If

End Sub

'绘制鼠标两次点击位置之间的直线

Private Sub DrawLine()Sub DrawLine(ByVal mPoint1 As Point, ByVal mPoint2 As Point)

Pic1.Refresh() '用于刷新Picturebox表面

Pic1.CreateGraphics.DrawLine(Pens.Blue, mPoint1, mPoint2) '绘制两点间的直线

End Sub

'绘制多条直线,每两次鼠标点击确定一条线

Private Sub DrawLines()Sub DrawLines(ByVal mPoint1 As Point, ByVal mPoint2 As Point)

'此句不可删除,用于清除鼠标点击前的轨迹

ControlPaint.DrawReversibleLine(Pic1.PointToScreen(mPoint1), Pic1.PointToScreen(mPoint2), Color.Red)

Pic1.CreateGraphics.DrawLine(Pens.Blue, mPoint1, mPoint2) '绘制两点间的直线

End Sub

vb和vb.net 在picturebox 中绘制直线如何绘制

绘图是系统内部操作的,不需要懂原理

方法就在那里,只有会用和不会用,你的代码告诉它绘制,它就会绘制。它(方法)究竟如何去绘制的并不是重点,反正它会绘制。

drawline(绘线)方法很简单,第一个参数是pen,它确定线条的颜色、宽度和样式。第二、第三个参数都是point类型,确定两个点的位置,绘制直线。

VB.Net中画直线问题

不想整个重画,最好用单色的背景,例如黑色,线条是白色的

用变量把线条的内容备份

当想改变线条的位置或者长度之前,先用存下来的变量以黑色重画一次,覆盖原来的白色线条

然后再画新的白色线条,这种重画方法比较节省资源

假如需要用花哨的背景或者图片当背景,也可以用局部重回的方式。

代码就不提供了,只提供思路。

vb.net 画直线问题

'把“Dim graph As Graphics = Me.CreateGraphics”挪到“Button1_Click”事件内,调试过成功!

Public Class Form1

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

Dim graph As Graphics = Me.CreateGraphics

Dim pen2 As Pen = New Pen(Color.Green, 3)

graph.DrawLine(pen2, 400, 400, 500, 200)

End Sub

End Class


网站名称:vb.net画笔选择直线 vb画直线代码
链接分享:http://cdxtjz.cn/article/hjpdcj.html

其他资讯