| |

VB.NET - Ein- und UmsteigerVererbte System.Windows Form überzeichnen | |  | Autor: ferdinand | Datum: 27.10.08 16:52 |
| Hallo,
ich habe mal wieder ein kleines Problem und hoffe auf Eure Hilfe.
Ich habe eine geerbte Buttonklasse. Der Button soll unter anderem anders dargestellt werden.
Die äußere Form soll auch nicht der des Standardbuttons entsprechen. Deshalb kann ich den
Button nicht einfach überzeichnen. Das Zeichnen klappt auch wunderbar, dass Problem ist viel-
mehr die von Windows gelieferte Buttongrafik loszuwerden und dabei Transparenzen zu erhalten.
Ich möchte auf meinem Button quasi wie auf einem vollständig transparentem Pictureboxelement
zeichnen, d.h. die Orginalgrafik soll verschwinden und ich zeichnen meinen Button innerhalb
der Objektgrenzen beliebig geformt neu. Dabei scheint der Hintergrund an transparenten Stellen
hindurch (ich habe die Limitationen von ControlStyles.SupportsTransparentBackColor gelesen,
aber die Funktion ist ausreichend für meinen Fall).
Imports System.Windows.Forms
Imports System.Drawing
Public Class nFButton
Inherits Button
Protected Overrides Sub OnPaint(ByVal e As _
System.Windows.Forms.PaintEventArgs)
' Alles an was nach trasnparent riecht ;)
MyBase.SetStyle(ControlStyles.SupportsTransparentBackColor, True)
MyBase.SetStyle(ControlStyles.Opaque, False)
' Hintergrund transparent setzen
MyBase.BackColor = Color.FromArgb(0, 0, 0, 0)
' Die Orginalbuttongrafik platt machen und auch transparent setzen
e.Graphics.Clear(Color.FromArgb(0, 0, 0, 0))
' A Kästli ohne Sinn und Verstand :)
e.Graphics.FillRectangle(Brushes.Beige, New Rectangle(0, 0, 50, 50))
End Sub
End Class Das ist mein Code und er produziert leider ein schwarzes und nicht ein transparentes Kästchen.
Was mache ich falsch ? Einfach die Farbe der Parentform abzufragen und dementsprechend den
Hintergrund zu färben ist leider keine Option für mich.
Ich benutze VBExpress2008. Ich hoffe ich hab mich leidlich eindeutig ausgedrückt. Vielen Dank
für eure Hilfe im Vorraus.
Gruß,
Ferdinand
edit :
eh der spaß funktioniert nur, wennn ich
MyBase.SetStyle(ControlStyles.OptimizedDoubleBuffer, False) ausmache . nu hab ich ne mäsuedisco ....
Beitrag wurde zuletzt am 27.10.08 um 17:20:24 editiert. |  |
 | 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 |
  |
|
sevOutBar 4.0 
Vertikale Menüleisten á la Outlook
Erstellen von Outlook ähnlichen Benutzer- interfaces - mit beliebig vielen Gruppen und Symboleinträgen. Moderner OfficeXP-Style mit Farbverläufen, Balloon-Tips, u.v.m. Weitere InfosTipp des Monats Oktober 2025 Matthias KozlowskiUmlaute konvertierenErsetzt die Umlaute in einer Zeichenkette durch die entsprechenden Doppelbuchstaben (aus ä wird ae, usw.) Access-Tools Vol.1 
Über 400 MByte Inhalt
Mehr als 250 Access-Beispiele, 25 Add-Ins und ActiveX-Komponenten, 16 VB-Projekt inkl. Source, mehr als 320 Tipps & Tricks für Access und VB
Nur 24,95 EURWeitere Infos
|
|
|
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
|
|