protected override void OnLoad(EventArgs e)
        {
            base.OnLoad(e);
            MenuItem CopySelection = new MenuItem("复制选中");
            MenuItem CopyAll = new MenuItem("复制全部");
            CopySelection.Click += new EventHandler(CopySelection_Click);
            CopyAll.Click += new EventHandler(CopyAll_Click);
            ContextMenu common_Menu = new ContextMenu(new MenuItem[] { CopySelection, CopyAll });
            richTextBox1.ContextMenu = common_Menu;
            richTextBox2.ContextMenu = common_Menu;
            richTextBox3.ContextMenu = common_Menu;
        }        private void CopySelection_Click(object sender, EventArgs e)
        {
            if (richTextBox1.SelectedText.Equals("") && richTextBox2.SelectedText.Equals("") && richTextBox3.SelectedText.Equals(""))
                return;
            else
            {
                if (this.tabControl1.SelectedIndex == 0)
                     Clipboard.SetText( richTextBox1.SelectedText , TextDataFormat.UnicodeText);
                else if (this.tabControl1.SelectedIndex == 1)
                     Clipboard.SetText( richTextBox2.SelectedText , TextDataFormat.UnicodeText);
                else if (this.tabControl1.SelectedIndex == 3)
                     Clipboard.SetText( richTextBox3.SelectedText , TextDataFormat.UnicodeText);
            }
        }        private void CopyAll_Click(object sender, EventArgs e)
        {
            if(this.tabControl1.SelectedIndex==0)
                Clipboard.SetText( richTextBox1.Text,TextDataFormat.UnicodeText);
            else if(this.tabControl1.SelectedIndex==1)
                Clipboard.SetText( richTextBox2.Text,TextDataFormat.UnicodeText);
            else if(this.tabControl1.SelectedIndex==3)
                Clipboard.SetText( richTextBox3.Text,TextDataFormat.UnicodeText);
        }
我是用一个tabControl的第1,2,4个tabPage放这3个richtextbox,运行的结果是:1.ctrl+c放TXT WORD都能换行2.右键选择两个MenuItem 任意一个,再粘贴到TXT 就出现■这些东西且不换行,放WORD里能换行3.再把刚刚粘贴到TXT 的有■这些东西的文字放在WORD里,又能换行请问如何改动这程序让情况2中粘贴到TXT 的文字也能换行???我在给richTextBox赋值时换行用\r\n也不行...

解决方案 »

  1.   

    TXT保存的时候设置编码为 UTF-8
      

  2.   

    回楼上 这个代码怎么写  我定义了一个output1,其他值加到output1,然后richTextBox1.Text = output1;后面怎么设置???
      

  3.   

    用这个代码来拷贝:
    ///拷贝所有
                Clipboard.SetData(DataFormats.Rtf, richTextBox1.Rtf);            ///拷贝选中的
                Clipboard.SetData(DataFormats.Rtf, richTextBox1.SelectedRtf);
      

  4.   

    用6楼的不行啊,因为我给richTextBox赋值的时候用Text而不是Rtf,所以不能复制....