C# 在网格顶部添加新行,而不使用行指示符

C# 在网格顶部添加新行,而不使用行指示符,c#,winforms,gridview,devexpress,C#,Winforms,Gridview,Devexpress,我有一个钮扣。当我单击它时,一个新行被添加到gridview中,并允许用户在该行中进行编辑。如何使新行显示在第一行中 它看起来像下面文章中最上面的一行,但不是 目前,我确实喜欢下面的代码。它有效,但不好。使用此解决方案时,滚动条也有问题。如果网格有许多行,则会显示滚动条。当添加新行时,栅格视图将有一点闪烁,因为 它移动焦点并滚动到最后一行->删除最后一行->在顶部添加新行->移动焦点并滚动到第一行 为了禁用滚动,我按照文章创建了一个自定义gridview。到现在为止,一直都还不错。但问题是我不

我有一个钮扣。当我单击它时,一个新行被添加到gridview中,并允许用户在该行中进行编辑。如何使新行显示在第一行中

它看起来像下面文章中最上面的一行,但不是

目前,我确实喜欢下面的代码。它有效,但不好。使用此解决方案时,滚动条也有问题。如果网格有许多行,则会显示滚动条。当添加新行时,栅格视图将有一点闪烁,因为

它移动焦点并滚动到最后一行->删除最后一行->在顶部添加新行->移动焦点并滚动到第一行 为了禁用滚动,我按照文章创建了一个自定义gridview。到现在为止,一直都还不错。但问题是我不想定制网格。有人知道吗

如果必须自定义网格,如何在设计模式下将MainView转换为自定义网格? -在设计模式下,单击网格视图的MainView,然后选择convert to…->自定义网格视图不会出现在菜单中

示例代码

private void AddNewRow(GridView gv) {
gv.AddNewRow();
var row = gv.GetRow(GridControl.NewItemRowHandle);

var helper = new ListDataControllerHelper(gv.DataController);

// Binding list has a method InserAt(index, object), but in my case the object can not be created directly.
// Hence, I do not know what it is. I only get new object through gv.AddNewRow()
// I can work around by extending binding list  
// but grid view does not support adding new row at specific position to adapt with InsertAt or my custom binding list 

// It is not a good idea
helper.BindingList.Remove(row); 
helper.BindingList.Insert(0, row); 
gv.FocusedRowHandle = 0;
gv.SetFocusedRowModified();
}
我将感谢所有的帮助。
谢谢

如果您只想添加一行而不自动更新布局,请尝试暂停并恢复布局,如下所示:


一般来说,插入行的方法似乎很好。

如果绑定列表有一个insertatindex、object方法,或者可以扩展为AddNewAtindex。但网格视图不支持在特定位置添加新行。我必须使用View.AddNewRow添加新行,除非忽略与添加网格新行相关的所有事件,例如InitNewRow。您知道如何在不使用网格视图的AddNewRow的情况下使用扩展绑定列表的新方法吗?对不起,我不理解这个问题:s。你在找什么?
gv.SuspendLayout();
helper.BindingList.Remove(row); 
helper.BindingList.Insert(0, row); 
gv.FocusedRowHandle = 0;
gv.SetFocusedRowModified();
gv.ResumeLayout(true);