2013-07-12 183 views
0

我正在創建startlist,因此顯然我想阻止具有相同起始號碼的競爭對手。我有用於輸入值的文本框與保存按鈕轉換爲DataGridView表。像這樣:檢查列中的單元格是否具有相同的值

bool CheckFiledIsEmpty() 
{ 
    if (textStN.Text == string.Empty || 
     textN.Text == string.Empty || 
     textSN.Text == string.Empty || 
     textC.Text == string.Empty || 
     textYB.Text == string.Empty) 
     return false; 
    else 
     return true; 
} 

private void buttonSave_Click(object sender, EventArgs e) 
{ 
    if (CheckFiledIsEmpty()) 
    { 
     string Column1 = textStN.Text; 
     string Column2 = textN.Text; 
     string Column3 = textSN.Text; 
     string Column4 = textC.Text; 
     string Column5 = textYB.Text;      
     string[] row = { Column1, Column2, Column3, Column4, Column5 }; 
     dataGridView1.Rows.Add(row); 
     textStN.Text = ""; 
     textN.Text = ""; 
     textSN.Text = ""; 
     textC.Text = ""; 
     textYB.Text = ""; 
    } 
    else 
    { 
     MessageBox.Show("Input all information about competitor!"); 
    } 
} 

我想,當保存按鈕被擊中,在Column1(起始號碼文本框textStN)前值進行檢查,如果有相同值的誤差盒狀:「競爭者那個起始號碼已經存在了!「

感謝您的幫助和對我的英語感到抱歉。

回答

0

如下修改代碼:

bool CompetitorAlreadyExist() 
{ 
    foreach (DataGridViewRow row in dataGridView1.Rows) 
    { 
     foreach (DataGridViewCell cell in row.Cells) 
     { 
      if (cell.ColumnIndex == 0) // set your column index 
      { 
       // do your stuff here… i.e., compare `textStN.Text` with all values 
       // in column start # and return true or false 
      } 
     } 
    } 
} 

private void buttonSave_Click(object sender, EventArgs e) 
{ 
    if (CheckFiledIsEmpty() && CompetitorAlreadyExist()) 
    { 
     string column1 = textStN.Text; 
     string column2 = textN.Text; 
     string column3 = textSN.Text; 
     string column4 = textC.Text; 
     string column5 = textYB.Text;      
     string[] row = { column1, column2, column3, column4, column5 }; 
     dataGridView1.Rows.Add(row); 
     textStN.Text = ""; 
     textN.Text = ""; 
     textSN.Text = ""; 
     textC.Text = ""; 
     textYB.Text = ""; 
    } 
    else 
    { 
     MessageBox.Show("Input all information about competitor!"); 
    } 
} 

希望它可以幫助。

+0

所以我用類似的方式修改它,因爲我想用_「與該起始號碼的競爭對手已經存在!」_出現MeassageBox,並且使用此代碼我看不到它是可能的。我修改它,就像我把你的feoreach循環放在CheckIfFileEmpty之後,並且比如:if(cell.ColumnIndex == 0) if(cell.Value.ToString()。Equals(Column1)) { MessageBox。顯示(」...」); } else { dataGridView1.Rows.Add(row); } }',但由於某種原因它不起作用。這是否因爲沒有任何行檢查?如果是這樣,如何繞過?謝謝 – user2528094

+0

做成:'string Column1 = textStN.Text; var SingleRow =( 來自dataGridView1.Rows.Cast中的行() 其中,Rows.Cells [0] .Value.ToString()== textStN.Text select Rows).FirstOrDefault(); (SingleRow!= null) MessageBox.Show(「與這個st。n競爭對手已經存在!」);如果(SingleRow!= null) MessageBox.Show 轉到ClearStN; } ... Clear StN: textStSt.Text =「」; – user2528094

相關問題