になります。コードはすべてテキストボックスに関するものなので、ここで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の適切なセルにテキストを割り当てます。
'=='は比較演算子、 '='は代入演算子です。 'if(textBox3.Text == string.Empty){textBox3.Text =" --- "; } ' – Equalsk
質問は何ですか? – Alex
'TextBox'に代入しようとすると' --- 'は' DataGridView'にどうやって入りますか? –