C# 在exe文件中包含资源

C# 在exe文件中包含资源,c#,resources,windows-forms-designer,C#,Resources,Windows Forms Designer,我对编程比较陌生,现在已经开始用C编写代码了。 我正在制作一个很小的程序,我想只包含一个*.exe文件。 该程序是一个windows窗体,上面有一些图片,有一些默认的启动图片,还有一些需要在特定条件下显示。基本上,它们是相同的PictureBox,我只是用PictureBox.Image=System.Drawing.Image更改了它们。FromFile@C:\teh image.jpg 我使用图片框上的“选择图像”选项来定位硬盘上的每个默认图片,并在某种程度上发现它们包含在*.exe文件中,

我对编程比较陌生,现在已经开始用C编写代码了。 我正在制作一个很小的程序,我想只包含一个*.exe文件。 该程序是一个windows窗体,上面有一些图片,有一些默认的启动图片,还有一些需要在特定条件下显示。基本上,它们是相同的PictureBox,我只是用PictureBox.Image=System.Drawing.Image更改了它们。FromFile@C:\teh image.jpg

我使用图片框上的“选择图像”选项来定位硬盘上的每个默认图片,并在某种程度上发现它们包含在*.exe文件中,因为如果我更改文件夹的名称,即包含程序顺利运行的图片的文件夹名称。我想对以后需要显示的其他图片也做同样的处理,我想可能在我包含.image.fromfile等之后,全能编译器会看到它并包含其他图片,但它没有。所以我想知道我该怎么做

作为一个额外的问题,我的代码中似乎有一个错误:

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

namespace Heroes5_ArmyCalc
{
    public partial class Form1 : Form
    {
        int Current_Tier1_01_Gold=3333;
        int Current_Tier1_02_Gold;
        int Current_Tier2_01_Gold;
        int Current_Tier2_02_Gold;
        int Current_Tier3_01_Gold;
        int Current_Tier3_02_Gold;
        int Current_Tier4_01_Gold;
        int Current_Tier4_02_Gold;
        int Current_Tier5_01_Gold;
        int Current_Tier5_02_Gold;
        int Current_Tier6_01_Gold;
        int Current_Tier6_02_Gold;
        int Current_Tier7_01_Gold;
        int Current_Tier7_02_Gold;
        int Current_Tier1_Pop;
        int Current_Tier2_Pop;
        int Current_Tier3_Pop;
        int Current_Tier4_Pop;
        int Current_Tier5_Pop;
        int Current_Tier6_Pop;
        int Current_Tier7_Pop;
        int Haven_Tier1_01_Gold = 15;
        int Haven_Tier1_02_Gold = 25;
        int Haven_Tier2_01_Gold = 50;
        int Haven_Tier2_02_Gold = 80;
        int Haven_Tier3_01_Gold = 85;
        int Haven_Tier3_02_Gold = 130;
        int Haven_Tier4_01_Gold = 250;
        int Haven_Tier4_02_Gold = 370;
        int Haven_Tier5_01_Gold = 600;
        int Haven_Tier5_02_Gold = 850;
        int Haven_Tier6_01_Gold = 1300;
        int Haven_Tier6_02_Gold = 1700;
        int Haven_Tier7_01_Gold = 2800;
        int Haven_Tier7_02_Gold = 3500;
        int Haven_Tier1_Pop = 22;
        int Haven_Tier2_Pop = 12;
        int Haven_Tier3_Pop = 10;
        int Haven_Tier4_Pop = 5;
        int Haven_Tier5_Pop = 3;
        int Haven_Tier6_Pop = 2;
        int Haven_Tier7_Pop = 1;

        public Form1()
        {
            InitializeComponent();
            Current_Haven();
            Basics();
        }

        public void Basics()
        {
            Gold_Tier1.Text = Convert.ToString(Current_Tier1_01_Gold);
            Gold_Tier2.Text = Convert.ToString(Current_Tier2_01_Gold);
            Gold_Tier3.Text = Convert.ToString(Current_Tier3_01_Gold);
            Gold_Tier4.Text = Convert.ToString(Current_Tier4_01_Gold);
            Gold_Tier5.Text = Convert.ToString(Current_Tier5_01_Gold);
            Gold_Tier6.Text = Convert.ToString(Current_Tier6_01_Gold);
            Gold_Tier7.Text = Convert.ToString(Current_Tier7_01_Gold);
            Pop_Tier1.Text = Convert.ToString(Current_Tier1_Pop);
            Pop_Tier2.Text = Convert.ToString(Current_Tier2_Pop);
            Pop_Tier3.Text = Convert.ToString(Current_Tier3_Pop);
            Pop_Tier4.Text = Convert.ToString(Current_Tier4_Pop);
            Pop_Tier5.Text = Convert.ToString(Current_Tier5_Pop);
            Pop_Tier6.Text = Convert.ToString(Current_Tier6_Pop);
            Pop_Tier7.Text = Convert.ToString(Current_Tier7_Pop);
        }

        public void Current_Haven()
        {
            int Current_Tier1_01_Gold = Haven_Tier1_01_Gold;
            int Current_Tier1_02_Gold = Haven_Tier1_02_Gold;
            int Current_Tier2_01_Gold = Haven_Tier2_01_Gold;
            int Current_Tier2_02_Gold = Haven_Tier2_02_Gold;
            int Current_Tier3_01_Gold = Haven_Tier3_01_Gold;
            int Current_Tier3_02_Gold = Haven_Tier3_02_Gold;
            int Current_Tier4_01_Gold = Haven_Tier4_01_Gold;
            int Current_Tier4_02_Gold = Haven_Tier4_02_Gold;
            int Current_Tier5_01_Gold = Haven_Tier5_01_Gold;
            int Current_Tier5_02_Gold = Haven_Tier5_02_Gold;
            int Current_Tier6_01_Gold = Haven_Tier6_01_Gold;
            int Current_Tier6_02_Gold = Haven_Tier6_02_Gold;
            int Current_Tier7_01_Gold = Haven_Tier7_01_Gold;
            int Current_Tier7_02_Gold = Haven_Tier7_02_Gold;
            int Current_Tier1_Pop = Haven_Tier1_Pop;
            int Current_Tier2_Pop = Haven_Tier2_Pop;
            int Current_Tier3_Pop = Haven_Tier3_Pop;
            int Current_Tier4_Pop = Haven_Tier4_Pop;
            int Current_Tier5_Pop = Haven_Tier5_Pop;
            int Current_Tier6_Pop = Haven_Tier6_Pop;
            int Current_Tier7_Pop = Haven_Tier7_Pop;
            Basics();
        }
    [some other code]
我已经清除了所有不相关的代码。 关注点:

请注意,变量Current_Tier1_01_Gold在开始时给出了一个值。 应该是,当调用Current_Heaven时,它会使Current_Tier1_01_Gold被赋予Haven_Tier1_01_Gold的新值,即15 调用Basics时,应该将文本Gold\u Tier1设置为当前的\u Tier1\u 01\u Gold 问题: -Gold_Tier1的文本是3333——当前Tier1_01_Gold的初始值,即使在调用当前的_天堂之后也是如此


如果需要,我可以提供完整的代码,但它有703行长。

是的,您可以使用将文件集成到项目中


话虽如此,你应该买一些关于基本编程,特别是数组的书。不过,各位,你们不值得在评论中被嘲笑。

我将在这里为你们的额外问题发布一个例子,因为格式比评论中的更容易

public void Current_Haven()
{
    int Current_Tier1_01_Gold = Haven_Tier1_01_Gold;
    //You need to add this line here for the Text to be updated.
    Gold_Tier1.Text = Convert.ToString(Current_Tier1_01_Gold);

}

现在,调用Current_Haven将根据您的需要更新文本属性。

您不应该有单独的奖励问题。如果你有两个不同的问题,请分别提问。你真的应该研究数组……我认为添加所有代码/奖金问题分散了所有人对原始问题的回答。也许你应该把它拿出来,谢谢!我确实到处寻找答案,但没有找到但为什么所有的阵列?谢谢你为我辩护就代码中的问题而言,在Current_Heaven中更改Current_Tier1_01_Gold的值不会影响分配给Current_Tier1_01_Gold原始值的整数。这是因为int是一种值类型,所以每个新的int实例都会创建该值的新副本。他们指的不是同一件事,事实上这不太正确。将int值指定给Text属性时,将创建一个新字符串。这个字符串不受对原始int的更改的影响。所以它们不是指同一个东西,但不是因为我上面提到的原因。@user3566162使用数组,您不需要创建10个当前的TierX\u0x\uGold变量savanna King,等等,什么?!为什么不呢?那我该怎么改变呢万分感谢,埃芬迪!没问题我建议你读一读C语言中的引用是如何工作的,这将为你节省更多的麻烦。