相关疑难解决方法(0)

Index-1没有值

我得到了最奇怪的错误,我绝对无能为力.我会在这里发布一些描述以及一些代码,希望你们其中一个人可以指出我正确的方向.

我的应用程序(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)

c# datagridview winforms

12
推荐指数
1
解决办法
9979
查看次数

DataGridView对象数据绑定问题"索引-1没有值"

我使用一组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没有值"

如果我将编辑的信息保存到表单中然后重新打开表单,则不会出现此问题.我之前无法编辑的值可以编辑而没有问题.

c# datagridview winforms

4
推荐指数
1
解决办法
5475
查看次数

标签 统计

c# ×2

datagridview ×2

winforms ×2