找回密码
 立即注册

QQ登录

只需一步,快速开始

hansonsu

初级会员

4

主题

24

帖子

416

积分

初级会员

积分
416

活字格认证

最新发帖

[已处理] 文档只读

hansonsu
初级会员   /  发表于:2012-2-22 00:14  /   查看:5495  /  回复:7
能否控制整个文档除了 标记文本域  外均不允许编辑?

7 个回复

倒序浏览
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2012-2-22 10:00:00
沙发

回复 1# hansonsu 的帖子

通过键盘事件来判断什么是可以编辑,什么不能编辑:
  1.     private void textControl1_KeyPress(object sender, KeyPressEventArgs e)
  2.     {
  3.         if (textControl1.TextFields.GetItem() == null)
  4.             e.Handled = true;
  5.     }
复制代码
回复 使用道具 举报
hansonsu
初级会员   /  发表于:2012-2-23 17:29:00
板凳
原帖由 dof 于 2012-2-22 10:00:00 发表
通过键盘事件来判断什么是可以编辑,什么不能编辑:
[code]    private void textControl1_KeyPress(object sender, KeyPressEventArgs e)
    {
        if (textControl1.TextFields.GetItem() == null)
     ......


此方法 若只输入 字母或 数字则有效,若输入汉字则无效,在非标记文本域用此方法还是可以输入汉字。请问有什么好办法解决。
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2012-2-23 18:05:00
地板

回复 3# hansonsu 的帖子

正如你说说,以上方法的确存在该问题,我们调查之后明天给你回复
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2012-2-23 18:56:00
5#

回复 3# hansonsu 的帖子

通过以下设置可以实现你的需求,设置文档为不能编辑,当进入TextField时设置为可编辑,当离开TextField时设置为不能编辑:
  1.     private void Form1_Load(object sender, EventArgs e)
  2.     {
  3.         textControl1.EditMode = TXTextControl.EditMode.ReadAndSelect;
  4.     }
  5.     private void textControl1_TextFieldEntered(object sender, TXTextControl.TextFieldEventArgs e)
  6.     {
  7.         textControl1.EditMode = TXTextControl.EditMode.Edit;
  8.     }
  9.     private void textControl1_TextFieldLeft(object sender, TXTextControl.TextFieldEventArgs e)
  10.     {
  11.         textControl1.EditMode = TXTextControl.EditMode.ReadAndSelect;
  12.     }
复制代码
回复 使用道具 举报
hansonsu
初级会员   /  发表于:2012-2-24 12:04:00
6#
这个方法还不错,但有一个新问题,txt控件对中文输入法支持不是很好,经常无法选择中文输入,需要把光标移到winform的其他textbox中后再移回txt控件中才可以操作。

有什么方法解决?

我用搜狗输入法。
回复 使用道具 举报
hansonsu
初级会员   /  发表于:2012-2-24 12:10:00
7#
用tab键换焦点后还是可以输入中文,例如从一个标记文本域,用tab键把关光标跳到下一个非标记文本域(表格中)则可以直接输入 任何字符。

我希望是 tab键只可以在标记文本域中 切换。
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2012-2-24 15:41:00
8#
我的测试结果是:当光标在TextField里面时,按下Tab键是输入了一个Tab键,而不是跳转到下一个域中,不知道我们的设置是否存在什么差异,附件是我的测试代码,如有不同的地方可以直接进行修改,然后发来看一看

我使用的 TX 17.0 SP1 + VS2010 版本

TxWin3.zip (9.66 KB, 下载次数: 150)
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部