vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Zippen wie die Profis!  
 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
Steuerelemente erstellen im Thread 
Autor: Silver
Datum: 09.12.04 15:46

Hi, ich bins schon wieder...

Kann jemand was mit folgender Fehlermeldung anfangen:

"Eine nicht behandelte Ausnahme des Typs 'System.ArgumentException' ist in system.windows.forms.dll aufgetreten.
Zusätzliche Informationen: Steuerelemente, die für einen Threads erstellt wurden, können einem Steuerelement im einem anderen Thread nicht übergeordnet werden."


Erläuterung:
Ich habe einen Thread, der (bei Bedarf) Steuerelemente erstellen soll. So wie ich mir das vorgestellt habe, funktioniert es aber nicht:

Public Class Form1
    Inherits System.Windows.Forms.Form
 
#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
    Friend WithEvents Button2 As System.Windows.Forms.Button
    Friend WithEvents GroupBox1 As System.Windows.Forms.GroupBox
    <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
        Me.Button1 = New System.Windows.Forms.Button()
        Me.Button2 = New System.Windows.Forms.Button()
        Me.GroupBox1 = New System.Windows.Forms.GroupBox()
        Me.SuspendLayout()
        '
        'Button1
        '
        Me.Button1.Location = New System.Drawing.Point(48, 344)
        Me.Button1.Name = "Button1"
        Me.Button1.Size = New System.Drawing.Size(136, 32)
        Me.Button1.TabIndex = 0
        Me.Button1.Text = "normal"
        '
        'Button2
        '
        Me.Button2.Location = New System.Drawing.Point(184, 344)
        Me.Button2.Name = "Button2"
        Me.Button2.Size = New System.Drawing.Size(128, 32)
        Me.Button2.TabIndex = 1
        Me.Button2.Text = "thread"
        '
        'GroupBox1
        '
        Me.GroupBox1.Location = New System.Drawing.Point(40, 24)
        Me.GroupBox1.Name = "GroupBox1"
        Me.GroupBox1.Size = New System.Drawing.Size(608, 208)
        Me.GroupBox1.TabIndex = 2
        Me.GroupBox1.TabStop = False
        Me.GroupBox1.Text = "GroupBox1"
        '
        'Form1
        '
        Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)
        Me.ClientSize = New System.Drawing.Size(848, 402)
        Me.Controls.AddRange(New System.Windows.Forms.Control() {Me.GroupBox1, _
          Me.Button2, Me.Button1})
        Me.Name = "Form1"
        Me.Text = "Form1"
        Me.ResumeLayout(False)
 
    End Sub
 
#End Region
    Private Bild() As PictureBox
    Private myThread As System.Threading.Thread
 
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As _
      System.EventArgs) Handles Button1.Click
        Erstellen()
    End Sub
 
    Private Sub Erstellen()
        Dim t As Integer
        ReDim Bild(4)
        For t = 0 To 4
            Bild(t) = New PictureBox()
 
            With Bild(t)
                .Left = 20 + (110 * t)
                .Top = 20
                .Width = 100
                .Height = 100
                .BorderStyle = BorderStyle.Fixed3D
            End With
 
            Me.GroupBox1.Controls.Add(Bild(t))
        Next
    End Sub
 
 
    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As _
      System.EventArgs) Handles Button2.Click
        myThread = New System.Threading.Thread(AddressOf Erstellen)
        myThread.Start()
    End Sub
End Class
Das linke Button erstell 5 Pictureboxen "normal". Das rechte Button über einen Thread (Sollte es zumindest...).

Frage: Gibts eine Möglichkeit Steuerelemente über einen Thread zu erstellen????

Gruß

Silver
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Steuerelemente erstellen im Thread1.302Silver09.12.04 15:46
Re: Steuerelemente erstellen im Thread771spike2409.12.04 16:18
Re: Steuerelemente erstellen im Thread632Silver09.12.04 16:32
Re: Steuerelemente erstellen im Thread649Silver09.12.04 20:08

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