VBのGUI 行列の和を求める
VBのGUIです。
行列の足し算を行うプログラムをつくりたいです。
以下のプログラムはできたところまで作成しています。
□個の□行□列(□はテキストボックス)の所に例えばユーザーが3 3 3と入力したとします。
ボタン1を押すと3×3の3個個分のテキストボックスがでてきて、要素を打ち込めるようになります。
そしてユーザが要素を打ち込みます。次に要素が
1 2 1 2 1 2 2 1 2
2 1 2 1 2 1 1 2 1
1 2 1 2 1 2 1 2 1
というように入力されたとします。
ボタン2を押すと
3×3のテキストボックスが出てきて
この3つの行列の和を足した
5 4 5
4 5 4
4 5 4というようにテキストボックスに表示されるようにしたいです。
3この3行3列の和だけでなく何個の何行何列の場合でもできるようにしたいです。
どのようなソースでこのプログラムはできるのでしょうか。
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Me.Bounds = New Rectangle(10, 10, 1300, 800)
Dim number As Integer
Dim rows As Integer
Dim columns As Integer
If Not Integer.TryParse(TextBox3.Text, number) Then
MessageBox.Show("数字で入力してください", Me.Text, MessageBoxButtons.OK, MessageBoxIcon.Error)
Exit Sub
End If
If Not Integer.TryParse(TextBox1.Text, rows) Then
MessageBox.Show("数字で入力してください", Me.Text, MessageBoxButtons.OK, MessageBoxIcon.Error)
Exit Sub
End If
If Not Integer.TryParse(TextBox2.Text, columns) Then
MessageBox.Show("数字で入力してください", Me.Text, MessageBoxButtons.OK, MessageBoxIcon.Error)
Exit Sub
End If
For k = 1 To number
For i = 1 To rows
For j = 1 To columns
Dim tb As TextBox = New TextBox()
tb.Name = "R" & i.ToString() & "C" & j.ToString() & "No" & k.ToString()
Me.Controls.Add(tb)
tb.Top = (i - 1) * 30 + 80
tb.Left = (j - 1) * 60 + 70 * (columns * (k - 1)) + 10
tb.Width = 50
Next
Next
Next
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Dim number As Integer
Dim rows As Integer
Dim columns As Integer
Dim r As Integer
Dim n As Integer
Dim m As Integer
Dim sum As Double
sum = 0
For n = 1 To columns
For m = 1 To rows
sum = 0
For r = 1 To number
Next
For i As Integer = 1 To rows
For j As Integer = 1 To columns
Dim tb As TextBox = New TextBox()
tb.Name = "R" & i.ToString() & "C" & j.ToString()
Me.Controls.Add(tb)
tb.Top = (i - 1) * 30 + 80
tb.Left = (j - 1) * 60 + 10
tb.Width = 40
Next
Next
Next
Next
End Sub
End Class
お礼
どうにかこうにか、ListViewでできました。 ありがとうございました。