选择/突出显示文本框中的某些文本

时间:2014-11-10 11:15:54

标签: c# winforms highlight

所以我有一个带有时间的文本框,看起来像这样;

enter image description here

当您在文本框中单击时,单击小时部分,就像这样;

enter image description here

看起来应该是这样的;

enter image description here

同样适用于分钟,所以当你像文本框一样处于分钟部分时;

enter image description here

那应该是这样的;

enter image description here

基本上我要做的是让程序选择/突出显示你的时间。取决于您点击的内容。

到目前为止我所尝试的是这个;

当您“选择”小时部分时会发生什么:

textBox1.SelectionStart = 0; // The start of the selection
   textBox1.SelectionLength = 2; //Untill the ":" which seperates the hours from minutes

这样做,文字将被选中,如同图片一样。

这一部分:

textBox1.SelectionStart = 3; // The start of the selection, in this case after the ":"
       textBox1.SelectionLength = textBox1.Text.Length; //Untill the end

我知道你应该能为此写一个简单的if语句。

但我的问题是,如何在文本框中查看“光标”所在的部分?

1 个答案:

答案 0 :(得分:1)

通过选择开始,您可以在文本框中知道光标的位置。

private void textBox1_MouseClick(object sender, MouseEventArgs e)
            {
                if (textBox1.SelectionStart < 3)
                {
                    textBox1.SelectionStart = 0;
                    textBox1.SelectionLength = 2;
                }
                else if (textBox1.SelectionStart > 2)
                {
                    textBox1.SelectionStart = 3;
                    textBox1.SelectionLength = textBox1.Text.Length;
                }
            }

如果if语句为真,我将选择某个文本,例如,如果您的SelectionStart为0,这意味着它位于文本框的开头,则前2位数字将突出显示。

它应该与那两个if语句一起使用。