我想以这样一种方式处理tab按键
如果没有选定文本,请在光标位置添加4个空格。如果有选定的文本,我想在每个选定的行的开头添加4个空格。喜欢视觉工作室的东西。我该怎么做?
我正在使用WPF / C#
答案 0 :(得分:2)
如果是WPF:
textBox.AcceptsReturn = true;
textBox.AcceptsTab = false;
textBox.KeyDown += OnTextBoxKeyDown;
...
private void OnTextBoxKeyDown(object sender, KeyEventArgs e)
{
if (e.Key != Key.Tab)
return;
string tabReplacement = new string(' ', 4);
string selectedTextReplacement = tabReplacement +
textBox.SelectedText.Replace(Environment.NewLine, Environment.NewLine + tabReplacement);
int selectionStart = textBox.SelectionStart;
textBox.Text = textBox.Text.Remove(selectionStart, textBox.SelectionLength)
.Insert(selectionStart, selectedTextReplacement);
e.Handled = true; // to prevent loss of focus
}