2016-12-02 9 views
-6
private void textBox3_TextChanged(object sender, EventArgs e) 
{ 
    if (textBox3.Text == "") 
    { 
     textBox3.Text == "---"; 
    } 
} 

それがある場合はテキストボックスが空であるかどうかを確認することで、その後、---自動的に問題は全く不明である別のDataGridViewテキストボックスが空で、それを記入するかどうかを確認しますか?私はここで何をしようとしている

+2

'=='は比較演算子、 '='は代入演算子です。 'if(textBox3.Text == string.Empty){textBox3.Text =" --- "; } ' – Equalsk

+3

質問は何ですか? – Alex

+4

'TextBox'に代入しようとすると' --- 'は' DataGridView'にどうやって入りますか? –

答えて

3

になります。コードはすべてテキストボックスに関するものなので、ここでDataGridViewがどこに出てくるのか分かりません。

いずれにせよ、このコードはではありません。問題の良い解決策です。テキストボックスの内容を変更するユーザーの能力に継続的に干渉し、結果として非常に不快な経験になります。

これを行う必要がある場合は、テキストが変更されるたびにではなく、テキストボックスのフォーカスが失われたときにのみこれを行うようにしてください。つまり、TextChangedイベントではなくLostFocusイベントを処理します。同じ条件テストを行うことができますが、演算子が正しいことを確認してください! (同等性試験の場合は==、割り当ての場合は=)。

private void textBox3_LostFocus(object sender, EventArgs e) 
{ 
    if (textBox3.Text == "") 
    { 
     textBox3.Text = "---"; 
    } 
} 

より良い解決策はuse a textbox with a cue bannerです。 cueバナーを "---"文字列に設定すると、テキストボックスが空の(テキストを含まない)ときは常に表示されます。これはすべてオペレーティングシステムによって自動的に行われ、テキストボックスのペイントロジックの一部として処理されるので、コントロールとやりとりするユーザーの能力に決して干渉することはありません。また、標準のWindows UIの動作と予測可能で一貫性があります。

実際にテキストボックスが空であるかどうかを確認しようとしている場合は、「---」をDataGridViewに追加するとTextChangedイベントが動作する可能性がありますが、Validatingのほうが良い選択です。 ifステートメント内で、DataGridViewの適切なセルにテキストを割り当てます。

関連する問題