【问题标题】:C# Forms TextBox select text with caret positionC# Forms TextBox 选择带有插入符号位置的文本
【发布时间】:2016-02-08 03:00:37
【问题描述】:

我不知道是否可以通过编程方式在 TextBox 中选择文本并设置插入符号位置?它总是将插入符号位置设置为选择的末尾:

我可以在选择开始时获得插入符号吗? (还有其他地方吗?)

【问题讨论】:

    标签: c# forms textbox selection caret


    【解决方案1】:

    确实可以做到这一点,但是只有当TextBox 控件具有焦点时,文本选择才会可见

    我能想到的为您的特定应用程序实现的最佳方法是创建一个简单的方法,如下所示:

    private void SetTextSelection(TextBox textBox, int start, int length)
    {
        textBox.Select(start, length);
        textBox.Focus();
    }
    

    然后,您可以使用如下语句设置TextBox 的选择:

    SetTextSelection(textBox, 3, 4);
    

    其中textBox 是您的文本框控件的实例,3 是选择中第一个字符的从零开始的索引4选择的长度

    正长度将在从左到右的方向上选择。请记住,您还可以指定负长度,并且选择将“向后”,就像您使用鼠标选择文本并从右向左拖动一样。

    【讨论】:

      【解决方案2】:

      你需要使用TextBox的Select()方法

      private void button1_Click(object sender, EventArgs e)
      {
          textBox1.Focus();
          textBox1.Select(3, 4);
      }
      

      注意:如果没有特定文本框选择方法的焦点,则无法正常工作。所以你需要在select方法之前使用focus方法。

      【讨论】:

      • 这会将插入符号设置为选择的末尾,就像这样做: textbox1.SelectionStart = x; textbox1.SelectionLength = y;
      • 这里 3 = x(起始索引)和 4 = y(长度)
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-11-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-12
      • 2010-11-14
      相关资源
      最近更新 更多