Visual Basic.NET 7.x (2002/03)Visual Basic 8 (2005)Windows VistaVisual Studio .NET 2003Windows 2003.NET 3.0Visual Studio 2005设计 / 图形Windows XP.NET 2.0Windows FormsC# 2.0中级开发Visual StudioWindows.NETVisual BasicC#
开发行控件
这是一个接受起始点和结束点对象并在这两者之间绘制直线的控件

引言
此代码是用于 .NET 应用程序的线条控件。 它与使用 drawline 方法绘制的普通线条的区别在于,此控件允许您将线条用作控件。 您可以向其使用上下文菜单,可以检测是否单击了该线条。 此外,您不必担心线条的位置,因为它会为您计算所有内容。 您所需要做的就是在 Form_Paint
事件中刷新它。
该控件具有多个属性。 您可以更改线条的颜色、宽度和箭头样式。 您还可以使线条的末端跟随鼠标光标。
Using the Code
无需查看线条控件代码,因为它包含所有内容,您无需编辑它(除非您想添加更多功能)。 要在您的代码中使用线条控件,您只需将 *.dll 文件导入到您的项目中并开始使用代码。
在压缩文件中找到的示例中,您可以看到我们可以通过首先单击一个按钮来添加一条线,该按钮执行以下代码
If AddLineFlag = True Then
L.EndObject = sender
AddLineFlag = False
Exit Sub
End If
L = New LineControl.Line
L.ContextMenuStrip = Me.ContextMenuStrip1
L.StartObject = sender
L.UseCursorAsEndObject = True
Me.Controls.Add(L)
AddLineFlag = True
如该代码所示,我们首先检查是否已经有一条我们需要添加的线条。 如果没有线条,我们创建线条控件,然后为其分配上下文菜单,并将起始对象设置为被单击的按钮,线条的末端应跟随鼠标。 在设置完所有属性后,我们将控件添加到窗体并将标志设置为 true
。
Private Sub ContextMenuStrip1_Opening_
(ByVal sender As System.Object, ByVal e As System.ComponentModel.CancelEventArgs) _
Handles ContextMenuStrip1.Opening
Dim SenderLine As LineControl.Line = sender.SourceControl
Me.ToolStripTextBox1.Text = SenderLine.LineWidth
Me.ToolStripMenuItem2.Checked = SenderLine.IsFlashing
End Sub
Private Sub ToolStripTextBox1_TextChanged(ByVal sender As Object, _
ByVal e As System.EventArgs) Handles ToolStripTextBox1.TextChanged
If Me.ToolStripTextBox1.Text = "" Then
Exit Sub
End If
If Me.ToolStripTextBox1.Text > 0 And Me.ToolStripTextBox1.Text <= 9 Then
Dim SenderLine As LineControl.Line = sender.OwnerItem.Owner.SourceControl
SenderLine.LineWidth = Me.ToolStripTextBox1.Text
End If
End Sub
Private Sub ToolStripComboBox1_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles ToolStripComboBox1.Click
If Not TypeOf sender.owner.sourcecontrol Is LineControl.Line Then
Exit Sub
End If
Dim SenderLine As LineControl.Line = sender.Owner.SourceControl
Dim R As New Random()
SenderLine.LineColor = Color.FromArgb(R.Next_
(0, 255), R.Next(0, 255), R.Next(0, 255))
End Sub
Private Sub ToolStripMenuItem2_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles ToolStripMenuItem2.Click
If Not TypeOf sender.owner.sourcecontrol Is LineControl.Line Then
Exit Sub
End If
Dim SenderLine As LineControl.Line = sender.Owner.SourceControl
If Me.ToolStripMenuItem2.Checked = False Then
SenderLine.StartFlashLine(Color.Red)
Me.ToolStripMenuItem2.Checked = True
Else
SenderLine.EndFlashLine()
Me.ToolStripMenuItem2.Checked = False
End If
End Sub
前面的函数用于使用线条的属性。 第一个函数是设置上下文菜单项以反映单击的线条的当前属性。 第二个函数是更改线条的宽度。 第三个函数是为线条选择随机颜色。 最后,最后一个函数是启动或停止线条闪烁。 我需要此属性,因为我开发此控件的项目必须以某种方式向用户发出警报,这是最好的方法。
关注点
这是我开发的第一个完整的控件。 之前,我只是编写一个 Hello World 类型的控件。 此外,这是我在这里发表的第一篇文章,希望您喜欢我的作品。
历史
- 2007年5月24日:控件的第一个版本