
//改变第二行的字体大小为15 RichEdit1SelStart := Length(RichEdit1Lines[0]); RichEdit1SelLength := Length(RichEdit1Lines[1]) + 2; richedit1SelAttributesSize := 15;
事件处理会吧?
在确定button被点击的事件处理中
设置JTextArea的光标位置,行话叫插入符Caret
可以使用JTextArea继承自JTextComponent类的方法setCaretPosition(int position)来设置。
即
JTextAreasetCaretPosition(int position)
此处position表示从文本开头数起第position个字符处。
要插入某行行首的话,需要计算该数字,通过以下方法计算:
position = JTextAreagetLineStartOffset(int 行号);
该方法返回给定行号的开头的offset值。
给你两种方法:
1
richedit1LinesMove(0,strtoint(trim(edit1Text))-1); //把这里的edit1text改成你想要的行数;就行;
这只是最基础的,其他的想要实现可以再加
2
var
i:integer; //这是你想跳到的行数;
str:string;
begin
richedit1setfocus;
for i:= 0 to i do str:=str+richedit1lines[i];
str:=str+(i2);
richedit1selstart:=str;
richedit1sellength(richedit1LinesValueFromIndex[i]);
end;
这个定位更准确点;
简单方法就是将RichEditControl自带的 下标 按钮添加到界面隐藏起来,每次输入内容的时候判断一下下标按钮的选择状态,如果是被选择,就取消选择就行了!!!
复杂一点就是每次输入的时候判断一下当前光标位置的字体属性,如果是字体有下标效果,就取消后再输入!!!
一个光标位置,用的着这么复杂吗
如果想排出WORD一类的文本版面,用RichEdit文本框,肯定不行首先,是它不能中英混排,也就是一行文字之中,如果你用上奇数个英文字符或者数字,右边就不是整齐的了
1CaretPos可以直接控制光标位置,比如
CaretPos := Point(20, 2); 表示将光标放在第200行第2个字符之后。
2可以通过SelText来代替LinesAdd,比如
SelStart := Length(richeditText); //光标移动到最后
SelLength := 0; //选中0个字符
SelText := '要显示的内容'; //你要显示的内容, 此时光标移动到最后,并且刚显示的内容被选中
SelStart := Length(richeditText); //再次,光标移动到最后
SelLength := 0; //再次。选中0个字符
3 如果你一直使用LinesAdd, 并且希望光标始终在最后的话,有个简单的方法,
richeditSelStart := Length(richeditText);
PostMessage(richeditHandle, WM_VSCROLL, SB_BOTTOM, 0);
以上三种任选其一啦,有问题欢迎再问。
以上就是关于delphi richedit光标如何回到上一行末尾全部的内容,包括:delphi richedit光标如何回到上一行末尾、RichEdit 怎么快速转跳到指定行、delphi 如何把RichEdit的滚动条移动到指定行等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)