Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/271.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 为什么表单加载不调用初始化图形的代码?_C#_Startup_Drawimage - Fatal编程技术网

C# 为什么表单加载不调用初始化图形的代码?

C# 为什么表单加载不调用初始化图形的代码?,c#,startup,drawimage,C#,Startup,Drawimage,所以我回来了,我有另一个关于图形的问题 我搜索了谷歌,也搜索了stackoverflow。我可能不够彻底,但我认为半个小时没有结果意味着是时候问另一个问题了 在解决了DrawImage的图形问题后,现在我又遇到了另一个与同一方法调用相关的问题 我这里有我的表单加载代码 private void frmMapEditor_Load(object sender, EventArgs e) { loadComponents(); Prog

所以我回来了,我有另一个关于图形的问题

我搜索了谷歌,也搜索了stackoverflow。我可能不够彻底,但我认为半个小时没有结果意味着是时候问另一个问题了

在解决了DrawImage的图形问题后,现在我又遇到了另一个与同一方法调用相关的问题

我这里有我的表单加载代码

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的瓷砖,我想这对我来说已经足够了。我只是不知道还有什么图形库可以如此轻松地使用,至少目前是这样。