【问题标题】:How properly to load resource in designer view?如何在设计器视图中正确加载资源?
【发布时间】:2021-09-20 15:59:49
【问题描述】:

我有一个包含资源文件的应用程序,假设它有一个背景图像和图标,我想在我的所有应用程序表单上使用它。在运行时,一切正常,表单加载背景图片和图标没有问题。但是,如果我在设计器中打开表单,我会得到:

“app.Properties.Resources”类型没有属性“my_icon”/“my_background”。

代码如下:

this.Icon = global::app.Properties.Resources.my_icon;
this.BackgroundImage = global::app.Properties.Resources.my_background;

有什么建议吗?

【问题讨论】:

  • 你应该发布你的代码,不清楚你在做什么。 System.ComponentModel 使用 ComponentResourceManager 类在设计时添加资源。另请参阅ISupportInitialize Interface
  • 除了这两行之外没有其他代码,它是一个 poc prj,所以只需从资源文件加载图标并设置背景,如果需要可以添加整个项目,但重新创建非常简单.
  • 无论你发布什么,这两行本身没有多大意义。给它上下文(并解释你为什么在那里使用global::)。您还需要指定正在使用的 .Net 版本。 -- 请参阅链接文档以在设计时加载资源。如果您正在构建模板,请明确说明并描述其用例。
  • 全局,因为资源文件未链接到表单。 .Net 4.7.2 然后我设置了一个标准图标,比如说通过浏览所有负载都很好,但我想从我的 resx 文件中加载它,但由于某种原因不能这样做。 :( 这个案例看起来很具体,我们需要一位了解这部分工作原理的大师,如果这些行没有说明任何内容,那么抱歉 :) 我认为你不会找到答案 :)
  • 好吧,你有没有按照我描述的那样做?试一试。

标签: c# winforms visual-studio-2019 .net-4.7.2


【解决方案1】:

根据我的测试,你可以把你的代码放在 Form1.Designer.cs->InitializeComponent 方法中。

代码:

private void InitializeComponent()
        {
            // Load the resource file in designer view
            this.BackgroundImage = Properties.Resources.my_background;
            this.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch;
            this.Icon = Properties.Resources.my_icon; 
            this.SuspendLayout();
            // 
            // Form1
            // 
     
            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
            this.ClientSize = new System.Drawing.Size(731, 406);
            this.Name = "Form1";
            this.Text = "Form1";
            this.ResumeLayout(false);

        }

重建项目后,您可以在设计器视图中加载资源。

【讨论】:

  • 谢谢,就我而言,由于某种原因它无法正常工作。但是在点走时它能够正确跟踪资源,可能是我的 VS2019 的设置有些混乱,您能否提及您拥有的那个版本?
  • @Gorodeckij Dimitrij,我正在使用 Microsoft Visual Studio Professional 2019 版本 16.10.0。
猜你喜欢
  • 2016-03-29
  • 1970-01-01
  • 1970-01-01
  • 2014-02-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多