以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]富文本的使用  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=177492)

--  作者:chnfo
--  发布时间:2022/5/24 17:30:00
--  [求助]富文本的使用
我在窗口的afterload事件中增加了一个第三方控件富文本
Dim RTB As New System.Windows.Forms.RichTextBox
RTB.Dock = System.Windows.Forms.DockStyle.Fill
e.Form.Controls("Panel2").basecontrol.controls.add(RTB)

打开窗口以后,倒是可以做很多操作,比如输入文字、直接贴图了

问题:希望在富文本窗口中按回车(或者Ctrl+回车,可以自己设置)以后(为了方便测试,准备加一个保存按钮,来实现功能)
1、把富文本中的信息保存到数据库表A的Mess列中----这个应当怎么做?
2、如果能保存,也可以用其它的方法来把它发送给其他人(比如说在聊天窗口中发送)

我看到好多帮助,在设计上实际上是嵌入了一个网页浏览器实现的……
[此贴子已经被作者于2022/5/24 17:31:26编辑过]

--  作者:有点蓝
--  发布时间:2022/5/24 20:08:00
--  
Dim RTB As New System.Windows.Forms.RichTextBox
RTB.Dock = System.Windows.Forms.DockStyle.Fill
RTB.name = "RichTextBox1"
e.Form.Controls("Panel2").basecontrol.controls.add(RTB)

把富文本中的信息保存到数据库表A的Mess列中---
tables("表A").current("Mess") = e.Form.Controls("Panel2").basecontrol.controls("RichTextBox1").text
--  作者:chnfo
--  发布时间:2022/5/24 20:57:00
--  
但是富文本窗口中,不仅仅只有文本信息啊,可能还有图片呢……
.text只能取到文本信息呢

--  作者:有点蓝
--  发布时间:2022/5/24 21:19:00
--  
tables("表A").current("Mess") = e.Form.Controls("Panel2").basecontrol.controls("RichTextBox1").rtf
--  作者:chnfo
--  发布时间:2022/5/24 22:20:00
--  
倒是取到信息了。
缺点就是:图片信息转二进制文本,太大了,就是一个普通的截屏,就是50K,存数据库不合适
现在截屏以后,可以把它存到硬盘里,然后数据库里只存文件的存放目录,然后在WebBrowser还原为图片?


--  作者:有点蓝
--  发布时间:2022/5/24 22:32:00
--  
RichTextBox没有办法和WebBrowser交互。如果想用WebBrowser,可以试试这个:http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=175055&replyID=&skin=1
--  作者:chnfo
--  发布时间:2022/5/24 22:38:00
--  
也就是说,如果自己做一个聊天窗口,发送消息窗口和历史消息窗口都用富文本的话,只能用二进制?
或者说发送消息窗口用富文本,历史消息用WebBrowser?
[此贴子已经被作者于2022/5/24 22:42:35编辑过]

--  作者:有点蓝
--  发布时间:2022/5/24 22:43:00
--  
是的。除非您有能力去解析富文本里的rtf格式。
--  作者:chnfo
--  发布时间:2022/5/24 22:51:00
--  
发送消息窗口用富文本,历史消息用WebBrowser?这样整不了是吧

我下载了示例文件,初始化的代码是这样的

Try
    Registry.SetValue("HKEY_CURRENT_USER\\SOFTWARE\\Microsoft\\Internet Explorer\\Main\\FeatureControl\\FEATURE_BROWSER_EMULATION",System.Diagnostics.Process.GetCurrentProcess.ProcessName & ".exe",11001)
Catch ex As Exception
    MessageBox.Show("狐表调用IE11内核失败,会导致富文本框无法粘贴图片" & vbcrlf & "Error:" & ex.Message )
End Try

Dim wb = e.Form.Controls("WebBrowser1").BaseControl
wb.Url = New System.Uri(ProjectPath & "KindEditor\\e.html", System.UriKind.Absolute) 我只是要这个文本编辑器,不想用那些工具栏之类的,要怎么整?  
Dim ke As new KindEditor \'必须创建一个新实例
wb.ObjectForScripting =ke

e.Form.Controls("GroupBox2").Enabled =True
[此贴子已经被作者于2022/5/24 22:56:06编辑过]

--  作者:有点蓝
--  发布时间:2022/5/24 23:06:00
--  
这您要自己去看KindEditor的官方文档:http://kindeditor.net/doc3.php?cmd=api