2016-06-25 6 views

答えて

0

右方向へのこの一点あなたを:

private void dataGridView1_CellEndEdit(object sender, DataGridViewCellEventArgs e) 
{ 
    // Data of inserted value 
    var rowIndex = e.RowIndex; 
    var colIndex = e.ColumnIndex; 
    var insertedValue = (dataGridView1[colIndex, rowIndex].Value ?? "").ToString(); 

    foreach(DataGridViewRow row in dataGridView1.Rows) 
    { 
     // If current cell == insertedValue but not the same row 
     if((row.Cells["ColumnID"].Value ?? "").ToString() == insertedValue && row.Index != rowIndex) 
     { 
      MessageBox.Show("Your Value is duplicated"); 
     } 
    } 
} 

Linqも可能です:

private void dataGridView1_CellEndEdit(object sender, DataGridViewCellEventArgs e) 
{ 
    var insertedValue = (dataGridView1[e.ColumnIndex, e.RowIndex].Value ?? "").ToString(); 

    dataGridView1.Rows.Cast<DataGridViewRow>() 
     .Where 
     ( 
      x => (x.Cells["ColumnID"].Value ?? "").ToString() == insertedValue 
      && x.Index != e.RowIndex 
     ) 
     .ToList() 
     .ForEach(x => MessageBox.Show("Your Value is duplicated")); 
} 

enter image description here

この1つは習慣挿入された値を削除することに注意してください。したがって、同じ値をもう一度挿入すると、MessageBoxは2回発生します。

+0

ありがとうございました私が必要としている通りに働いています............ありがとう –

+0

@NumanKibriaうれしいです。それを解決策としてマークすることを検討してください(投票ボタンのすぐ下にフック)。 – C4u

+0

C4u私はさらに質問したい........ –

関連する問題