2008-11-04 6 views
1

RichTextBox (.NET WinForms 3.5)를 사용하고 있으며 일부 표준 바로 가기 키를 재정의하려면 ... 예를 들어 Ctrl + I를 사용하지 않으려합니다. RichText 메서드를 통해 텍스트를 기울임 꼴로 만들지 만 대신 텍스트 처리를위한 자체 메서드를 실행하십시오..NET RichTextBox의 바로 가기 키 덮어 쓰기

아이디어가 있으십니까?

답변

4

Ctrl + I는 ShortcutsEnabled 속성의 영향을받는 기본 바로 가기 중 하나가 아닙니다.

다음 코드는 KeyDown 이벤트의 Ctrl + I를 가로 챌 수 있으므로 if 블록 내에서 원하는 모든 작업을 수행 할 수 있으므로 표시된 것처럼 키 누르기를 억제하십시오.

private void YourRichTextBox_KeyDown(object sender, KeyEventArgs e) 
{ 
    if ((Control.ModifierKeys & Keys.Control) == Keys.Control && e.KeyCode == Keys.I) 
    { 
     // do whatever you want to do here... 
     e.SuppressKeyPress = true; 
    } 
} 
3

RichTTextBox.ShortcutsEnabled 속성을 true로 설정 한 다음 KeyUp 이벤트를 사용하여 직접 바로 가기를 처리하십시오. E.G.

using System; 
using System.Windows.Forms; 

namespace WindowsFormsApplication1 
{ 
    public partial class Form1 : Form 
    { 
     public Form1() 
     { 
      InitializeComponent(); 
      this.textBox1.ShortcutsEnabled = false; 
      this.textBox1.KeyUp += new KeyEventHandler(textBox1_KeyUp); 
     } 

     void textBox1_KeyUp(object sender, KeyEventArgs e) 
     { 
      if (e.Control == true && e.KeyCode == Keys.X) 
       MessageBox.Show("Overriding ctrl+x"); 
     } 
    } 
}