网站首页 > 文章中心 > 其它

关于vb.net选择矢量直线的信息

作者:小编 更新时间:2023-08-16 19:16:53 浏览量:268人看过

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 Sub

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

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

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

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

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

VB.Net读取AutoCAD图纸

如果可以的话请把分给我

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

On Error Resume Next

Dim acadapp As Autodesk.AutoCAD.Interop.AcadApplication

acadapp = GetObject(vbNullString, "autoCAD.application")

Dim acaddoc As Autodesk.AutoCAD.Interop.AcadDocument

acaddoc = acadapp.ActiveDocument

Dim Ms As Autodesk.AutoCAD.Interop.Common.AcadModelSpace

Ms = acaddoc.ModelSpace

Dim acadObjectI As Autodesk.AutoCAD.Interop.Common.AcadObject

Dim Linei As Autodesk.AutoCAD.Interop.Common.AcadLine

Dim Circlei As Autodesk.AutoCAD.Interop.Common.AcadCircle

Dim Polylinei As Autodesk.AutoCAD.Interop.Common.AcadPolyline

Dim pt As Autodesk.AutoCAD.Interop.Common.AcadPoint

For Each acadObjectI In Ms

Debug.Print(acadObjectI.ObjectName)

Select Case acadObjectI.ObjectName

Case "AcDbLine"

Linei = acadObjectI

Debug.Print("X =" Linei.StartPoint(0).ToString)

Debug.Print("Y =" Linei.StartPoint(1).ToString)

Case ""

End Select

Next

在VB NET中,在Form_Load中创建graphics类,并绘制直线,为什么执行程序后发现直线绘制不出来?

① 创建一个Graphics对象实例.

绘制图形必须创建Graphics对象.如果是在窗体上绘图,要使用下列代码创建Graphics对象;

Dim MyGraphics As Graphics = Me.CreateGraphics

如果是在PictrueBox里绘图,要使用下列代码创建Graphics对象;

Dim MyGraphics As Graphics = PictureBox1.CreateGraphics

Dim RedBrush As New SolidBrush(Color.Red)

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

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

Public?Class?Form1

Class?Line? ? ? '直线类

? ? ? ? Point1?=?p1

? ? End?Sub

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

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))? ? ?'在直线列表中添加直线

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

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

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

? ? Refresh()? ? ? ?'刷新窗体

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

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

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

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

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

? ? Next

运行效果:

vb.net 画图 如何保持图形

不用PictureBoxTest.Image属性,直接把图形绘制到PictureBoxTest上面就可以了.

Dim?button?As?Integer?=?0

Private?Sub?Button1_Click(ByVal?sender?As?Object,?ByVal?e?As?EventArgs)?_

Handles?Button1.Click

Using?g?As?Graphics?=?Graphics.FromHwnd(PictureBoxTest.Handle)

Dim?penRed?As?Pen?=?New?Pen(Color.Red,?1)??'定义红色画笔?

Dim?penblue?As?Pen?=?New?Pen(Color.Blue,?1)?'定义蓝色画笔?

If?button?=?0?Then

g.DrawLine(penRed,?0,?0,?100,?100)

button?=?1

ElseIf?button?=?1?Then

button?=?0

End?If

End?Using

以上就是土嘎嘎小编为大家整理的关于vb.net选择矢量直线的信息相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!

版权声明:倡导尊重与保护知识产权。未经许可,任何人不得复制、转载、或以其他方式使用本站《原创》内容,违者将追究其法律责任。本站文章内容,部分图片来源于网络,如有侵权,请联系我们修改或者删除处理。

编辑推荐

热门文章