我有一个TextBox
(多行),如果我按Ctrl+Enter
它只是一个新行。但我也想在Shift+Enter
上做到这一点。 我试过了:C#TextBox NewLine在KeyDownEvent上模拟Ctrl + Enter
messageTextBox_KeyDown(null, new KeyEventArgs(Keys.Control | Keys.Enter));
但是这不起作用。
我认为我可以做到这一点:
int lastSelectionStart = messageTextBox.SelectionStart;
messageTextBox.Text = messageTextBox.Text.Insert(messageTextBox.SelectionStart, Environment.NewLine);
messageTextBox.SelectionStart = lastSelectionStart;
但我不喜欢这样。
我该怎么做才能使Shift + Enter与Ctrl + Enter相同?
我当前的代码:
KeyDownEvent
if (e.KeyCode == Keys.Enter)
{
e.Handled = true;
if (e.Shift)
{
}
else if (!e.Control)
{
sendButton_Click(null, null);
}
}
在KeyPress事件:
if (e.KeyChar == (char)13)
{
e.Handled = true;
return;
}
这是因为我想用回车键单独作为发送按钮。
改变默认行为可能不是一个好主意。我相信用户已经期望多行文本框允许他们只要按下回车键就可以进入新行。 – silvo
我不这么认为。看看Facebook聊天。新行是Shift + Enter,单独输入用作发送键。我也想要。 – sczdavos
是的,它在聊天应用程序中会有意义,但不一定是标准的Web表单。 – silvo