2015-12-11 47 views
2

我有一个winform和6个文本框,当我按下button1时,每个文本框都会填充相应的datagridview单元格值。当我在文本框6中输入一个值后按下按钮2时,我如何使标签显示任何5个文本框的匹配值。我的下面的代码不起作用。谢谢。我如何使文本框的值等于datagrivew单元格值

DataTable dt = new DataTable(); 
      dt.Load(cmd.ExecuteReader()); 
      dataGridView1.DataSource = dt; 
      textBox1.Text = dataGridView1.CurrentRow.Cells[1].Value.ToString(); 
      textBox2.Text = dataGridView1.CurrentRow.Cells[2].Value.ToString(); 
      textBox3.Text = dataGridView1.CurrentRow.Cells[3].Value.ToString(); 
      textBox4.Text = dataGridView1.CurrentRow.Cells[4].Value.ToString(); 
      textBox5.Text = dataGridView1.CurrentRow.Cells[5].Value.ToString(); 


private void button2_Click(object sender, EventArgs e) 
    { 
     if (textBox1.Text.Equals(textBox2.Text)) 
     { 
      label1.Text = "this is equal to textBox1"; 


     } 
+0

你是什么意思你的代码不起作用?我看起来没问题。 – test

+0

他们是5个文本框和5个if,只有最后一个if才成立。 – Dominique1256

+0

换句话说,label1表示不等于textbox1至textbox4,等于最后一个。如果我删除textbox5而不是textbox4,只有变为true等等。 – Dominique1256

回答

0

你可以遍历所有的文本框,但第6和比较你的textBox6的文字:

foreach (TextBox control in Controls) //all textboxes but textbox6, because you dont want to compare it with itself 
      { 
       if (control.Text.Equals(textBox6.Text) && textBox6 != control) 
       { 
        label1.Text = control.Text; 
       } 
      } 

如果你在你的形式更加的文本框,你需要将它们排除在外,以及防止循环从比较它们。您可以通过将它们放置在类似的面板中来实现此目的。

相关问题