打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
笔记4:与事件的交互



鼠标点击、弹起、按下等,其中的参数e记录了鼠标的位置信息(e.X ,  e.Y)

可将其当作直线的起点或终点。







通过两次点击,画出对应的直线。

  1. Imports System.Drawing  
  2.   
  3. Public Class Form1  
  4.     Dim gr As Graphics  
  5.     Dim FirstClick As Boolean = False '是否为第一次点击  
  6.     Dim p1 As Point  
  7.     Dim p2 As Point  
  8.   
  9.     '鼠标事件中记录了鼠标的位置(e.x,e.y)  
  10.     Private Sub Form1_MouseClick(sender As Object, e As MouseEventArgs) Handles Me.MouseClick  
  11.         FirstClick = Not FirstClick  
  12.         gr = Me.CreateGraphics  
  13.         If FirstClick = True Then  
  14.             p1.X = e.X  
  15.             p1.Y = e.Y  
  16.             gr.DrawString(e.X & " " & e.Y, Me.Font, Brushes.Red, p1) '输出坐标  
  17.         Else  
  18.             p2.X = e.X  
  19.             p2.Y = e.Y  
  20.             gr.DrawString(e.X & " " & e.Y, Me.Font, Brushes.Red, p2)  
  21.             gr.DrawLine(Pens.Maroon, p1, p2)  
  22.         End If  
  23.     End Sub  
  24. End Class  








通过连续点击,画连续的折线

  1. Imports System.Drawing  
  2.   
  3. Public Class Form1  
  4.     Dim gr As Graphics  
  5.     Dim FirstClick As Boolean = False  
  6.     Dim p1 As Point  
  7.     Dim p2 As Point  
  8.   
  9.     Private Sub Form1_MouseClick(sender As Object, e As MouseEventArgs) Handles Me.MouseClick  
  10.         If FirstClick = False Then  
  11.             p1.X = e.X  
  12.             p1.Y = e.Y  
  13.             FirstClick = True  
  14.         Else  
  15.             p2.X = e.X  
  16.             p2.Y = e.Y  
  17.             gr = Me.CreateGraphics  
  18.             gr.DrawLine(Pens.Red, p1, p2)  
  19.             p1 = p2  
  20.         End If  
  21.     End Sub  
  22.   
  23.     Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click  
  24.         Me.Refresh() '清屏  
  25.         FirstClick = False  
  26.     End Sub  
  27. End Class  








画任意曲线

通过鼠标按下、弹起作为标识,来画直线,不断替换起点和终点。

  1. Imports System.Drawing  
  2.   
  3. Public Class Form1  
  4.     Dim gr As Graphics  
  5.     Dim FirstClick As Boolean = False  
  6.     Dim p1 As Point  
  7.     Dim p2 As Point  
  8.   
  9.     Private Sub Form1_MouseDown(sender As Object, e As MouseEventArgs) Handles Me.MouseDown  
  10.         FirstClick = True  
  11.         p1.X = e.X  
  12.         p1.Y = e.Y  
  13.     End Sub  
  14.   
  15.     Private Sub Form1_MouseUp(sender As Object, e As MouseEventArgs) Handles Me.MouseUp  
  16.         FirstClick = False  
  17.     End Sub  
  18.   
  19.     Private Sub Form1_MouseMove(sender As Object, e As MouseEventArgs) Handles Me.MouseMove  
  20.         If FirstClick = True Then  
  21.             p2.X = e.X  
  22.             p2.Y = e.Y  
  23.   
  24.             gr = Me.CreateGraphics  
  25.             gr.DrawLine(Pens.Blue, p1, p2)  
  26.             p1 = p2  
  27.         End If  
  28.     End Sub  
  29.   
  30.     Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click  
  31.         Me.Refresh() '清屏  
  32.         FirstClick = False  
  33.     End Sub  
  34. End Class  





本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
vb.net详解MDI窗体操作方法
VB.NET 串口访问之一
VB.NET实现文件加密
VB 如何把一个listbox作为参数传递
浅谈如何使用vb.net从数据库中提取数据
CSDN 论坛
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服