تجاوز مفاتيح الاختصار على RichTextBox. NET
-
06-07-2019 - |
سؤال
وأنا باستخدام RichTextBox (.NET WinForms عناصر 3.5)، وأود أن تجاوز بعض مفاتيح الاختصار القياسية .... على سبيل المثال، لا أريد السيطرة + I لجعل مائل نصية عبر طريقة RichText، ولكن بدلا من ذلك تشغيل طريقة بلدي لمعالجة النصوص.
وأي أفكار؟
المحلول
والسيطرة + I ليست واحدة من الاختصارات الافتراضية التي تأثرت الملكية ShortcutsEnabled.
والتعليمة البرمجية التالية تعترض على Ctrl + I في الحدث KeyDown حتى تتمكن من فعل أي شيء تريده داخل كتلة إذا، فقط للتأكد من قمع الصحافة الرئيسيين مثل لقد أظهرت.
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;
}
}
نصائح أخرى
وتعيين الخاصية RichtTextBox.ShortcutsEnabled إلى true ثم التعامل مع اختصارات نفسك، وذلك باستخدام الحدث KeyUp. منها مثلا.
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");
}
}
}
لا تنتمي إلى StackOverflow