找回密码
 立即注册

QQ登录

只需一步,快速开始

DCAgile

中级会员

83

主题

247

帖子

794

积分

中级会员

积分
794

活字格认证微信认证勋章元老葡萄

DCAgile
中级会员   /  发表于:2015-12-7 11:06  /   查看:9280  /  回复:14
问题:

1.如图所示: 如何实现只允许  “remark” 可编辑,其他均为不可编辑???
无标题.png

14 个回复

倒序浏览
iceman
社区贡献组   /  发表于:2015-12-7 16:54:00
沙发
回复 1楼DCAgile的帖子

可以通过 FieldMerged 事件获取每次绑定的文本位置,在编辑时判断:

  1.         int start = 0;
  2.         int length = 0;
  3.         bool isMark = true;
  4.         private void mailMerge1_FieldMerged(object sender, TXTextControl.DocumentServer.MailMerge.FieldMergedEventArgs e)
  5.         {
  6.             if (isMark)
  7.             {
  8.                 start = e.MailMergeFieldAdapter.Start;
  9.                 length = e.MailMergeFieldAdapter.Length;

  10.                 isMark=false;
  11.             }
  12.         }

  13.         private void 获取绑定文本ToolStripMenuItem_Click(object sender, EventArgs e)
  14.         {
  15.             this.textControl1.Select(start-1, length);
  16.             MessageBox.Show(this.textControl1.Selection.Text);
  17.         }

复制代码


这是我当前的调查结果。你可以尝试下
回复 使用道具 举报
DCAgile
中级会员   /  发表于:2015-12-7 17:30:00
板凳
回复 2楼iceman的帖子

1.麻烦将你写的实例发过来,我看一下

2.麻烦继续跟踪一下一个模版中出现多个相同字段的情况的处理方式??
回复 使用道具 举报
DCAgile
中级会员   /  发表于:2015-12-8 16:02:00
地板
回复 3楼DCAgile的帖子

  private void mailMerge1_FieldMerged(object sender, TXTextControl.DocumentServer.MailMerge.FieldMergedEventArgs e)

刚电话没有人接听
问题: 添加的事件 —— 无法除法该事件,是什么原因???   麻烦将你的实例发一下??
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2015-12-9 09:47:00
5#
回复 4楼DCAgile的帖子

请参考:
tx_win_demo.zip (109.29 KB, 下载次数: 137)
回复 使用道具 举报
DCAgile
中级会员   /  发表于:2015-12-10 17:19:00
6#
回复 5楼iceman的帖子

int start = 0;
        int length = 0;
        private void mailMerge1_FieldMerged(object sender, TXTextControl.DocumentServer.MailMerge.FieldMergedEventArgs e)
        {
            getCollection = new Dictionary<int, int>();
            if (e.MailMergeFieldAdapter.ApplicationField.Name=="content")
            {
                start = e.MailMergeFieldAdapter.Start;
                length = e.MailMergeFieldAdapter.Length;

                getCollection.Add(start-1, length);

                this.textControl1.Select(start, length);
                this.textControl1.Selection.TextBackColor = Color.Red;
            }
        }

        private void textControl1_Changed(object sender, EventArgs e)
        {
            int a = start-1;
            int c = this.textControl1.InputPosition.TextPosition;
            int b = length+1;

            if (c>a &amp;&amp; c<(a+b))
            {
            }
            else
            {
                //如何退出事件  
                return;
            }
        }


问题:textControl1_Changed 怎么退出事件???
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2015-12-11 16:53:00
7#
回复 6楼DCAgile的帖子

你指的是如何撤销当前更改吗?

我需要咨询下厂商看如下撤销。
回复 使用道具 举报
DCAgile
中级会员   /  发表于:2015-12-14 17:13:00
8#

this.txContent.ApplicationFields 信息丢失

回复 7楼iceman的帖子

this.txContent.ApplicationFields 信息丢失
操作步骤如下:
第一步:TX_DB运行
第二步:刷分刷,更改为:刷分刷   aa
第三步:刷分刷   aa,更改为:cccc 刷分刷   aa
第四步:按“Backspace”键,删除(删除cccc 刷分刷   aa)

问题:
当删除到cccc时,this.txContent.ApplicationFields 数据会丢失,,,?? 什么原因??

TX_DB.rar

687.75 KB, 下载次数: 96

回复 使用道具 举报
gw0506
超级版主   /  发表于:2015-12-14 17:59:00
9#
初步判断。是在判断field其实位置的时候有问题,没有进入到你的防删除逻辑。正在尝试找其他办法做判断。
回复 使用道具 举报
gw0506
超级版主   /  发表于:2015-12-14 18:02:00
10#
换成这句   if (string.IsNullOrEmpty(t.Text) &amp;&amp; e.KeyChar.Equals('\b'))   试试
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部