Visual Basic 2008: Inhalt einer TextBox ändern ?

  • VB.NET

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    Visual Basic 2008: Inhalt einer TextBox ändern ?

    Hallo Forum,

    ich verwende Visual Basic 2008 und stecke gerade an folgendem grundsätzlichem Thema fest.
    Ich versuche das Thema anhand dem folgenden reduzierten Beispiel zu beschreiben.

    Ich habe ein Formular (Form1), auf dem sich ein Button (Button1) und eine TextBox (TextBox1) befindet.
    Wenn ich auf den Button drücke möchte ich den Inhalt der TextBox ändern.

    => Wenn ich die Anweisung TextBox1.Text = "neuer Text" innerhalb von Sub Button1_Click schreibe, so
    funktioniert das wie erwartet.

    Nun möchte ich das anders lösen. Und zwar füge ich dem Projekt ein Module (Modul1) hinzu mit einer
    Funktion "NewText" innerhalb des Modules

    Module Modul1

    Sub NewText()

    Form1.TextBox1.Text = "neuer Text"

    End Sub

    End Module


    In der Funktion Sub Button1_Click rufe ich dann die Funktion "NewText()" in dem Modul1 folgender
    maßen auf: Modul1.NewText()

    => Die Funktion Modul1.NewText() wird aufgerufen aber der Inhalt der TextBox1 ändert sich leider
    nicht.

    Was mache ich falsch ???

    Wäre über einen Hinweis sehr dankbar.

    Gruss
    Tiger
    Hi,

    so geht das auch nicht. Das ist VB6-Kompatiblitätszeugs, das man nicht mehr nutzen sollte.
    Hier steht, wie es richtig geht: 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 :!:
    @Tiger Willkommen im Forum. :thumbup:
    GUI-Interaktionen sollten nicht aus nem Modul kommen, sondern aus einer Klasse, besser aus einer GUI-Klasse: Form / Control / UserControl.
    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!
    @RodFromGermany - Vielen Dank für die freundliche Begrüßung hier in diesem Forum :thumbsup:

    Nach welchem Begriff müsste ich entweder hier im Forum oder in der Literatur suchen, wenn
    ich das oben beschriebene Beispiel in Visual Basic umsetzen möchte ? Möchte mich gerne hier
    tiefer einarbeiten.

    Ich habe es nun so probiert.

    Datei "Class1.vb"

    Public Class Class1
    Inherits System.Windows.Forms.UserControl

    Sub ChangeText()
    Form1.TextBox1.Text = "Das ist der neue Text"
    End Sub

    End Class


    Datei "Form1.vb"

    Imports Test1.Class1

    Public Class Form1

    Dim MeineKlasse As Class1

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

    MeineKlasse = New Class1

    MeineKlasse.ChangeText()

    End Sub
    End Class


    Wenn ich nun den Button auf Form1 drücke, wird der Text in der Textbox1 geändert.
    Hattest Du das mit mit dem GUI-Klasse gemeint ?

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

    Ein UserControl lässt Du Dir vom Studio generieren: Projekt => Benutzersteuerelement hinzufügen.

    Tiger schrieb:

    VB.NET-Quellcode

    1. Form1.TextBox1.Text = "Das ist der neue Text"

    Trade schrieb:

    Das ist VB6-Kompatiblitätszeugs, das man nicht mehr nutzen sollte.
    Du musst mit selbst erstellten Instanzen arbeiten. Verstehe zunächst diesen Artikel.
    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!