aus Combobox variable generieren

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 74 Antworten in diesem Thema. Der letzte Beitrag () ist von mrMo.

    @VaporiZed Jou.
    @r0tzi entweder eine ordentliche Tabelle oder mach Dir eine Klasse und für jedes Case eine Instanz davon.
    Die kannst Dt dann in eine List(Of DEINE_KLASSE) packen und per .SelectedIndex aufrufen.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Wir sind nicht bei DataSets, sondern bei VB.Net-Grundlagenprogrammierung ... Klassen? Structure? Irgendwas davon bekannt? Klingt fies, aber berechtigt.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    Naja ich hab 2 bücher gelesen, aber da kam das nun nicht drin vor haha^^ ja das ist mir schon bekannt. nur wie gesagt, mir fällt auch nur ein table zu erstellen ein... aber datasets... uiui ich check einfach 0,0 :(

    Also versteh ich das richtig, dass man variablen zur runtime nicht "erstellen" / "deklarieren" kann mit "int"+checkbox.text+"irgendwas" ?! :-/
    Ich kenne keinen Weg, um sowas zu machen. Das heißt zwar nix, aber das ginge auch m.E. total an der Sache vorbei. Pack doch einfach Deine Daten (Variablenwerte) z.B. in ne Textdatei (für den Anfang). Dann mach nen einfachen Datenimport: Datei programmtechnisch öffnen, ne neue Instanz Deiner Raumschiff(?)-Klasse erstellen, die Werte des ersten Textdateiblocks den Variablen der Klasse (Damage, Farbe, Armor, AnzahlDerEinhörnerBesatzungsmitglieder, oder wasauchimmer) zuweisen, nächste Instanz erstellen, zuweisen, ... und am Ende Datei zumachen. Dann hast Du 138 Raumschiffobjekte, die Du gerne noch in ne Liste packen kannst (Stichwort List(Of); ist bekannt, oder?) und ganz bequem auf die einzelnen Raumschiffe zugreifen. Und deren Eigenschaften. Per Index. Oder nach Belieben.

    Ich geh die ganze Zeit von Raumschiffen aus; keine Ahnung, ob es welche darstellen soll. Spielt auch überhaupt keine Rolle.

    Alles klar soweit? Wenn nicht: An welchen Punkten scheitert es?
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    es geht hier um ein spiel ja... ich möchte ein programm erstellen um sagen wir mal gewinnchancen anhand der gruppenzusammenstellung zu errechnen^^... League of Legends heisst das... :D

    Ja du hast nat. recht, eine Text datei auslesen etc wäre einfacher.
    Am besten wohl auch Dataset, wenn man es versteht... nun ich glaube ich hab noch etwas arbeit vor mir X/

    r0tzi schrieb:

    geht hier um ein spiel
    Nö.
    Es geht darum, ein Softwareproblem elegant zu lösen und dabei so viel wie möglich zu lernen.
    Aber das ist anscheinend nicht Dein Ding. ;(
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Warum nicht mein Ding? Ich stellte doch eine frage um etwas zu lernen. ich habe mir nunmal mein konzept gemacht, dass dies nun nicht realisierbar ist... happens... nun muss ich mir ein neues konzept überlegen und ihr habt mir ja schon einen anstoss dafür gegeben. also werde ich wohl wieder etwas lernen wenn ich es realisiere.. oder? ;)

    r0tzi schrieb:

    Warum nicht mein Ding?
    Sorry,
    Du hast schon mindestens zwei Mal hier auf meine Anregungen so reagiert.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Also, LoL.
    Ich würde ne DB anfertigen, eine Tabelle mit den Spalten Name, Dmg, Cc, True und was sonst noch. Im Code hast du ne Klasse Champion, die diese Spalten als Properties hat.

    Dann lädst du die DB, erstellst ne List<Champion> mit jeder Zeile der Tabelle als ein Eintrag.

    Dann bindest du die ComboBox an die Liste, zeigst den Namen an, und der SelectedEntry ist dann ein Objekt des Typs Champion mit all den Werten, die du brauchst.
    Das erachte ich als sinnvoll, setz das um und frag dazu wie das geht, dann kommen wir hier mal voran.
    »There's no need to "teach" atheism. It's the natural result of education without indoctrination.« — Ricky Gervais

    r0tzi schrieb:

    so könnte es aussehen * 136 :D

    Select Case CmbBoxOwn1.SelectedIndex
    Case 0 : CmbBoxOwn1.SelectedItem = "Aatrox"
    OwnDmg1 = intAatroxDMG
    OwnTNK1 = intAatroxTNK
    OwnSlow1 = intAatroxSlow
    Ownstun1 = intAatroxSTUN
    Owntrue1 = intAAtroxTrue
    OwnCC1 = intAatroxCC
    Case 1 : CmbBoxOwn1.SelectedItem = "Ahri"
    OwnDmg1 = intahriDMG
    OwnTNK1 = intahriTNK
    OwnSlow1 = intahriSlow
    Ownstun1 = intahriSTUN
    Owntrue1 = intahriTrue
    OwnCC1 = intahriCC
    Case 2 : CmbBoxOwn1.SelectedItem = "Akali"
    OwnDmg1 = intakaliDMG
    OwnTNK1 = intakaliTNK
    OwnSlow1 = intakaliSlow
    Ownstun1 = intakaliSTUN
    Owntrue1 = intakaliTrue
    OwnCC1 = intakaliCC
    Case 3 : CmbBoxOwn1.SelectedItem = "Alistar"
    OwnDmg1 = intalistarDMG
    OwnTNK1 = intalistarTNK
    OwnSlow1 = intalistarSlow
    Ownstun1 = intalistarSTUN
    Owntrue1 = intalistarTrue
    OwnCC1 = intalistarCC
    Case 4 : CmbBoxOwn1.SelectedItem = "Amumu"
    OwnDmg1 = intamumuDMG
    OwnTNK1 = intamumuTNK
    OwnSlow1 = intamumuSlow
    Ownstun1 = intamumuSTUN
    Owntrue1 = intamumuTrue
    OwnCC1 = intamumuCC
    End Select
    Das sind doch offensichtlich 5 Datensätze, mit jeweils unterschiedlichen Werten für die Properties OwnDmg1 OwnTNK1 OwnSlow1 Ownstun1 Owntrue1 und OwnCC1
    Ausserdem ist noch eine Property Name anzunehmen, nämlich das was die Combo anzeigt.

    Tja - ganz offsichtlich musst du Datenmodellierung erlernen - annere Lösung gibts glaub nicht.
    Als Datenmodell kannst du entweder Dataset nehmen oder du programmierst dir deine Datensätze selber. Manch einer findet das iwie einfacher, die DatensatzKlassen selbst zu coden - tatsächlich ist aber umständlicher, und im Ergebnis weniger leistungsfähig.

    Also entscheide dich: Willst du die Datenklassen selbst coden, oder lieber im Dataset-Designer dir zusammenklicksen?

    Das musste entscheiden, dann kann dir evtl. weitergeholfen werden.
    jo, dann gugge Filmle, wie man im DatasetDesigner Tabellen reinmacht, und downloade auch die SampleSolution dazu: vier Views-Videos
    Hol dir auch dieses Sample, weil ist glaub einfacher: Daten laden, speichern, verarbeiten - einfachste Variante

    Damit sollteste ühaupt schoma eigene Daten laden, editieren, speichern können.

    Anschließend wäre dran, deine Problemstellung zu analysieren, um zu einem dafür geeigneten Datenmodell zu kommen.
    Kannste auch selbst probieren, und dann Screenshot vom typDataset posten, und erklären, was die Tabellen da sollen, die du dir ausgedacht haben wirst ;)
    So kommt man inhaltlich ins Gespräch, und u.U. gut voran.
    was du postest sind Daten - kein Datenmodell.
    Hast du die verlinkten Filme nicht verstanden - oder warum postest du nicht den Screenshot deines Dataset-Designers?
    Wenn du sie nicht verstanden hast, oder sonstwie nicht damit klarkommst - warum sprichst du das nicht an?

    Das hält ungeheuer auf, wenn du stattdessen was ganz anneres machst.
    deine tuts habe ich mal vor paar tagen angeschaut und nicht gerafft... ich muss mich da nochmal richtig dahinterklemmen wenn ich ein freien kopf habe. ich schaus mir an und melde mich wieder wenn ich fragen habe.
    ich wollte damit nur zeigen, dass ich es probiere und lerne und die anregungen hier angenommen habe ;) wär ich nicht berufstätig wär ich bestimmt weiter... :D

    r0tzi schrieb:

    und nicht gerafft.
    Vielleicht fängst Du mal zwei Levels tiefer an.
    Gugst Du hier.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    so ich ich bin etwas weiter bzw. eigentlich fertig :D
    ging doch irgendwie leichter als gedacht X/ geb da zu schnell auf ab und zu... also form 2 gridview steht diesen kann ich auslesen und die werte mir dann deklarieren anhand der selektierten zelle mit


    Private Sub CmbBoxOwn1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles CmbBoxOwn1.SelectedIndexChanged
    Form2.DataGridView1.ClearSelection()
    Dim champ As String
    champ = CmbBoxOwn1.Text
    try
    For i As Integer = 0 To Form2.DataGridView1.Rows.Count - 1
    If Form2.DataGridView1.Rows(i).Cells(0).Value.ToString = champ Then
    Form2.DataGridView1.Rows(i).Cells(0).Selected = True
    OwnDmg1 = Form2.DataGridView1.Rows(i).Cells(1).Value
    OwnTNK1 = Form2.DataGridView1.Rows(i).Cells(2).Value
    Owntrue1 = Form2.DataGridView1.Rows(i).Cells(3).Value
    Ownstun1 = Form2.DataGridView1.Rows(i).Cells(4).Value
    OwnSlow1 = Form2.DataGridView1.Rows(i).Cells(5).Value
    OwnCC1 = Form2.DataGridView1.Rows(i).Cells(6).Value
    End If
    Next

    catch
    end try
    end sub



    nun @ErfinderDesRades , ich habe nichtmal eine relation einfügen müssen, der primärschlüssel ist einmalig, den ich selektiere und einfach nach rechts die zugehörigen zeilen zu den strings deklariere.