vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
sevAniGif - als kostenlose Vollversion auf unserer vb@rchiv CD Vol.5  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
Invoke ToolStripMenuItem 
Autor: CodenameReese
Datum: 29.01.10 11:50

Hallo,
Ja ich habe schon die Forumssuche benutzt ;) Und auch genügend hilfreiches gefunden...
nur leider funktioniert es immernoch nicht und genau da liegt mein Problem.
Ich will also den Text eines TSMI's ändern... da diese selbst keine Invoke-Methode besitzen läuft das ganze ja über TSMI.Owner (oder halt gleich dem MenuStrip) ab.
Dann kam der Fehler mit dem felenden Fensterhandle... also Me.CreateHandle in die Load-Methode... funktionieren tut es trotzdem nicht!?

Hier mal ein Beispielcode:
Public Class Main
 
    Private Test As New Test
    Private Delegate Sub SetTextDlg(ByVal text As String)
 
    Private Sub Main_Load([...]) Handles MyBase.Load
        Me.CreateHandle()
        Test.StartThread()
    End Sub
 
    Private Sub Change(ByVal text As String)
        test_TSMI.Text = text
        test_TSMI.Owner.Refresh
    End Sub
 
    Public Sub SetText1(ByVal text As String)
        If test_TSMI.Owner.InvokeRequired = True Then
            test_TSMI.Owner.Invoke(New SetTextDlg(AddressOf SetText), New   _
              Object() {text})
        Else
            test_TSMI.Text = text
            test_TSMI.Owner.Refresh
        End if
    End Sub
 
    Public Sub SetText2(ByVal text As String)
        test_TSMI.Owner.Invoke(New SetTextDlg(AddressOf Change), New   Object() _
          {text})
    End Sub
End Class
 
Public Class Test
 
    Private TestThread As Thread
 
    Public Sub StartThread()
        TestThread = New Thread(AddressOf ChangeTSMI)
        TestThread.Start()
    End Sub
 
    Private Sub ChangeTSMI()
        Main.SetText1("Test")
        Main.SetText2("Test")
    End Sub
End Class
Nur leider passiert da nix (SetText1)... weil anscheinend test_TSMI.Owner.InvokeRequired =False ist^^ aber selbst wenn ich diese Überprüfung rausnehme passiert nichts (SetText2)!?
Was mache ich falsch?

MfG Reese

Beitrag wurde zuletzt am 29.01.10 um 11:51:01 editiert.
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Invoke ToolStripMenuItem2.614CodenameReese29.01.10 11:50
Re: Invoke ToolStripMenuItem2.025ModeratorDaveS29.01.10 12:19
Re: Invoke ToolStripMenuItem1.971CodenameReese29.01.10 13:27
Re: Invoke ToolStripMenuItem2.057ModeratorDaveS29.01.10 13:50
Re: Invoke ToolStripMenuItem2.057cookstdu29.01.10 13:54
Re: Invoke ToolStripMenuItem2.203CodenameReese29.01.10 17:11
Re: Invoke ToolStripMenuItem2.052ModeratorDaveS29.01.10 18:57

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel