热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

如何让窗体不显示Icon但在任务栏中显示Icon?

我把一个窗体的ShowIcon属性设置为False----希望在窗体标题前不显示IconShowInTaskabr属性设置为True-----需要在任务栏上显示但出
我把一个窗体的
ShowIcon属性设置为False     ----希望在窗体标题前不显示Icon
ShowInTaskabr属性设置为True     -----需要在任务栏上显示
但出现了一个问题,任务栏中显示的不是自己配置的图标,而是系统默认的一个很难看的图标.

能否让窗体上不显示图标,但在任务栏上显示自己设定的图标(Icon属性)?

18 个解决方案

#1


晕,

#2


尽管窗体不显示ICO,还是在ICO属性里设定个图标 这样任务栏就会有ICO了

#3


引用 2 楼 red_angelx 的回复:
尽管窗体不显示ICO,还是在ICO属性里设定个图标 这样任务栏就会有ICO了

我就是这样子设置的,自己选的Icon,但任务栏里显示的是系统默认的图标

#4


引用 3 楼 sojingle 的回复:
我就是这样子设置的,自己选的Icon,但任务栏里显示的是系统默认的图标

因为你ShowIcon为false,窗体会忽略你设置图标的属性, 不会绘制你设置的图标

#5


在任务栏的时候把ShowIcon设为True,弹出窗体又设成False ,试试

#6


引用 5 楼 jin20000 的回复:
在任务栏的时候把ShowIcon设为True,弹出窗体又设成False ,试试

在任务栏中是一直显示的..

#7


上个图

#8


#9


你的FormStyle是哪种模式

#10


#11


Sizable
FixedSingle
都试过不行

#12


把ShowIcon设成true
style设成  xxToolWindow

可以查下windows画任务栏的消息重载下,具体没实验

#13


LZ的意思是任务栏一直是显示,而要窗体弹出时,ICON不显示,是这样的意思吗?

#14


或者程序自己画个标题栏

#15


小图标是透明的,放在窗口标题上;
大图标就用你设定的窗口图标,显示在任务栏中。

把下面一段代码拷贝到你的Form1类中:

protected override void OnShown(EventArgs e)
{
    base.OnShown(e);

    const int WM_SETICON = 0x80;
    Bitmap smallIcon = new Bitmap(SystemInformation.SmallIconSize.Width, SystemInformation.SmallIconSize.Height);
    SendMessage(this.Handle, WM_SETICON, (IntPtr)0, smallIcon.GetHicon());
    SendMessage(this.Handle, WM_SETICON, (IntPtr)1, this.Icon.Handle);
}

[DllImport("user32.dll")]
static extern IntPtr SendMessage(IntPtr hWnd, UInt32 Msg, IntPtr wParam, IntPtr lParam);

#16


引用 13 楼 jin20000 的回复:
LZ的意思是任务栏一直是显示,而要窗体弹出时,ICON不显示,是这样的意思吗?

是在弹出窗体的时候,也会在任务栏中显示,但窗体标题栏不显示图标,任务栏中上显示图标

就是让这个图里的任务栏图标变成Icon属性里的

#17


引用 15 楼 gomoku 的回复:
小图标是透明的,放在窗口标题上;
 大图标就用你设定的窗口图标,显示在任务栏中。

 把下面一段代码拷贝到你的Form1类中:
C# codeprotectedoverridevoid OnShown(EventArgs e)
{base.OnShown(e);constint WM_SETICON=0x80;
    Bitmap smallIcon=new Bitmap(SystemInformation.SmallIconSize.Width, SystemInformation.SmallIconSize.Height);
    SendMessage(this.Handle, WM_SETICON, (IntPtr)0, smallIcon.GetHicon());
    SendMessage(this.Handle, WM_SETICON, (IntPtr)1,this.Icon.Handle);
}

[DllImport("user32.dll")]staticextern IntPtr SendMessage(IntPtr hWnd, UInt32 Msg, IntPtr wParam, IntPtr lParam);


两个图标都显示为透明
如果注释掉第一个,两个图标都显示为this.Icon
单句SendMessage会试图设置这窗体和任务栏两个图标,而(IntPtr)0好像是起的优先级的作用.

#18


引用 17 楼 sojingle 的回复:
引用 15 楼 gomoku 的回复:
 小图标是透明的,放在窗口标题上;
  大图标就用你设定的窗口图标,显示在任务栏中。

  把下面一段代码拷贝到你的Form1类中:
 C# codeprotectedoverridevoid OnShown(EventArgs e)
 {base.OnShown(e);constint WM_SETICON=0x80;
     Bitmap smallIcon=new Bitmap(SystemInformation.SmallIconSize.Width, SystemInformation.SmallIconSize.Height);
     SendMessage(this.Handle, WM_SETICON, (IntPtr)0, smallIcon.GetHicon());
     SendMessage(this.Handle, WM_SETICON, (IntPtr)1,this.Icon.Handle);
 }

 [DllImport("user32.dll")]staticextern IntPtr SendMessage(IntPtr hWnd, UInt32 Msg, IntPtr wParam, IntPtr lParam);


 两个图标都显示为透明
 如果注释掉第一个,两个图标都显示为this.Icon
 单句SendMessage会试图设置这窗体和任务栏两个图标,而(IntPtr)0好像是起的优先级的作用.


明白了,我在Win7里面选择了"使用小图标",去掉就可以了,多谢gomoku !!!

推荐阅读
  • 本文介绍了如何使用C#制作Java+Mysql+Tomcat环境安装程序,实现一键式安装。通过将JDK、Mysql、Tomcat三者制作成一个安装包,解决了客户在安装软件时的复杂配置和繁琐问题,便于管理软件版本和系统集成。具体步骤包括配置JDK环境变量和安装Mysql服务,其中使用了MySQL Server 5.5社区版和my.ini文件。安装方法为通过命令行将目录转到mysql的bin目录下,执行mysqld --install MySQL5命令。 ... [详细]
  • 本文介绍了C#中生成随机数的三种方法,并分析了其中存在的问题。首先介绍了使用Random类生成随机数的默认方法,但在高并发情况下可能会出现重复的情况。接着通过循环生成了一系列随机数,进一步突显了这个问题。文章指出,随机数生成在任何编程语言中都是必备的功能,但Random类生成的随机数并不可靠。最后,提出了需要寻找其他可靠的随机数生成方法的建议。 ... [详细]
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • 本文介绍了在MFC下利用C++和MFC的特性动态创建窗口的方法,包括继承现有的MFC类并加以改造、插入工具栏和状态栏对象的声明等。同时还提到了窗口销毁的处理方法。本文详细介绍了实现方法并给出了相关注意事项。 ... [详细]
  • 如何用JNI技术调用Java接口以及提高Java性能的详解
    本文介绍了如何使用JNI技术调用Java接口,并详细解析了如何通过JNI技术提高Java的性能。同时还讨论了JNI调用Java的private方法、Java开发中使用JNI技术的情况以及使用Java的JNI技术调用C++时的运行效率问题。文章还介绍了JNIEnv类型的使用方法,包括创建Java对象、调用Java对象的方法、获取Java对象的属性等操作。 ... [详细]
  • vue使用
    关键词: ... [详细]
  • GetWindowLong函数
    今天在看一个代码里头写了GetWindowLong(hwnd,0),我当时就有点费解,靠,上网搜索函数原型说明,死活找不到第 ... [详细]
  • Iamtryingtomakeaclassthatwillreadatextfileofnamesintoanarray,thenreturnthatarra ... [详细]
  • 本文分享了一个关于在C#中使用异步代码的问题,作者在控制台中运行时代码正常工作,但在Windows窗体中却无法正常工作。作者尝试搜索局域网上的主机,但在窗体中计数器没有减少。文章提供了相关的代码和解决思路。 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • 在说Hibernate映射前,我们先来了解下对象关系映射ORM。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现。这样开发人员就可以把对数据库的操作转化为对 ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • 本文介绍了PE文件结构中的导出表的解析方法,包括获取区段头表、遍历查找所在的区段等步骤。通过该方法可以准确地解析PE文件中的导出表信息。 ... [详细]
  • 前景:当UI一个查询条件为多项选择,或录入多个条件的时候,比如查询所有名称里面包含以下动态条件,需要模糊查询里面每一项时比如是这样一个数组条件:newstring[]{兴业银行, ... [详细]
  • C++字符字符串处理及字符集编码方案
    本文介绍了C++中字符字符串处理的问题,并详细解释了字符集编码方案,包括UNICODE、Windows apps采用的UTF-16编码、ASCII、SBCS和DBCS编码方案。同时说明了ANSI C标准和Windows中的字符/字符串数据类型实现。文章还提到了在编译时需要定义UNICODE宏以支持unicode编码,否则将使用windows code page编译。最后,给出了相关的头文件和数据类型定义。 ... [详细]
author-avatar
马仔盛世焚花
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有