I want only the comboBoxes that are in front of the checked checkboxes to be active and the others to be passive. My codes are those. How can I integrate these codes?
private void button1_Click(object sender, EventArgs e)
{
int i = 0;
List<int> ChkedRow = new List<int>();
if (dataGridView1.Rows.Count > 0)
for (i = 0; i <= dataGridView1.RowCount - 1; i++)
{
if (Convert.ToBoolean(dataGridView1.Rows[i].Cells["pid"].Value) == true)
{
ChkedRow.Add(i);
}
}
if (ChkedRow.Count == 0)
{
MessageBox.Show("Geziye katilacak personel seçimi yapilmadi. Geziye gidecek personeli seçmek için en bastaki kutucuklari isaretleyiniz!");
return;
}
DataGridViewComboBoxColumn comboBoxColumn = dataGridView1.Columns["kbaskani"] as DataGridViewComboBoxColumn;
if (comboBoxColumn != null)
{
int yesCount = 0;
int rowIndexWithMultipleYes = -1;
//Evet sayisini hesaplama ve birden fazla eveti hafizaya alma
for (int rowIndex = 0; rowIndex < dataGridView1.Rows.Count; rowIndex++)
{
DataGridViewRow row = dataGridView1.Rows[rowIndex];
string cellValue = row.Cells[comboBoxColumn.Index].Value?.ToString();
if (cellValue == "Evet")
{
yesCount++;
if (yesCount > 1)
{
rowIndexWithMultipleYes = rowIndex;
break;
}
}
}
//Evet sayimina dayali sonuç gösterme
if (yesCount == 0)
{
MessageBox.Show("Kafile baskani seçmediniz. Bir kisi kafile baskani olarak seçilmelidir.", "UYARI", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
else if (yesCount > 1)
{
MessageBox.Show("Birden fazla kafile baskani seçtiniz. Yalnizca bir kisi kafile baskani olarak seçilmelidir.", "UYARI", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
else if (rowIndexWithMultipleYes != -1)
{
//1'den fazla kisi seçimi durumunda yapilacak uyari
for (int rowIndex = 0; rowIndex < dataGridView1.Rows.Count; rowIndex++)
{
if (rowIndex != rowIndexWithMultipleYes)
{
dataGridView1.Rows[rowIndex].Cells[comboBoxColumn.Index].Value = "Hayir";
}
}
}
}
}