Converting tabs into spaces in a RichTextBox

后端 未结 2 994
慢半拍i
慢半拍i 2021-01-07 08:42

I have a WinForms application with a RichTextBox control on the form. Right now, I have the AcceptsTabs property set to true so that when Tab<

2条回答
  •  借酒劲吻你
    2021-01-07 09:07

    Add a new class to override your RichTextBox:

    class MyRichTextBox : RichTextBox
    {
        protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
        {
            if(keyData == Keys.Tab)
            {
                SelectionLength = 0;
                SelectedText = new string(' ', 4);
                return true;
            }
    
            return base.ProcessCmdKey(ref msg, keyData);
        }
    }
    

    You can then drag your new control on to the Design view of your form:

    Note: unlike with @LarsTec's answer, setting AcceptsTab is not required here.

提交回复
热议问题