积极答复者
bindingsource.addnew之后怎样给datatable当前行赋一些初始值?

问题
答案
-
你好!我写了个完整的示例,你看看。
using System; using System.Data; using System.Windows.Forms; namespace X.WinForms.UI.Controls.DataGridView { public partial class BindingSourceAddNew : Form { public BindingSourceAddNew() { InitializeComponent(); this.InitData(); this.InitUI(); } private void BindingSourceAddNew_Load(object sender, EventArgs e) { this.AddDemo(); } private System.Windows.Forms.DataGridView dataGridView1; private BindingSource bs; private DataTable dt; private void InitData() { this.dt = new DataTable(); this.dt.Columns.Add("Id", typeof(Guid)); this.dt.Columns.Add("Name", typeof(string)); this.dt.Rows.Add(new object[] { Guid.NewGuid(), "Name1" }); this.dt.Rows.Add(new object[] { Guid.NewGuid(), "Name2" }); this.bs = new BindingSource(this.dt, null); this.bs.AddingNew += new System.ComponentModel.AddingNewEventHandler(AddingNew); } private void AddingNew(object sender, System.ComponentModel.AddingNewEventArgs e) { // 添加默认行的方式 DataView view = (DataView)this.bs.List; DataRowView newobj = view.AddNew(); newobj["Id"] = Guid.NewGuid(); newobj["Name"] = "default"; e.NewObject = newobj; } private void InitUI() { this.dataGridView1 = new System.Windows.Forms.DataGridView(); this.dataGridView1.Dock = DockStyle.Fill; this.dataGridView1.DataSource = this.bs; this.Controls.Add(this.dataGridView1); } /// <summary> /// AddNew 测试 /// </summary> private void AddDemo() { for (int i = 0; i < 5; i++) this.bs.AddNew(); } } }
知识改变命运,奋斗成就人生!- 已建议为答案 SnakeWu 2010年3月1日 2:04
- 已标记为答案 KeFang Chen 2010年3月4日 5:35
全部回复
-
你好!我写了个完整的示例,你看看。
using System; using System.Data; using System.Windows.Forms; namespace X.WinForms.UI.Controls.DataGridView { public partial class BindingSourceAddNew : Form { public BindingSourceAddNew() { InitializeComponent(); this.InitData(); this.InitUI(); } private void BindingSourceAddNew_Load(object sender, EventArgs e) { this.AddDemo(); } private System.Windows.Forms.DataGridView dataGridView1; private BindingSource bs; private DataTable dt; private void InitData() { this.dt = new DataTable(); this.dt.Columns.Add("Id", typeof(Guid)); this.dt.Columns.Add("Name", typeof(string)); this.dt.Rows.Add(new object[] { Guid.NewGuid(), "Name1" }); this.dt.Rows.Add(new object[] { Guid.NewGuid(), "Name2" }); this.bs = new BindingSource(this.dt, null); this.bs.AddingNew += new System.ComponentModel.AddingNewEventHandler(AddingNew); } private void AddingNew(object sender, System.ComponentModel.AddingNewEventArgs e) { // 添加默认行的方式 DataView view = (DataView)this.bs.List; DataRowView newobj = view.AddNew(); newobj["Id"] = Guid.NewGuid(); newobj["Name"] = "default"; e.NewObject = newobj; } private void InitUI() { this.dataGridView1 = new System.Windows.Forms.DataGridView(); this.dataGridView1.Dock = DockStyle.Fill; this.dataGridView1.DataSource = this.bs; this.Controls.Add(this.dataGridView1); } /// <summary> /// AddNew 测试 /// </summary> private void AddDemo() { for (int i = 0; i < 5; i++) this.bs.AddNew(); } } }
知识改变命运,奋斗成就人生!- 已建议为答案 SnakeWu 2010年3月1日 2:04
- 已标记为答案 KeFang Chen 2010年3月4日 5:35