以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  窗口控件textbox光标的问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=184513)

--  作者:狐来江湖
--  发布时间:2022/12/11 20:54:00
--  窗口控件textbox光标的问题
 窗口设计中,textbox的初始光标位置有三种选择:开头、结尾和全选。
如果在使用中,textbox设置为多行文本,而且文本内容很长,如何通过代码设置在从别的控件进入textbox的时候,光标显示在原先离开的位置,而不是上述的三种情况:要么全部选中、要么在开头或者结尾?
谢谢

--  作者:有点蓝
--  发布时间:2022/12/11 21:53:00
--  
窗口afterload事件

Dim txt As WinForm.TextBox = e.Form.Controls("TextBox1")
Dim d = txt.BaseControl
d.HideSelection = False

--  作者:狐来江湖
--  发布时间:2022/12/11 22:05:00
--  
 
d.HideSelection = False

老师,我用了这段代码,但是感觉没达到效果,您能解释一下hideselection=false是什么作用吗?

--  作者:狐来江湖
--  发布时间:2022/12/11 22:11:00
--  
 还有,我在网上搜到了这样一段,感觉跟我遇到的情况相似:

在开发一个小工具的过程中,TextBox的文本很长,好不容易将光标定位到指定位置了,一点窗体中的任何按钮,光标就回到TextBox的顶端了,很不爽。

经过一翻研究后,终于可以使光标定位到原位置了。

示例代码如下:

string alltext = this.txtDocumentConent.Text.Trim();
string selecttext = this.txtDocumentConent.SelectedText;
int i = alltext.IndexOf(selecttext);

if (!string.IsNullOrEmpty(selecttext))
{
//自定义操作
}

if (i >= 0)
{
this.txtDocumentConent.Focus();
this.txtDocumentConent.SelectionStart = i;
this.txtDocumentConent.SelectionLength = selecttext.Length;
this.txtDocumentConent.ScrollToCaret();
}

请问:这段代码如何转换到狐表中来,能放在窗口事件的什么位置?

--  作者:狐来江湖
--  发布时间:2022/12/11 22:22:00
--  
 还看到有一段:c#

光标置于 TextBox 控件的内容的任意位置,调用 Select 方法,指定选择内容的起始位置,选择长度为 0。

int index=123;//指定任意位置
this.textBox1.SelectionStart = index; //
this.textBox1.Select(this.textBox1.SelectionStart, 0);

但是狐表中textbox控件对于select()方法的参数有限制,不允许输入这两个参数,怎么弄?

--  作者:有点蓝
--  发布时间:2022/12/11 22:28:00
--  
代码转换:https://converter.telerik.com/

this.txtDocumentConent改为e.Form.Controls("txtDocumentConent")