質問
私はC#での初心者です、と電卓を作ります。しかし、私は、「GO!」を無効にしたいですボタンをTextBox1にし、ユーザーがその中に入ると数型付け何の番号がない「GOは!」ボタンをもう一度...どのようにC#でこれを実行するために有効になりますか?私はこのようなKeyDownイベントやキー入力イベントを試みたが、働いたことはありません。
private void Form1_Load(object sender, EventArgs e)
{
button15.Enabled = false;
button16.Enabled = false;
}
private void textBox1_KeyPress(object sender, System.Windows.Forms.KeyEventArgs e)
{
if (e.KeyCode < Keys.D0 || e.KeyCode > Keys.D9)
{
button15.Enabled = true;
button16.Enabled = true;
}
else
{
button15.Enabled = false;
button16.Enabled = false;
}
}
ので、これを行うにはどのようにしてください? 事前に感謝します。
解決
private void textBox1_TextChanged(object sender, EventArgs e)
{
if(String.IsNullOrEmpty(textBox1.Text))
{
button15.Enabled = false;
button16.Enabled = false;
}
else
{
button15.Enabled = true;
button16.Enabled = true;
}
}
他のヒント
あなたのアイデアはかなり良いですが、良い方法があります。ただ、検出したときに、テキストボックスの変更のの内容の。内容が変更されると、中身が空ではないか、空であるかどうかを確認します。内容は、ボタンを無効にし、次に空の場合、そうでない場合は、それを可能にする。
http://msdn.microsoft .COM / EN-US /ライブラリ/ system.windows.forms.control.textchanged.aspxする
あなたがデフォルト以外の何かにあなたのコントロールの名前を変更するために、また、それが良いでしょう。 「button15は」コード何の読者に伝え、「goButton」します。
テキストボックスの値が実際に数値に変換することが可能かどうかを確認することをお勧めします。数字の確認は良い十分ではありません、あなたは「4」のような何か悪いを受け入れるか、「1E3」のような何か良いを拒否します。あなたは間違ったコントロールを有効にしないように意味のあるコントロール名を使用してください。たとえばます:
private void txtOperand_TextChanged(object sender, EventArgs e) {
double value;
btnGo.Enabled = double.TryParse(txtOperand.Text, out value);
}
これはおそらくあなたの電卓のためのかなり良い十分ではありませんが、アプローチを示しています。
どのようにTextChanged
イベントを使用して、テキストボックスが空であるか、またはそれで何かを持っているならば、チェックして、
また、あなたは自動的にコマンド(およびそれに加入する任意のコントロール)の起動と停止を扱うでしょう、あなたのGOボタンのコマンドを書くことができます。アクティベーションロジックは、テキストボックス内のテキストがありますかどうかを確認するために、単純になります。