私は比較をしたい、この画像のように、列1との比較:C#のDataGridViewの列1は
if(already employee id == last cell employee)
{
MessagBox.show(Your Value is duplicated)
}
私は比較をしたい、この画像のように、列1との比較:C#のDataGridViewの列1は
if(already employee id == last cell employee)
{
MessagBox.show(Your Value is duplicated)
}
右方向へのこの一点あなたを:
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"));
}
この1つは習慣挿入された値を削除することに注意してください。したがって、同じ値をもう一度挿入すると、MessageBox
は2回発生します。
ありがとうございました私が必要としている通りに働いています............ありがとう –
@NumanKibriaうれしいです。それを解決策としてマークすることを検討してください(投票ボタンのすぐ下にフック)。 – C4u
C4u私はさらに質問したい........ –
試しましたか? – vivek
あなたの質問を明確にしてください。 – C4u