DOBON.NET DOBON.NETプログラミング掲示板過去ログ

テキストボックスに文字(記号含む)を1文字でも書いたら、ボタンのコントロールを無効にしたい

環境/言語:[VB 2008]
分類:[.NET]

こんばんは。

以下のようなWindowsフォームのプログラムを組み立てました
-----------------------------------------------------
暗証番号[       ]

 「暗証番号を使わない」 「暗証番号を使う」
-----------------------------------------------------

暗証番号はLabel1、その横がTextBox1 
暗証番号を使わないはButton1 暗証番号を使うButton2
となっています。
TextBox1に一文字でも入力されたら、Button1を無効(クリックできない)にしたい
のですが、どのようにコードを書けばいいのでしょうか
■No26660に返信(オプーさんの記事)
> TextBox1に一文字でも入力されたら、Button1を無効(クリックできない)にしたい
> のですが、どのようにコードを書けばいいのでしょうか

その場合には、TextBox1 の変更イベント(TextChanged)で、
Button1 の Enabled プロパティを変更すれば OK です。

使えなくする場合には、Button1.Enabled = False 、
使用可能にするなら、Button1.Enabled = True という感じです。

なお、TextBox1 に文字列が入力されているかどうかは、
TextBox1 の TextLength プロパティの値を調べる事で調査できます。
■No26662に返信(魔界の仮面弁士さんの記事)
> ■No26660に返信(オプーさんの記事)
>>TextBox1に一文字でも入力されたら、Button1を無効(クリックできない)にしたい
>>のですが、どのようにコードを書けばいいのでしょうか
>
> その場合には、TextBox1 の変更イベント(TextChanged)で、
> Button1 の Enabled プロパティを変更すれば OK です。
>
> 使えなくする場合には、Button1.Enabled = False 、
> 使用可能にするなら、Button1.Enabled = True という感じです。
>
> なお、TextBox1 に文字列が入力されているかどうかは、
> TextBox1 の TextLength プロパティの値を調べる事で調査できます。

回答ありがとうございます

Dim iLength As Integer = Me.TextBox1.TextLength
で文字数を取得後、
Ifを使っていけばよいのでしょうか?
■No26663に返信(オプーさんの記事)
> Dim iLength As Integer = Me.TextBox1.TextLength
> で文字数を取得後、
> Ifを使っていけばよいのでしょうか?
使っても良いですし、使わなくても書けます。

例えば、TextLength が 0 の時にのみ、Button を使えるようにしたいなら
 Button1.Enabled = CBool(TextBox1.TextLength = 0)
と書く事ができます。

なお、CBool を外して
 Button1.Enabled = TextBox1.TextLength = 0
と書いても同じ意味となります。
ありがとうございます。別件でトラブルが発生した為、確認する事ができません...

■No26664に返信(魔界の仮面弁士さんの記事)
> ■No26663に返信(オプーさんの記事)
>>Dim iLength As Integer = Me.TextBox1.TextLength
>>で文字数を取得後、
>>Ifを使っていけばよいのでしょうか?
> 使っても良いですし、使わなくても書けます。
>
> 例えば、TextLength が 0 の時にのみ、Button を使えるようにしたいなら
>  Button1.Enabled = CBool(TextBox1.TextLength = 0)
> と書く事ができます。
>
> なお、CBool を外して
>  Button1.Enabled = TextBox1.TextLength = 0
> と書いても同じ意味となります。
こんばんは。

無事動作しました。ありがとうございました
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板