这是家庭作业,所以那些不喜欢看某人询问有关家庭作业的问题的人不要阅读这篇文章。
我将在C#中创建一个控制台应用程序和一个Windows窗体。当我运行控制台应用程序时,它会弹出一个带有两个按钮的窗体,然后按下并退出。我正在努力的部分是。我该怎么做呢?我想我需要将windows窗体继承到控制台应用程序中。 帮助会很棒。
答案 0 :(得分:3)
由于这是作业 - 我会试着指出你正确的方向(没有完全回答)。
我建议从头开始2个项目进行比较。制作Windows窗体应用程序和控制台应用程序,并查看两者之间的差异。这应该显示您需要更改以将表单添加到控制台应用程序。
特别要注意“主要”以及项目参考的差异......
答案 1 :(得分:1)
不,你不需要继承。您只需创建一个新的控制台应用程序右键单击您的新项目,然后选择Add->新物品。选择Windows Form
。在设计师中设计新表单。
然后,在控制台代码中,(假设您调用了新表单Form1)put
Form1 form1 = new Form1();
Form1.ShowDialog();
那应该为你做。
仅仅因为此应用程序作为控制台应用程序运行并不意味着它不是像Windows窗体应用程序那样运行托管代码的.net Windows应用程序。
编辑,奖励事实: ShowDialog()
方法将使控制台等待,直到您关闭表单以结束程序。如果您使用Show()
方法,它将不会等待。为了进行良好的学习练习,我建议您进一步了解这两种方法之间的区别。
答案 2 :(得分:0)
简单的答案是创建一个简单的WinForms应用程序,它可以满足您的需求,然后将所有代码和生成的代码复制到控制台应用程序中。您仍然需要添加库引用,否则将无法编译。
答案 3 :(得分:0)
故意有点模糊,因为这是一项家庭作业:)
你在这里似乎遇到了两个问题
对于第一个问题,关键问题是您需要在控制台应用程序中设置消息循环,以确保表单正确响应。请注意,还必须执行此操作才能运行正常的Windows窗体应用程序。我将创建一个WinForm应用程序并挖掘隐藏文件中的代码,以便了解主窗体是如何在那里创建和显示的(提示:应用程序是您正在寻找的类型)
对于第二个问题,最简单的解决方案是创建一个WinForm DLL并从控制台应用程序引用它。
答案 4 :(得分:0)
您可以尝试以下指针。
1-创建空白解决方案。
2-添加一个控制台项目。
3-添加Windows窗体项目。
4-在控制台项目中添加Windows窗体项目的引用。
5-假设您在Windows窗体项目中有Form1。
6-在Console项目的主要功能中使用以下代码。
Form1 f = new Form1();
f.ShowDialog();