找回密码
 立即注册

QQ登录

只需一步,快速开始

DCAgile
中级会员   /  发表于:2015-12-15 09:15:00
11#
回复 10楼gw0506的帖子

换成这句   if (string.IsNullOrEmpty(t.Text) && e.KeyChar.Equals('\b'))   试试

这中方式 测试过 解决不了问题
回复 使用道具 举报
gw0506
超级版主   /  发表于:2015-12-15 11:45:00
12#
现在实际上是2个问题:
1. 不让applicationfile被删除。用如下代码做,不需要另行判断。
  1. case "remark":
  2.                         t.Text = p.Remark;
  3.                         //Begin = t.Start-1;
  4.                         //length = t.Length;
  5.                         t.Deleteable = false;
复制代码

2. 你注意看,当鼠标移动到“刷分刷”第一个刷字的一半的时候,还是手型的cursor,但是移动到刷的最左边是,成了光标。这时候输入任何字符,然后从后往前删除。发现删除到这里的时候删除不了了。但是选中文字,可以del删除。现在要解决这个问题。
回复 使用道具 举报
gw0506
超级版主   /  发表于:2015-12-15 15:25:00
13#
新建一个applicationfield,然后添加到textcontrol中,不存在第二个问题。
本案是读取word文档,读取后的applicationfield的start位置比文字的其实位置多了1,原因不详。所以导致上述问题2. 此时用位置做判断,显然不可能解决问题。做了如下修改。
  1. case "remark":
  2.                         t.Text = " " + p.Remark;
复制代码



TX_DB改.rar (869.76 KB, 下载次数: 105)
回复 使用道具 举报
DCAgile
中级会员   /  发表于:2015-12-18 10:32:00
14#
回复 13楼gw0506的帖子

问题:

TX Control对于内容的可编辑性控制,目前英文是没有问题,中文——无法控制其局部可编辑
回复 使用道具 举报
gw0506
超级版主   /  发表于:2015-12-18 12:10:00
15#
使用TextFieldEntered和TextFieldLeft这一对事件。进入时打开IMEMode,离开时关闭IMEMode。
  1.         private void Form1_Load(object sender, EventArgs e)
  2.         {
  3.             Helper.Instance.LoadWord(InitTemplatePath, this.txContent);
  4.             AFC = this.txContent.ApplicationFields;
  5.             DTC = this.txContent.DocumentTargets;
  6.             this.txContent.Tables.GridLines = false;
  7.             SetAppFieldsName();
  8.             InitData();
  9.             this.txContent.ImeMode = System.Windows.Forms.ImeMode.Disable;
  10.             this.txContent.TextFieldEntered += txContent_TextFieldEntered;
  11.             this.txContent.TextFieldLeft += txContent_TextFieldLeft;
  12.         }
复制代码
  1.         void txContent_TextFieldLeft(object sender, TextFieldEventArgs e)
  2.         {
  3.             if (e.TextField.Name == "remark")
  4.             {
  5.                 this.txContent.ImeMode = System.Windows.Forms.ImeMode.Disable;
  6.             }
  7.             else
  8.             {
  9.                 this.txContent.ImeMode = System.Windows.Forms.ImeMode.Disable;
  10.             }
  11.         }
  12.         void txContent_TextFieldEntered(object sender, TextFieldEventArgs e)
  13.         {
  14.             if (e.TextField.Name == "remark")
  15.             {
  16.                 this.txContent.ImeMode = System.Windows.Forms.ImeMode.NoControl;
  17.             }
  18.             else
  19.             {
  20.                 this.txContent.ImeMode = System.Windows.Forms.ImeMode.Disable;
  21.             }
  22.         }
复制代码
回复 使用道具 举报
12
您需要登录后才可以回帖 登录 | 立即注册
返回顶部