- ベストアンサー
VB2008の3つのボタンについて。
VB2008の3つのボタンについて。 1,2,3の数字が選べる3つのラジオボタンと3つのボタンを並べて、ラジオボタンを押してボタンを押すとボタンに数字が表示されるようにしたいのです(2の数字のラジオボタンを選んでボタンを押すとボタンに2が表示される)そしてもしもう一度数字が表示されたボタンを押すと表示された数字が消えるようにしたいのですが、一体どういったコードにすればいいでしょう?本当に毎回頼りきりで申し訳ありません。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
>数字を選んでボタンを押すと数字が表示され、もう一度押すとクリアする このようなことでしょうか。 '//Button1.Text は、予め何も書かれていないことが条件です。 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click If Button1.Text <> "" Then Button1.Text = "" Else Button1.Text = "1" End If End Sub
その他の回答 (3)
- Wendy02
- ベストアンサー率57% (3570/6232)
問題点は分かりました。RadioButton の特性の問題だと思います。本当は、CheckButton のほうが良かったのだろうと思います。 RadioButton (ON) -> Button (.Text =数字表示) -> RadioButton (.Enabled = False) Button (ON)-> Button (.Visible = False) -> RadioButton (.Enabled = True) --- N.G Private Sub RadioButton1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton1.CheckedChanged Button1.Visible = True Button1.Text = 1 RadioButton1.Enabled = False End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Button1.Text = "" RadioButton1.Checked = False RadioButton1.Enabled = True Button1.Visible = False End Sub たぶん、Button 側のRadioButton1.Checked =False が抜けているのだろうと思います。
- n-jun
- ベストアンサー率33% (959/2873)
知恵袋でも悩んだのですが、 取り敢えずこんな感じなのでしょうか? フォームを呼び出した際に ・ラジオボタン1にチェックする ・3個のボタンのTextをラジオボタン1のTextにする から始まってます。 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Me.RadioButton1.Checked = True Button1.Text = RadioButton1.Text Button2.Text = RadioButton1.Text Button3.Text = RadioButton1.Text End Sub Private Sub Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click, Button2.Click, Button3.Click If sender.Text <> "" Then sender.Text = "" Else For Each c As System.Object In Me.Controls If InStr(c.name, "RadioButton") > 0 AndAlso c.Checked = True Then sender.Text = c.Text : Exit Sub End If Next End If End Sub 的外れでしたらごめんなさい。
お礼
ごめんなさい、ラジオボタンを選んで自動的に数字が表示されるのではなく、ボタンを押した際に数字が表示されたいのです。説明不足でごめんなさい。知恵袋のほうにも一時投稿させて頂いたのですが、残念ながら真剣な回答ばかりではなかったため、こちらに移させて頂きました。本当にこちらのユーザー様はまじめな回答を下さり、本当に感謝ばかりです。ありがとうございました。
- Wendy02
- ベストアンサー率57% (3570/6232)
新しい内容なのでしょうか? Private Sub RadioButton1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton1.CheckedChanged Button1.Text = 1 Button2.Text = 1 Button3.Text = 1 End Sub このようなものを、RadioButton2, RadioButton3 と作り、 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Button1.Text = "" Button2.Text = "" Button3.Text = "" End Sub このようなものを、Button2, Button3 と作ればよいのですが、もしかしたら、ループを使うということでしょうか。
補足
現在Magic Squareというゲームを作っています。1から9までの数字を選べる9つのラジオボタン、9つのボタンがあり上下にラベルを表示し各横列、縦列の和を出します。ラジオボタンから数字を選んでボタンを押すとそのボタンに選んだ数字が表示され、選んだラジオボタンはEnabled = Falseになります(此処までのコードは完成しました)しかしもう一度数字の表示されたボタンを押すと、表示されたボタンが消えてラジオボタンもEnabled = Trueになるというコードがほしいのです。上記に頂いたコードでなんとかなるでしょうか?本当に説明不足で申し訳ないです。
補足
何度もご返答ありがとうございます。しかし上記のコードのラジオボタンを押した時にボタンに数字が表示されるのではなく、ラジオボタンを押し更にボタンを押した時に数字が表示されるようにしたいので、Button1.Text = 1 は Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Button1.Text = 1 こう持っていきたいのですがそこに更にButton1.Text = ""を押すとエラーを起こしてしまいます。数字を選んでボタンを押すと数字が表示され、もう一度押すとクリアする場合はやはり何かFunctionを使うべきでしょうか。本当に毎度初心者の私を助けて下さりありがとうございます。