如何判断当前插入点是在一个textfield内?
如何判断当前插入点是在一个textfield内?如果是在一个textfield内,如何将插入点移出到textfield边界外,但插入点的位置不发生改变? 回复 1楼etsoft的帖子不好意思,请问你指当插入点处于textfield内,把输入的字符插入到 textfield边界外,在输入结束后把插入点再切换回原始位置? 是这样的情况:
在留痕模式下,我插入的每一个字符都是放在一个textfield内,但如果插入点是在另一个textfield内,则创建不了textfield,所以希望先判断当前插入点是否是一个textfield内,如果是,则希望将插入点移到该textfield外。比如,我现有两个textfield:AB,我的插入点是在AB之间,插入点有可能是在A或B,我需要将插入点移到textfield之外,并且移出后插入点是在AB之间。 回复 3楼etsoft的帖子
etsoft 你好,
把插入点挪动到 textfield 边缘代码如下:
private void Form1_Load(object sender, EventArgs e)
{
this.textControl1.Text = "";
TextField field1 = new TextField();
field1.Text = "中文";
TextField field2 = new TextField();
field2.Text = "English";
textControl1.TextFields.Add(field1);
textControl1.TextFields.Add(field2);
textControl1.TextFieldClicked += textControl1_TextFieldClicked;
textControl1.KeyDown += textControl1_KeyDown;
}
void textControl1_TextFieldClicked(object sender, TextFieldEventArgs e)
{
TextField clickField = e.TextField;
int start = clickField.Start;
int length = clickField.Length;
this.textControl1.Select(start + length - 1, 0);
}
其余问题我正在调查。 如何判断当前插入点是在textfield内呢? 回复 5楼etsoft的帖子
可以通过 TextField 的 Start 和 Length 属性判断 TextField 的范围,再对比当前的 InputPositon 即可判断。 你可以通过使用,txtcontrol.changed事件,然后获取ApplicationField( "txtcontrol.ApplicationFields.GetItem();")就可以准确的知道了,。 回复 5楼etsoft的帖子
请问这个问题进展如何? 该问题还是很不好解决,主要是将插入点移出textfield边界似乎没有效果 回复 9楼etsoft的帖子
请问你指的是在 两个 TextField 之间无法插入 TextField 吗?使用 4# 中的代码有什么不足呢?