如何取得RichTextBox里面的图片

wzckr 2013-01-31 11:44:28
我要求的功能是取得RichTexTox里图片显示在一个Picturebox里,代码如下

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim i As Int16
Dim d_Image As Image
For i = 0 To Me.RichTextBox1.TextLength - 1
Me.RichTextBox1.Select(i, 1)
If Me.RichTextBox1.SelectionType = RichTextBoxSelectionTypes.Object Then
Me.RichTextBox1.Copy()
d_Image = Clipboard.GetImage
Me.PictureBox1.Image = d_Image
Exit For
End If
Next
End Sub

可是运行的时候发现
Me.PictureBox1.Image = d_Image
里的d_Image是Nothing
我在Me.RichTextBox1.Copy后一句设置断点,然后用Clipboard.ContainsImage,发现这个结果是False,就是说剪贴板上没有图片
可是如果我把Me.RichTextBox1.Copy这句后面加个Exit sub,也就是说只执行到Copy,然后就退出,这个时候,我直接在RichTextBox里面用Ctrl+V,是可以把那个用代码复制的图片再复制到RichTextBox最后的
也就是说Copy这个代码是有执行的
是不是Copy执行是有一定时间的,如果直接在后面用代码操作剪贴板这个时候图片还没有复制到剪贴板上,所以才找不到这个图,还是说我哪里代码有问题
这个问题要如果解决,或有没有高手有别的方法得到图片
...全文
472 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
HeraLu 2013-02-25
  • 打赏
  • 举报
回复
帮顶一下,同求解决方案!
HMIXXH 2013-02-20
  • 打赏
  • 举报
回复
顶,关注,求解
wzckr 2013-02-04
  • 打赏
  • 举报
回复
怎么没人能解决吗??5555555555555555
  • 打赏
  • 举报
回复
Clipboard.SetData(DataFormats.Rtf, richTextBox1.SelectedRtf);
wzckr 2013-01-31
  • 打赏
  • 举报
回复
引用 3 楼 hjywyj 的回复:
引用 2 楼 wzckr 的回复: 引用 1 楼 hjywyj 的回复:Clipboard.SetData(DataFormats.Rtf, richTextBox1.SelectedRtf); 你是说用 Clipboard.SetData(DataFormats.Rtf, richTextBox1.SelectedRtf); 代替Me.RichTextBox1.Copy() 是不是……
Me.RichTextBox1.Select(i, 1) 这会把图片选中,我确定图片已经选中了
  • 打赏
  • 举报
回复
引用 2 楼 wzckr 的回复:
引用 1 楼 hjywyj 的回复:Clipboard.SetData(DataFormats.Rtf, richTextBox1.SelectedRtf); 你是说用 Clipboard.SetData(DataFormats.Rtf, richTextBox1.SelectedRtf); 代替Me.RichTextBox1.Copy() 是不是,没有用,结……
你确定选中richtextbox里的图片了?
wzckr 2013-01-31
  • 打赏
  • 举报
回复
引用 1 楼 hjywyj 的回复:
Clipboard.SetData(DataFormats.Rtf, richTextBox1.SelectedRtf);
你是说用 Clipboard.SetData(DataFormats.Rtf, richTextBox1.SelectedRtf); 代替Me.RichTextBox1.Copy() 是不是,没有用,结果和原来的还是一样
Web开发上有很多HTML的编辑控件,如FCKEditor、CKEditor、kindeditor等等,很多都做的很好,而虽然Winform里面有WebBrowser控件,但是默认这个控件是不允许编辑内容的,可以显示网页而已。Winform开发里面,有些使用RichTextBox控件来编辑HTML,也有一些结合WebBrowser控件来实现内容的编辑,其中我觉得做的最好的应该是Zeta HTML Edit Control(http://www.codeproject.com/Articles/43954/ZetaHtmlEditControl),这个控件是在CodeProject上开源公布的,同时也在GitHub上有一个项目的维护(https://github.com/UweKeim/ZetaHtmlEditControl)。本文主要介绍这个控件的使用,以及对其进行一些资源的中文汉化工作,使得我们在实际使用中更方便,并附上修改过的控件源码,希望大家有所收益。1、控件的界面效果控件默认很多工具栏和菜单,都是英文的,它的默认效果如下所示。对其所有英文的菜单、工具栏、对话框、提示内容等资源进行中文化后,并在工具栏中增加插入图片、打印功能后,界面如下所示。2、控件的使用控件的一些功能是可以通过配置屏蔽或者显示的,默认它的初始化代码如下所示。htmlEditUserControl1.Configure(new HtmlEditControlConfiguration{AllowFontChange = true, AllowEmbeddedImages=true, AllowPrint = true});             htmlEditUserControl1.IsToolbarVisible = true;AllowFontChange 如果设置为True,可以在工具栏出现字体大小的设置内容。AllowEmbeddedImages,可以把从剪切板里面图片转换为Base64的字符串的字符串内容,放到HTML控件里面。AllowPrint是可以打印的功能。控件可以通过几种方式进行HTML的赋值的,如下所示。const string s = @"

Some tests

Random content. Please edit.

Use right-click for options.

"; htmlEditControl1.DocumentText = s;或者const string s = @"

Click the buttons below to set different texts. German Umlaute: ???????

"; htmlEditControl1.SetDocumentText(s, @"C:\", true);控件的工具栏可以根据需要隐藏或者显示htmlEditUserControl1.IsToolbarVisible = ToolbarVisibleCheckBox.Checked;3、控件的存在问题这个控件在使用过程中,发现有一些小问题。1)必须对控件的DocumentText赋值,才能获取HTML的内容,否则在控件中输入内容后,通过代码获取到的DocumentText是空的。htmlEditUserControl1.HtmlEditControl.DocumentText = "测试内容";2)控件的HtmlEditControl对象在设计的时刻不出现在只能提示里面,但是使用没问题,很奇怪。4、对控件进行汉化后,整个控件的源码对控件全面进行了中文化修改,方便我们日常的使用。控件下载地址如下:http://files.cnblogs.com/wuhuacong/ZetaHtmlEditControl.rar 标签:HTML编辑控件

16,553

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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