i want to merge two datagridview columns into one new column.
i first change Visible property of two col to false, then i try to add new col which that value must be
Try this (it works for me):
reportResultForm.dgvResult.Columns.Add("newColumn", "New Column");
foreach (DataGridViewRow row in reportResultForm.dgvResult.Rows)
{
string height= row.Cells["Height"].Value.ToString();
string width= row.Cells["Width"].Value.ToString();
string formattedCol= string.Format("{0} per {1}", height, width);
row.Cells["newColumn"].Value = formattedCol;
}
You can made your own implementation of the DataGridViewTextBoxCell and override GetFormattedValue method for it. There you can return the formatted value for your column below is an example:
// use custom DataGridViewTextBoxCell as columns's template
col.CellTemplate = new MyDataGridViewTextBoxCell();
...
// custom DataGridViewTextBoxCell implementation
public class MyDataGridViewTextBoxCell : DataGridViewTextBoxCell
{
protected override Object GetFormattedValue(Object value,
int rowIndex,
ref DataGridViewCellStyle cellStyle,
TypeConverter valueTypeConverter,
TypeConverter formattedValueTypeConverter,
DataGridViewDataErrorContexts context)
{
return String.Format("{0} per {1}",
this.DataGridView.Rows[rowIndex].Cells[0].Value,
this.DataGridView.Rows[rowIndex].Cells[1].Value);
}
}
hope this helps, regards