etsoft 发表于 2013-12-9 23:11:00

这是一个bug吗?

有如下语句:
      int start = this.textControl1.InputPosition.TextPosition;
      int length = 1;
      this.textControl1.Selection.Start = start;
      this.textControl1.Selection.Length = length;
      this.textControl1.Text += this.textControl1.Selection.Text;

假如当前textControl1.text的值是abcdefg这几个字符,插入点位置在字符的最末尾,执行如上的语句,Selection.text的值是整个textControl1.text

iceman 发表于 2013-12-10 12:20:00

回复 1楼etsoft的帖子

etsoft 你好,
这不是一个 bug ,是 TX 的默认行为,当当前光标位置处于文档最后时,后面已经没有可选字符,再选择长度为1,则会默认选择全部文本。

etsoft 发表于 2013-12-10 13:17:00

长度为0时也是选择全部文本?

etsoft 发表于 2013-12-10 13:18:00

如何判断当前光标处于文档的最后呢
   int start = this.textControl1.InputPosition.TextPosition;
      int length = 1;
      this.textControl1.Selection.Start = start;
      this.textControl1.Selection.Length = length;
      if (this.textControl1.Selection.Length ==0)
      {
            MessageBox.Show("光标处于文档尾!");
      }

这个判断可以认为是在文档尾吗?

iceman 发表于 2013-12-10 17:05:00

回复 4楼etsoft的帖子

etsoft 你好,
判断光标在末尾的代码如下:

            if (this.textControl1.InputPosition.TextPosition == this.textControl1.Text.Length)
            {
                MessageBox.Show("光标处于文档尾!");
            }

iceman 发表于 2013-12-10 17:08:00

长度为0时也是选择全部文本?
etsoft 发表于 2013-12-10 13:17:00 http://gcdn.grapecity.com/images/common/back.gif


选择长度为 0 时,无论光标处于什么位置都是选中全部文本。

etsoft 发表于 2013-12-10 17:37:00

非常感谢

iceman 发表于 2013-12-10 17:46:00

回复 7楼etsoft的帖子

不客气,有问题欢迎开新帖提问。

etsoft 发表于 2014-1-3 12:10:00

回复 4楼etsoft的帖子

etsoft 你好,
判断光标在末尾的代码如下:

          ......
iceman 发表于 2013-12-10 17:05:00 http://gcdn.grapecity.com/images/common/back.gif


经验证,这个方法不能确定光标在文档尾,将光标定位到文档最后一个字符的时候,InputPosition.TextPosition 经常会小于Text.Length的值

iceman 发表于 2014-1-3 16:43:00

回复 9楼etsoft的帖子

很抱歉,请问您指的是哪种情况这种方法不合适?能否把例子提供给我?
页: [1] 2
查看完整版本: 这是一个bug吗?