用vb.net实现写字板程序报告(三)
2003-10-27 02:06
441 查看
所有源代码均在这里下载:
http://www.up2e.com/resource.php
用vb.net实现写字板程序报告(三)---by zigz(LuHai)
luluhai@eastday.com
3) 关于查找替换功能
这里我用了一个Panel面板控件来放查找,查找下一个,替换按钮和文本框。
图4 查找替换
我为什么不用一个窗体呢?因为我正好想练练拖动控件的代码,可以实现让这个面板在主窗体范围内拖动,由于看到了一个老外的教程,就顺便翻译了来练习练习。首先说说这个简单的查找替换功能,就是用户在第一个文本框中输入希望查找的字,然后点击查找按钮,程序就会在RichTextBox中查找相匹配的字,找到之后,将其高亮显示,点击下一个按钮,就会找到下一个匹配的字。。如此反复,直到结束,而替换就是把所有在RichTextBox中第一个文本框中的内容用第二个文本框的内容替换。是不是有些绕口令?还是亲自尝试一下就知道了。下面是查找替换相关代码(主要是创建一个FindText函数):
'下面是关于实现查找功能<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
Dim MyPos As Integer '先声明一个全局变量
Private Sub FindText(ByVal start As Integer) '创建findtext函数
Dim pos As Integer
Dim target As String
'获取用户输入的要查找的字符串
target = txtbox.Text
pos = InStr(start, rtbox.Text, target)
If pos > 0 Then '找到了匹配字符串
MyPos = pos
rtbox.SelectionStart = MyPos - 1 '高亮显示
rtbox.SelectionLength = Len(txtbox.Text)
rtbox.Focus()
Else
MsgBox("没找到!")
End If
End Sub
给find按钮,findNext按钮
Private Sub find_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles find.Click
FindText(1)
End Sub
Private Sub findnext_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles findnext.Click
FindText(MyPos + 1)
End Sub
拖动控件的代码:
'下面这段程序,用作拖拽“查找面板”使用
Dim dragging As Boolean
Dim mousex As Integer
Dim mousey As Integer
Private Sub panel1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Panel1.MouseDown
If e.Button = MouseButtons.Left Then
dragging = True
mousex = -e.X
mousey = -e.Y
Dim clipleft As Integer = Me.PointToClient(MousePosition).X - Panel1.Location.X
Dim cliptop As Integer = Me.PointToClient(MousePosition).Y - Panel1.Location.Y
Dim clipwidth As Integer = Me.ClientSize.Width - (Panel1.Width - clipleft)
Dim clipheight As Integer = Me.ClientSize.Height - (Panel1.Height - cliptop)
Cursor.Clip = Me.RectangleToScreen(New Rectangle(clipleft, cliptop, clipwidth, clipheight))
Panel1.Invalidate()
End If
End Sub
Private Sub panel1_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Panel1.MouseMove
If dragging Then
'移动控件到新的位置
Dim MPosition As New Point()
MPosition = Me.PointToClient(MousePosition)
MPosition.Offset(mousex, mousey)
'确实控件不能离开主窗口
Panel1.Location = MPosition
End If
End Sub
Private Sub panel1_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Panel1.MouseUp
If dragging Then
'结束拖拽
dragging = False
Cursor.Clip = Nothing
Panel1.Invalidate()
End If
End Sub
未完待续......
http://www.up2e.com/resource.php
用vb.net实现写字板程序报告(三)---by zigz(LuHai)
luluhai@eastday.com
3) 关于查找替换功能
这里我用了一个Panel面板控件来放查找,查找下一个,替换按钮和文本框。
图4 查找替换
我为什么不用一个窗体呢?因为我正好想练练拖动控件的代码,可以实现让这个面板在主窗体范围内拖动,由于看到了一个老外的教程,就顺便翻译了来练习练习。首先说说这个简单的查找替换功能,就是用户在第一个文本框中输入希望查找的字,然后点击查找按钮,程序就会在RichTextBox中查找相匹配的字,找到之后,将其高亮显示,点击下一个按钮,就会找到下一个匹配的字。。如此反复,直到结束,而替换就是把所有在RichTextBox中第一个文本框中的内容用第二个文本框的内容替换。是不是有些绕口令?还是亲自尝试一下就知道了。下面是查找替换相关代码(主要是创建一个FindText函数):
'下面是关于实现查找功能<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
Dim MyPos As Integer '先声明一个全局变量
Private Sub FindText(ByVal start As Integer) '创建findtext函数
Dim pos As Integer
Dim target As String
'获取用户输入的要查找的字符串
target = txtbox.Text
pos = InStr(start, rtbox.Text, target)
If pos > 0 Then '找到了匹配字符串
MyPos = pos
rtbox.SelectionStart = MyPos - 1 '高亮显示
rtbox.SelectionLength = Len(txtbox.Text)
rtbox.Focus()
Else
MsgBox("没找到!")
End If
End Sub
给find按钮,findNext按钮
Private Sub find_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles find.Click
FindText(1)
End Sub
Private Sub findnext_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles findnext.Click
FindText(MyPos + 1)
End Sub
拖动控件的代码:
'下面这段程序,用作拖拽“查找面板”使用
Dim dragging As Boolean
Dim mousex As Integer
Dim mousey As Integer
Private Sub panel1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Panel1.MouseDown
If e.Button = MouseButtons.Left Then
dragging = True
mousex = -e.X
mousey = -e.Y
Dim clipleft As Integer = Me.PointToClient(MousePosition).X - Panel1.Location.X
Dim cliptop As Integer = Me.PointToClient(MousePosition).Y - Panel1.Location.Y
Dim clipwidth As Integer = Me.ClientSize.Width - (Panel1.Width - clipleft)
Dim clipheight As Integer = Me.ClientSize.Height - (Panel1.Height - cliptop)
Cursor.Clip = Me.RectangleToScreen(New Rectangle(clipleft, cliptop, clipwidth, clipheight))
Panel1.Invalidate()
End If
End Sub
Private Sub panel1_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Panel1.MouseMove
If dragging Then
'移动控件到新的位置
Dim MPosition As New Point()
MPosition = Me.PointToClient(MousePosition)
MPosition.Offset(mousex, mousey)
'确实控件不能离开主窗口
Panel1.Location = MPosition
End If
End Sub
Private Sub panel1_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Panel1.MouseUp
If dragging Then
'结束拖拽
dragging = False
Cursor.Clip = Nothing
Panel1.Invalidate()
End If
End Sub
未完待续......
相关文章推荐
- VC与Delphi之间动态链接库互相调用
- 用Ole Automation实现Delphi和AutoCad之间的数据交换
- delphi中的时间操作技术(1)
- delphi中的时间操作技术(2)
- IP地址的隐藏(delphi实现 )
- 解析IP地址为主机域名
- 将某一主机域名解析为IP地址
- 使用C#开发COM+组件
- TreeView学习笔记
- 如何在VB例程中接收自定义消息
- DOM心得
- Servlet 2.3过滤器编程(二)
- 获取系统当前打开的端口(tcp。udp)状态,以及连接方的ip。端口
- 文件上传的一点心得
- VB计算农历的算法
- 用MCI命令做一个播放器
- MCI播放器在VB中实现
- Netscaler数据索引String Map与Pattern Set的区别
- 2014年软考数据库系统工程师知识点讲解(1)