När man skapar en komponent kan man göra så att bakrunden i komponenten är transparent. Så att det bara är själva de delar man har lagt till på komponenten syns! Jag kan väl lägga dit ett frågetecken om du nu inte kunde förstå det! du kan göra på två sätt: det beror ju på HUR din kontroll ska vara genomskinlig.. Det är en Label som jag vill göra transparent. minlabel.BackColor=Color.Transparent; Men om jag har en komponent mellan Formen och komponenten typ en picturebox såfunkar det ju inte. Jag har lyckats så att den följer färgen på formen men inte bilden! byt ut pictureboxen mot en panel och lägg din label i panelen.. Jag lyckats att göra själva bakgrunden på min komponent transparent men min label är fortfarande inte genomskinlig. du behöver ingen komponent för detta... <b>Det är en Label som jag vill göra transparent. Men min label måste ligga i en user control eftersom den tillhör en user control.Transparent bakgrund
Sv: Transparent bakgrund
När man skapar en komponent kan man göra så att bakgrunden i komponenten är transparent?Sv: Transparent bakgrund
1) använd "SetStyle(ControlStyles.SupportTransparency,true)"
detta gör att din kontroll kan FEJKA transparency via gdi+
dvs.. den kopierar bakgrunden från sin container..
OBS OBS: lägger du din kontroll över andra kontroller , tex knappar och textboxar , så kommer dessa INTE att synas igenom...
2) sätt en region på din kontroll , då kan du klippa bort de delar du vill ska vara transparenta.. då syns underliggande kontroller igenom och de svarar även på klick/mus events.
så en region är helt klart mer kraftfull , dock kan det vara lite klurigare att skapa den...
//RogerSv: Transparent bakgrund
men säg att du har en userkontroll med några knappar och textboxar på.. och du vill att ALLT annat än dessa ska vara genomskinligt..
C# kod:
<code>
protected override void OnResize(EventArgs e)
{
base.OnResize (e);
Region reg=new Region ();
reg.MakeEmpty ();
foreach (Control c in this.Controls)
{
reg.Union (c.Bounds);
}
this.Region = reg;
}
</code>
//RogerSv: Transparent bakgrund
Men den har jag inte lyckats att göra transparent även om jag inte har byggt in den i en UserControl.Sv: Transparent bakgrund
(använder gdi+ fusket för att fejka transparens...)
//RogerSv: Transparent bakgrund
Sv: Transparent bakgrund
(sätt pictureboxens bild som bgbild i panelen)
//RogerSv: Transparent bakgrund
Sv: Transparent bakgrund
gör:
<b>byt ut pictureboxen mot en panel och lägg din label i panelen..
(sätt pictureboxens bild som bgbild i panelen)</B>Sv: Transparent bakgrund
Men den har jag inte lyckats att göra transparent även om jag inte har byggt in den i en UserControl.</b>
DU BEHÖVER INTE EN USERCONTROL FÖR ATT GÖRA DIN LABEL TRANSPARENT....
1) öppna ditt formulär
2) lägg på en panel
3) sätt panelens bg bild till något
4) lägg din label på panelen
5) sätt labelns backcolor = color.transparent..
6) klart...Sv: Transparent bakgrund