vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Erstellen von dynamischen Kontextmen?s - wann immer Sie sie brauchen!  
 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 - Ein- und Umsteiger
Vererbte 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.
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Vererbte System.Windows Form überzeichnen1.493ferdinand27.10.08 16:52
Re: Vererbte System.Windows Form überzeichnen700IsoLizer27.10.08 17:44
Re: Vererbte System.Windows Form überzeichnen786ferdinand27.10.08 18:02
Re: Vererbte System.Windows Form überzeichnen708IsoLizer27.10.08 18:41
Re: Vererbte System.Windows Form überzeichnen700ferdinand27.10.08 19:12
Re: Vererbte System.Windows Form überzeichnen730Maas27.10.08 19:24
Das Problem ist gelöst. Danke für eure Antworten [KT]652ferdinand28.10.08 22:02

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