aykuang456 发表于 2015-1-20 17:30:00

TXText Control设置了加斜快捷键后会修改成tab制表符

private void textControl1_KeyDown(object sender, KeyEventArgs e)
      {
            if (e.Control && e.KeyCode == Keys.I)
            {

                textControl1.Selection.Italic = ture;

            }


      }
会把选中加斜的文本替换成制表符,是不是TXText Control有内置的快捷键,需要修改属性么?

Alice 发表于 2015-1-21 09:39:00

回复 1楼aykuang456的帖子

推测你的操作步骤如下:
1.在TextControl里添加你给出的KeyDown代码。
2.在运行时,在TextControl里选择文字。
3.按下键盘的I键。
根据你的代码逻辑和步骤,按下键盘I键,会在TextControl里输入字符"I",然后触发KeyDown事件,在该事件里执行Selection.Italic操作,将你输入的"I”变成斜体"I"。
因此,从你的逻辑来说,TextControl的执行是没问题。

根据你的需求,你可以使用类似ctrl, shift或此类组合键。

aykuang456 发表于 2015-1-21 10:28:00

我的代码执行后字体加斜了,可是会自动将我选择加斜的字体给替换成tab啊
相当于只想了2次操作
1.选中的字体加斜。
2.替换成tab制表符。
替换成制表符是TXTextcontrol自动替换的,能不能不让它替换啊

aykuang456 发表于 2015-1-21 10:39:00

如果我不加上述代码的话,我按下CTRL+I会插入一个制表符,如何屏蔽掉

Alice 发表于 2015-1-21 15:33:00

回复 4楼aykuang456的帖子

你使用的快捷键和默认的快捷键冲突了,建议你换其他键作为你的快捷键。

aykuang456 发表于 2015-1-21 17:33:00

能不能注销到默认的快捷键,因为客户习惯了word的编辑模式,习惯用Ctrl+I对字体加斜

Alice 发表于 2015-1-21 17:50:00

回复 6楼aykuang456的帖子

可以重写ProcessCmdKey方法来处理keys。
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{   
Keys key = keyData & ~(Keys.Shift | Keys.Control);      
switch (key)   
{         
case Keys.I:            
if ((keyData & Keys.Control) != 0)
         {
                browserTextControl1.Selection.Italic = !browserTextControl1.Selection.Italic;
               return true;
         }
         break;
    }
   return base.ProcessCmdKey(ref msg, keyData);
}
具体参考文档:
http://www.textcontrol.com/en_US/blog/archive/20091007/

aykuang456 发表于 2015-1-22 08:47:00

非常感谢,我试一下去

aykuang456 发表于 2015-1-22 11:24:00

问题已解决,谢谢

Alice 发表于 2015-1-22 15:03:00

回复 9楼aykuang456的帖子

谢谢反馈。此问题结束。如果有新问题欢迎开新帖。
http://gcdn.gcpowertools.com.cn/attachment.aspx?attachmentid=10062
页: [1]
查看完整版本: TXText Control设置了加斜快捷键后会修改成tab制表符