vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Schützen Sie Ihre Software vor Software-Piraterie - mit sevLock 1.0 DLL!  
 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 - Fortgeschrittene
Re: MDI Anwendung neues Fenster erstellen 
Autor: Maywood
Datum: 11.02.05 15:19

Sry, VS2k5 (FW2.0) erstellt den Designer-Code in einer separaten Datei, welche ich manchmal vergesse zu posten. Invoke ist ein Member von Form.

Ach, übrigens, in .NET2.0 kannst du nicht einfach aus einem Thread auf das Form zugreifen (Stichwort: Threadsicherheit), deshalb auch das Invoke.

Hier ein VS2k3/FW1.1 Bsp. (welches auch unter FW2.0 funzt):
 
Option Explicit On 
Option Strict On
 
Public Class Form1
    Inherits Form
    '// Designerregion
 
#Region " Vom Windows Form Designer generierter Code "
 
    Public Sub New()
        MyBase.New()
 
        ' Dieser Aufruf ist für den Windows Form-Designer erforderlich.
        InitializeComponent()
 
        ' Initialisierungen nach dem Aufruf InitializeComponent() hinzufügen
 
    End Sub
 
    ' Die Form überschreibt den Löschvorgang der Basisklasse, um Komponenten zu 
    ' bereinigen.
    Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
        If disposing Then
            If Not (components Is Nothing) Then
                components.Dispose()
            End If
        End If
        MyBase.Dispose(disposing)
    End Sub
 
    ' Für Windows Form-Designer erforderlich
    Private components As System.ComponentModel.IContainer
 
    'HINWEIS: Die folgende Prozedur ist für den Windows Form-Designer 
    ' erforderlich
    'Sie kann mit dem Windows Form-Designer modifiziert werden.
    'Verwenden Sie nicht den Code-Editor zur Bearbeitung.
    Friend WithEvents Button1 As System.Windows.Forms.Button
    <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
        Me.Button1 = New System.Windows.Forms.Button
        Me.SuspendLayout()
        '
        'Button1
        '
        Me.Button1.Location = New System.Drawing.Point(8, 352)
        Me.Button1.Name = "Button1"
        Me.Button1.Size = New System.Drawing.Size(96, 32)
        Me.Button1.TabIndex = 0
        Me.Button1.Text = "Start"
        '
        'Form1
        '
        Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)
        Me.ClientSize = New System.Drawing.Size(720, 389)
        Me.Controls.Add(Me.Button1)
        Me.Name = "Form1"
        Me.Text = "Form1"
        Me.ResumeLayout(False)
 
    End Sub
 
#End Region
 
    Private Delegate Sub d_threadHasFinished()
    Private Delegate Sub d_position(ByVal currentPos As Integer)
    Private Delegate Sub d_start(ByVal msg As String)
    Public Event threadHasFinished()
    Dim myThread As Threading.Thread
    Dim hasFinished As d_threadHasFinished
    Dim currentPos As d_position
    Dim start As d_start
    Dim gr As Graphics
 
    Private Sub thread_HasFinished()
        Dim f As New Form
        gr.DrawString(Me.Text, Me.Font, Brushes.Blue, CSng(100), CSng(100))
        System.Threading.Thread.Sleep(1000)
        Me.IsMdiContainer = True
        f.MdiParent = Me
        f.Text = "Thread has finished... ;o)"
        Me.Text = f.Text
        f.Show()
    End Sub
 
    Private Sub thread_updatePosition(ByVal currentPos As Integer)
        Me.Text = "Current Position: " + currentPos.ToString
        Me.Refresh()
        gr.DrawString(Me.Text, Me.Font, Brushes.Blue, CSng(100), CSng(100))
    End Sub
 
    Private Sub thread_start(ByVal msg As String)
        Me.Refresh()
        gr.DrawString(msg, Me.Font, Brushes.Blue, CSng(100), CSng(100))
        Threading.Thread.Sleep(1000)
    End Sub
 
Private Sub startProc()
        SyncLock Me
            gr = Me.CreateGraphics
            hasFinished = New d_threadHasFinished(AddressOf thread_HasFinished)
            currentPos = New d_position(AddressOf thread_updatePosition)
            start = New d_start(AddressOf thread_start)
            myThread = New Threading.Thread(AddressOf doSomething)
            AddHandler Me.threadHasFinished, AddressOf thread_HasFinished
            Application.DoEvents()
            myThread.Start()
        End SyncLock
    End Sub
 
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As _
      System.EventArgs) Handles MyBase.Load
        startProc()
    End Sub
 
    Public Sub doSomething()
        Me.Invoke(start, New Object() {"Thread  has started.."})
 
        '// sende oder empfange die Daten..
        For a As Integer = 0 To 20
            Threading.Thread.Sleep(200)
            '// Debug.WriteLine(a)
            Me.Invoke(currentPos, New Object() {a})
        Next
        Me.Invoke(hasFinished)
    End Sub
 
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As _
      System.EventArgs) Handles Button1.Click
        startProc()
    End Sub
End Class
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
MDI Anwendung neues Fenster erstellen1.312snoopy200507.02.05 22:30
Re: MDI Anwendung neues Fenster erstellen997Moderatorralf_oop08.02.05 10:03
Re: MDI Anwendung neues Fenster erstellen950snoopy200508.02.05 10:26
Re: MDI Anwendung neues Fenster erstellen1.091Moderatorralf_oop08.02.05 11:24
Re: MDI Anwendung neues Fenster erstellen913snoopy200508.02.05 11:30
Re: MDI Anwendung neues Fenster erstellen894snoopy200509.02.05 22:34
Re: MDI Anwendung neues Fenster erstellen889Maywood09.02.05 22:37
Re: MDI Anwendung neues Fenster erstellen984snoopy200509.02.05 23:34
Re: MDI Anwendung neues Fenster erstellen931Maywood09.02.05 23:41
Re: MDI Anwendung neues Fenster erstellen928snoopy200509.02.05 23:52
Re: MDI Anwendung neues Fenster erstellen917Maywood10.02.05 01:30
Re: MDI Anwendung neues Fenster erstellen905snoopy200511.02.05 13:07
Re: MDI Anwendung neues Fenster erstellen891snoopy200511.02.05 13:09
Re: MDI Anwendung neues Fenster erstellen981Maywood11.02.05 15:19
Re: MDI Anwendung neues Fenster erstellen895snoopy200511.02.05 18:53
Re: MDI Anwendung neues Fenster erstellen835Maywood11.02.05 19:09
Re: MDI Anwendung neues Fenster erstellen - PS932Maywood11.02.05 19:18
Re: MDI Anwendung neues Fenster erstellen1.425Maywood14.02.05 22:49
Re: MDI Anwendung neues Fenster erstellen925snoopy200514.02.05 23:10
Re: MDI Anwendung neues Fenster erstellen985Maywood14.02.05 23:17

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