2011-08-17 115 views

回答

2

UserAddedRow事件在添加行后被触发。你不能使用它来添加一些东西,因为它已经被添加了,因为它会触发after somethign。

根据MSDN:

当用户已经完成添加行到DataGridView 控制时发生。

+0

谢谢你,我该如何添加一个新行然后呢? – user609511

+0

我会说像通过MSDN示例使用数据绑定通过数据绑定。看看这里:http://msdn.microsoft.com/en-us/library/system.windows.forms.datagrid.aspx。顺便阅读整篇文章,不仅仅是代码示例。 – Tigran

+0

感谢您的回复,但我如何检索行的新值?事件中的 – user609511

1

如果您未使用数据绑定,则必须手动添加列和行。

dgvApplications.Columns.Add("Col1", "Column 1"); 
dgvApplications.Columns.Add("Col2", "Column 2"); 
dgvApplications.Rows.Add("Col1Value", "Col2Value"); 

但数据绑定通常是更好的选择。

BindingList<Application> applications = new BindingList<Application>(); 
dgvApplications.DataSource = applications; 
// set AutoGenerateColumns to false and manually add columns to get pretty column names. 
// set AutoGenerateColumns to true to not worry about adding columns in early prototyping 
dgvModules.AutoGenerateColumns = true; 

这时如果Application工具INotifyPropertyChanged你可以做这样的事情:

applications.Add(new Application{ File="blah.txt" }; 

属性更改通知允许当底层模型更改网格自动更新。

数据绑定选项有助于将GUI与数据分离。 如果您需要重新设计GUI或添加辅助界面(如Web或电话应用程序),“模型 - 视图 - 控制器”设计模式将在以后帮助您。 http://msdn.microsoft.com/en-us/library/ff649643.aspx