这是我使用SendMessage
函数填充TextBox的代码:
C := 'Hey there';
SendMessage(h1, WM_SETTEXT, 1, Integer(PChar(C)));
现在,我如何将光标移动到文本的末尾?
答案 0 :(得分:17)
如果您真的想通过消息执行此操作,请查看:
此外,您还有完整的编辑参考:
http://msdn.microsoft.com/en-us/library/ff485923%28v=VS.85%29.aspx
在代码(没有消息)中你会做这样的事情:
Edit1.SelLength := 0;
Edit1.SelStart := 0; // set caret before first character
...
Edit1.SelStart := 1; // set caret before second character
...
Edit1.SelStart := Length(Edit1.Text) // set caret after the last character
留言:
SendMessage(h1, EM_SETSEL, Length(C), Length(C));
答案 1 :(得分:1)
我认为你的代码错了。你必须使用“EM_SETSEL”参数。用这段代码解决了我的问题:
//Set a value for external textbox
SendMessage(h1, WM_SETTEXT, 0, Integer(PChar(C)));
//move the cursor to end of the textbox(editbox,field,...)
SendMessage(h1, EM_SETSEL, length(C), length(C));
谢谢你,无论如何:)