Solved

How to remove icon from title bar

Posted on 2016-07-22
21
42 Views
Last Modified: 2016-07-22
Hello,

I have an icon that I want to display in the taskbar; however, I don't want this icon to display in the title bar. I tried setting ShowIcon to false, but that hides my icon in both the title bar and the task bar. Is there any way to only hide it in the title bar?
i am using vb.net 2015 desktop
0
Comment
Question by:RIAS
  • 10
  • 7
  • 2
  • +1
21 Comments
 
LVL 50

Expert Comment

by:Ryan Chong
ID: 41724430
your existing setting should be correct >> ShowIcon to false

then try go to project properties and change the icon there accordingly?
SnapShot.png
0
 
LVL 44

Expert Comment

by:AndyAinscow
ID: 41724431
Try making different sized (32x32 and 16x16) icons for the app.  The smaller one (title bar?) being blank.
0
 
LVL 50

Expert Comment

by:Ryan Chong
ID: 41724434
disregard my comment above, it seems doesn't work.
0
Master Your Team's Linux and Cloud Stack!

The average business loses $13.5M per year to ineffective training (per 1,000 employees). Keep ahead of the competition and combine in-person quality with online cost and flexibility by training with Linux Academy.

 

Author Comment

by:RIAS
ID: 41724454
Try making different sized (32x32 and 16x16) icons for the app.  The smaller one (title bar?) being blank.

Where to set these icons ?
0
 
LVL 44

Expert Comment

by:AndyAinscow
ID: 41724461
I get both sizes created automatically when I add an icon to the project:

SNAG-0012.bmp
0
 

Author Comment

by:RIAS
ID: 41724475
There is no option to choose icons for title and taskbar in visual studio 2015
0
 
LVL 44

Expert Comment

by:AndyAinscow
ID: 41724514
Odd.  I don't have VS 2015 to test but there ought to be a way to customise the icon for the app.
0
 

Author Comment

by:RIAS
ID: 41724516
Not sure how to set icons for taskbar and titlebar
0
 
LVL 44

Expert Comment

by:AndyAinscow
ID: 41724560
In the form load event
        Me.Icon = My.Resources.Icon1
where Icon1 is the name of your custom icon.
0
 

Author Comment

by:RIAS
ID: 41724565
Andy but this option is for both title bar and taskbar.Dont know how to set differently for titlebar and taskbar?
0
 
LVL 44

Assisted Solution

by:AndyAinscow
AndyAinscow earned 200 total points
ID: 41724587
You didn't read my suggestion properly (or your PC behaves differently than mine).

Try making different sized (32x32 and 16x16) icons for the app.  The smaller one (title bar?) being blank.

SNAG-0013.bmp
SNAG-0014.bmp
0
 

Author Comment

by:RIAS
ID: 41724642
So to brief it ; Andy need to have two icons with same name.My question is how does the vb.net app know which icon to use for titlebar and taskbar.Cannot see any settings for doing that.
0
 
LVL 44

Expert Comment

by:AndyAinscow
ID: 41724670
The system chooses the icon automatically based on how big the icon is and how big is the icon to be displayed.  The title bar being much smaller than the task bar means (in general) the 16x16 icon will be used for the title bar and the 32x32 will be used for the task bar.
1
 

Author Comment

by:RIAS
ID: 41724707
Cheers Andy!
0
 
LVL 33

Expert Comment

by:it_saige
ID: 41724769
ShowIcon and ShowInTaskbar are properties of the form, not the project.Capture.JPGSetting ShowIcon to false instructs the form not to display the icon on the caption (or title) bar.  Setting ShowInTaskbar instructs the form not to display on the Windows taskbar.

-saige-
0
 

Author Comment

by:RIAS
ID: 41724773
-saige-,
Can it be viceversa

Showicon in taskbar and not in title bar
0
 
LVL 33

Accepted Solution

by:
it_saige earned 300 total points
ID: 41724808
Well one way is by setting the FormBorderStyle to either FixedToolWindow or SizableToolWindow; e.g. -Capture.JPGThe problem with this is that it results in a more or less border-less form with no control box (Minimize, Maximize and Help are removed).

The next course of action is to use the API without changing the FormBorderStyle; e.g. -
Imports System.Runtime.InteropServices

Public Class Form1
	Const WM_SETICON = &H80
	Const ICON_SMALL = 0

	Private Sub OnLoad(sender As Object, e As EventArgs) Handles MyBase.Load
		Using emptyImage As Bitmap = New Bitmap(1, 1)
			SendMessage(Handle, WM_SETICON, ICON_SMALL, emptyImage.GetHicon())
		End Using
	End Sub

	<DllImport("user32.dll", SetLastError:=True, CharSet:=CharSet.Auto)> _
	Private Shared Function SendMessage(ByVal hWnd As IntPtr, ByVal Msg As UInteger, ByVal wParam As IntPtr, ByVal lParam As IntPtr) As IntPtr
	End Function
End Class

Open in new window

Capture.JPGThis way you still get your control box, but you end up with blank space in front of the title where the icon would normally reside (because the icon is still there it's just a 16x16 blank space).

-saige-
0
 

Author Comment

by:RIAS
ID: 41724946
Hello,
Thanks, will go for the second method and get back
0
 
LVL 44

Expert Comment

by:AndyAinscow
ID: 41725207
If you look very carefully the code from it_saige  (for setting an icon) is just doing what I suggested in a more indirect way.  (It can be useful for you if you needed to make other windows API calls)

Is there a problem with what I suggested?  Here it will work in the fashion you described with one line of code.
0
 

Author Comment

by:RIAS
ID: 41725212
Yes Andy , both the experts made it very clear to understand.
0
 

Author Comment

by:RIAS
ID: 41725215
Saige as usual thorough description and clarity in your solution. Thank you Sir.
0

Featured Post

3 Use Cases for Connected Systems

Our Dev teams are like yours. They’re continually cranking out code for new features/bugs fixes, testing, deploying, testing some more, responding to production monitoring events and more. It’s complex. So, we thought you’d like to see what’s working for us.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Welcome my friends to the second instalment and follow-up to our Minify and Concatenate Your Scripts and Stylesheets (http://www.experts-exchange.com/Programming/Languages/.NET/ASP.NET/A_4334-Minify-and-Concatenate-Your-Scripts-and-Stylesheets.html)…
This document covers how to connect to SQL Server and browse its contents.  It is meant for those new to Visual Studio and/or working with Microsoft SQL Server.  It is not a guide to building SQL Server database connections in your code.  This is mo…
Windows 10 is mostly good. However the one thing that annoys me is how many clicks you have to do to dial a VPN connection. You have to go to settings from the start menu, (2 clicks), Network and Internet (1 click), Click VPN (another click) then fi…
Although Jacob Bernoulli (1654-1705) has been credited as the creator of "Binomial Distribution Table", Gottfried Leibniz (1646-1716) did his dissertation on the subject in 1666; Leibniz you may recall is the co-inventor of "Calculus" and beat Isaac…

772 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question