ABOUT Visual Basic Programmieren Programmierung Download Downloads Tips & Tricks Tipps & Tricks Know-How Praxis VB VBA Visual Basic for Applications VBS VBScript Scripting Windows ActiveX COM OLE API ComputerPC Microsoft Office Microsoft Office 97 Office 2000 Access Word Winword Excel Outlook Addins ASP Active Server Pages COMAddIns ActiveX-Controls OCX UserControl UserDocument Komponenten DLL EXE
Diese Seite wurde zuletzt aktualisiert am 10.01.2000

Diese Seite wurde zuletzt aktualisiert am 10.01.2000
Aktuell im ABOUT Visual Basic-MagazinGrundlagenwissen und TechnologienKnow How, Tipps und Tricks rund um Visual BasicActiveX-Komponenten, Controls, Klassen und mehr...AddIns für die Visual Basic-IDE und die VBA-IDEVBA-Programmierung in MS-Office und anderen AnwendungenScripting-Praxis für IE, Windows Scripting Host und das Scripting-ControlTools, Komponenten und Dienstleistungen des MarktesRessourcen für Programmierer (Bücher, Job-Börse)Dies&Das...

Themen und Stichwörter im ABOUT Visual Basic-Magazin
Code, Beispiele, Komponenten, Tools im Überblick, Shareware, Freeware
Ihre Service-Seite, Termine, Job-Börse
Melden Sie sich an, um in den vollen Genuss des ABOUT Visual Basic-Magazins zu kommen!
Informationen zum ABOUT Visual Basic-Magazin, Kontakt und Impressum

Zurück...

Zurück...


Anzeige

(-hg) mailto:hg_invisiblelook@aboutvb.de

Selbst ein UserControl, das zur Laufzeit unsichtbar bleiben soll (Eigenschaft MSDN Library - VB InvisibleAtRuntimeInvisibleAtRuntime), macht einen besseren Eindruck, wenn es zur Designzeit ein unverwechselbares Aussehen hat. Das Visual Basic-eigene Timer-Steuerelement zeigt beispielsweise einen plastischen Rahmen und sein Symbol an. Auch lässt sich die Größe des Timers nicht ändern - er behält immer die Größe seines Symbols bei.

Das Erscheinungsbild zur Designzeit könnten Sie selbst im Paint-Ereignis des UserControls mehr oder weniger aufwändig zeichnen lassen. Sie könnten auch einen Rahmen mit Linien-Elementen basteln und der Picture-Eigenschaft des UserControls ein Bild zuweisen. Dieses Bild könnte natürlich auch die Rahmengestaltung bereits selbst enthalten.


Auch zur Laufzeit unsichtbare UserControls können zur Designzeit optisch glänzen

Irgendwie eleganter sieht es jedoch aus, wenn sich das Erscheinungsbild ein wenig der Umgebungsfarbe des Containers anpasst. Durch die Fläche des Timers scheint beispielsweise die Hintergrundfarbe des Containers durch. Mit einem einfachen Trick können Sie Ihren zur Laufzeit unsichtbar bleibenden UserControls ein ähnlich elegantes Aussehen verleihen.

Platzieren Sie eine Schaltfläche (CommandButton) in die linke obere Ecke des UserControls in der Größe von 32 x 32 Pixels - das ist eine übliche Standardgröße für solche Controls. Damit Sie die Größenangaben nicht umständlich berechnen müssen, setzen Sie dazu einfach die MSDN Library - VB ScaleModeScaleMode-Eigenschaft des UserControls auf vbPixels (= 3). Setzen Sie die MSDN Library - VB StyleStyle-Eigenschaft des CommandButtons auf 1 (= grafisch) und löschen Sie den Inhalt seiner Caption-Eigenschaft. Fügen Sie dann ein Symbol oder ein kleines Bitmap-Bild in die Picture-Eigenschaft ein. Soll eine Farbe des Bitmap-Bildes transparent durchscheinen, setzen Sie die Eigenschaft MSDN Library - VB UseMaskColorUseMaskColor auf True und die Eigenschaft MSDN Library - VB MaskColorMaskColor auf die entsprechende Farbe. Damit hätten Sie die Optik Ihres UserControls bereits erledigt. Da das UserControl zur Laufzeit unsichtbar bleibt, wird seine Oberfläche dann gar nicht geladen. Da der sozusagen überflüssige CommandButton ebenfalls nicht geladen wird, brauchen Sie sich keine Sorgen wegen eines eventuellen Ressourcenverbrauchs zu machen.

Für das automatische Zurückschnappen zur Designzeit auf eine fixe Größe sorgen Sie im Resize-Ereignis des UserControls. Dieses Ereignis wird zur Laufzeit auch nicht ausgelöst. Da die Maßeinheit für die MSDN Library - VB SizeSize-Methode des UserControls immer Twips ist, unabhängig vom ScaleMode des Containers, sollten Sie die Standard-Werte 32 x 32 Pixels auf saubere Weise in Twips skalieren:

Private Sub UserControl_Resize()
  Static sInProc As Boolean
  
  If sInProc Then
    Exit Sub
  Else
    sInProc = True
  End If
  UserControl.Size 32 * Screen.TwipsPerPixelX, _
   32 * Screen.TwipsPerPixelY
  sInProc = False
End Sub

Zwar ist das nicht sonderlich störend, dass durch den Aufruf der Size-Methode im Resize-Ereignis dieses noch einmal aufgerufen wird. Aber Sie können das mit Hilfe der Sperrvariablen sInProc unterbinden (Aller guten Dinge ist eins"Aller guten Dinge ist eins").


Beispiel-Projekt InvisibleLook (invisiblelook.zip - ca. 2,7 KB)






Themen - Allgemeines
Themen - Entwicklungsumgebung (VB-IDE)
Themen - Forms
Themen - Steuerelemente (Controls)
Themen - Grafik
Themen - Dateien
Themen - UserControls
Themen - Einsteiger-Tipps
Themen - Wussten Sie...?

Übersicht nach Titeln in alphabetischer Reihenfolge
Übersicht nach Erscheinungsdatum

Schnellsuche



Zum Seitenanfang

Copyright © 1999 - 2017 Harald M. Genauck, ip-pro gmbh  /  Impressum

Zum Seitenanfang

Zurück...

Zurück...

Download Internet Explorer