- ベストアンサー
VisualBasic2008でのツールの扱い方について
- VisualBasic2008でのツールの扱い方を学びたい方への質問です。
- じゃんけんプログラムの作成において、PictureBoxやTextBoxの初期化方法や値の入れ方についての疑問があります。
- 本を読んでも詳細な情報が得られず、実装方法を知りたいと思っています。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
VB2008ならこんな感じかと。 Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load For i As Integer = 1 To 10 Me.Controls("TextBox" & i).Text = "E" Next End Sub Private Sub PictureBoxG_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles PictureBoxG.Click TextShift() TextBox1.Text = "G" End Sub Private Sub PictureBoxT_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles PictureBoxT.Click TextShift() TextBox1.Text = "T" End Sub Private Sub PictureBoxP_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles PictureBoxP.Click TextShift() TextBox1.Text = "P" End Sub Private Sub TextShift() For i As Integer = 9 To 1 Step -1 Me.Controls("TextBox" & i + 1).Text = Me.Controls("TextBox" & i).Text Next End Sub
その他の回答 (2)
- redfox63
- ベストアンサー率71% (1325/1856)
TextBoxの配列変数を用意してやると楽になるかも 宣言エリアに dim txArray() as TextBox として Form_loadイベントなどで txArray = new TextBox(){ TextBox1, TextBox2, TextBox3, TextBox4, TextBox5, _ TextBox6, TextBox7, TextBox8, TextBox9, TextBox10} for each tx as TextBox in txArray tx.Text = "E" next といったコードを追加します メソッド1個追加します Private Sub ShiftText() for n = txArray.Length -2 to 0 Step -1 if txArray(n).Text <> "" then txArray(n+1).Text = txArray(n).Text end if next End Sub PictureBox1のClickイベントに ShftText() txArray(0).Text = "G" ' TextBox1.Text = "G" 'でもいいですが といった具合でしょう 同様に PictureBox2や3も 代入する文字列を変更するだけですよ
- NMZ1985
- ベストアンサー率30% (41/136)
1.TextBox.textで"E"を入れるようにすれば初期化できると思います。 TextBox i .text で i = 1~10までループするようにすると楽ですね。 2.ユーザが入力するイベントの最初に TextBox10.text = TextBox9 .text とすれば9の内容が10に入りますね TextBox1="G" こう書いているのが、少し違和感を覚えます。 参考URLのVB中学校は絵入りで詳しく解説してます。
お礼
ご回答ありがとうございます!!完璧です!本当にありがとうございます♪