C# 在exe文件中包含资源
我对编程比较陌生,现在已经开始用C编写代码了。 我正在制作一个很小的程序,我想只包含一个*.exe文件。 该程序是一个windows窗体,上面有一些图片,有一些默认的启动图片,还有一些需要在特定条件下显示。基本上,它们是相同的PictureBox,我只是用PictureBox.Image=System.Drawing.Image更改了它们。FromFile@C:\teh image.jpg 我使用图片框上的“选择图像”选项来定位硬盘上的每个默认图片,并在某种程度上发现它们包含在*.exe文件中,因为如果我更改文件夹的名称,即包含程序顺利运行的图片的文件夹名称。我想对以后需要显示的其他图片也做同样的处理,我想可能在我包含.image.fromfile等之后,全能编译器会看到它并包含其他图片,但它没有。所以我想知道我该怎么做 作为一个额外的问题,我的代码中似乎有一个错误: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文件中,
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语言中的引用是如何工作的,这将为你节省更多的麻烦。