hallo,
ich hab mich jetzt mal hingesetzt und eine umfrage geschrieben, so wie ich es tun würde.
auf das laden einer datei habe ich verzichtet - man möge mir verzeihen.
nachdem das thema von Sch4k4l6397 gesperrt wurde poste ich mal meinen code hier.
vielleicht kann jemand anders auch was damit anfangen.
um den code - als ganzens - posten zu können werden alle controls im code erzeugt.
ihr braucht dazu eine leere form und eine leere klasse
code für die form
code für die klasse
das ganze ist getestet und tut was es tun soll.
kommentare dazu - sind jederzeit willkommen.
gruss
mikeb69
ich hab mich jetzt mal hingesetzt und eine umfrage geschrieben, so wie ich es tun würde.
auf das laden einer datei habe ich verzichtet - man möge mir verzeihen.
nachdem das thema von Sch4k4l6397 gesperrt wurde poste ich mal meinen code hier.
vielleicht kann jemand anders auch was damit anfangen.
um den code - als ganzens - posten zu können werden alle controls im code erzeugt.
ihr braucht dazu eine leere form und eine leere klasse
code für die form
VB.NET-Quellcode
- Public Class Form1
- 'spätere liste aller fragen
- Private questions As List(Of String())
- 'alle fragen einer jeden form als string - trennzeichen ','
- Private temp() As String = {"Frage 1,Frage 2,Frage 3,Frage 4,Frage 5", _
- "Frage 1,Frage 2,Frage 3,Frage 4,Frage 5", _
- "Frage 1,Frage 2,Frage 3,Frage 4,Frage 5", _
- "Frage 1,Frage 2,Frage 3,Frage 4,Frage 5", _
- "Frage 1,Frage 2,Frage 3,Frage 4,Frage 5"}
- Private answer(temp.Length - 1) As String
- Private WithEvents b As New Button
- Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
- 'fragen teile und in die liste aufnehmen
- questions = New List(Of String())
- For i As Integer = 0 To temp.Length - 1
- questions.Add(temp(i).Split(","))
- Next
- b.Text = "Umfrage starten"
- b.Location = New Point(50, 50)
- b.Size = New Size(50, 50)
- Me.Controls.Add(b)
- End Sub
- Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles b.Click
- 'umfrage durchführen
- For i As Integer = 0 To temp.Length - 1
- Dim c As New Class1(questions(i), i)
- If c.ShowDialog(Me) = Windows.Forms.DialogResult.OK Then
- 'ok button gedrückt
- If c.Antwort <> -1 Then
- answer(i) = c.Antwort.ToString
- End If
- Else
- 'umfrage abgebrochen
- MessageBox.Show(Me, "Dein User hat die Umfrage abgebrochen")
- Exit For
- End If
- Next
- 'datei schreiben
- IO.File.WriteAllLines("c:\lol.txt", answer)
- 'anwendung beenden
- Me.Close()
- End Sub
- End Class
code für die klasse
VB.NET-Quellcode
- Public Class Class1
- Inherits Windows.Forms.Form
- Private WithEvents o As Button
- Private WithEvents c As Button
- Public Sub New(ByVal f As String(), ByVal n As Integer)
- Me.Text = "Umfrage " & n.ToString
- 'alle radiobutton erzeugen
- For i As Integer = 0 To f.Length - 1
- Dim r As New RadioButton
- r.Text = f(i)
- r.Tag = i
- r.Location = New Point(20, 20 + i * 20)
- Me.Controls.Add(r)
- Next
- 'jetzt einen abbrechen und einen ok button hinzufügen
- c = New Button
- c.Text = "Abbrechen"
- c.Location = New Point(100, 150)
- o = New Button
- o.Text = "OK"
- o.Location = New Point(50, 150)
- Me.Controls.Add(c)
- Me.Controls.Add(o)
- End Sub
- Private Sub InitializeComponent()
- Me.SuspendLayout()
- '
- 'Class1
- '
- Me.ClientSize = New System.Drawing.Size(292, 266)
- Me.Name = "Class1"
- Me.ResumeLayout(False)
- End Sub
- Private Sub c_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles c.Click
- DialogResult = Windows.Forms.DialogResult.Cancel
- Me.Close()
- End Sub
- Private Sub o_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles o.Click
- For Each c As Control In Me.Controls
- If TypeOf c Is RadioButton Then
- Dim r As RadioButton = CType(c, RadioButton)
- If r.Checked = True Then
- answer = r.Tag
- End If
- End If
- Next
- DialogResult = Windows.Forms.DialogResult.OK
- Me.Close()
- End Sub
- Private answer As Integer = -1
- Public ReadOnly Property Antwort() As Integer
- Get
- Return answer
- End Get
- End Property
- End Class
das ganze ist getestet und tut was es tun soll.
kommentare dazu - sind jederzeit willkommen.
gruss
mikeb69