ادغام کردن سطرهای یک ستون از datagridview
سلام دوستان
چگونه چندسطر از یکی از ستونهای دیتاگرید را در هم ادغام کنیم ؟ همانند تصاویر زیر که در یک نرم افزاری این عمل رو انجام داده اند :
وقتی روی اون سطرهای ادغام شده هم کلیک میکنم عین یک تکست باکس میشوند :
ناگفته نماند از دیتاگرید کامپونت دات نت بار استفاده میکنم.
نقل قول: ادغام کردن سطرهای یک ستون از دیتاگرید
من دستورات زیر رو استفاده کردم :
bool IsTheSameCellValue(int column, int row){
DataGridViewCell cell1 = dataGridView1[column, row];
DataGridViewCell cell2 = dataGridView1[column, row - 1];
if (cell1.Value == null || cell2.Value == null)
{
return false;
}
return cell1.Value.ToString() == cell2.Value.ToString();
}
private void dataGridView1_CellPainting(object sender, DataGridViewCellPaintingEventArgs e){
e.AdvancedBorderStyle.Bottom = DataGridViewAdvancedCellBorderStyle.None;
if (e.RowIndex < 1 || e.ColumnIndex < 0)
return;
if (IsTheSameCellValue(e.ColumnIndex, e.RowIndex))
{
e.AdvancedBorderStyle.Top = DataGridViewAdvancedCellBorderStyle.None;
}
else
{
e.AdvancedBorderStyle.Top = dataGridView1.AdvancedCellBorderStyle.Top;
}
}
if (e.RowIndex == 0) return;
if (IsTheSameCellValue(e.ColumnIndex, e.RowIndex))
{
e.Value = "";
e.FormattingApplied = true;
}
و بدین حالت شد دیتاگرید :
که همانطور که میبینید 2 مورد مشکل وجود دارد :
1- اول اینکه متن مربوطه در ستون ادغام شده رو من میخواستم همانند تصاویر قبلی در وسط ردیف های ادغام شده قرار بگیره که متاسفانه اینجا در اولین ردیف قرار گرفته!
2. مشکل بعدی هم که نتونستم حل کنم این هستش که این دستورات کل ستون هارو ادغام میکند...یعنی الان ستون اول که برا ردیف هست رو هم ادغام کرده...البته من جهت تست کد مقدار کل ردیف ها رو یکسان قرار داده بودم برا همین ادغام کرده ولی خب شاید در ستون های دیگر مقادیر یکسان داشته باشم نمیخواهم بدین شکل شود...فقط ستون دوم رو میخواستم ادغام کنم.