vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Brandneu! sevEingabe v3.0 - Das Eingabecontrol der Superlative!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

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

VB.NET - Fortgeschrittene
Probleme mit Events nach Ableitung 
Autor: icolor
Datum: 11.11.11 07:15

Guten Morgen,

ich habe ein selbst erstelltes Control welches OControl inherits und im Code ein weiteres Control mit allen Events erzeugt. Und hier fangen meine Probleme an.

Ich habe die benötigten Events im Code deklariert und lass das Programm laufen. Das Problem dabei, die Erstellung des Controls benötigt bis zu 2 Sekunden.

Und jetzt wird es wirklich lustig. Lösche ich die Events komplett aus dem Quellcode, wird das Control in ca. 0.2 Sekunden erstellt. - Lasse ich die Events im code, lösche aber den Quellcode innerhalb der Events, bin ich wieder bei 2 Sekunden.

Warum???

Kann mir jemand sagen, wie ich das ggf. umgehen kann? Danke
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Probleme mit Events nach Ableitung 
Autor: Manfred X
Datum: 11.11.11 08:27

Hallo!

Eigentlich doch klar!
Offensichtlich werden beim Erstellen des Controls Eventhandler
aktiviert, die umfassenden (zeitaufwendigen, auf Treiber wartenden ??)
Code ausführen.

Umgehen kannst Du das z.B. wenn Du eine boolsche Variable
"IsInitialized" einführst, die erst nach Fertigstellung der
Programm- / Control- / Form- (?) Initialisierung true wird.
In den betroffenen Handlern wird sie abgefragt:
If Not IsInitialized then exit sub

Ansonsten Code posten!!

MfG
Manfred

Beitrag wurde zuletzt am 11.11.11 um 08:29:30 editiert.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Probleme mit Events nach Ableitung 
Autor: icolor
Datum: 11.11.11 08:38

mmh, so ganz klar ist mir das noch nicht.
Ich hab mal einen Timer um die jeweiligen Handler gesetzt. Somit weiß ich jetzt zumindest das das Click Event bremst. Aber warum wird ein Click ausgelöst, wenn ich ein New mache?


Public Class MyControl : Inherits OControl
     Private control As New Control
 
     Public Sub New(ByVal Control As Control)
          Me.control = Control
 
          AddHandler Control.Click, AddressOf Control_Click                     _
                      ' 1950 ms
          'AddHandler Control.DoubleClick, AddressOf Control_DoubleClick        
          '            ' 0.9 ms
          'AddHandler Control.KeyPress, AddressOf Control_KeyPress              
          '            ' 0.8 ms
          'AddHandler Control.PreviewKeyDown, AddressOf Control_PreviewKeyDown  
          '            ' 0.9 ms
          'AddHandler Control.KeyDown, AddressOf Control_KeyDown                
          '            ' 1.08 ms
     end sub
 
     '.... weiterer Code
 
     Private Sub Control_Click(ByVal sender As Object, ByVal e As _
       System.EventArgs)
 
          ' hier muss nicht mal Code stehen damit es bremst
          ' wird die Sub komplett entfernt ist der Code schnell
 
     End Sub
Laut Debugger geht das Programm in das Click Event überhaupt nicht rein. Es reicht einfach, wenn es da ist.

Beitrag wurde zuletzt am 11.11.11 um 08:41:05 editiert.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Probleme mit Events nach Ableitung 
Autor: Manfred X
Datum: 11.11.11 09:02

Benenne die Member-Variable Control um z.B. in _ctrl.
Übergib im Konstruktor New falls möglich ein explizit
typ-deklariertes Control.

MfG
Manfred
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Probleme mit Events nach Ableitung 
Autor: icolor
Datum: 11.11.11 09:13

Kommt zum gleichen Ergebnis.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Probleme mit Events nach Ableitung 
Autor: Manfred X
Datum: 11.11.11 09:29

An diesem Code-Abschnitt sehe ich kein Problem.
Was ist dieses geerbte oControl? Ein von Dir erstelltes Control?

Hast Du mal einen Blick auf diesen Abschnitt der MSDN geworfen:
http://msdn.microsoft.com/de-de/library/wf33s4w7.aspx

MfG
Manfred
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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-2024 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