eine umfrage programmieren

    • VB.NET

      eine umfrage programmieren

      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

      VB.NET-Quellcode

      1. Public Class Form1
      2. 'spätere liste aller fragen
      3. Private questions As List(Of String())
      4. 'alle fragen einer jeden form als string - trennzeichen ','
      5. Private temp() As String = {"Frage 1,Frage 2,Frage 3,Frage 4,Frage 5", _
      6. "Frage 1,Frage 2,Frage 3,Frage 4,Frage 5", _
      7. "Frage 1,Frage 2,Frage 3,Frage 4,Frage 5", _
      8. "Frage 1,Frage 2,Frage 3,Frage 4,Frage 5", _
      9. "Frage 1,Frage 2,Frage 3,Frage 4,Frage 5"}
      10. Private answer(temp.Length - 1) As String
      11. Private WithEvents b As New Button
      12. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
      13. 'fragen teile und in die liste aufnehmen
      14. questions = New List(Of String())
      15. For i As Integer = 0 To temp.Length - 1
      16. questions.Add(temp(i).Split(","))
      17. Next
      18. b.Text = "Umfrage starten"
      19. b.Location = New Point(50, 50)
      20. b.Size = New Size(50, 50)
      21. Me.Controls.Add(b)
      22. End Sub
      23. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles b.Click
      24. 'umfrage durchführen
      25. For i As Integer = 0 To temp.Length - 1
      26. Dim c As New Class1(questions(i), i)
      27. If c.ShowDialog(Me) = Windows.Forms.DialogResult.OK Then
      28. 'ok button gedrückt
      29. If c.Antwort <> -1 Then
      30. answer(i) = c.Antwort.ToString
      31. End If
      32. Else
      33. 'umfrage abgebrochen
      34. MessageBox.Show(Me, "Dein User hat die Umfrage abgebrochen")
      35. Exit For
      36. End If
      37. Next
      38. 'datei schreiben
      39. IO.File.WriteAllLines("c:\lol.txt", answer)
      40. 'anwendung beenden
      41. Me.Close()
      42. End Sub
      43. End Class

      code für die klasse

      VB.NET-Quellcode

      1. Public Class Class1
      2. Inherits Windows.Forms.Form
      3. Private WithEvents o As Button
      4. Private WithEvents c As Button
      5. Public Sub New(ByVal f As String(), ByVal n As Integer)
      6. Me.Text = "Umfrage " & n.ToString
      7. 'alle radiobutton erzeugen
      8. For i As Integer = 0 To f.Length - 1
      9. Dim r As New RadioButton
      10. r.Text = f(i)
      11. r.Tag = i
      12. r.Location = New Point(20, 20 + i * 20)
      13. Me.Controls.Add(r)
      14. Next
      15. 'jetzt einen abbrechen und einen ok button hinzufügen
      16. c = New Button
      17. c.Text = "Abbrechen"
      18. c.Location = New Point(100, 150)
      19. o = New Button
      20. o.Text = "OK"
      21. o.Location = New Point(50, 150)
      22. Me.Controls.Add(c)
      23. Me.Controls.Add(o)
      24. End Sub
      25. Private Sub InitializeComponent()
      26. Me.SuspendLayout()
      27. '
      28. 'Class1
      29. '
      30. Me.ClientSize = New System.Drawing.Size(292, 266)
      31. Me.Name = "Class1"
      32. Me.ResumeLayout(False)
      33. End Sub
      34. Private Sub c_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles c.Click
      35. DialogResult = Windows.Forms.DialogResult.Cancel
      36. Me.Close()
      37. End Sub
      38. Private Sub o_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles o.Click
      39. For Each c As Control In Me.Controls
      40. If TypeOf c Is RadioButton Then
      41. Dim r As RadioButton = CType(c, RadioButton)
      42. If r.Checked = True Then
      43. answer = r.Tag
      44. End If
      45. End If
      46. Next
      47. DialogResult = Windows.Forms.DialogResult.OK
      48. Me.Close()
      49. End Sub
      50. Private answer As Integer = -1
      51. Public ReadOnly Property Antwort() As Integer
      52. Get
      53. Return answer
      54. End Get
      55. End Property
      56. End Class

      das ganze ist getestet und tut was es tun soll.

      kommentare dazu - sind jederzeit willkommen.

      gruss

      mikeb69