2015-04-18 70 views
0

我似乎無法讓我的代碼的這部分工作。這段代碼的目標是每當用戶按下「ENTER」時添加一個編號列表。這裏是我的意思和例子。使用KeyEventArgs將文本添加到文本框。 C#

0)10100 [用戶按下ENTER鍵]

1)(光標是在這裏)

這裏是我的代碼。 meowbox是一個多行文本框。

protected override void OnKeyDown(KeyEventArgs e) 
{ 

    if (e.KeyCode == Keys.Enter) 
    { 

     meowbox.Text += i + ")"; 
     ++i; 
    } 

    base.OnKeyDown(e); 
} 
+0

嘗試meowbox.Text + = 「\ n」 + i.ToString()+ 「)」; \ n在i.ToString()方法之前創建一個新行。 –

+0

不好,多餘的行是一個錯字。出於某種原因,當我問這個問題時,它沒有正確格式化。真正的問題是i +「)」不會顯示在文本框中。 –

+0

你有什麼問題?當你按下回車鍵時發生什麼事了? – RussDunn

回答

1

看起來你可能沒有把你的代碼放在正確的方法中。一種簡單的方法是去表單設計師,選擇文本框,轉到屬性窗口,單擊閃電圖標(用於方法),然後雙擊KeyDown方法。這將創建一個事件處理程序並將其掛接到文本框。

你可能有另一個問題(一旦你得到它迷上了正確的)是文本框繼續處理,即使你自己處理它的按鍵。爲了解決這個問題,你可以設置SuppressKeyPresstrue

例如:

private void textBox1_KeyDown(object sender, KeyEventArgs e) 
{ 
    if (e.KeyCode == Keys.Enter) 
    { 
     textBox1.Text += Environment.NewLine + i++ + ") "; 
     textBox1.SelectionStart = textBox1.Text.Length; 
     e.SuppressKeyPress = true; 
    } 
} 
+0

什麼都沒有發生。問題是當我按下Enter時,文本框中沒有任何反應。這是我有 –

+0

確保你鉤這個方法到文本框 –

+0

的KeyDown事件問題@FrancoPettigrosso我添加描述如何打通設計師迷上了事件的一個段落。 –

0

我知道了!感謝你們!我要做的是meowbox.KeyDown += new KeyEventHandler。如果你想對我說,謝謝!