【问题标题】:Unable to programmatically set form background image from picture resource无法从图片资源以编程方式设置表单背景图像
【发布时间】:2013-10-20 01:40:38
【问题描述】:

我只是想将另一个表单的背景图片设置为我添加的一个png文件图片资源

我的 MAstrategyBldrForm.cs 文件中有以下内容:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace MAStrategyBuilder
{
    public partial class MAstrategyBldrForm : Form
    {

        private CrossPicsForm crossPic;

        public MAstrategyBldrForm()
        {
            InitializeComponent();

            crossPic = new CrossPicsForm();
        }

.... …… .... 稍后在同一个文件中:

private void MAcrossPicButton_Click(object sender, EventArgs e)
{
    crossPic.BackgroundImage = (Bitmap) (Properties.Resources.ResourceManager.GetObject("Moving Avgs Cross.png"));
    crossPic.Show();
}

.... …… 在我的 CrossPicsForm.cs 文件中,我有:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace MAStrategyBuilder
{
    public partial class CrossPicsForm : Form
    {
        public CrossPicsForm()
        {
            InitializeComponent();
        }
    }
}

一切都会编译,但是当我在 masterrategy... 表单中单击按钮控件时,会显示一个空白的 CrossPicsForm 窗口。该死!

【问题讨论】:

  • 只是一个建议:您是否尝试删除图像名称中的空格?
  • 请尝试一下:var WhatIsMyValueWhenBreakPointHit = (Bitmap) (Properties.Resources.ResourceManager.GetObject("Moving Avgs Cross.png"));

标签: c# winforms


【解决方案1】:

当您拼错资源名称时不会出现异常,ResourceManager 只会返回 null 并且保持 BackgroundImage 属性不变。你这样做了,它通常被命名为“Moving_Avgs_Cross”,没有 .png 扩展名。

请改用资源设计器添加的属性。这应该类似于:

crossPic.BackgroundImage = Properties.Resources.Moving_Avgs_Cross;

使用 IntelliSense 助您跌入成功的陷阱。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-06-12
    • 1970-01-01
    • 1970-01-01
    • 2011-10-08
    • 2012-02-02
    • 2011-04-13
    • 2017-12-03
    • 1970-01-01
    相关资源
    最近更新 更多