自定义RichTextBox事件句柄

时间:2012-09-13 14:57:14

标签: c# events richtextbox

我是Custom Controls的新手,我正在寻求帮助。

我想知道是否可以在我的自定义类中的事件(例如“Key_Press”)上添加验证,而不是通过表单代码中的事件添加验证。我的目标是阻止使用Return&输入控件的键。

我创建了一个自定义的RichTextBox,代码如下: -

public class CustomRTB : RichTextBox
    {
        protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
        {

            if ((keyData == (Keys.Control | Keys.V)))
            {
                IDataObject iData = Clipboard.GetDataObject();

                if (iData.GetDataPresent(DataFormats.Text))
                {
                    string contents = Clipboard.GetText().Replace("\r\n", " "); 
                    Clipboard.SetData(DataFormats.Text, contents);
                    this.Paste();
                }

                return true;
            }
            else
            {
                return base.ProcessCmdKey(ref msg, keyData);
            }
        }
    }

1 个答案:

答案 0 :(得分:2)

只需覆盖OnKeyDown()方法即可阻止Enter键。适用于任何RTB的普通KeyDown事件示例:

    private void richTextBox1_KeyDown(object sender, KeyEventArgs e) {
        if (e.KeyData == Keys.Enter) e.Handled = e.SuppressKeyPress = true;
    }