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

时间:2018-07-04 08:11:11

标签: c# windows forms parameters

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

2 个答案:

答案 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来说很好。