2

这是我的表格 2,这是复选框所在的位置。

在此处输入图像描述

我在中间的操作员有一个随机字符生成器,​​我的代码是这样的:

        char[] select = new char[] { '+', '-', '/', '%', '*' };
        var rand = new Random();
        char num = select[rand.Next(5)];
        lbloperator.Text = Convert.ToString(num);

如果唯一的检查是加法,我的表格 1 将只执行加法,或者如果加减,我的表格 1 将只执行加法和减法。请在这件事上给予我帮助!:(

表格1

在此处输入图像描述

4

3 回答 3

1

有两种方法可以做到这一点:

1-第一种方法是在form2中定义公共属性,可以告诉form1 checkBox1的状态:

表格2:

public bool MyCheckBoxStatus
{
    get {return checkBox1.Checked;}
}

表格 1(例如):

Form2 frm = new Form2;
frm.ShowDialog();

if (frm.MyCheckBoxStatus)
{
    //Do something...
}

2- 另一种方式:如果您使用的是 Windows 窗体应用程序,那么您的所有控件都有一个名为 Modifiers 的属性,将其值更改为 public 并在 Form1 中编写此代码:

Form2 frm = new Form2;
frm.ShowDialog();

if (frm.checkBox1.Checked)
{
    //Do something...
}
于 2012-11-24T16:40:06.420 回答
0

我不太确定你在问什么,但听起来你正试图在表单之间传递一些数据。

在 Form2 中,您可以添加一个读取您的标签的公共属性

public string TheOperator {
    get { return lblOperator.Text; }
}

然后从 Form1 中,您可以创建一个新的 form2 实例,然后在需要时引用该属性。

Form2 fm = new Form2();
fm.Show();
string theOp = fm.TheOperator;

//////////

作为对您的编辑的回应:您可以将其添加到 Form1,在那里公开操作员变量:

public string MyOperator {
    get { return lblOperator.Text; }
    set {
                lblOperator.text = value;
                //You can perform any updates to 
                //your calculations here, or call 
                //another method to do so
        }
}

private void OpenForm2()
{
    Form2 frm2 = new Form2(this);
    frm2.Show();
}

然后在 Form2 内部,传递对 Form1 的引用,以便访问公共属性:

private Form1 frm;
public New(Form1 _frm)
{
    frm = _frm;
}

private void UpdateOperator()
{
    //call this method, calculating your operator and then
        //set the operator on the first form (variable frm) to
        //What you need it to do
    frm.MyOperator = lblOperator.Text;
}
于 2012-11-24T15:29:33.390 回答
0

尝试这个:

public partial class Form2: Form
{
public string checkBoxSelected = "";
}


public partial class Form1 : Form
{
private void MakeResult()
{
Form2 result = new Form2();
result.checkBoxSelected = "+";
result.Show();
}
}
于 2012-11-24T15:30:49.053 回答