PDA

View Full Version : سوال: نحوه ترکیب دو سلول و تبدیل به یک سلول در datagridview



ji ming u
سه شنبه 07 اردیبهشت 1395, 07:06 صبح
سلام
تو دیتا گرید میشه دو سلول یا سه سلول کنار هم را ترکیب کرد و به یه سلول تبدی ل کرد؟
اگه کسی میدونه کمک کنه

sinaprog
سه شنبه 07 اردیبهشت 1395, 09:40 صبح
foreach (DataGridViewRow dRow in dataGridView1.Rows)
dRow.Cells[1].Value = dRow.Cells[2].Value as string + dRow.Cells[3].Value as string;

ji ming u
سه شنبه 07 اردیبهشت 1395, 13:06 عصر
میخام دو سلول یه سلول بشه نه اینکه متحویاتش باهم ترکیب بشه

ji ming u
سه شنبه 07 اردیبهشت 1395, 16:57 عصر
کی نیست کمک کنه؟

alireza4474
سه شنبه 07 اردیبهشت 1395, 18:55 عصر
فکر نکنم توی دیتا گرید بشه یه همچین کاری کرد

csharpcollegian
چهارشنبه 08 اردیبهشت 1395, 08:26 صبح
سلام
دوست عزیز شما می تونید در رویداد CellPainting گریدویوتون این کار رو انجام بدید. بدین صورت که با استفاده از یک if سلولهایی که میخواید با هم ترکیب بشن رو مشخص می کنید و با حذف Border هاشون عمل Merge رو انجام میدید.
برای مثال در کد زیر من مشخص کردم که سلول سوم رکوردهای اول و دوم رو با هم Merge کنه :

private void GridView1_CellPainting(object sender, DataGridViewCellPaintingEventArgs e)
{
if (e.RowIndex == 0 && e.ColumnIndex == 2)
{
e.AdvancedBorderStyle.Bottom = DataGridViewAdvancedCellBorderStyle.None;
e.AdvancedBorderStyle.Top = DataGridViewAdvancedCellBorderStyle.None;
}
if (e.RowIndex == 1 && e.ColumnIndex == 2)
{
e.AdvancedBorderStyle.Top = DataGridViewAdvancedCellBorderStyle.None;
}
}
همونطور که میبینید من در این مثال دو سلول رو که به صورت عمودی با هم همسایه بودن ترکیب کردم، اگر تصمیم داشتید دو سلول که به صورت افقی همسایه هستند رو ترکیب کنید می تونید با تنظیم صفت های زیر این کار رو انجام بدید :

e.AdvancedBorderStyle.Right
e.AdvancedBorderStyle.Left
موفق باشید

ji ming u
چهارشنبه 08 اردیبهشت 1395, 14:25 عصر
سلام
دوست عزیز شما می تونید در رویداد CellPainting گریدویوتون این کار رو انجام بدید. بدین صورت که با استفاده از یک if سلولهایی که میخواید با هم ترکیب بشن رو مشخص می کنید و با حذف Border هاشون عمل Merge رو انجام میدید.
برای مثال در کد زیر من مشخص کردم که سلول سوم رکوردهای اول و دوم رو با هم Merge کنه :

private void GridView1_CellPainting(object sender, DataGridViewCellPaintingEventArgs e)
{
if (e.RowIndex == 0 && e.ColumnIndex == 2)
{
e.AdvancedBorderStyle.Bottom = DataGridViewAdvancedCellBorderStyle.None;
e.AdvancedBorderStyle.Top = DataGridViewAdvancedCellBorderStyle.None;
}
if (e.RowIndex == 1 && e.ColumnIndex == 2)
{
e.AdvancedBorderStyle.Top = DataGridViewAdvancedCellBorderStyle.None;
}
}
همونطور که میبینید من در این مثال دو سلول رو که به صورت عمودی با هم همسایه بودن ترکیب کردم، اگر تصمیم داشتید دو سلول که به صورت افقی همسایه هستند رو ترکیب کنید می تونید با تنظیم صفت های زیر این کار رو انجام بدید :

e.AdvancedBorderStyle.Right
e.AdvancedBorderStyle.Left
موفق باشید


من میخام دوتا سلول واقعا تبدیل به یک سلول بشن نه اینکه با حذف رنگ لبه ها بصورت ظاهری یکی بشن