[英]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.