Průhledný label   zodpovězená otázka

VB.NET, Komponenty, Grafika

Mám takovou banální otázku. Jde udělat aby byl Lebel průhledný jako ve VB6 (Vlastnost BackStyle > Transparent).

Mám za lebelem PictureBox a nechci aby se mi kolem texu zobrazoval šedý obdelník.

Díky za případné odpovědi.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Nijak jednoduše to nejde. Použijte ruční vykreslování textu v události Paint od PictureBoxu.

nahlásit spamnahlásit spam 2 / 4 odpovědětodpovědět

To je škoda :( Taková dobrá věc to byla.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Ale samozřejmě že to jde, velmi jednoduše. Stačí nastavit BackColor na hodnotu Transparent.

nahlásit spamnahlásit spam -2 / 2 odpovědětodpovědět

Nemáte pravdu. Tento problém se zde řešil už kdysi dávno a už tam jsem psal, že ovládací prvky ve Windows Forms NEPODPORUJÍ průhlednou barvu. Zkuste si to, při přiřazení průhledné barvy (Color.Transparent) nastane vyjímka.

nahlásit spamnahlásit spam 2 / 2 odpovědětodpovědět

Tak jsem to zkusil (Nejdřív o okně vlastnosti nastavil BackColor na Transparent) a pak pomocí Label1.BackColor = Color.Transparent. Bohužel ani v jednom případě se nestalo pozadí labelu průhledné - barva pozadí byla jako po vytvoření labelu (Color.Default).

Možná se musí nastavit ještě něco. Zkoušel jsem proklikat vlastnosti labelu ale bez výsledku.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Skúste pridať kód

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
 Label1.Parent = PictureBox1
End Sub

a nastaviť BackColor pre Label1 na Transparent

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Perfektní!!!

Založil jsem projekt, na Form1 přidal Label1 a PictureBox1 a zkusil kód:

Public Class Form1
  Private Sub Form1_Load(ByVal sender As System.Object, _
        ByVal e As System.EventArgs) Handles MyBase.Load
    Me.BackColor = Color.DarkSlateGray
    Me.Width = 580
    With Me.PictureBox1
      .Dock = DockStyle.Fill
      .BackColor = Color.Ivory
    End With
    With Me.Label1
      .Parent = PictureBox1
      .Font = New Font("Verdana", 12, FontStyle.Bold)
      .Text = "  Bude Label1 průhledný?  No tak to zkusme a uvidíme!"
      .Width = PictureBox1.Width - 20
      .Height = 20
      .Left = 10
      .Top = PictureBox1.Height - Me.Label1.Height - 10
      .BackColor = Color.Transparent
      .BringToFront()
    End With
  End Sub
End Class

No, a jde to! Bez "Label1.Parent = PictureBox1" je label také průhledný, ale vč. PictureBoxu, tedy až na barvu pozadí formuláře.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Orientovaný aj priehľadný na rodiča

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Ešte drobnosť.

Ak chcete mať label viditeľný aj na forme dajte si ich tam dva nad sebou, pričom ten na forme pošlite dozadu BringToBack. Samozrejme, že lokalizácia musí byť určená na rodičov.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Tento problém má jednoduché řešení:(body 1.-3. jsou pro začátečníky

1. V Solution explorer klikněte na Show all files (2. ikona zleva).

2. Zobrazte si tam ve formuláři, kde se nachází label

3. Spusťte si desingový kód formuláře

4. Najděte požadovaný label a připište k němu (např.: pro label1):

 Me.Label1.BackColor = Color.FromArgb(0, Color.Transparent)

Jestli náhodou nebude fugovat zkuste:

Me.Label1.BackColor = System.Drawing.Color.FromArgb(CType(CType(0, Byte), Integer), CType(CType(255, Byte), Integer), CType(CType(255, Byte), Integer), CType(CType(255, Byte), Integer))

pozn.: Pokud napíšete příkaz třídy Me dvakrát, funguje níže uvedený

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback