c# - 在运行时将更改应用到主窗体 Form.Icon

标签 c# .net winforms

我有一个 System.Windows.Forms.Form 并想在运行时更改 Form.Icon 以显示状态。我已经设法从项目资源中加载图标:

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 的使用有问题吗?

最佳答案

我不清楚你为什么要这样做。只需将图标添加到您的资源中即可。项目 + 属性,资源选项卡,添加资源按钮上的箭头,添加现有文件。然后你会在运行时像这样使用它:

    private void button1_Click(object sender, EventArgs e) {
        this.Icon = Properties.Resources.Mumble;
    }

Mumble 是图标的名称。

如果您 100% 确定 GetObject() 不会返回 null,请尝试在设计器中设置 Icon 属性。如果它仍然没有出现,那么图标格式有问题。确保它没有太多颜色,256 色适用于 XP。

关于c# - 在运行时将更改应用到主窗体 Form.Icon,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3899364/

相关文章:

c# - Foreach 循环遍历作为文本框的控件不返回

c# - HttpListenerRequest 的 POST 参数在哪里?

.net - 创建包含 .Net Framework 3.5 SP1 的安装项目

.net - 混淆 .NET Microsoft Office 加载项的工具

c# - 为已部署的 Windows 应用程序 C# 更新系统?

c# - 为什么我的绑定(bind)失败?

c# - "standard"初始化基于 COM 的库的方法是什么

c# - 更改文本框的字体大小

c# - 如何在混合应用程序中获取有关缓冲区溢出异常的信息?

c# - 动态程序集和方法