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
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も 代入する文字列を変更するだけですよ
お礼
ご回答ありがとうございます!!完璧です!本当にありがとうございます♪