C# 同时在多个RichTextBox区域中选择全部

C# 同时在多个RichTextBox区域中选择全部,c#,winforms,richtextbox,C#,Winforms,Richtextbox,如何选择全部并在多个RichTextBox控件中保持选择的可视性 首先,复制问题的简单说明: 在C中的WinForms项目中,在新的空白表单上放置两个RichTextBox控件 在两个RichTextBox中放置一些随机文本。 将鼠标光标放在一个不重要的位置,然后按CTRL+A选择全部。 现在将光标放在另一个框中,并按CTRL+A选择全部。 您会注意到,当您在第一个RichTextBox上失去焦点时,它看起来像是未选择任何内容,如下所示> 我想做的是,当您在一个框中选择全部时,我也希望在其他框中

如何选择全部并在多个RichTextBox控件中保持选择的可视性

首先,复制问题的简单说明:

在C中的WinForms项目中,在新的空白表单上放置两个RichTextBox控件 在两个RichTextBox中放置一些随机文本。 将鼠标光标放在一个不重要的位置,然后按CTRL+A选择全部。 现在将光标放在另一个框中,并按CTRL+A选择全部。 您会注意到,当您在第一个RichTextBox上失去焦点时,它看起来像是未选择任何内容,如下所示>

我想做的是,当您在一个框中选择全部时,我也希望在其他框中选择全部,并保持所选文本的可视性,除非用户单击其他位置以取消全选,例如,单击表单应取消所做的任何选择,如下所示:

默认行为是选择显示具有焦点的控件。

资料来源需证明问题如下:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace WindowsFormsApplication1 {
    public partial class Form1 : Form {
        public Form1() {
            InitializeComponent();
        }

        private void Form1_Load( object sender, EventArgs e ) {
            richTextBox1.Text = @"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras eu dui in tellus cursus luctus. Integer rutrum lorem nec quam faucibus ullamcorper. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam ante tellus, rutrum eu consectetur non, mattis non orci. Proin dignissim odio in faucibus vulputate. Maecenas ac efficitur dui. Cras eu quam mattis, tempor neque vitae, sollicitudin urna. Nullam et ipsum a orci finibus efficitur et sed felis. Aenean nulla justo, tempor nec ligula vitae, interdum mollis dui. In purus ipsum, cursus in arcu sed, tincidunt molestie arcu. Cras suscipit felis ac auctor vehicula. Etiam dapibus convallis sapien. Integer lorem metus, consequat at urna sed, venenatis imperdiet est. Nam eleifend ac dui sit amet feugiat. Nam ut nibh nec dui molestie hendrerit.";
            richTextBox2.Text=richTextBox1.Text;
        }
    }
}

在进一步探索之后,发现了HideSelection属性,并通过添加以下行调整了上述代码,从而部分解决了“全选”问题:

        richTextBox1.HideSelection = false;
        richTextBox2.HideSelection = false;
        richTextBox1.SelectAll();
        richTextBox2.SelectAll();
仍然可以用手来回答问题的相反部分,即当我在其中一个框内单击时,选择从“全部”更改,另一个框仍保持选中状态,如图所示>