hr5204562 发表于 2013-8-19 19:36:00

Txtextcontrol TextFrame的问题,是不是出bug了。。

如下图

我有5个TextFrame,分别是主诉、个人史、婚育史、既往史、家族史所在的区域。
第一次进来的时候点击保存,通过遍历能够找到这5个TextFrame
foreach (TXTextControl.TextFrame tf in TC_rybl.TextFrames)
如图


但是当我修改了TextFrame区域的内容后再次保存就找不到了(注意:是TextFrame内,之外的TxtextControl中没问题。)
如图


(修改后)


(结果找不到、、、)

ZenosZeng 发表于 2013-8-20 09:59:00

hr5204562 你好

我使用附件中的程序按照你提供的操作步骤进行测试,并没出现这样的问题,操作步骤如下:
1、运行附件中的示例程序
2、在TextFrames中输入文本
3、点击保存菜单以保存TX文件
4、点击加载菜单以加载刚才保存的TX文件
5、点击调试菜单,此时TextFrames的数量还是5

不知是我这边的程序和你的有差别,还是我们操作步骤不一样,如有差别你可以发送一个可以再现你问题的示例程序给我,或者直接修改附件中的示例程序然后发送给我
VS2010 + TX X9

hr5204562 发表于 2013-8-20 14:36:00

版主,你的demo我运行了,还是有这样的问题
你这样测试,
步骤 1、运行程序后,直接点击【调试】,这个时候提示数量为5个。
   2、在随便一个TextFrame内 输入一段文字,(或焦点在TextFrame内),这个时候再次点击【调试】,数量显示为0个。

如图



ZenosZeng 发表于 2013-8-20 16:20:00

hr5204562

通过你的步骤我也得到了同样的结果,我这边会和厂商确认该问题,然后给你回复。

hr5204562 发表于 2013-8-20 16:22:00

OK。

ZenosZeng 发表于 2013-8-20 18:30:00

hr5204562 你好

这是正常行为,当输入焦点在TextFrame时,返回的是当前 TextFrame 中的TextFrames数量,因为当前TextFrame内没有TextFrame,所以,TextFrames.Count返回的是0.

hr5204562 发表于 2013-8-21 09:07:00

额。。。那我如何判断当前输入焦点是在TextFrame内还是在TextControl上,另外,我焦点如果在TextFrame 内,是不是可以找到当前的TxTextControl,也就是找到父控件,然后通过父控件去找TextFrames。

hr5204562 发表于 2013-8-21 09:48:00

void textControl1_TextFrameActivated(object sender, TXTextControl.TextFrameEventArgs e)
      {
            TXTextControl.TextControl tc = ((TXTextControl.TextControl)sender);
            //TXTextControl.TextFrameCollection tf = ((TXTextControl.TextControl)sender).TextFrames;
            MessageBox.Show(tc.Name+":"+tc.TextFrames.Count.ToString());
      }

我在TextFrame的Activated做测试,当激活控件后,能取到tc 的说有属性,但是就是TextFrames.Count就是为0 ,这个。。。。

ZenosZeng 发表于 2013-8-21 18:17:00

hr5204562

我需要测试一下,我不确定这种方法是否是正确的做法。

ZenosZeng 发表于 2013-8-22 18:22:00

hr5204562

请使用以下代码获取TextFrames对象
textControl1.TextParts.GetMainText().TextFrames
页: [1] 2
查看完整版本: Txtextcontrol TextFrame的问题,是不是出bug了。。