• 0

[VB .Net] Label Transparency over Pic


Question

I am working on my on going project and have come across a problem. I wan tto have a picture box filling the back ground with 2 labels over it. However, when I set the label background color to Web/Transparent, the background still comes out grey when I run the program and this is a problem. How do I make it so that the label is truely transparent and you see the contents of the picture box behind it?

Link to comment
https://www.neowin.net/forum/topic/66887-vb-net-label-transparency-over-pic/
Share on other sites

Recommended Posts

  • 0

Hmmm... i had the exact same problem with .NET... This is why i still use VB6 for most of my work, rather than using VB .NET which causes me a lot of headaches with the new structure... Some changes in .NET are really stupid, and create big incompatabilities... I believe the problem with the label (IF it is a problem) makes my life difficult so when i HAVE to do it, i use VB6... I would also be interested in a solution about this issue... Anyone knows?

/Raptor

  • 0

Ok now here is now it works!

Conclusion: Use Form1.BackgroundImage or Panel1.BackgroundImage instead of PictureBox1.Image or PictureBox1.BackgroundImage

And when you set Label1.Backcolor to Transparece, the background of Label1 actually goes to the background or back colour of the form. I suggest you to set the image into Form1.BackgroundImage and it will work! (Or you can try use Panel, too)

post-47-1048021474.jpg

  • 0

When a label's background colour is set to Transparent, it inherits the background colour of its parent control. IIRC, a PictureBox cannot be the parent of another control, so you'll never be able to get the PictureBox's image to show through. You need to do as no name said and put the background image on a panel or other control that can be a parent.

--

Danny Smurf

  • 0
  no name? said:
Well, try this...

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
 ? ? ? ?Label1.BackColor = System.Drawing.Color.Transparent
End Sub

And here's the screen shot...

it doesn't:(ork :( i duno I guess I'll have to forget being able to resize the form.

  • 0
  bangbang023 said:
  no name? said:
Well, try this...

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
 ? ? ? ?Label1.BackColor = System.Drawing.Color.Transparent
End Sub

And here's the screen shot...

it doesn't:(ork :( i duno I guess I'll have to forget being able to resize the form.

what do you mean resize?? tell me what exactly you wanna do and i will figure it out for you. i thought you just wanna put some labels on to picture box. btw, that code does work in my .ne:stho :s

  • 0

Why not just override the panel's onpaint and write your own code to size the bitmap? Better yet, since panel doesn't allow double-buffering, create a user control that inherits from panel and use SetStyle to setup double-buffering.

public class UserPanel : System.Windows.Forms.Panel
	{
  /// <summary> 
  /// Required designer variable.
  /// </summary>
  private System.ComponentModel.Container components = null;

  public UserPanel()
  {
 	 // This call is required by the Windows.Forms Form Designer.
 	 InitializeComponent();

 	 // TODO: Add any initialization after the InitializeComponent call
 	 SetStyle(ControlStyles.AllPaintingInWmPaint | 
        ControlStyles.UserPaint |
        ControlStyles.DoubleBuffer, true );
  }

As far as the label not drawing transparent, what is its FlatStyle property set to? I think that some of the settings will not draw transparent( e.g. System ). Set it to Standard and it should draw transparent. If that doesn't work, again, you could override OnPaint and used the DrawString method to write text over the image. It isn't that much work to do so.

The pics have a panel that resizes the image, and a string drawn over it with DrawString. Ugly, I know, but you could probably do something nice with it.

UserControl.jpg

UserControl2.jpg

Edited by weenur
  • 0

So what if it's c# and not vb.net? you can do the same thing. The framework is the same. You can override painting in VB, you can create controls in VB.

I'll try and write this in VB.net just to show you how to do it. Granted, I don't write alot in VB so this may take a while.

This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.
  • Posts

    • Same, we had Macs. I had no trouble transitioning though.
    • Visual Studio Professional 2022 + The Premium Learn to Code Bundle drops to lowest price by Steven Parker Today's highlighted deal comes via our Online Courses section of the Neowin Deals store, where you can save $1,960 on this Microsoft Visual Studio Professional 2022 + The 2024 Premium Learn to Code Certification Bundle. This deal consists of the following items: Microsoft Visual Studio Professional 2022 Learn to Code with Python 3 CHATGPT Series: OPENAI Fundamentals 2024 MySQL & SQL for Beginners The Complete Python Course: Learn Python by Doing in 2024 Google Assistant Automation IoT Development Computer Vision & Deep Learning with OpenCV and Python: Build 15 Projects JavaScript Complete Guide with Practical JavaScript Projects Web Development with Vuex (2024) Flutter & Dart: Complete Flutter Dart Programming Course Java Programming for Complete Beginners Salesforce Platform App Builder Certification Training ChatGPT for Salesforce Development 2024 Complete Ruby on Rails 6 Bootcamp Game Development and Coding for Kids 14 coding courses and nearly 244 hours of content.Here's deal: This Microsoft Visual Studio Professional 2022 + The 2024 Premium Learn to Code Certification Bundle normally costs $1,999, but you can pick it up for just $55.97 for a limited time, that's a saving of $1,943 (97%) off. For a full description, specs, and instructor info, click the link below. Use MSO8 when checking out for additional $8 off. Coupon Expires June 29. Get this bundle deal for just $41.97, or learn more Although priced in U.S. dollars, this deal is available for digital purchase worldwide. We post these because we earn commission on each sale so as not to rely solely on advertising, which many of our readers block. It all helps toward paying staff reporters, servers and hosting costs. Other ways to support Neowin Whitelist Neowin by not blocking our ads Create a free member account to see fewer ads Make a donation to support our day to day running costs Subscribe to Neowin - for $14 a year, or $28 a year for an ad-free experience Disclosure: Neowin benefits from revenue of each sale made through our branded deals site powered by StackCommerce.
    • I still use "Everything Search" for all my device searches including OneDrive. It just got another update. Extremely fast because when you open it for the first time after a Windows Boot it caches everything. Takes a few seconds, but from the 2nd open on it finds all searches in real time as you type what you are searching for in the search area.
  • Recent Achievements

    • One Month Later
      HarryTaylor earned a badge
      One Month Later
    • Week One Done
      HarryTaylor earned a badge
      Week One Done
    • Week One Done
      habso earned a badge
      Week One Done
    • Week One Done
      DXB APPS earned a badge
      Week One Done
    • One Month Later
      DecaffKnight94 earned a badge
      One Month Later
  • Popular Contributors

    1. 1
      +primortal
      658
    2. 2
      ATLien_0
      246
    3. 3
      Michael Scrip
      233
    4. 4
      Steven P.
      148
    5. 5
      +FloatingFatMan
      145
  • Tell a friend

    Love Neowin? Tell a friend!