Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/200.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将参数传递到表单c#_C#_Windows_Forms_Parameters - Fatal编程技术网

如何将参数传递到表单c#

如何将参数传递到表单c#,c#,windows,forms,parameters,C#,Windows,Forms,Parameters,我似乎能够将参数从程序传递到表单,但是如何访问按钮例程中的变量呢。我已经放置了两个子例程Main()和Start,它们将运行form1。然后我把表单的名称空间放进去 static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); StartUp(); }

我似乎能够将参数从程序传递到表单,但是如何访问按钮例程中的变量呢。我已经放置了两个子例程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();
    }
 }
}

您可以使用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();
    }
}