xiaoyaox044 发表于 2012-2-21 19:28:00

如何滚动到指定的位置?

如果文本框中文字较多,如何编写代码使其滚动到指定的位置,比如滚动到选中的文本,请版主帮忙

ZenosZeng 发表于 2012-2-22 09:34:00

TX中式通过设置 InputPosition 来实现自动跳转的:
textControl1.InputPosition = new TXTextControl.InputPosition(textControl1.Selection.Start);

xiaoyaox044 发表于 2012-2-22 19:42:00

好像不起作用呢~~

ZenosZeng 发表于 2012-2-23 09:04:00

回复 3# xiaoyaox044 的帖子

如果你选中的文本就在当前窗口中,可能看不到滚动的效果,如果你选中一段文本,然后滚动滚动条至看不到选中的文本,调用改代码之后就可以看到滚动效果。

xiaoyaox044 发表于 2012-2-23 18:57:00


private void button1_Click(object sender, EventArgs e)
      {
            textControl1.InputPosition = new TXTextControl.InputPosition(textControl1.Selection.Start);
      }


我移到了其他地方还是不行的,这是14版的bug吗?

ZenosZeng 发表于 2012-2-24 10:54:00

我使用 TX 14.0 SP3 (V14.0.600.500)做了一个简单Demo,可以跳转到被选中文字所在的位置,不知你使用的是 TX 14 的哪一个版本。
1、运行程序,在文档中粘贴一些内容
2、选中其中部分文字
3、点击菜单中的Go To
4、此时被选中的文本会显示在当前画面中,可能是在靠近窗体底部的位置

xiaoyaox044 发表于 2012-2-24 16:50:00

我试了一下,发现把代码放在菜单的事件函数里就可以,
放在其他地方就不起作用了,比如按钮的单击响应函数,
确实是很诡异哈

ZenosZeng 发表于 2012-2-24 18:05:00

回复 7# xiaoyaox044 的帖子

因为通过Button.Click,此时TextControrl失去了焦点,所以没有自动调整,可以试一试下面的代码:
textControl1.Focus();
textControl1.InputPosition = new InputPostion(textControl1.Selection.Start);

xiaoyaox044 发表于 2012-2-24 19:27:00

哈哈,原来是这个原因,膜拜斑竹~~

ZenosZeng 发表于 2012-2-27 15:37:00

哈哈 :)
页: [1]
查看完整版本: 如何滚动到指定的位置?