C# 为什么表单加载不调用初始化图形的代码?
所以我回来了,我有另一个关于图形的问题 我搜索了谷歌,也搜索了stackoverflow。我可能不够彻底,但我认为半个小时没有结果意味着是时候问另一个问题了 在解决了DrawImage的图形问题后,现在我又遇到了另一个与同一方法调用相关的问题 我这里有我的表单加载代码C# 为什么表单加载不调用初始化图形的代码?,c#,startup,drawimage,C#,Startup,Drawimage,所以我回来了,我有另一个关于图形的问题 我搜索了谷歌,也搜索了stackoverflow。我可能不够彻底,但我认为半个小时没有结果意味着是时候问另一个问题了 在解决了DrawImage的图形问题后,现在我又遇到了另一个与同一方法调用相关的问题 我这里有我的表单加载代码 private void frmMapEditor_Load(object sender, EventArgs e) { loadComponents(); Prog
private void frmMapEditor_Load(object sender, EventArgs e)
{
loadComponents();
Program.debug.print("Load complete.");
}
我在loadComponents中有这个代码
private void loadComponents()
{
Rectangle srcRectTiles = new Rectangle(0, 0, 16 * 16, 20 * 16);
GraphicsUnit units = GraphicsUnit.Pixel;
screenTiles.DrawImage(gfxTiles, 0, 0, srcRectTiles, units);
}
现在,我通过在Click()事件中调用Load()来确保图形正常工作,代码运行正常。只是当我运行游戏并期望看到加载的东西时,什么都没有发生。您在那里看到的调试代码在Load()运行后显示输出“Load complete.”(以确保确实调用了它),但它似乎没有运行loadComponents()中的实际代码。我甚至向该方法添加了调试代码,它们在控制台中相应地打印输出
任何洞察都会很棒!如果需要,我可以提供更多的代码。也许有一种调试方法我还不太了解。试着在表单的
show
事件中调用loadComponents()
方法。这仍然不起作用,尽管这是一个聪明的想法。你从哪里得到gfxTiles
图形对象,为什么不呢?就是这样。隐马尔可夫模型。。。我想知道为什么。从来没有遇到过这样的事情。谢谢对于C#中的Windows编程仍然是非常新的。请原谅我的无知这就是为什么我问你从哪里得到图形对象的原因。:)看见此外,如果您正在构建一个游戏,您可能希望尽快转储GDI(+),因为它的性能非常糟糕。:)不过要看比赛情况。谢谢你的提示。从C#编程开始。为什么不试试游戏呢?哈哈。它在窗体的类成员空间中声明,然后在构造函数中初始化。我要多读点书。GDI performance wise并没有给我带来很多问题。在不到一秒钟的时间里测试了1200块16 x 16的瓷砖,我想这对我来说已经足够了。我只是不知道还有什么图形库可以如此轻松地使用,至少目前是这样。