ユーザーがアンケートの質問を作成できるメインフォームがあります。フォームが開くと、フォームは空白になり、[質問と回答を追加] ボタンが表示されます。このボタンをクリックすると、ユーザーが質問と回答を設定できる新しいフォームが開きます。ユーザーが最初の質問と回答を入力すると、メイン画面に戻り、最初の質問と回答がそのメイン画面に表示されます。これはまさに私が必要としている方法で機能します。問題は、2 番目の質問と回答を入力したい場合、その質問と回答を最初のものの下に配置する必要があるのに、最初のものを上書きしてしまうことです。新しいフォームが開いたら、動的に作成されたテキストボックスを新しい場所に設定できるように、「質問と回答の追加」ボタンにカウンターを追加する必要があります。
助言がありますか?
結果をメイン画面に動的に表示する関数は次のとおりです。
Public Function SaveInfo()
Me.DialogResult = DialogResult.OK
Dim frmQuest As New frmAddCSIQuestions()
Dim values() As String = lstAnswers.Items.Cast(Of String).ToArray
txtList.Name = "txt"
txtQuest.Name = "txtQuest"
txtType.Name = "txtType"
txtList.Size = New Point(300, 20)
txtQuest.Size = New Point(300, 20)
txtType.Size = New Point(100, 20)
txtQuest.Text = txtQuestion.Text
If rdbFreeText.Checked = True Then
txtType.Text = rdbFreeText.Text
ElseIf rdbDropDown.Checked = True Then
txtType.Text = rdbDropDown.Text
End If
If bFirstRowAdded Then
frmQuest.TableLayoutPanel1.RowCount += 1
End If
bFirstRowAdded = True
frmQuest.TableLayoutPanel1.Controls.Add(txtQuest)
frmQuest.TableLayoutPanel1.Controls.Add(txtType)
frmQuest.TableLayoutPanel1.Controls.Add(txtList)
txtList.Text = String.Join(",", values)
Me.Hide()
frmQuest.ShowDialog()
End Function