به نام خدا
من می خواستم این نمونه را در مدل رابطه ای پایگاه داده قرار بدم اما تونستم مدل ابتدایی تر رو براش انتخاب کنم و به شکل زیر ساخته شد:
در دیتا گرید ویو یک ایونت وجود دارد و زمانی که یک مقدار یک سلول تغییر یافت فعال می شود. ما می خواهیم کاری کنیم که وقتی سلول کومبو باکس مقدار جدیدی به خود گرفت کومبو باکس دوم مقدار دهی شود. خب با توجه به رخدادی که توضیح داده شد در رخداد CellEndEdit بررسی می کنیم که آیا سلول کومبو باکس اصلی تغییر پیدا کرده است یا خیر و زمانی که پاسخ درست باشد این تغییر انجام شده است و خانه کومبوباکس مقدار جدید یعنی ایتم انتخاب شده. پس با توجه به مقدار سلول کومبوباکس دوم را پر می کنیم. در مثال زیر از دو فیلد که اولی نام استان و دومی نام شهرستان است قرار داده شده اند که ابتدا نام استان تعیین می شود و با توجه به نام استان کومبو باکس شهرستان پر می شود.
private void dataGridView1_CellEndEdit(object sender, DataGridViewCellEventArgs e)
{
if (e.ColumnIndex == 0)
{
if (dataGridView1.Rows[e.RowIndex].Cells[0].Value.ToString() == "khouzestan")
{
city.Items.AddRange("Ahwaz");
city.Items.AddRange( "Izeh");
city.Items.AddRange("Abadan");
city.Items.AddRange("etc");
}
if (dataGridView1.Rows[e.RowIndex].Cells[0].Value.ToString() == "tehran")
{
city.Items.AddRange("Tehran", "etc");
}
}
}
دانلود کد
http://yp.yanagroup.net/wp-content/uploads/2011/11/Grid-Related-Comboxes.zip