将更改应用于mainforms Form.Icon在运行时 [英] Apply changes to mainforms Form.Icon at runtime

查看:101
本文介绍了将更改应用于mainforms Form.Icon在运行时的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个System.Windows.Forms.Form中,并想改变Form.Icon在运行时显示状态。我已经成功地从项目加载图标ressources:

I have a System.Windows.Forms.Form and want to change the Form.Icon at runtime to display a status. I've managed to load the icon from the projects ressources:

Type type = this.GetType();
System.Resources.ResourceManager resources =
    new System.Resources.ResourceManager(type.Namespace + ".Properties.Resources", this.GetType().Assembly);
this.Icon = (System.Drawing.Icon)resources.GetObject(
    type.Namespace + ".Icons." + statusText + ".ico");

但显示的图标保持不变(设计时间图标)所有的时间。我必须调用一个方法告诉给应用更改表格?有什么问题我的使用Form.Icon的?

But the displayed icon stays the same (design time icon) all the time. Do I have to call a method to tell the Form to apply changes? Something wrong about my usage of Form.Icon?

推荐答案

好了,西瓦和汉斯在哪里右:GetObject的返回null,因为的ressource的名字是不正确的。除了以下的改变它的工作原理:

Ok, Siva and Hans where right: GetObject returned null, because the name of the ressource wasn't right. With the following change it works:

Type type = this.GetType(); 
System.Resources.ResourceManager resources = 
new System.Resources.ResourceManager(type.Namespace + ".Properties.Resources", this.GetType().Assembly);

// here it comes, call GetObject just with the resource name, no namespace and no extension
this.Icon = (System.Drawing.Icon)resources.GetObject(statusText); 

感谢您的帮助。

Thanks for all your help.

这篇关于将更改应用于mainforms Form.Icon在运行时的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆