| 网站首页 | 业界新闻 | 技术文章 | 视频教程 | 下载频道 | 程序源码 | 个人空间 | 编程论坛 |
 
| 技术教程首页 | 开发语言 | WEB开发 | .NET技术 | 数据库 | 操作系统 | 网页制作 |
 
 
您现在的位置: 编程中国 >> 技术教程 >> .NET技术 >> VB.NET >> VB.NET技术资料 >> 正文
  ►  一步一步创建Visual Basic .NET 控件
一步一步创建Visual Basic .NET 控件
作者:未知    阅读人次:……    文章来源:不详    发布时间:2004-10-8    网友评论()条
 

 

  第 5 步:使控件响应用户

  要允许用户更改灯的颜色,必须检测到用户的鼠标单击操作。有经验的 Visual Basic 开发人员都知道,可以使用多种方法实现这一目的。我们使用最简单的一种方法,即检测 MouseUp 事件。下面是检测用户单击并更改 Status 属性以与之匹配的代码:

Private Sub TrafficLight_MouseUp(ByVal sender As Object, _
ByVal e As System.Windows.Forms.MouseEventArgs) _
Handles MyBase.MouseUp
Dim nMidPointX As Integer = CInt(Me.Size.Width * 0.5)
Dim nCircleRadius As Integer = nMidPointX
If Distance(e.X, e.Y, nMidPointX, CInt(Me.Size.Height / 6)) _
< nCircleRadius Then
Me.Status = TrafficLightStatus.statusRed
Exit Sub
End If
If Distance(e.X, e.Y, nMidPointX, CInt(Me.Size.Height / 2)) _
< nCircleRadius Then
Me.Status = TrafficLightStatus.statusYellow
Exit Sub
End If
If Distance(e.X, e.Y, nMidPointX, CInt((5 * Me.Size.Height) / 6)) _
< nCircleRadius Then
Me.Status = TrafficLightStatus.statusGreen
End If

End Sub

Private Function Distance(ByVal X1 As Integer, _
ByVal Y1 As Integer, _
ByVal X2 As Integer, _
ByVal y2 As Integer) As Integer
Return CInt(System.Math.Sqrt((X1 - X2) ^ 2 + (Y1 - y2) ^ 2))
End Function

  事件处理非常简单。检查鼠标单击的位置和每个圆心之间的距离。(请注意,圆心分别位于控件下方 1/6、1/2 和 5/6 的位置。如果不太明白,可以在纸上画出来看看。)如果计算出的距离小于圆的半径,则更改 Status 属性。

  距离由 Distance 函数使用您可能在代数课中学过的公式计算。请注意,平方根函数是从 System.Math 命名空间中获得的,数学函数通常都保存在该命名空间中。

  第 6 步:清理

  为了使控件顺利地运作,我们还需要执行一些其他操作。例如,大小改变时需要重新绘制控件。而且,为了不改变控件的比例,我们需要检测影响大小的属性发生更改的时间,然后强制宽度等于高度的三分之一。下面是完成这两项任务的事件处理程序:

Private Sub TrafficLight_Resize(ByVal sender As Object, _
ByVal e As System.EventArgs) Handles MyBase.Resize
Me.Invalidate()
End Sub

Private Sub TrafficLight_Layout(ByVal sender As Object, _
ByVal e As System.Windows.Forms.LayoutEventArgs) _
Handles MyBase.Layout
Select Case e.AffectedProperty
Case "Bounds"
Me.Width = CInt(Me.Height * 0.3333)
Case Else
' 不执行任何操作
End Select
End Sub

  最后,设置控件在工具箱中使用的图标。控件已经有一个看似齿轮的默认图标,但是我们要使用 Visual Studio .NET 附带的红绿灯图标。

 

上一页  [1] [2] [3] [4] [5] [6] [7] [8] 下一页

 

 
文章录入:静夜思    责任编辑:静夜思 
  • 上一篇文章:

  • 下一篇文章:

  •  
    相关文章
    原创地带
    24小时热门帖子