C1TrueDBGrid 冻结列功能,在冻结后正常还原可以实现,但是在重新绑定数据源以后,再还原Frozen属性,失效
先操作冻结功能->冻结成功->点击还原冻结功能->还原成功->继续冻结某一列->冻结成功->重新绑定原来的数据源->取消冻结列->还原失败。这时什么原理、详见代码using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using C1.Win.C1TrueDBGrid;
namespace C1Test
{
public partial class Form1 : Form
{
DataTable dt = new DataTable();
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
InitTable();
c1TrueDBGrid1.DataSource = dt;
}
public void InitTable()
{
dt.Clear();
for (int i = 0; i < 10; i++)
{
dt.Columns.Add((i + 1).ToString(), typeof(string));
}
for (int j = 0; j < 4; j++)
{
DataRow dr = dt.NewRow();
for (int i = 0; i < 10; i++)
{
dr = (i + 1) + "" + (i + 1);
}
dt.Rows.Add(dr);
}
}
private void button1_Click(object sender, EventArgs e)
{
if (c1TrueDBGrid1.DataSource == null)
return;
c1TrueDBGrid1.Splits.DisplayColumns.Frozen = true;
}
private void button2_Click(object sender, EventArgs e)
{
c1TrueDBGrid1.DataSource = null;
c1TrueDBGrid1.DataMember = null;
//InitTable();
c1TrueDBGrid1.DataSource = dt;
}
private void button3_Click(object sender, EventArgs e)
{
foreach (C1DisplayColumn item in c1TrueDBGrid1.Splits.DisplayColumns)
{
item.Frozen = false;
}
}
}
}
回复 1楼落幕的帖子
谢谢您的反馈。
这个问题我们已经重现了,推测是产品的bug,已经提交到产品组进行修复。
您可以暂时先在数据源更改之后,先将原来的冻结代码再次设置一遍,再取消冻结。
如果问题有修复或是新的反馈,我们会尽快通知您。
很抱歉给您带来不便。 回复 1楼落幕的帖子
BugID:139545。
如果产品修复或是其他更新,我们会尽快通知您。 回复 3楼Alice的帖子
比较忙,没来看回复,我本身也暂时解决了,思路和你所提供的一样。 回复 4楼落幕的帖子
谢谢您的反馈。
页:
[1]