用richtextbox做了个文本编辑器...但是有几个问题...
1.如何实现对文本的排版...选中的文本左对齐右对齐还有居中...(10分)
2.如何实现查找替换...弹出格窗体有查找替换的相关操作...怎样从另外的窗体对richtextbox中的文本信息进行查找呢...要用什么代码连接一下么...(10分)
3.打开一个只读文件...编辑完保存的时候如何让他提示文件只读无法保存呢...或者一开始就无法编辑...(5分)
4.一个下拉菜单里怎么加横线以区分各个选项的种类...(5分)
5.怎样实现撤消和重复...(10分)
6.richtextbox中好像是无法编辑表格的把...那能不能变通下...在另外的窗体中用另外的控件编辑好表格再插入呢...具体是要怎么搞啊...(10分)这个东西做了有几天了...现在把问题会集一下...希望有人指导下...最好能给出实现的代码...orz
1.如何实现对文本的排版...选中的文本左对齐右对齐还有居中...(10分)
2.如何实现查找替换...弹出格窗体有查找替换的相关操作...怎样从另外的窗体对richtextbox中的文本信息进行查找呢...要用什么代码连接一下么...(10分)
3.打开一个只读文件...编辑完保存的时候如何让他提示文件只读无法保存呢...或者一开始就无法编辑...(5分)
4.一个下拉菜单里怎么加横线以区分各个选项的种类...(5分)
5.怎样实现撤消和重复...(10分)
6.richtextbox中好像是无法编辑表格的把...那能不能变通下...在另外的窗体中用另外的控件编辑好表格再插入呢...具体是要怎么搞啊...(10分)这个东西做了有几天了...现在把问题会集一下...希望有人指导下...最好能给出实现的代码...orz
Private Sub Option1_Click(Index As Integer)
If RichTextBox1.SelLength > 0 Then
RichTextBox1.SelAlignment = Index
End If
End Sub//4.一个下拉菜单里怎么加横线以区分各个选项的种类...(5分)
设计菜单时将菜单的标题设为"-",显示时就出现分隔横线
查找:
1、RichTextBox1.Find 查找的字符, 开始位置2、记住第一次查找后的位置3、用循环再 RichTextBox1.Find 查找的字符, 开始位置2 ,直到历遍textbox替换: RichTextBox1.SelText = 要代替的字符3.打开一个只读文件...编辑完保存的时候如何让他提示文件只读无法保存呢...或者一开始就无法编辑...(5分) 一开始无法编辑: richtextbox1.Locked=true
编辑完提示文件只读无法保存: 直接用msgbox 提示就行了,然后不管按那个健都不进行保存操作
把代码拿出来...大家帮我看看有什么要改动的把....
Dim x As Integer
Dim txtClient As RichTextBoxPrivate Sub Command1_Click()'查找
Dim strlen As Integer
strlen = Len(Text1.Text)
x = main.RichTextBox1.Find(Text1.Text, x + strlen, , 8)
If x <> -1 Then
main.RichTextBox1.SetFocus
main.RichTextBox1.SelStart = x
Else: MsgBox "未找到指定字符", vbOKOnly, "未找到"
End IfEnd SubPrivate Sub Command2_Click()'替换
Dim str As String
main.RichTextBox1.Text = Replace(main.RichTextBox1.Text, Text1.Text, Text2.Text, , , 1)End SubPublic Sub FindandReplace(ByRef Tb As RichTextBox)'与主界面连接
Set txtClient = Tb
frmFind.Show , txtClient.Parent
End SubPrivate Sub Command3_Click()'取消
frmFind.Hide
End Sub
Private Sub Text1_Change()
x = -1
End Sub
我没有用循环...就查找一次...点击一次...
不过查找中文的话好像有问题...英文的话没问题...
问题就是只能查找到第一个...后边的找不到...好像跟插图图片的问题差不多...怎么办捏..关于只读...我的意思是只读属性怎么判断呢...
刚我试了下word...如果文件只读的话...也不提示...直接就转到另存为了...
http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=67699&lngWId=1
Public Declare Function GetFileAttributes Lib "kernel32" Alias "GetFileAttributesA" (ByVal lpFileName As String) As Long
设置文件的属性:
Public Declare Function SetFileAttributes Lib "kernel32" Alias "SetFileAttributesA" (ByVal lpFileName As String, ByVal dwFileAttributes As Long) As Long具体参阅相应的API用法
的确GetAttr(FileName)比较简单...API的等有空慢慢看把...
还差5和6了...大家帮想下哈...
小弟先谢谢了...
第一次撤销,第二次重复
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Const EM_UNDO = &HC7Private Sub Command1_Click()
Dim i As Integer
i = SendMessage(Text1.hwnd, EM_UNDO, 0, 0)
End Sub
RichTextBox1.OLEObjects.Add , , "C:\1.xls"
'申明API函数
Public Declare Function SendMessage Lib "User32" Alias "SendMessageA" _
(ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, _
lParam As Long) As Long '常数
Public Const WM_USER = &H400
Public Const EM_HIDESELECTION = WM_USER + 63
这两句报错...说:
常数、固定长度字符串、数组、用户定义类型以及Declare语句不允许作为对象模块的Public成员
下边的两个子程序也看不懂...@_@
RichTextBox1.OLEObjects.Add , , "C:\1.xls"这个方法跟OLE一样把...表格的编辑什么的都是直接用excel的把...
那能不能再改下...就是点击插入表格之后...自动在目录下建个*.xls文件...然后插入完成之后再自动删除...这能做到么...
(ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, _
lParam As Long) As Long '常数
Public Const WM_USER = &H400
Public Const EM_HIDESELECTION = WM_USER + 63
这两句报错...说:
常数、固定长度字符串、数组、用户定义类型以及Declare语句不允许作为对象模块的Public成员
Public全换成private
www.cnpopsoft.com [华普软件]关于RichTextBox的很多功能扩展包括RTF文本格式规范这里都能够找到!~