Abfrage von Radiobutton in anderer Projektmappe

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

Es gibt 8 Antworten in diesem Thema. Der letzte Beitrag () ist von Toorms.

    Abfrage von Radiobutton in anderer Projektmappe

    Hallo Community,

    ich mal wieder. Hoffe ihr habt einen schönen Abend. Ich habe da eine kleine Frage:

    Wie kann ich den State des RadioButtons(Checked) abfragen, welcher sich aber in einem anderen Projekt, bzw. Unterprojekt befindet? In meinem Foto ist das vielleicht ein wenig verdeutlicht.



    Soll nur eine ganz popelige If-Abfrage sein. Ich kann das Projekt "Convicu.App" nicht zu "Convicu.Firewall" hinzufügen, da es sonst zu einer Ringabhängigkeit kommt. Ich danke euch für die Hilfe!

    Weiterhin einen schönen Abend
    Toorms
    Füge in den Projekteigenschaften von Projekt1 bei »Verweise« einen Verweis auf Projekt2 ein, dann kannst Du es im Code ansprechen. Sollte das nicht für Dich praktikabel sein, bleibt nur noch Plan B.
    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.
    Steht der Wert nicht in irgendeiner anderen Art zur Verfügung? Z.b. DB, xml, txt, was auch immer? Warum muss der aus einem Control eines anderen Projekts gelesen werden? Und wenn nicht, wäre das ja evtl. nen Ansatz. Weiß ja nicht was dein Programm so macht...
    "Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben."

    Wie debugge ich richtig? => Debuggen, Fehler finden und beseitigen
    Wie man VisualStudio nutzt? => VisualStudio richtig nutzen

    Toorms schrieb:

    Ich kann das Projekt "Convicu.App" nicht zu "Convicu.Firewall" hinzufügen, da es sonst zu einer Ringabhängigkeit kommt.
    Also hat Convicu.App einen Verweis auf Convicu.Firewall.
    Anders gesagt: Convicu.App ist das Haupt-Projekt, und Convicu.Firewall ein Hilfsprojekt.

    Dann klare Antwort: Geht nicht. HauptProjekte können in Hilfsprojekte reingrabschen, aber HilfsProjekte können nicht ins Hauptprojekt reingrabschen.

    Also Convicu.Firewall kann nichts in Convicu.App "abfragen".
    Allerdings andersrum kann Convicu.App Setzungen in Convicu.Firewall tätigen. Ob das im Einzelfall eine gute Idee ist, hängt vom Einzelfall ab.
    Hi! Ich wünsch dir auch ein Schön abend ;)

    Nun zum Problem, es ist so das die Projekte nur in einer Projektmappe sind. Das wäre wie wenn du, Projekt A in Projektmappe A hast und Projekt B in Projektmappe B. also geht das nicht. Du kannst aber eine Datei erstelle in dem der wärt steht.

    VB.NET-Quellcode

    1. ​Dim Wrt As New System.IO.StreamWriter("C:\Users\" & My.user.name.split("\")(1) & "\AppData\Roaming\Convicu\datei.txt")
    2. Wrt.write(RadioButton1.checked)
    3. Wrt.close


    und wenn du das wider auslesen willst dann einfach:

    VB.NET-Quellcode

    1. ​Dim Read1 As New System.IO.StreamReader("C:\Users\" & My.user.name.split("\")(1) & "\AppData\Roaming\Convicu\datei.txt")
    2. Dim Wert1 As String = Read1.ReadToEnd 'Geht auch mit Boolean
    3. Read1.close
    4. If Wert1 = "True" Then
    5. 'Das was du willst
    6. Else : EndIf


    Ist jetzt nicht die beste Arte aber es geht. Du kannst auch denn Temp Ordner nutzen, wär auch besser.
    ​My.Computer.FileSystem Irgendwo da. Ich benutze .​FileSystem selten deswegen. aber die IDE sagt alles.
    MfG, Martin
    @Toorms Der Titel Deines Threads ist falsch, denn beide Projekte befinden sich in derselben Projektmappe.
    Die Frage ist: Wie sind die beiden Instanzen miteinander verbandest?
    Deine Firewall darf nicht wissen, dass da iwo RadioButton sind.
    Vielmehr sollten iwo eine Settings-Instanz liegen, die von einer GUI gelesen und geschrieben und von der Firewall gelesen wird.
    Das könnte eine serialisierbare Klasse sein. Da musst Du Dir nur noch überlegen, wo die Instanz gehalten 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!