这个自己想嘛
You can 用RichTextBox

解决方案 »

  1.   

    调用COM组件来实现诸如插入图片、表格等之类的却是比较麻烦,但如果机器上装过Office的话倒是可以创建类似Word的实例,就可以实现那些功能了。
        要完全靠代码实现那些功能就不是几天能够搞的定的事,而且也得不偿失,做出来的不见得好。不过贴主的学习的干劲还是很值得佩服的!^_^
      

  2.   

    不要啊..我过几天还得交呢...
    怎么创建类似Word的实例啊...OLE么...
    我现在想的是...用代码实现基本功能....然后表格啊..图片啊...另外使用个容器...在里边编辑...编辑好之后在插入到文本中...这样的话...应该是行的通的把...
    主要是想...用什么类型的文件来保存...如果不用.doc的话...
      

  3.   

    要操作Word,我们就需要Word的对象库文件“MSWORD.OLB”(word 2000为MSWORD9.OLB),通常安装了Office Word后,你就可以在office安装目录的Office10文件夹下面找到这个文件,当我们将这个文件引入到项目后,我们就可以在源码中使用各种操作函数来操作Word。具体做法是打开菜单栏中的项目>添加引用>浏览,在打开的“选择组件”对话框中找到MSWORD.OLB后按确定即可引入此对象库文件,vs.net将会自动将 库文件转化为DLL组件,这样我们只要在源码中创建该组件对象即可达到操作Word的目的! 
    在CS代码文件中对命名空间的应用,如:using Word;范例如下:
       
      using System; 
      using System.Drawing; 
      using System.Collections; 
      using System.ComponentModel; 
      using System.Windows.Forms; 
      using Word; 
      namespace ExamSecure 
      { 
       ///  
       /// ItemToDoc 的摘要说明。 
       ///  
       public class ItemToDoc : System.Windows.Forms.Form 
       { 
        object strFileName; 
        Object Nothing; 
        Word.ApplicationClass myWordApp=new Word.ApplicationClass(); 
        Word.Document myWordDoc; 
        string strContent=""; 
        private System.ComponentModel.Container components = null; 
        public ItemToDoc() 
        { 
         // 
         // Windows 窗体设计器支持所必需的 
         // 
         InitializeComponent(); 
         // 
         // TODO: 在 InitializeComponent 调用后添加任何构造函数代码 
         // 
        } 
        [STAThread] 
        static void Main()  
        { 
         System.Windows.Forms.Application.Run(new ItemToDoc()); 
        } 
        ///  
        /// 清理所有正在使用的资源。 
        ///  
        protected override void Dispose( bool disposing ) 
        { 
         if( disposing ) 
         { 
          if(components != null) 
          { 
           components.Dispose(); 
          } 
         } 
         base.Dispose( disposing ); 
        } 
        #region Windows Form Designer generated code 
        ///  
        /// 设计器支持所需的方法 - 不要使用代码编辑器修改 
        /// 此方法的内容。 
        ///  
        private void InitializeComponent() 
        { 
         //  
         // ItemToDoc 
         //  
         this.AutoScaleBaseSize = new System.Drawing.Size(6, 14); 
         this.ClientSize = new System.Drawing.Size(292, 273); 
         this.Name = "ItemToDoc"; 
         this.Text = "ItemToDoc"; 
         this.Load += new System.EventHandler(this.ItemToDoc_Load); 
      } 
        #endregion 
        private void ItemToDoc_Load(object sender, System.EventArgs e) 
        { 
         WriteFile(); 
        } 
        private void WriteFile() 
        { 
         
         strFileName=System.Windows.Forms.Application.StartupPath+"\\试题库【"+GetRandomString()+"】.doc"; 
         Object Nothing=System.Reflection.Missing.Value; 
         myWordDoc=myWordApp.Documents.Add(ref Nothing,ref Nothing,ref Nothing,ref Nothing); 
          
         #region 将数据库中读取得数据写入到word文件中 
         strContent="试题库\n\n\r"; 
         WriteFile(strContent); 
          
         strContent="试题库"; 
         WriteFile(strContent); 
       #endregion  
          
         //将WordDoc文档对象的内容保存为DOC文档 
         myWordDoc.SaveAs(ref strFileName,ref Nothing,ref Nothing,ref Nothing,ref Nothing,ref Nothing,ref Nothing,ref Nothing,ref Nothing,ref Nothing,ref Nothing,ref Nothing,ref Nothing,ref Nothing,ref Nothing,ref Nothing); 
         //关闭WordDoc文档对象 
         myWordDoc.Close(ref Nothing, ref Nothing, ref Nothing); 
         //关闭WordApp组件对象 
         myWordApp.Quit(ref Nothing, ref Nothing, ref Nothing); 
        } 
        ///  
        /// 获取一个随即字符串 
        ///  
        ///  
        private string GetRandomString() 
        { 
         DateTime iNow=DateTime.Now; 
         string strDate=iNow.ToString("yyyyMMddHHmmffff"); 
          
         Random ran=new Random(); 
         int iRan=Convert.ToInt32(10000*ran.NextDouble()); 
         string strRan=iRan.ToString(); 
         //位数不足则补0    
         int iRanlen=strRan.Length; 
         for(int i=0;i<4-iRanlen;i++) 
         { 
          strRan="0"+strRan; 
         } 
         return strDate+strRan; 
        } 
      ///  
        /// 将字符串写入到Word文件中 
        ///  
        /// 要写入的字符串 
        private void WriteFile(string str) 
        { 
         myWordDoc.Paragraphs.Last.Range.Text=str; 
        } 
       } 
      }