WindowsFormsAnwendung [Eingabemaske]

  • VB.NET

Es gibt 23 Antworten in diesem Thema. Der letzte Beitrag () ist von Floxy.

    WindowsFormsAnwendung [Eingabemaske]

    Schreiben Sie eine Visual Basic Windows-Anwendung mit folgender Fachlichkeit:
    Entwerfen Sie ein Formular zur Eingabe der persönlichen Daten mit drei Buttons, einem zum
    Bestätigen, einem zum Anzeigen und einem, um die Daten zu löschen.
    Wird auf den Lösch-Button geklickt, sollen die eingegebenen Daten gelöscht werden.
    Beim Klick auf den Bestätigen-Button sollen die Daten in ein Array eingetragen werden.
    Beim Klicken auf den Anzeigen-Button sollen die eingegebenen Daten in einer Textbox
    angezeigt werden.
    So lautet meine Aufgabenstellung. Nun ist meine Frage:
    wie soll ich das am besten anstellen?
    ich habe nun ein paar Labels (mit Vornahme, Nachnahme usw ... beschriftet)
    außerdem habe ich 3 Buttons (Bestätigen, Anzeigen, Löschen)
    Zur Eingabe der Daten habe ich wie bei einem Registrierungsvorgang ein Textfeld hinter dem Label platziert.

    nun wirds aber schon schwieriger.
    so wie ich es sehe muss ich eine neue Klasse (Dim NeuePerson As Person) entwerfen und für diese Klasse dann die Eigenschaften
    Vornahe, Nachnahme usw ... festlegen.
    Dann die Eigenschaften dieser Klasse in einem Textfeld (Multiline) ausgeben sehe ich jetzt auch nicht als schwierigkeit.

    Aber das mit dem Array kann mir einer sagen was mit diesem Array gemeint ist. und wie ich die Daten wenn ich Sie abspeichere und einlese in ein Array lesen kann?
    Bitte um kurze Hilfe. Danke
    hi, danke array kenne ich schon. ist schon das 3te projekt das mit Array läuft.

    ich nehme eine variables array. .

    ich glaube das Array soll folgendes machen ...

    Classe Person (erstellt eine Klasse mit dem Namen Person)
    Eigenschaften ....
    Vornahme
    Nachnahme

    Bei dem Anlegen des Arrays soll bei jedem Bestätigen das Array erhöht.
    Array1 - Person1
    Array2 - Person2
    Array3 - Person3

    ich erstelle gerade die Klasse Person mit den Eigenschaften...
    Wo kommst du denn nicht weiter, Code posten, dann kann ich dir weiterhelfen ;) ?

    Dein Ansatz klingt nämlich gut, sollte eigentlich so hinhauen. Ich würde halt, wenn es dynamisch sein sollte, eher auf eine ArrayListe zurückgreifen, weiß nicht, ob ihr das schon behandelt habt!
    Ich würde das so machen:


    Der Bestätigen Button:

    Eine Function die alles in ein Array einträgt.


    Der Anzeigen Button:

    Eine Sub die das Array Ausliest und alles in die TextBoxen einträgt.


    Der Löschen Button:

    Eine Sub die Alle 3 TextBoxen und das Array Leert.


    Aber das bekommst du schon hin... :thumbsup:

    Edit: Zum Thema Array ein BSP:

    VB.NET-Quellcode

    1. 'Hier wird ein 10 Feld Array erstellt, welches 10 Strings aufnehmen kann. (0 Basiert deswegen nur 9)
    2. Dim MeinArray(9) As String
    3. 'Hier wird den einzelnen Feldern der Wert zugewiesen
    4. MeinArray(0) = Wert1
    5. MeinArray(1) = Wert2
    6. MeinArray(2) = Wert3

    Chris213 schrieb:

    Eine Array ist so was wie eine Liste.

    so kannst dus machen
    dim test as new array
    test.items.add("Name")
    Hi,
    Schonmal ganz falsch...
    1. Arrays können nicht als New Deklariert werden.
    2. Arrays müssen Längeangaben haben oder gleich mit allen Variablen Intalisiert werden oder es muss später die Größe geändert werden.
    3. Arrays haben keine items klasse.
    4. Denkst du an eine Listbox und nicht an eine Liste nur die Listbox hat die Liste Items also eine Liste selber hat keine Items Property.

    So deklariert man ein Array:

    VB.NET-Quellcode

    1. Dim Arr(10) As String ' Ergibt ein Array von 0 - 9 (10 Items)

    Oder auch so:

    VB.NET-Quellcode

    1. Dim Arr As String() = {"Hallo", "Du", "Lernst", "Gerade", "Mit", "Arrays", "Umzugehen"}

    um Arrays mit Werteangaben werte zuzuweisen:

    VB.NET-Quellcode

    1. Arr(0) = "Hallo"
    2. Arr(1) = "Du"
    3. Arr(2) = "Lernst"
    4. ' ... Immer so weiter bis Arr(9)

    Und du kannst auch hinterher die Größe eines Arrays ändern:

    VB.NET-Quellcode

    1. Array.Resize(Of String)(Arr, 15) ' Der Array Arr kann jetzt Items von 0 - 14 enthalten

    Du kannst auch Arrays zu einem String zusammenfassen:

    VB.NET-Quellcode

    1. Msgbox(String.Join(" ", Arr))

    Mfg
    Loadsoft

    Load-soft.ch.vu schrieb:

    Array.Resize(Of String)(Arr, 15) ' Der Array Arr kann jetzt Items von 0 - 14 enthalten

    Wieso so kompliziert?

    Mach doch einfach: (Ohne Preserve werden die Array Daten gelöscht)

    VB.NET-Quellcode

    1. ReDim Preserve Arr(14)
    brauche Hilfe wie der Bestätigen Button ausschauen könnte.
    muss ich da für jedes Texteingabefeld ein Array anlegen?
    oder kann ich auch ein Array einer Klasse anlegen

    also
    Dim MyArray() As Person = New Person()


    VB.NET-Quellcode

    1. Public Class Form1
    2. Dim Arr(10) As String ' Ergibt ein Array von 0 - 9 (10 Items)
    3. 'Dim zahlen As New ArrayList
    4. Class Person
    5. Friend Name As String
    6. Friend Vornahme As String
    7. Friend Straße As String = "Saalhof 3"
    8. Friend Postleitzahl As String
    9. Friend Geburtsdatum As Object
    10. Dim Arr(10) As String ' Ergibt ein Array von 0 - 9 (10 Items)
    11. 'Dim zahlen As New ArrayList
    12. End Class
    13. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    14. Dim oPerson1 As Person = New Person()
    15. Dim oPerson2 As Person = New Person()
    16. oPerson1.Name = TextBox1.Text
    17. TextBox3.Text = oPerson1.Straße
    18. End Sub
    19. Sub Main()
    20. End Sub
    21. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    22. For i = 0 To Arr.Length - 1
    23. TextBox1.Text = Arr(i)
    24. TextBox2.Text = TextBox1.Text & Arr(i)
    25. Next i
    26. End Sub
    27. End Class
    Also so wie du es gemacht hast brauchst du garkein Array mehr, da du für jede Eigenschaft (Name etc.) Eine Variable hast.
    ich will ja das so gestalten dass wenn ich etwas eingebe und speicher die ganzen ersten INformationen unter Person 1 gespeicht werden... dann wenn die nächste neue Eingabe kommt und dann wieder speichern die Informationen unter Person2 gespeichert werd3en...

    beim button anzeigen sollen die anzeigeform
    person1
    name
    vorname
    straße
    usw..

    darunter dann person2
    name
    vorname ...

    und so oft ich bestätigen drücke soll er mir das array vergrößern (person)

    oder wie würdest du die aufgabe lösen.
    Ja, aber wenn du das mit Person1,2,3 etc. lösen willst, brauchst du ja gar kein Array mehr.
    Warum nicht einfach eine Funktion, die immer das gleiche Objekt (Person) verwendet, eine Zählvariable für das Array.

    D.h. wenn du den bestätigen Button drückst, soll er die Werte (Vorname, Nachname, Strasse etc.) in das Objekt "Person" speichern. Anschließend speicherst du das Objekt im Array, beginnend mit der Zählvariable null, die du anschließend um 1 erhöhst.

    Somit kannst du wie oben in deinem Beispiel, 10 verschiedene Personen speichern ;)

    Hoffe das hilft dir ein wenig weiter.
    Das zwar schon.

    Aber du speicherst doch gerade alles in den Variablen der Klasse, sprich Name, Vorname etc.

    Dein Array welches du in jeder Klasse hast ist doch da völlig Sinnlos.
    oben steht die aufgaben stellung. im ersten thema :)
    ich hab bloß leider keine ahnung wie ich das prlbem lösen soll.
    ich hab jetza eine eingabemaske wie bei der forenregistrierung dann diese 3 button.

    dann habe ich eine klasse mit den eigenschaften ... vorname, nachname, straße, ... erstellt.

    und jetzt will ich das irgendwie lösen.
    die Textboxen lese ich erst einam als eigenschaften ein
    operson1.nachname = Textbox2.Text zB ...

    nachdem alles eingelesen ist soll er das als block an informationen speichern zb. unter dem Namen Person 1
    dann wenn man das nächste mal aufbestätgen klikt mit anderen daten
    dann er soll er das ganze als Person2 speichern.
    Ich verstehe leider dein Problem nicht. Weil du hast doch dann alles in den Variablen gespeichert.

    Wenn du dann auf Einstellungen Laden etc. drückst, dann lädst du einfach die Werte der Variablen in die Texboxen.

    VB.NET-Quellcode

    1. TextBox1.Text = oPerson1.Name
    ja ist ja auch klar aber naja entweder ich steh gerade voll auf dem schlauch
    aber wenn der benutzer etwas neues in die textbox eingibt dann soll ja die daten nicht gelöscht oder einfach mit den neuen überschrieben werden, sondern die allten sollen bestehen bleiben unter benutzer 1 und die neuen daten sollen unter benutzer 2 gespeichert werden.

    siehe dazu auch mein anderes Programm Zahlenraten..
    dort musste ich die bereits genutzen Zahlen ausgeben.
    also bereits benutze Zahlen: Zahl1, Zah2, Zahl3. ... und so versteh ich diese Aufgabenstellung auch :).
    Schreib nochmal deinen Aktuellen Code.

    Vielleicht kann ich den dann mal ein wenig bearbeiten, sodass es dir weiterhilft.
    Das mit Person1, Person2 etc. bringt dir nix... da musst du ja jede Variable einzeln deklarieren und somit kannst du ja auf das Array verzichten, was dann nicht deiner Aufgabenstellung entspricht!

    Mit dieser Funktion funktionierts ;)

    VB.NET-Quellcode

    1. Dim P(10) As Person
    2. Dim Anzahl As Integer = 0
    3. Public Function Save() As Boolean 'Es wird ein neuer Eintrag im Array mit dem Objekt der Klasse Person eingefgt
    4. P(Anzahl) = New Person()
    5. 'Es werden die Propertys der Attribute Vorname, Nachname etc. des Objektes gesetzt
    6. P(Anzahl).SetNachname = txtNachname.Text
    7. P(Anzahl).SetVorname = txtVorname.Text
    8. 'Die Variable Anzahl wird erhht um den nchsten Eintrag hinzuzufgen
    9. Anzahl += 1
    10. Return TrueEnd Function
    img517.imageshack.us/img517/1760/bildug.jpg

    VB.NET-Quellcode

    1. Public Class Form1
    2. Public Class Person
    3. Class Person
    4. Friend Nachname As String
    5. Friend Vorname As String
    6. Friend Straße As String
    7. Friend Postleitzahl As String
    8. Friend Telefonnummer As Integer
    9. Friend Geburtsdatum As Object
    10. End Class
    11. Dim oPerson1 As Person = New Person()
    12. End Class
    13. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    14. Label1.Text = "Nachname"
    15. Label2.Text = "Vorname"
    16. Label3.Text = "Straße"
    17. Label4.Text = "Postleitzahl, Ort"
    18. Label5.Text = "Telefonnummer"
    19. Label6.Text = "Geburtsdatum"
    20. Button1.Text = "Bestätigen"
    21. Button2.Text = "Anzeigen"
    22. Button3.Text = "Löschen"
    23. Button1.Enabled = False
    24. Button2.Enabled = False
    25. Button3.Enabled = False
    26. End Sub
    27. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    28. TextBox1.Text = oPerson1.Nachname
    29. TextBox2.Text = oPerson1.Vorname
    30. TextBox3.Text = oPerson1.Straße
    31. TextBox4.Text = oPerson1.Postleitzahl
    32. TextBox5.Text = oPerson1.Telefonnummer
    33. TextBox6.Text = oPerson1.Geburtsdatum
    34. End Sub
    35. Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
    36. Form2.Show()
    37. Form2.TextBox1.Text = {1} {2} _oPerson1.Nachname _oPerson1.Vorname
    38. End Sub
    39. Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
    40. oPerson1.Nachname = ""
    41. End Sub
    42. End Class
    -.-

    Warum muss ich eigentlich immer die Hausaufgaben anderer machen? Und wieso bin ich scheinbar der Einzige, der das überhaupt hinbekommt? Ihr könnt froh sein dass ich gerade Lust und Zeit habe das Ganze zu programmieren. Klingt arrogant, ist aber so. Ich poste später hier das Projekt rein - bis dann.

    Edit: Projekt angehängt.
    Dateien
    • Personen.zip

      (116,95 kB, 201 mal heruntergeladen, zuletzt: )
    Gruß
    hal2000

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „hal2000“ ()