2016-06-22 12 views
1

空白の入力を許可しないTextBoxを作成します。私はキーボードでスペースを入力して[無効]:C#での空白スペースの防止TextBox

void textBox_KeyPress(object sender, KeyPressEventArgs e) 
{ 
    if (e.KeyChar == (char)Keys.Space) 
    { 
     e.Handled = true; 
    } 
} 

しかし場合は、ユーザーがコピー文字列を「Hello World」のようなスペースで、彼はテキストボックスに貼り付けることができ、その中にスペースがあるでしょう。

+0

のWinFormsやWPFのためのシンプルなソリューション? –

+0

C#Windowsフォーム – user6484212

答えて

0

簡単な方法は、データを入力した後に空白を削除することです。同様に:

txt_Box.Text = txt_Box.Text.Replace(" ",""); 
+0

ユーザーがスペースを入力すると、TextBoxポインターが開始位置にリセットされます。 – user6484212

2

あなたTextBoxためTextChangedイベントハンドラを追加し、そのTextChangedイベントにコードの下に追加することができます制御するため

TextBox1.Text = TextBox1.Text.Replace(" ", ""); 
+0

ユーザーがスペースを入力すると、TextBoxポインターが開始位置にリセットされます。 – user6484212

2

より良い制御アプローチ

private void textBox_KeyDown(object sender, KeyEventArgs e) 
    { 
     if (e.KeyCode == Keys.V && e.Modifiers == Keys.Control) {     
      removeSpaces(); 
     } 
     //Handle Ctrl+Ins 
     if (e.KeyCode == Keys.Control && e.KeyCode == Keys.Insert) 
     { 
      removeSpaces(); 
     } 
    } 

private void removeSpaces() 
    { 
     textBox.Text = textBox.Text.Replace(" ", string.Empty); 
    } 

//マウスを右クリック

private void textBox1_MouseDown(object sender, MouseEventArgs e) 
     { 
      if (e.Button == System.Windows.Forms.MouseButtons.Right) 
      { 
       textBox1.ContextMenu = new ContextMenu(); 
      } 
     } 

すべて

private void textBox1_TextChanged(object sender, EventArgs e) 
    { 
     textBox1.Text = textBox1.Text.Replace(" ", string.Empty); 
    } 
+0

Ctrl + Insはマウスで貼り付けるだけでなく、まだ動作します –

+0

更新された回答、2つのアプローチは、あなたのニーズに合ったものを1つ希望します。ありがとう – Sami

+0

3番目のソリューションは、ユーザーがスペースを入力するとTextBoxポインターを開始位置にリセットします。 – user6484212

関連する問題