datagridview DataGridViewColumn问题

windxx 2011-05-24 03:09:31
在DataGridView.DataSource = (DataTable)dt;
操作的时候DataGridView会自动创建相应的列并装载数据(显示)
请问,如果我有一个自己定义的MyDataGridViewColumn:DataGridViewColumn(实现了一些特殊的功能)
想通过DataSource = (DataTable)dt;这样的形式直接将Column声明为MyDataGridViewColumn,之后再装载数据(显示),应该如何做呢?谢谢!
...全文
225 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
窗户纸 2011-05-26
  • 打赏
  • 举报
回复
我试了试装载datasource,貌似没有问题呀。附代码:

public partial class Form1 : Form
{
DataTable _Table;

public Form1()
{
InitializeComponent();
_Table = new DataTable();
_Table.Columns.Add("A");
_Table.Columns.Add("B");
_Table.Columns.Add("C");
_Table.Rows.Add(new object[] { "A1", "B1", "C1" });
_Table.Rows.Add(new object[] { "A1", "B1", "C2" });
_Table.Rows.Add(new object[] { "A1", "B1", "C3" });
_Table.Rows.Add(new object[] { "A1", "B1", "C4" });
_Table.Rows.Add(new object[] { "A2", "B2", "C1" });
_Table.Rows.Add(new object[] { "A3", "B1", "C1" });
_Table.Rows.Add(new object[] { "A4", "B4", "C1" });
_Table.Rows.Add(new object[] { "A5", "B5", "C1" });
dataGridView1.AutoGenerateColumns = false;
MyColumn u= new MyColumn ();
u.CellTemplate = new DataGridViewTextBoxCell();
u.Name = "列A";
u.DataPropertyName = "A";
dataGridView1.Columns.Add(u);
dataGridView1.DataSource = _Table;
}
}

public class MyColumn : DataGridViewColumn
{
}
windxx 2011-05-26
  • 打赏
  • 举报
回复
手动的方法有问题,
1. 不能用datasource装载了,如果装载,将会创建若干同名column
2. 如果手动装载,那么慢(很多行的时候)
3. 手动装载好像要自己写数据关联(改变好像不能直接反应到datatable)
我也是在想是不是可以更改(重写什么的)dgv的一些方法或类,但是不知道具体要更改哪些。。。请高人指点
windxx 2011-05-26
  • 打赏
  • 举报
回复
果然如楼上仁兄所述,没有问题。。。我弄错了。。。多谢指点!呵呵,给分~
hwj3227 2011-05-24
  • 打赏
  • 举报
回复
学习。。。
lyy_0814 2011-05-24
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 qqamoon 的回复:]

先把 AutoGenerateColumns = false
然后手动添加 DataGridView.Columns.Add
[/Quote]

同意一楼的做法。
kingdom_0 2011-05-24
  • 打赏
  • 举报
回复
这个可麻烦了~
你应该得重写很多类
在后台 键入 DataGridView 右键,转到定义。看看相关的类。
龍过鸡年 2011-05-24
  • 打赏
  • 举报
回复
先把 AutoGenerateColumns = false
然后手动添加 DataGridView.Columns.Add

110,499

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧