我想在表单2中显示表单1数据,但表单显示为空白

时间:2014-01-11 12:56:41

标签: c# forms

我想获得表单1中的输入和form2中的输出,并且类似地输出在form2中并输出到fom1中。但是当我调试我的代码时,表单显示为空白。它没有显示任何文本框或按钮。我已经将form1作为父母 表格1代码

public partial class Form1 : Form
{
    public static String s;
    Form2 f2 = new Form2();
    public Form1()
    {
        InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e)
    {
        int i, n, sum = 0;
        for (i = 1; i <= 5; i++)
        {
            f2.ShowDialog();
            textBox1.Text = s + Environment.NewLine;
            sum += Int32.Parse(s);
        }
         textBox1.Text+="sum="+sum;
        }
    }
}

表格2代码

public partial class Form2 : Form
{
    public Form2()
    {
        InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e)
    {
        Form1.s = textBox1.Text;
        this.Close();
    }
}

1 个答案:

答案 0 :(得分:0)

这只是一个启动者 特别是设置f1的TextBox1有点不整洁。 在Form2中添加一个属性。

Public int Value {get {return Int32.Parse(TextBox1.Text); }

将button1设为OK按钮(将模态设置为mrkOK)

在Form1中摆脱s和f2

将按钮1单击处理程序更改为

private void button1_Click(object sender, EventArgs e)
{
  int i, n, sum = 0;
  for (i = 1; i <= 5; i++)
  {
  using(Form2 f2 = new Form2())
  {
    if (f2.ShowDialog() == DialogResult.OK)
    {
      if(String.IsNullOrEmpty(TextBox1.Text))
      {
        TextBox1.Text = f2.Value.ToString();
      }
      else
      {
        TextBox1.Text = String.Concat(TextBox1.Text,Environment.NewLine,f2.Value.ToString());
      } 
      sum += f2.Value;
    }
  } 
  textBox1.Text = String.Format("{0}{1}sum={2}",TextBox1.Text, Environment.NewLine,sum);
}