繁体   English   中英

C# 将值从 Form 1 传递到 Form 2

[英]C# Passing Values from Form 1 to Form 2

我正在做我的学校科目项目,我无法将文本框中的数字从表格 1 传递到表格 2 的文本框,我知道这是互联网上的很多例子,但它不起作用,请你们帮助我以其他方式执行此操作:

表格1代码:

public partial class fmnumbergamer : Form
{

    public fmnumbergamer()
    {
        InitializeComponent();
    }

    private void fmnumbergamer_Load(object sender, EventArgs e)
    {
        btnplay.Visible = false;

        txtinformacao.Visible = false;
        txtinformacaonumeros.Visible = true;
        txtinformacaonumeros.Enabled = false;

        txtinformacaonumeros.Text = ("Marque nas Caixas de texto os numeros  e as estrelas com o qual pretende jogar e carregue nos botões Assinalar");

        txtinformacao.Text = ("Após ter carregado nos botões assinalar carregue no botãp PLAY para ir para o sorteio do PSI - Euromilhões");
    }

    private void txtnumero1_KeyPress(object sender, KeyPressEventArgs e)
    {
        if ((e.KeyChar <'0' || e.KeyChar > '9') && e.KeyChar != 8)
        {
            e.Handled = true;
        }
    }

    private void txtnumero2_KeyPress(object sender, KeyPressEventArgs e)
    {
        if ((e.KeyChar < '0' || e.KeyChar > '9') && e.KeyChar != 8)
        {
            e.Handled = true;
        }
    }
    private void txtnumero3_KeyPress(object sender, KeyPressEventArgs e)
    {
        if ((e.KeyChar < '0' || e.KeyChar > '9') && e.KeyChar != 8)
        {
            e.Handled = true;
        }
    }
    private void txtnumero4_KeyPress(object sender, KeyPressEventArgs e)
    {
        if ((e.KeyChar < '0' || e.KeyChar > '9') && e.KeyChar != 8)
        {
            e.Handled = true;
        }
    }
    private void txtnumero5_KeyPress(object sender, KeyPressEventArgs e)
    {
        if ((e.KeyChar < '0' || e.KeyChar > '9') && e.KeyChar != 8)
        {
            e.Handled = true;
        }
    }
    private void txtestrela1_KeyPress(object sender, KeyPressEventArgs e)
    {
        if ((e.KeyChar < '0' || e.KeyChar > '9') && e.KeyChar != 8)
        {
            e.Handled = true;
        }
    }
    private void txtestrela2_KeyPress(object sender, KeyPressEventArgs e)
    {
        if ((e.KeyChar < '0' || e.KeyChar > '9') && e.KeyChar != 8)
        {
            e.Handled = true;
        }
    }
    private void btnassinalarnumeros_Click(object sender, EventArgs e)
    {
        txtnumero1.Enabled = false;
        txtnumero2.Enabled = false;
        txtnumero3.Enabled = false;
        txtnumero4.Enabled = false;
        txtnumero5.Enabled = false;
        btnassinalarnumeros.Enabled = false;
        txtinformacao.Visible = true;
        btnplay.Visible = true;
        txtinformacaonumeros.Visible = false;
        txtinformacao.Enabled = false;
    }
    private void btnassinalarestrelas_Click(object sender, EventArgs e)
    {
        txtestrela1.Enabled = false;
        txtestrela2.Enabled = false;
        btnassinalarestrelas.Enabled = false;
        txtinformacao.Visible = true;
        btnplay.Visible = true;
        txtinformacaonumeros.Visible = false;
        txtinformacao.Enabled = false;
    }

    private void btnplay_Click(object sender, EventArgs e)
    {
        this.Close();
    }

    private void GBPchave_Enter(object sender, EventArgs e)
    {

    }
    }

这里是来自 Form 2 的代码:

public partial class fmpsieuromilhoes : Form
{

    public fmpsieuromilhoes()
    {
        InitializeComponent();
    }

    private void fmpsieuromilhoes_Load(object sender, EventArgs e)
    {
        txtvalorjackpot.Enabled = false;
        txtvalorjackpot.Text = "15.000.000,00€";
        btnIntrouzirNovaChave.Visible = false;
    }

    private void btnLimparCampos_Click(object sender, EventArgs e)
    {
        txtuserfifhtnumber.Text = "";
        txtuserfirstnumber.Text = "";
        txtuserfirststarnumber.Text = "";
        txtuserfourthnumber.Text = "";
        txtuserfsecondstarnumber.Text = "";
        txtusersecondnumber.Text = "";
        txtuserthirdnumber.Text = "";
        btnIntrouzirNovaChave.Visible = true;
    }
    private void btnIntrouzirNovaChave_Click(object sender, EventArgs e)
    {
        Hide();
        using (fmnumbergamer NB = new fmnumbergamer())
            NB.ShowDialog();
        Show();
    }
}

在recepient形式的fmnumbergamer添加公共财产

public partial class fmnumbergamer: Form {
  ...

  //TODO: Change property name to more appropriate one
  public int LotteryValue {
    get {
      //TODO: Check if I've put the right text box here
      return int.Parse(txtinformacao.Text);
    }
    set {
      if ((value < 1) || (value > 50))
        throw new ArgumentOutOfRangeException("value"); 

      //TODO: Check if I've put the right text box here 
      txtinformacao.Text = value.ToString();
    }
  }

  ...
} 

调用此表单时只需设置属性

private void btnIntrouzirNovaChave_Click(object sender, EventArgs e)
{
   Hide();
   using (fmnumbergamer NB = new fmnumbergamer()) {
     //TODO: Put right value here
     NB.LotteryValue = 34;

     NB.ShowDialog();
   }
   Show();
}

你可以试试这个。

为类 Form2 创建一个构造函数,它像这样将字符串作为参数

 public Form2(string yourTxt)
{
  InitializeComponent();
  textbox2.Text=yourTxt;
}

并像这样在 form1 中调用 form2

  Form2 frm=new Form2(textbox1.text);
  frm.Show();

为 fmnumbergamer 表单创建一个构造函数

private int _value;
public fmnumbergamer(int value){
  _value = value;
}

将值传递给 fmnumbergamer 形式的构造函数

using (fmnumbergamer NB = new fmnumbergamer(Convert.ToInt32(YourFirstTextbox.Text))
        NB.ShowDialog();

并在 fmnumbergamer 表单加载中使用 _value 设置 textBox

private void fmnumbergamer_Load(object sender, EventArgs e)
{
   //Do whatever you want with _value
}

将您的 form1 代码替换为以下代码:

public partial class fmnumbergamer : Form
{

    public fmnumbergamer()
    {
        InitializeComponent();
    }

    public fmnumbergamer(fmpsieuromilhoes form)
    {
        InitializeComponent();

        txtnumero1.Text = form.txtuserfirstnumber.Text;
        txtnumero2.Text = form.txtusersecondnumber.Text;
        txtnumero3.Text = form.txtuserthirdnumber.Text;
        txtnumero4.Text = form.txtuserfourthnumber.Text;
        txtnumero5.Text = form.txtuserfifhtnumber.Text;
    }

    private void fmnumbergamer_Load(object sender, EventArgs e)
    {
        btnplay.Visible = false;

        txtinformacao.Visible = false;
        txtinformacaonumeros.Visible = true;
        txtinformacaonumeros.Enabled = false;

        txtinformacaonumeros.Text = ("Marque nas Caixas de texto os numeros  e as estrelas com o qual pretende jogar e carregue nos botões Assinalar");

        txtinformacao.Text = ("Após ter carregado nos botões assinalar carregue no botãp PLAY para ir para o sorteio do PSI - Euromilhões");
    }

    private void txtnumero1_KeyPress(object sender, KeyPressEventArgs e)
    {
        if ((e.KeyChar < '0' || e.KeyChar > '9') && e.KeyChar != 8)
        {
            e.Handled = true;
        }
    }

    private void txtnumero2_KeyPress(object sender, KeyPressEventArgs e)
    {
        if ((e.KeyChar < '0' || e.KeyChar > '9') && e.KeyChar != 8)
        {
            e.Handled = true;
        }
    }
    private void txtnumero3_KeyPress(object sender, KeyPressEventArgs e)
    {
        if ((e.KeyChar < '0' || e.KeyChar > '9') && e.KeyChar != 8)
        {
            e.Handled = true;
        }
    }
    private void txtnumero4_KeyPress(object sender, KeyPressEventArgs e)
    {
        if ((e.KeyChar < '0' || e.KeyChar > '9') && e.KeyChar != 8)
        {
            e.Handled = true;
        }
    }
    private void txtnumero5_KeyPress(object sender, KeyPressEventArgs e)
    {
        if ((e.KeyChar < '0' || e.KeyChar > '9') && e.KeyChar != 8)
        {
            e.Handled = true;
        }
    }
    private void txtestrela1_KeyPress(object sender, KeyPressEventArgs e)
    {
        if ((e.KeyChar < '0' || e.KeyChar > '9') && e.KeyChar != 8)
        {
            e.Handled = true;
        }
    }
    private void txtestrela2_KeyPress(object sender, KeyPressEventArgs e)
    {
        if ((e.KeyChar < '0' || e.KeyChar > '9') && e.KeyChar != 8)
        {
            e.Handled = true;
        }
    }
    private void btnassinalarnumeros_Click(object sender, EventArgs e)
    {
        txtnumero1.Enabled = false;
        txtnumero2.Enabled = false;
        txtnumero3.Enabled = false;
        txtnumero4.Enabled = false;
        txtnumero5.Enabled = false;
        btnassinalarnumeros.Enabled = false;
        txtinformacao.Visible = true;
        btnplay.Visible = true;
        txtinformacaonumeros.Visible = false;
        txtinformacao.Enabled = false;
    }
    private void btnassinalarestrelas_Click(object sender, EventArgs e)
    {
        txtestrela1.Enabled = false;
        txtestrela2.Enabled = false;
        btnassinalarestrelas.Enabled = false;
        txtinformacao.Visible = true;
        btnplay.Visible = true;
        txtinformacaonumeros.Visible = false;
        txtinformacao.Enabled = false;
    }

    private void btnplay_Click(object sender, EventArgs e)
    {
        this.Close();
    }

    private void GBPchave_Enter(object sender, EventArgs e)
    {

    }
}

和 Form2 代码:

public partial class fmpsieuromilhoes : Form
{

    public fmpsieuromilhoes()
    {
        InitializeComponent();
    }

    private void fmpsieuromilhoes_Load(object sender, EventArgs e)
    {
        txtvalorjackpot.Enabled = false;
        txtvalorjackpot.Text = "15.000.000,00€";
        btnIntrouzirNovaChave.Visible = false;
    }

    private void btnLimparCampos_Click(object sender, EventArgs e)
    {
        txtuserfifhtnumber.Text = "";
        txtuserfirstnumber.Text = "";
        txtuserfirststarnumber.Text = "";
        txtuserfourthnumber.Text = "";
        txtuserfsecondstarnumber.Text = "";
        txtusersecondnumber.Text = "";
        txtuserthirdnumber.Text = "";
        btnIntrouzirNovaChave.Visible = true;
    }
    private void btnIntrouzirNovaChave_Click(object sender, EventArgs e)
    {
        Hide();
        using (fmnumbergamer NB = new fmnumbergamer(this))
            NB.ShowDialog();
        Show();
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM