我得到了最奇怪的错误,我绝对无能为力.我会在这里发布一些描述以及一些代码,希望你们其中一个人可以指出我正确的方向.
我的应用程序(Winforms)允许用户将项目添加到datagridview(绑定到列表),每次添加项目时,列表都会序列化为xml文件.最初启动应用程序时,程序会检查xml文件,如果找到,则将先前添加的项添加到dgv.
我还添加了一个DataGridViewButtonColumn来删除dgv(列表)中的项目.这是一些代码.
主要课程:
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new formFoldingClient());
}
Run Code Online (Sandbox Code Playgroud)
表单的构造函数调用此方法来初始设置dgv
private void InitialDataGridViewSetup()
{
dgvClients.DataSource = null;
//adding delete button column
DataGridViewButtonColumn btnDelete = new DataGridViewButtonColumn();
btnDelete.Name = "btnDelete";
btnDelete.Text = "Delete";
btnDelete.HeaderText = "Delete";
btnDelete.UseColumnTextForButtonValue = true;
btnDelete.DefaultCellStyle.BackColor = Color.DarkBlue;
btnDelete.DefaultCellStyle.ForeColor = Color.White;
dgvClients.Columns.Add(btnDelete);
RefreshDataGridView();
}
Run Code Online (Sandbox Code Playgroud)
每次添加或删除项目时,都会通过调用此方法刷新dgv:
private void RefreshDataGridView()
{
dgvClients.DataSource = null;
if (clientList.Count != 0)
{
dgvClients.DataSource = clientList;
dgvClients.Show();
dgvClients.ClearSelection();
}
}
Method that gets triggered when Delete button on a …Run Code Online (Sandbox Code Playgroud) 我使用一组DataGridViews(dgv)通过属性显示类的成员.我使用dgv,以便用户可以在视图中编辑成员的值(因此我不必显示用于编辑该值的表单或文本框).
我正在显示的类的结构如下
Class1 (Displayed in a list view)
Collection Of class2 (Displayed in a dgv, we'll call it dgv1)
Collection of class3 (Displayed in a dgv, we'll call it dgv2)
Run Code Online (Sandbox Code Playgroud)
Class3存在,因为字符串集合不会在dgv中显示为字符串.(长度显示在dgv中.
Class2和Class3具有我想在dgv中编辑的字符串属性,因此它们是dgv中显示的唯一值.
当我将class2或class3的新实例添加到它们各自的父类时,我重新绑定显示该集合的dgv.
添加类的新实例后,它出现在dgv中,但是如果我去选择值(通过在dgv中单击它)我得到一个异常,说明"索引-1没有值"
如果我将编辑的信息保存到表单中然后重新打开表单,则不会出现此问题.我之前无法编辑的值可以编辑而没有问题.