private void preferencesToolStripMenuItem_Click(object sender, EventArgs e)
{
Application.Run(new Preferences());
}
private void button10_Click(object sender, EventArgs e)
{
Application.Run(new Configuration());
}
private void button6_Click(object sender, EventArgs e)
{
Application.Run(new Configuration());
}
这是我使用的代码。当我打开程序时,它会在发生一个指定事件后抛出异常。调试器提供了附加信息:“在单个线程上启动第二个消息循环不是有效操作。请改用Form.ShowDialog。”这是我认为正常的事情。使用ShowDialog()(参见下面的代码)实际上不会解决问题。
private void preferencesToolStripMenuItem_Click(object sender, EventArgs e)
{
Preferences.ShowDialog();
}
private void button10_Click(object sender, EventArgs e)
{
Configuration.ShowDialog();
}
private void button6_Click(object sender, EventArgs e)
{
Configuration.ShowDialog();
}
相反,有一个错误,“非静态字段,方法或属性'Form1.ShowDialog()'需要一个对象引用。是的,它发生是因为VS2015认为我想显示一个属于的对话框在形式上,我的反对是打开另一种形式。它还建议简化成员访问......
这是Program.cs中的代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace y_cruncher_GUI_edition
{
static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[MTAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
}
}
编辑:我在项目中有三个表单(Form1,Configuration和Preferences)。程序打开Form1,当按下特定按钮时,我想显示配置或首选项。
我希望我之前没有做过任何愚蠢的事情,就像我之前提出的一个问题(还是一个新手)。任何评论,帮助或投票表示赞赏。 :)
答案 0 :(得分:0)
如果您要做的只是显示另一个表单,只需将以下代码放在按钮的onClick()事件中。
Preferences p1 = new Preferences();
p1.show();