读书人

datagridview 合并单元格有关问题

发布时间: 2013-07-01 12:33:04 作者: rapoo

datagridview 合并单元格问题
在这里看了些资料,
http://www.cnblogs.com/peterzb/archive/2009/05/29/1491891.html
使用rowmergeview做单元格合并和二维表头,
datagridview 合并单元格有关问题
前两列都可以,第三列数字列却合并不了,试了好久,有没有谁用过这个控件?指条明路啊!
下面是代码


private void dgvColumnsBindC()
{
this.rmvItem.EnableHeadersVisualStyles = false;
this.rmvItem.AutoGenerateColumns = false;
this.rmvItem.Columns.Clear();//列头清空下

Dictionary<string, string> dataText = new Dictionary<string, string>();
dataText.Add("ItemName", "考核类型");
dataText.Add("IName", "考核项目");
dataText.Add("Weights", "权重");
dataText.Add("Description", "考核明细");
dataText.Add("Scores", "分值");

foreach (KeyValuePair<string, string> kvp in dataText)
{
DataGridViewTextBoxColumn dgvc = new DataGridViewTextBoxColumn();
dgvc.DataPropertyName = kvp.Key;
dgvc.HeaderText = kvp.Value;
dgvc.Name = kvp.Key;
dgvc.ReadOnly = true;
if (kvp.Value == "权重" || kvp.Value == "分值") dgvc.DefaultCellStyle.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleRight;
if (kvp.Value == "考核类型" || kvp.Value == "考核项目") dgvc.DefaultCellStyle.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter;
if (kvp.Value == "考核明细") dgvc.DefaultCellStyle.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
dgvc.HeaderCell.Style.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter;//居中
dgvc.AutoSizeMode = DataGridViewAutoSizeColumnMode.None;
if (kvp.Value == "权重" || kvp.Value == "分值") dgvc.Width = 80;
if (kvp.Value == "考核类型" || kvp.Value == "考核项目") dgvc.Width = 150;


if (kvp.Value == "考核明细" ) dgvc.Width = 430;

this.rmvItem.Columns.Add(dgvc);
}

this.rmvItem.MergeColumnNames.Add("ItemName");
this.rmvItem.MergeColumnNames.Add("IName");
this.rmvItem.MergeColumnNames.Add("Weights");
}

rowmergeview 合并单元格 无效
[解决办法]
你的数字列是浮点型吧,浮点型很多都不能精确表示,这样你在判断单元格值是否相同时,就会出现问题,你可以对它进行格式化,对格式化后的内容进行判断

读书人网 >C#

热点推荐