RadioButton Wert von Control aus Form ändern, aber wie?

  • VB.NET

Es gibt 13 Antworten in diesem Thema. Der letzte Beitrag () ist von Bodycount.

    RadioButton Wert von Control aus Form ändern, aber wie?

    Hallo,

    ich steck mal wieder fest:

    Visual Basic-Quellcode

    1. Public Class Control
    2. Private Sub TaskPaneControl_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    3. 'Code...
    4. MyRadioButton.Checked = True 'Funktioniert, da der RadioButton auf dem Form ist.
    5. 'Code...
    6. End Sub
    7. End Class
    8. Public Class FrmSettings
    9. Private Sub FrmSettings_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    10. 'Code...
    11. MyRadioButton.Checked = True '<- Funktioniert hier nicht!
    12. 'Ich weiß nicht wie ich den RadioButton aus meiner Form ansprechen kann,
    13. 'um ihn auf ‚False‘ zu setzen. Wer kann mit einen Tipp geben?
    14. End Sub
    15. End Class


    Wer kann helfen?

    Viele Grüße
    Claus
    @Bodycount In welchem Verhältnis zueinander stehen die Instanz der Klasse Control und die Instanz der Klasse FrmSettings?
    Ansonsten gugst Du mal hier rein.
    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!
    Form1 und Form2 sind doch grundsätzlich voneinander unabhängige Formulare, richtig? => 2 unabhängige Klassen => Form1 hat nix bei Form2-(=namens "Control")-CEs zu suchen => entweder ist das Grundkonzept veränderungswürdig oder man erstellt entsprechend RFGs verlinktem Thread in Form1 eine Instanz von Form2 und Form2 bietet einen Konstruktor, bei dem man die Properties von MyRadioButton festlegen kann. Alternativ per EventRaising. Wenn aber Form1 und Form2 gleichzeitig laufen und bedienbar sein sollen und Form1 im laufenden Betrieb Änderungen an Form2 durchführen soll, dann fände ich das Bedienkonzept komisch.
    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.
    Hallo,

    ​ok, ich komm damit noch nicht klar und brauch Hilfe. Über folgenden Link habe ich mir in Word 2016 eine custom TaskPane erstellt:
    msdn.microsoft.com/en-us/library/bb608590.aspx

    ​Darin ist auch beschrieben, wie diese per Toggle-Button ein- und ausgeschaltet werden kann. Der Toggle-Button wird dabei über ein Ribbon zur Darstellung gebracht. In diesem Ribbon habe ich einen Button hinzugefügt, der mir mein Form1 aufruft. Die Form1 beinhaltet ein Label. Parallel dazu gibt es ein Label mit gleichem Namen in der besagten TaskPane. Über das Label in Form1 soll ein Standardwert definiert werden und dieser soll dann wiederum in der TaskPane angezeigt werden. Sobald ich also etwas in das Label der Form1 eintrage, soll der Wert auch im Label der TaskPane erscheinen. Nur wie? Da hänge ich im Moment und die bisherigen Infos haben mich leider noch nicht ans Ziel geführt. Wer kann helfen?

    Bodycount schrieb:

    komme aus der VBA-Ecke
    Ich habe das Gefühl, dass Dein Problem Deine gegenwärtigen Kenntnisse bei weitem übersteigt. VBA ist da eher die VB6-Richtung, und damit natürlich nicht VB.NET-Kompatibel.
    Vielleicht solltest Du Dich erst mal gemütlich in .NET einarbeiten, gugst Du hier: [Sammelthread] Programmieren, aber was? (Programmideen)
    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!
    @Bodycount RadioButton gibt es auch in VBA und sie funktionieren dort genau so wie hier. ;)
    RadioButton haben etwas wie ein "Eigenleben".
    Mache folgenden Test:
    Packe zunächst mehrere davon in ein Panel, z.B. eine GroupBox. Wenn Du dann darauf herumklickst, wirst Du feststellen, dass immer nur ein Item davon angeklickt ist.
    Du kannst aber per Software anne Items "Entchecken", niemals aber zwei checken, solange sie in einem Panel liegen!
    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 wie RadioButtons funktionieren ist mir glasklar. Da bedarf es keiner weiteren Erklärung. Viel lieber wäre mir, wenn auf meine tatsächliche Problemstellung eingegangen würde:

    Über folgenden Link habe ich mir in Word 2016 eine custom TaskPane erstellt:
    msdn.microsoft.com/en-us/library/bb608590.aspx

    Darin ist auch beschrieben, wie diese per Toggle-Button ein- und ausgeschaltet werden kann. Der Toggle-Button wird dabei über ein Ribbon zur Darstellung gebracht. In diesem Ribbon habe ich einen Button hinzugefügt, der mir mein Form1 aufruft. Die Form1 beinhaltet ein Label. Parallel dazu gibt es ein Label mit gleichem Namen in der besagten TaskPane. Über das Label in Form1 soll ein Standardwert definiert werden und dieser soll dann wiederum in der TaskPane angezeigt werden. Sobald ich also etwas in das Label der Form1 eintrage, soll der Wert auch im Label der TaskPane erscheinen. Nur wie? Da hänge ich im Moment und die bisherigen Infos haben mich leider noch nicht ans Ziel geführt. Wer kann helfen?

    Bodycount schrieb:

    Viel lieber wäre mir, wenn auf meine tatsächliche Problemstellung eingegangen würde
    Vielleicht solltest Du die noch mal verbal, nicht aber per bzw. in Verbindung mit Code erläutern.
    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!
    Hab ich doch:

    Über folgenden Link habe ich mir in Word 2016 eine custom TaskPane erstellt:
    msdn.microsoft.com/en-us/library/bb608590.aspx

    Darin ist auch beschrieben, wie diese per Toggle-Button ein- und ausgeschaltet werden kann. Der Toggle-Button wird dabei über ein Ribbon zur Darstellung gebracht. In diesem Ribbon habe ich einen Button hinzugefügt, der mir mein Form1 aufruft. Die Form1 beinhaltet ein Label. Parallel dazu gibt es ein Label mit gleichem Namen in der besagten TaskPane. Über das Label in Form1 soll ein Standardwert definiert werden und dieser soll dann wiederum in der TaskPane angezeigt werden. Sobald ich also etwas in das Label der Form1 eintrage, soll der Wert auch im Label der TaskPane erscheinen. Nur wie? Da hänge ich im Moment und die bisherigen Infos haben mich leider noch nicht ans Ziel geführt. Wer kann helfen?
    Supi. Wiederhole es zum 3. Mal, dann wird es wahrscheinlich besser X/
    Also: Du hast ein Label auf Deinem Office-Ribbon. Und wenn Du per Button Dein Form1 aufrufst, erscheint dieses Form1, bietet ein Label oder TextBox oder wie auch immer. Und wenn Du z.B. auf einen Button des Form1 klickst, soll der Inhalt des Labels/der Textbox auf dem Office-Ribbon-Label erscheinen.
    Dann musst Du eben aus dem Ribbon-Button heraus Form1 aufrufen und das Ribbon per Me als Parameter übergeben, da sonst kein Zugriff von Form1 auf das Ribbon besteht. Dazu musst Du den Konstruktor des Forms überladen und dort eben das Ribbon als Parameter mitgeben:

    VB.NET-Quellcode

    1. Public Class Form1
    2. Dim rbc As Ribbon1
    3. Public Sub New(ParentRibbon As Ribbon1)
    4. rbc = ParentRibbon
    5. InitializeComponent()
    6. End Sub

    Der Aufruf erfolgt dann also aus der Ribbon-Klasse mit

    VB.NET-Quellcode

    1. Dim NewForm As Form1
    2. 'und später im Ribbon-Button-Code:
    3. NewForm = New Form1(Me)
    4. NewForm.Show()

    Nun kannst Du mit rbc.Label1 auf das Ribbon.Label aus Form1 heraus zugreifen und es mit rbc.Label1.Label = "whateveryouwish" ändern.
    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.
    @Bodycount Mach ein kleines Projekt, das Deinen Effekt reproduziert, das bereinige und zippe es und hänge es an Deinen nächsten Post.
    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!