etsoft 发表于 2014-1-3 15:11:00

还是留痕问题

textcontrol内有一段字符:
ABCDEFG,我现在删除了CD两个字符,用textfield进行了留痕,同对两个textfield进行了如下设置:
delTextField.Deleteable = false;
delTextField.Editable = false;
这时我再将插入点移到D字符的后面,就不能再输入字符了,但将插入点移到C的前面,可以录入字符,将插入点移到CD的中间,也不能录入字符了,主要想解决移到D的后面,要能插入字符。是因为插入点在textfield内吗?该如何解决这个问题?

etsoft 发表于 2014-1-3 16:01:00

用了如下语句将光标移出textfield边界:
      private void textControlEx1_TextFieldClicked(object sender, TXTextControl.TextFieldEventArgs e)
      {
            TextField clickField = e.TextField;

            int start = clickField.Start;

            int length = clickField.Length;

            this.textControlEx1.Select(start + length - 1, 0);

      }
但还是解决不了问题

iceman 发表于 2014-1-3 18:22:00

回复 2楼etsoft的帖子

etsoft 你好,

我使用附件没有重现你的问题:


能否提供你的重现步骤?


谢谢

etsoft 发表于 2014-1-3 23:11:00

就你的这个demo就可以重现,在插入CD后,输入几个字符后,再用鼠标点击一下D的后面,多试两次,我已经下载了你的demo,没有做任何修改,出现相同的问题

另外弱弱的问下版主,你的这个视频是用什么工具做的呀,觉得挺好,以后有问题直接这样展示给你看

etsoft 发表于 2014-1-6 09:20:00

该问题急求版主解决一下

etsoft 发表于 2014-1-6 10:58:00

在线求解

etsoft 发表于 2014-1-6 12:18:00

在线等呀,版主

iceman 发表于 2014-1-6 12:39:00

回复 7楼etsoft的帖子

试试这段代码看能否符合你的需求:


      private void Form1_Load(object sender, EventArgs e)
      {
            this.textControl1.TextFieldClicked += new TextFieldEventHandler(textControl1_TextFieldClicked);
      }

      void textControl1_TextFieldClicked(object sender, TextFieldEventArgs e)
      {

            this.textControl1.Select(e.TextField.Start, 1);
            string selectText = this.textControl1.Selection.Text;
            this.textControl1.Selection.Text = " " + selectText;

            this.textControl1.Select(e.TextField.Start, 1);

            this.textControl1.Selection.Text = "";
      }

      private void addTextFieldToolStripMenuItem_Click(object sender, EventArgs e)
      {
            TextField tf1 = new TextField();
            tf1.Text = "C";
            tf1.Deleteable = false;
            tf1.Editable = false;

            TextField tf2 = new TextField();
            tf2.Text = "D";
            tf2.Deleteable = false;
            tf2.Editable = false;

            this.textControl1.TextFields.Add(tf1);
            this.textControl1.TextFields.Add(tf2);
      }

iceman 发表于 2014-1-6 14:37:00

回复 4楼etsoft的帖子

etsoft 你好,
我使用的截屏工具是 ComponentOne DemoWorks,下载链接:http://download.componentone.com/pub/HelpAuthoring/DemoWorks/Updates/DemoWorks_2009_1_0_19.msi
页: [1]
查看完整版本: 还是留痕问题