的MessageBox&对话框上XNA(C#)(MessageBox & Dialogs on XN

2019-09-20 19:38发布

我在下面的代码作为我的XNA游戏的一部分:

    private void gameOver()
    {
        if (!m_IsGameOver)
        {
            string message = String.Format("GAME OVER!!!{0}Your score is: {1}",
                        Environment.NewLine, GameScore);
            if (MessageBox.Show(message, "GameOver", MessageBoxButtons.OK) == DialogResult.OK)
            {
                this.Exit();
            }

            m_IsGameOver = true;
        }
    }

    private void gameWon()
    {
        string message = String.Format("You Won!!!{0}Your score is: {1}",
                    Environment.NewLine, GameScore);
        if (MessageBox.Show(message, "You Won!", MessageBoxButtons.OK) == DialogResult.OK)
        {
            this.Exit();
        }
    }       

出于某种原因,我收到以下错误:

"The name 'MessageBox' does not exist in the current context"  
"The name 'MessageBoxButtons' does not exist in the current context"    
"The name 'DialogResult' does not exist in the current context"  

我特林添加“System.Windows ......”但似乎这样的“系统”没有“窗口”,在这...

我该如何解决这个问题?

Answer 1:

看来你正试图在XNA使用的WinForms类。 然而,根据该文档,WinForms的,不包含在XNA:如可在可见MessageBox文档 ,没有一个MessageBox方法都有在第一列中,这意味着其中没有在XNA支撑在XNA标志。 (见,相比之下, 上文档System.Linq.Enumerable ,所有的方法有X形旁边XNA标志)。

对于游戏中的图形用户界面,各种解决方案,比如这一个存在; 更多的链接都包含在这个 , 这个和这个SO问题和这个MSDN论坛发帖包含的链接另一个列表。



Answer 2:

OK,我找到了解决办法...
很简单 :/
添加“System.Windows”项目中的“参考”一节:)



Answer 3:

此外,如果您尝试在System.Windows.Forms的带上,并且您使用XNA的键,像Keys.Up,会出现与System.Windows.Forms的按键名称冲突。



文章来源: MessageBox & Dialogs on XNA (C#)