我似乎能够从程序中将参数传递给表单,但是然后如何在按钮例程中访问变量。我放置了两个子例程Main()和Start,它们将运行form1。然后我放置了表单的名称空间。
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
StartUp();
}
static void StartUp()
{
bool mode = false;
Application.Run(new Form1());
//bool playermode = GetPlayerMode();
}
namespace PencilProject
{
public partial class Form1 : Form
{
private static bool modebool;
public Form1()
{
InitializeComponent();
}
public void button1_Click(object sender, EventArgs e)
{
modebool = true;
Close();
}
private void button2_Click(object sender, EventArgs e)
{
modebool = false;
Close();
}
}
}
答案 0 :(得分:0)
您可以使用DialogResult来获得“返回值”,例如:
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
StartUp();
}
static void StartUp()
{
Form1 frm = new Form1()
Application.Run(frm);
bool mode = frm.DialogResult == DialogResult.Yes;
//bool playermode = GetPlayerMode();
}
namespace PencilProject
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
public void button1_Click(object sender, EventArgs e)
{
DialogResult = DialogResult.Yes;
Close();
}
private void button2_Click(object sender, EventArgs e)
{
DialogResult = DialogResult.No;
Close();
}
}
}
您甚至可以将DialogResult值分配给设计器中的按钮。
答案 1 :(得分:0)
尝试一下:
static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
var f = new Form1();
f.Mode = false;
Application.Run(f);
bool playerMode = f.Mode;
}
}
并且:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
public bool Mode = false;
private void button1_Click(object sender, EventArgs e)
{
this.Mode = true;
this.Close();
}
private void button2_Click(object sender, EventArgs e)
{
this.Mode = false;
this.Close();
}
}
这对我根据我点击的按钮设置bool playerMode
来说很好。