如何用代码再RichTextBox中添加图片

aijibm 2003-10-17 10:08:33
如何用代码再RichTextBox中添加图片
最好能够提供现有代码,谢谢!
...全文
199 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
aijibm 2003-10-18
  • 打赏
  • 举报
回复
谢谢各位!
rgbcn 2003-10-17
  • 打赏
  • 举报
回复
object missing = System.Reflection.Missing.value;
  object fileName = strFileName;
  object Format = (int)Word.WdSaveFormat.wdFormatHTML;
  oDoc.SaveAs(ref fileName, ref Format,ref missing, ref missing,ref missing,ref missing,ref missing,
  ref missing,ref missing,ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing);
  oDoc.Close(ref missing ,ref missing,ref missing);
   
 }
 public void CopyAll()
 {
  oWordApplic.Selection.WholeStory();
  oWordApplic.Selection.Copy();
 
 }
 public void PasetAll()
 {
 
  oWordApplic.Selection.PasteAndFormat(Word.WdRecoveryType.wdPasteDefault);
 

 }
 public void Clear()
 {
    
  object Unit=(int)Word.WdUnits.wdCharacter;
  object Count=1;
  oWordApplic.Selection.WholeStory();
  oWordApplic.Selection.Delete(ref Unit,ref Count);
 }



 public void InsertText( string strText)
 {
  oWordApplic.Selection.TypeText(strText);
 }

 public void InsertLineBreak( )
 {
  oWordApplic.Selection.TypeParagraph();
 }
 public void InsertLineBreak( int nline)
 {
  for (int i=0; i<nline; i++)
  oWordApplic.Selection.TypeParagraph();
 }

 
 public void SetAlignment(string strType )
 {
  switch (strType)
  {
  case "Center" :
   oWordApplic.Selection.ParagraphFormat.Alignment = Word.WdParagraphAlignment.wdAlignParagraphCenter;
   break;
  case "Left" :
   oWordApplic.Selection.ParagraphFormat.Alignment = Word.WdParagraphAlignment.wdAlignParagraphLeft;
   break;
  case "Right" :
   oWordApplic.Selection.ParagraphFormat.Alignment = Word.WdParagraphAlignment.wdAlignParagraphRight;
   break;
  case "Justify" :
   oWordApplic.Selection.ParagraphFormat.Alignment = Word.WdParagraphAlignment.wdAlignParagraphJustify;
   break;
  }

 }


 
 public void SetFont( string strType )
 {
  switch (strType)
  {
  case "Bold":
   oWordApplic.Selection.Font.Bold = 1;
   break;
  case "Italic":
   oWordApplic.Selection.Font.Italic = 1;
   break;
  case "Underlined":
   oWordApplic.Selection.Font.Subscript = 0;
   break;
  }
 
 }
 
 
 public void SetFont( )
 {
  oWordApplic.Selection.Font.Bold = 0;
  oWordApplic.Selection.Font.Italic = 0;
  oWordApplic.Selection.Font.Subscript = 0;
 
 }

 public void SetFontName( string strType )
 {
  oWordApplic.Selection.Font.Name = strType;
 
 }

 public void SetFontSize( int nSize )
 {
  oWordApplic.Selection.Font.Size = nSize;
 
 }

 public void InsertPagebreak()
 {
 
  object pBreak= (int)Word.WdBreakType.wdPageBreak;
  oWordApplic.Selection.InsertBreak(ref pBreak );
 }

 

 public void GotoBookMark( string strBookMarkName)
 {
 
  object missing = System.Reflection.Missing.value;

  object Bookmark = (int)Word.WdGoToItem.wdGoToBookmark;
  object NameBookMark = strBookMarkName;
  oWordApplic.Selection.GoTo(ref Bookmark, ref missing, ref missing,ref NameBookMark);
 }

 public void GoToTheEnd( )
 {
 
  object missing = System.Reflection.Missing.value;
  object unit ;
  unit = Word.WdUnits.wdStory ;
  oWordApplic.Selection.EndKey ( ref unit, ref missing);
 
 }
 public void GoToTheBeginning( )
 {
 
  object missing = System.Reflection.Missing.value;
  object unit ;
  unit = Word.WdUnits.wdStory ;
  oWordApplic.Selection.HomeKey ( ref unit, ref missing);
 
 }

 public void GoToTheTable(int ntable )
 {

  object missing = System.Reflection.Missing.value;
  object what;
  what = Word.WdUnits.wdTable ;
  object which;
  which = Word.WdGoToDirection.wdGoToFirst;
  object count;
  count = 1 ;
  oWordApplic.Selection.GoTo( ref what, ref which, ref count, ref missing);
  oWordApplic.Selection.Find.ClearFormatting();

  oWordApplic.Selection.Text = "";
 
 
 }

 public void GoToRightCell( )
 {
  
  object missing = System.Reflection.Missing.value;
  object direction;
  direction = Word.WdUnits.wdCell;
  oWordApplic.Selection.MoveRight(ref direction,ref missing,ref missing);
 }

 public void GoToLeftCell( )
 {
  
  object missing = System.Reflection.Missing.value;
  object direction;
  direction = Word.WdUnits.wdCell;
  oWordApplic.Selection.MoveLeft(ref direction,ref missing,ref missing);
 }

 public void GoToDownCell( )
 {
  
  object missing = System.Reflection.Missing.value;
  object direction;
  direction = Word.WdUnits.wdLine;
  oWordApplic.Selection.MoveDown(ref direction,ref missing,ref missing);
 }

 public void GoToUpCell( )
 {
  
  object missing = System.Reflection.Missing.value;
  object direction;
  direction = Word.WdUnits.wdLine;
  oWordApplic.Selection.MoveUp(ref direction,ref missing,ref missing);
 }
 public void InsertPageNumber( string strType, bool bHeader )
 {
  object missing = System.Reflection.Missing.value;
  object alignment ;
  object bFirstPage = false;
  object bF = true;
  switch (strType)
  {
  case "Center":
   alignment = Word.WdPageNumberAlignment.wdAlignPageNumberCenter;
   oWordApplic.Selection.HeaderFooter.PageNumbers.Item(1).Alignment = Word.WdPageNumberAlignment.wdAlignPageNumberCenter;
   break;
  case "Right":
   alignment = Word.WdPageNumberAlignment.wdAlignPageNumberRight;
   oWordApplic.Selection.HeaderFooter.PageNumbers.Item(1).Alignment = Word.WdPageNumberAlignment.wdAlignPageNumberRight;
   break;
  case "Left":
   alignment = Word.WdPageNumberAlignment.wdAlignPageNumberLeft;
   oWordApplic.Selection.HeaderFooter.PageNumbers.Add(ref alignment,ref bFirstPage);
   break;
  }
      
 }


}
}
rgbcn 2003-10-17
  • 打赏
  • 举报
回复
关于如何将word文件读入RichTextBox



我在别的论坛经常看到有的朋友们问怎么样将word文件读入到richtextbox,(包括图片)而且要求如要修改后能保存,我想的一个办法:使用剪贴板的办法。我做了一个类,可以用于我们以后开发WORD的程序:
1、在运行这个程序之前请先导入三个dll  它们是:Interop.Microsoft.Office.Core.dll、Interop.VBIDE.dll、Interop.Word.dll)它们如何得到请查看一下以前的贴子,有很多是讲如何将com组件转为受限代码的。如果实现找不到也可以和我联系,我发给你!huanghai@bdfsz.com.cn 

2、其实我们可以这样控制word ,在启动word后选录制新宏,开始我们的动作,比如我们想看一下用VBA如何控制全选-复制-剪切,就可以用这个办法。停止录制。用VBA编辑器看一下代码吧!

3、废话不说了,看我的程序吧!
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;


namespace WordApplication
{
public class Form1 : System.Windows.Forms.Form
{
 private System.Windows.Forms.Button button1;
 private System.Windows.Forms.RichTextBox richTextBox1;
 private System.Windows.Forms.OpenFileDialog openFileDialog1;
 private System.Windows.Forms.Button button2;
 private System.ComponentModel.Container components = null;

 public Form1()
 {
  InitializeComponent();
 }

 protected override void Dispose( bool disposing )
 {
  if( disposing )
  {
  if (components != null)
  {
   components.Dispose();
  }
  }
  base.Dispose( disposing );
 }

 #region Windows Form Designer generated code
 /// <summary>
 /// Required method for Designer support - do not modify
 /// the contents of this method with the code editor.
 /// </summary>
 private void InitializeComponent()
 {
  this.button1 = new System.Windows.Forms.Button();
  this.richTextBox1 = new System.Windows.Forms.RichTextBox();
  this.openFileDialog1 = new System.Windows.Forms.OpenFileDialog();
  this.button2 = new System.Windows.Forms.Button();
  this.SuspendLayout();
  //
  // button1
  //
  this.button1.Location = new System.Drawing.Point(72, 296);
  this.button1.Name = "button1";
  this.button1.Size = new System.Drawing.Size(120, 32);
  this.button1.TabIndex = 0;
  this.button1.Text = "开始读取";
  this.button1.Click += new System.EventHandler(this.button1_Click);
  //
  // richTextBox1
  //
  this.richTextBox1.Location = new System.Drawing.Point(16, 16);
  this.richTextBox1.Name = "richTextBox1";
  this.richTextBox1.Size = new System.Drawing.Size(432, 264);
  this.richTextBox1.TabIndex = 1;
  this.richTextBox1.Text = "";
  //
  // openFileDialog1
  //
  this.openFileDialog1.DefaultExt = "*.doc";
  this.openFileDialog1.Filter = "Word文件|*.doc";
  //
  // button2
  //
  this.button2.Location = new System.Drawing.Point(248, 296);
  this.button2.Name = "button2";
  this.button2.Size = new System.Drawing.Size(128, 32);
  this.button2.TabIndex = 2;
  this.button2.Text = "修改后保存";
  this.button2.Click += new System.EventHandler(this.button2_Click);
  //
  // Form1
  //
  this.AutoScaleBaseSize = new System.Drawing.Size(6, 14);
  this.ClientSize = new System.Drawing.Size(496, 365);
  this.Controls.Add(this.button2);
  this.Controls.Add(this.richTextBox1);
  this.Controls.Add(this.button1);
  this.Name = "Form1";
  this.Text = "这是一个用于读取WORD文件到RICHEDIT的例子";
  this.ResumeLayout(false);

 }
 #endregion

 [STAThread]
 static void Main()
 {
  Application.Run(new Form1());
 }

 private void button1_Click(object sender, System.EventArgs e)
 {
  richTextBox1.Clear();
  openFileDialog1.ShowDialog();
  if(openFileDialog1.FileName!="")
  {
  CCWordApp test ;
  test = new CCWordApp();
  test.Open (openFileDialog1.FileName);
  test.CopyAll();
  richTextBox1.Paste();
  test.Quit();
   }
   

 }

 private void button2_Click(object sender, System.EventArgs e)
 {
 
    richTextBox1.SelectAll();
    richTextBox1.Copy();
 
    CCWordApp test ;
  
    test = new CCWordApp();
 
   //上面代码正常 

  test.Open (openFileDialog1.FileName);
    test.Clear(); 
    test.PasetAll();
        
        test.Save();  
    test.Quit();

  
 }
}

public class CCWordApp
{
 private Word.ApplicationClass oWordApplic; // a reference to Word application
 private Word.Document oDoc;   // a reference to the document
 
 
 public CCWordApp()
 {
 
  oWordApplic = new Word.ApplicationClass();
 }

 
 public void Open( string strFileName)
 {
  object fileName = strFileName;
  object readOnly = false;
  object isVisible = true;
  object missing = System.Reflection.Missing.value;

  oDoc = oWordApplic.Documents.Open(ref fileName, ref missing,ref readOnly,
  ref missing, ref missing, ref missing, ref missing, ref missing, ref missing,
  ref missing, ref missing, ref isVisible,ref missing,ref missing,ref missing);

  oDoc.Activate(); 
 } 


 
 public void Open( )
 {
  object missing = System.Reflection.Missing.value;
  oDoc = oWordApplic.Documents.Add(ref missing, ref missing,ref missing, ref missing);

  oDoc.Activate(); 
 } 



 public void Quit( )
 {
  object missing = System.Reflection.Missing.value;
  oWordApplic.Application.Quit(ref missing, ref missing, ref missing);
 } 

 public void Save( )
 {
  oDoc.Save(); 
 } 

 public void SaveAs(string strFileName )
 {
  object missing = System.Reflection.Missing.value;
  object fileName = strFileName;

  oDoc.SaveAs(ref fileName, ref missing,ref missing, ref missing,ref missing,ref missing,ref missing,
  ref missing,ref missing,ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing);
 } 


 public void SaveAsHtml(string strFileName )
 {
acewang 2003-10-17
  • 打赏
  • 举报
回复
Insert Plain Text and Images into RichTextBox at Runtime
http://www.codeproject.com/cs/miscctrl/csexrichtextbox.asp
注册下载:
http://www.codeproject.com/cs/miscctrl/CsExRichTextBox/ExRichTextBox_src.zip

16,549

社区成员

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

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