我有一個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