合并两个datagridview列到一个新列

我想将两个datagridview列合并为一个新列.

我首先将两个col的Visible属性更改为false,然后我尝试添加新的col,该值的格式必须为col1Value和col2Value是以上列的值:

string.Format("{0} per {1}", col1Value, col2Value);

我的密码

reportResultForm.dgvResult.Columns["Height"].Visible = false;
reportResultForm.dgvResult.Columns["Width"].Visible = false;
DataGridViewColumn col = new DataGridViewColumn();
col.DefaultCellStyle.Format = "{0} per {1}";
col.CellTemplate = new DataGridViewTextBoxCell();
dgvResult.Columns.Add(col);

但是我不知道该怎么做!请帮我.我的方式是真的吗?

解决方法:

您可以自己实现DataGridViewTextBoxCell并为其覆盖GetFormattedValue方法.您可以在此处返回列的格式化值,下面是一个示例:

// 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);
    }
}

希望这会有所帮助,问候

上一篇:我如何模仿Windows资源管理器在DataGridView中的多选/拖放行为?


下一篇:c# – WinForms.如何在使用BindingNavigator时使DataGridView写入单元格值