如何将参数传递到表单c#
我似乎能够将参数从程序传递到表单,但是如何访问按钮例程中的变量呢。我已经放置了两个子例程Main()和Start,它们将运行form1。然后我把表单的名称空间放进去如何将参数传递到表单c#,c#,windows,forms,parameters,C#,Windows,Forms,Parameters,我似乎能够将参数从程序传递到表单,但是如何访问按钮例程中的变量呢。我已经放置了两个子例程Main()和Start,它们将运行form1。然后我把表单的名称空间放进去 static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); StartUp(); }
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();
}
}
}
您可以使用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值指定给设计器中的按钮。尝试以下操作:
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;
}
}
这对我来说很好,可以根据我单击的按钮设置
bool playerMode
。你想在哪里传递什么?我想把bool的参数mode传递给按钮,以确定要使用的模式你需要一个构造函数Form1(bool mode){modebool=mode;}
看看Application.Run(新表单1(/*在此处传递数据*/);
然后在构造函数内部有一些参数,例如公共表单1(字符串名,int-age)
但当我尝试此操作时,在主程序中,模式仍然等于FALSE。我看到。您希望在启动时恢复所选值。请稍后参阅更新答案。谢谢much@JacobBrewer欢迎来到StAdvExcel。如果一个答案对你有帮助,你可以考虑把它标记为接受。如果你不知道它是如何工作的可以帮助。
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();
}
}