簡體   English   中英

自定義RichTextBox事件句柄

[英]Custom RichTextBox Event Handle

我是Custom Controls的新手,我正在尋求幫助。

我想知道是否可以在我的自定義類中的事件(例如“Key_Press”)上添加驗證,而不是通過表單代碼中的事件。 我的目標是阻止使用Return&Enter鍵作為控件。

我創建了一個自定義的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);
            }
        }
    }

通過簡單地覆蓋OnKeyDown()方法來阻止Enter鍵。 適用於任何RTB的普通KeyDown事件的示例:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM