我有2个表单(form1,form2)。我可以将值从form2传递给form1,但主要的问题是,当我关闭form2时,他仍会传递值,所以我在form1中得到空值。 例如:我添加一个2000欧元的值来形成1个文本框和标签,然后当我再次打开form2,并保持texbox clear和radiobutt未选中时,然后用红色X关闭按钮关闭form2,form1价值2000欧元将消失。 这是传递值和按钮的源代码:
FORM2
private string pss;
public string Passvalue
{
get { return pss; }
set { pss = value; }
}
private string pss2;
public string Passvalue2
{
get { return pss2; }
set { pss2 = value; }
}
public void Btn1_Click(object sender, EventArgs e)//The passvalue button
{
string eur="EUR";
Passvalue = ukupnaCifraTB.Text;//textbox form2=the number sender
ukupnaCifraTB.Text = String.Empty;
if (radioButton1.Checked)
{
radioButton1.Text = eur;
Passvalue2 = radioButton2.Text;
}
this.Close();
}
这里的形式1:
private string backvalue;
public string BackedValue
{
get { return backvalue; }
set { backvalue = value; }
}
private string backedText;
public string BackedText
{
get { return backedText; }
set { backedText = value; }
}
public void Btn1_Click(object sender, EventArgs e)
{
Form2 f2 = new Form2();
f2.ShowDialog();
trenutnoStanjeTB.Text = f2.Passvalue;//trenutnostanjeTB=textbox(form1)=gets number from form2
DinEuLab1.Text = f2.Passvalue2;//dineulab1=label form1=gets the eur text
DinEuLab2.Text = f2.Passvalue2;
}
我需要更改/添加以解决我的问题? 我希望当我一次传递值,然后打开form2并关闭它时,不要将空值发送到form1。
答案 0 :(得分:0)
首先,你的问题是不可读的,到处都是。其次,您似乎没有尝试验证这些值,或者至少向我们展示您尝试解决问题的方法。您可以轻松尝试以下其中一项
如果您希望Form2在值为空时停止
if (Passvalue2.Trim().Length <= 0)
{
MessageBox.Show("There is no Value");
return;
}
如果您想在检测到空白时提供默认值并继续此过程,则可以执行以下操作
Passvalue2 = radioButton2.Text.Trim().Length > 0 ? radioButton2.Text.Trim() : "SOME DEFAULT VALUE";
修改强>
您也可以按如下方式更改From1 Btn1_Click事件
public void Btn1_Click(object sender, EventArgs e)
{
Form2 f2 = new Form2();
f2.ShowDialog();
if ((f2.Passvalue.Length > 0) && (f2.Passvalue2.Length > 0))
{
trenutnoStanjeTB.Text = f2.Passvalue;//trenutnostanjeTB=textbox(form1)=gets number from form2
DinEuLab1.Text = f2.Passvalue2;//dineulab1=label form1=gets the eur text
DinEuLab2.Text = f2.Passvalue2;
}
}
如果您想单独检查Passvalue和Passvalu2,只需在if语句中拆分条件即可。在这里,我假设您在分配它们之前想要两个值。
答案 1 :(得分:0)
对空虚的简单查询可以解决您的问题。在您关闭Form2并尝试将Passvalues
分配给Textboxes
的{{1}}时,只需检查Form1
和{{1}中是否存在有效值}}。如果它们不为空,则分配它们,否则让旧值保持
f2.Passvalue
等等