求救!急

zhuliren 2003-09-14 08:40:19
我想写个文本编辑器, 其中想实现‘查找’功能,但不知如何实现‘查找’窗体总在编辑窗体的前面?(不要在其他应用程序前面)
另外,希望能在TextBox前添一个Label,让它显示TextBox的行号,并随滚动条的滚动而变化,就象Dreamweaver MX的代码框。我想了好久,就是实现不了,各位大哥大姐帮帮忙!(希望回帖详细一点,我很水)急!
...全文
53 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
windywalk 2003-09-23
  • 打赏
  • 举报
回复
TextBox的行号是什么意思?textbox没有滚动条的阿
是不是ComboBox?
jary12581 2003-09-23
  • 打赏
  • 举报
回复
前些天做了一个文本编辑器,其中正好有“搜索”、“查找下一个”的功能,先把代码给你,如不明白请回复.
Private Sub serch_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles serch.Click
yesornonext = False
findtext(1)
End Sub

'查找下一个
Private Sub serchnext_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles serchnext.Click
yesornonext = True
findtext(targetposition + 1)
End Sub

Private Sub findtext(ByVal startposition As Integer)
If yesornonext = False Then
findtextstr = Trim(InputBox("请输入要查找的文本:", "查找"))
End If
Dim activechild As Form = Me.ActiveMdiChild
If Not activechild Is Nothing Then
If Not activechild.ActiveControl Is Nothing Then
Dim therichtextbox As RichTextBox
therichtextbox = CType(activechild.ActiveControl, RichTextBox)
Dim pos As Integer
pos = InStr(startposition, therichtextbox.Text, findtextstr)
If pos > 0 Then
textnum = textnum + 1
targetposition = pos
therichtextbox.SelectionStart = targetposition - 1
therichtextbox.SelectionLength = Len(findtextstr)
Else
If yesornonext = False Then
MessageBox.Show("你要查找的文本不存在!", "提示", MessageBoxButtons.OK)
Else
MessageBox.Show("文本查找完毕!" & " " & "共" & CStr(textnum) & "处", "提示", MessageBoxButtons.OK)
End If
End If
End If
End If
End Sub
以上功能代码是查找richtextbox 中的文本。
Fengq 2003-09-14
  • 打赏
  • 举报
回复
SetParent

Private Declare Function SetParent Lib "user32" (ByVal hWndChild As Long, ByVal hWndNewParent As Long) As Long

Private Sub Command1_Click()

FindD.Show
SetParent FindD.hWnd, Mainfrm.hWnd
End Sub
lingll 2003-09-14
  • 打赏
  • 举报
回复
FindDialog.Show , me
foreverforyou 2003-09-14
  • 打赏
  • 举报
回复
在主窗体的Activate事件中用API函数置顶,在主窗体的Deactivate事件中,取消置顶
zhuliren 2003-09-14
  • 打赏
  • 举报
回复
以上都不是我希望的

第一个答复:这样的话,查找’窗体未关之前,编辑窗体不能动
第二个答复:这样它会在所有窗体前面
foreverforyou 2003-09-14
  • 打赏
  • 举报
回复
'先声明API函数
Public Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal Y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long

Public Const HWND_TOPMOST = -1
Public Const SWP_NOMOVE = &H2
Public Const SWP_NOSIZE = &H1

'在窗体加载时调用
Private Sub Form_Load()
SetWindowPos Me.hwnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE
End Sub
Hattiss 2003-09-14
  • 打赏
  • 举报
回复
像这样实现‘查找’窗体总在编辑窗体的前面:
FindDialog.Show vbModal

7,762

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧