• ベストアンサー

VB2008の3つのボタンについて。

VB2008の3つのボタンについて。 1,2,3の数字が選べる3つのラジオボタンと3つのボタンを並べて、ラジオボタンを押してボタンを押すとボタンに数字が表示されるようにしたいのです(2の数字のラジオボタンを選んでボタンを押すとボタンに2が表示される)そしてもしもう一度数字が表示されたボタンを押すと表示された数字が消えるようにしたいのですが、一体どういったコードにすればいいでしょう?本当に毎回頼りきりで申し訳ありません。

質問者が選んだベストアンサー

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.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)
回答No.3

問題点は分かりました。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 が抜けているのだろうと思います。

chirosaku_v
質問者

補足

何度もご返答ありがとうございます。しかし上記のコードのラジオボタンを押した時にボタンに数字が表示されるのではなく、ラジオボタンを押し更にボタンを押した時に数字が表示されるようにしたいので、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を使うべきでしょうか。本当に毎度初心者の私を助けて下さりありがとうございます。

  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.2

知恵袋でも悩んだのですが、 取り敢えずこんな感じなのでしょうか? フォームを呼び出した際に ・ラジオボタン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 的外れでしたらごめんなさい。

chirosaku_v
質問者

お礼

ごめんなさい、ラジオボタンを選んで自動的に数字が表示されるのではなく、ボタンを押した際に数字が表示されたいのです。説明不足でごめんなさい。知恵袋のほうにも一時投稿させて頂いたのですが、残念ながら真剣な回答ばかりではなかったため、こちらに移させて頂きました。本当にこちらのユーザー様はまじめな回答を下さり、本当に感謝ばかりです。ありがとうございました。

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.1

新しい内容なのでしょうか?  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 と作ればよいのですが、もしかしたら、ループを使うということでしょうか。

chirosaku_v
質問者

補足

現在Magic Squareというゲームを作っています。1から9までの数字を選べる9つのラジオボタン、9つのボタンがあり上下にラベルを表示し各横列、縦列の和を出します。ラジオボタンから数字を選んでボタンを押すとそのボタンに選んだ数字が表示され、選んだラジオボタンはEnabled = Falseになります(此処までのコードは完成しました)しかしもう一度数字の表示されたボタンを押すと、表示されたボタンが消えてラジオボタンもEnabled = Trueになるというコードがほしいのです。上記に頂いたコードでなんとかなるでしょうか?本当に説明不足で申し訳ないです。

関連するQ&A