Neues Form oder ????

  • VB.NET

Es gibt 20 Antworten in diesem Thema. Der letzte Beitrag () ist von ErfinderDesRades.

    Neues Form oder ????

    Hello.

    Ich habe wieder angefangen, etwas zu programmieren weil ich jetzt ein konkretes "Projekt" im Kopf habe. Das soll ja bekanntlich gut sein um voran zu kommen ;)

    Leider stecke ich jetzt schon fest.

    Was soll sein ?

    Ein Fenster in dem sich Buttons und Labels befinden. Hier soll am Ende auch alles angezeigt werden, was berechnet wurde.

    Bei Klick auf den Button "Eingabe" geht ein neues Fenster auf in dem Eingaben getätigt werden sollen. Diese führen dann zu den Berechnungen im ersten Fenster.

    Was ist ?

    Form1 wurde gestaltet

    Form2 wurde gestaltet

    Beim klick auf Button in Form1 öffnet sich Form2

    Soweit so schlecht.

    Wie kann ich die Eingaben von Form2 in die Berechnungen von Form1 übertragen oder ist der Ansatz mit mehreren Forms falsch ?

    Danke in voraus und Gruessle

    Oliver

    P.S: Ich arbeite mit Visual Studio 2015
    Hi,

    du brauchst public Variablen. Dann kannst zugreifen mit Formname.Variablenname.

    Link :thumbup:

    Beitrag wiederhergestellt, da sonst der Kontext gelöscht ist. (Siehe Boardregeln §4, 4c)); ~Trade
    Hello World

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Trade“ ()

    @Link Bitte nicht. Das ist das schlimmste Vergehen in der OOP. Variablen sollten nie öffentlich sein und die Form ist keine Instanz, wenn man das so aufruft.
    Dialoge: Instanziierung von Forms und Aufruf von Dialogen

    Grüße
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:
    @Iceman So einfach ist das gar nicht, wenn man eventuell neu ist, da man erst Events feuern muss und eigene ​EventArgs braucht, wo man die Daten mitgibt.

    Grüße
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:
    Wenn du es sehr simple machen willst kannst du folgendes machen. Stell dir vor der nächste Code ist von Form2, und überträgt jetzt mal nur 1 String an einen anderen Label bei Form1 bei einem Knopfdruck.

    VB.NET-Quellcode

    1. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    2. Form1.Label1.Text = Label1.Text
    3. End Sub


    Warum schreibe ich Form1.Label1.Text und dannach Label1.Text? Ganz einfach: Ich sage Ihm das der Text in Label1 von Form1, gleich dem Text in dem Label2 von Form2 sein soll.
    Jo, aber genau das ist eben total falsch. Lies auch Du Dir bitte den verlinkten Thread durch. ;)

    Grüße
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:
    Neues Form oder ????
    Der dort verlinkte.

    Grüße
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:
    @Iceman Einiges geht(leider).

    Das geht auch:

    VB.NET-Quellcode

    1. ​string a = 1+1
    (vb halt)((gab es nicht Option Strict on))

    ist aber nicht schön, und vor allem kein guter Programmierstil.

    Ich arbeite selten mit WinForms aber
    "FormX.Label1.Text" sieht schlimm aus, und kann auch unter Umständen Laufzeitfehler generieren.
    Und Gott alleine weiß alles am allerbesten und besser.
    Es ist nicht simpel, es ist falsch.

    Iceman schrieb:

    Jedoch kann er es benutzen wenn er will
    Nein, wozu dem TE etwas falsch beibringen, wenn er es gleich richtig lernen kann?

    Grüße
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:
    @okossmann Willkommen im Forum. :thumbup:
    Oder Du arbeitest mit Properties, die kannst Du auch instanzübergreifend verwenden wie Variablen.
    Bei wenigen Variablen ist das in jedem Falle die beste Lösung.
    Bei vielen Variablen solltest Du Dir eine separate Datenklasse bauen.
    Gugst Du in jedem Falle 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!
    @Trade
    ... schlimmste Vergehen ...


    Seh' ich anders. Ich benutze gern public Variablen (auch bei statischen Eigenschaften/Methoden (shared)) wenn ich dafür keinen Getter benötige. Bzw. ReadOnly Property wie es bei VB.NET ja glaub ich heißt.

    Link :thumbup:
    Hello World
    Es ist auf jeden fall ein gängiges und absolut probates Konzept, was du verfolgst.

    Elegantere Lösungen gibt es nicht, weil derzeit sehe ich nicht, dass du dein Prob ("Wie erfährt Form1, was im Dialog eingegeben wurde?") inzwischen gelöst hättest - oder hast du schon?

    Oder anders: jede Lösung wäre eleganter ;)

    Aber bist du den gegebenen Links denn mal gefolgt?
    Weil da ist eiglich alles zum Thema haarklein erläutert.

    Oder hast du davon etwas nicht verstanden, und gehörst zu den Leuten, die Information, die sie nicht verstehen, ignorieren?
    Das wäre kein zielführendes Kommunikations-Verhalten. Weil die Info ist notwendig zur Problemlösung, und wenn nicht verstanden, muss man nachfragen.

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „ErfinderDesRades“ ()

    @EDR Jou.
    @okossmann Zielführend wäre auch, wenn Du Dein Problem "von außen" beschreibst:
    Ich will a und b vorgeben und c dach diesen und jenen Algorithmen berechnen, das Ergebnis ausgeben und iwas noch abspeichern.
    ohne iwie Forms und Controls zur Beschreibung zu verwenden, da lässt sich deutlich besser helfen, als bei Deiner Vorgabe, wo die Hilfe bereits in eine bestimmte Richtung "gezwängt" wird.
    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!
    @ErfinderDesRades

    Ich lese noch. Mir ging es nur darum zu erfragen, ob ich mich nicht umsonst abmühe mit dem von mir (ohne Erfahrung) erdachten Weg, weil es anders viel unkomplizierter geht.

    @RodFromGermany

    Die Sache ist für euch wahrscheinlich ziemlich simpel. Runter gebrochen solle das Programm einfach eine Provision ausrechen. Dazu wird der Umsatz eingegeben, und verschiedene Materialkosten (Form2), also Material, Anzahl, Kosten pro Stück, die ich im Moment noch fest vorgebe, eingegeben.
    Wenn das funktioniert möchte ich die Materialkosten variabel in einer Datei ablegen......

    Dann soll man es irgendwann drucken können.

    Also wie gesagt, für euch wahrscheinlich kein Ding.

    Gruessle

    Oliver

    P.S. Ich kann nicht ganz nachvollziehen warum das mit den public Variabeln so schlecht sein soll ?