C#DataGridView列中的意外行为

C#DataGridView列中的意外行为,c#,windows,visual-studio-2015,datagridview,C#,Windows,Visual Studio 2015,Datagridview,使用VisualStudio,我创建了一个数据网格视图,允许用户修改一些数据。不幸的是,当应用程序作为可执行文件发布时,此表单似乎在新列中添加数据,而不是使用指定的列。像这样: 错误如下 我无法在调试模式下复制错误,但下面是它的实际外观 预期行为如下所示 下面是创建和填充gridview的部分代码 //child name column DataGridViewTextBoxColumn nameColumn = new DataGridViewTextBox

使用VisualStudio,我创建了一个数据网格视图,允许用户修改一些数据。不幸的是,当应用程序作为可执行文件发布时,此表单似乎在新列中添加数据,而不是使用指定的列。像这样:

错误如下

我无法在调试模式下复制错误,但下面是它的实际外观

预期行为如下所示

下面是创建和填充gridview的部分代码

        //child name column
        DataGridViewTextBoxColumn nameColumn = new DataGridViewTextBoxColumn();
        nameColumn.Name = "cName";
        nameColumn.HeaderText = "Child Name";
        nameColumn.DataPropertyName = "cName";
        nameColumn.ReadOnly = true;
        dataGridView.Columns.Add(nameColumn);

        //child layer column
        var LayerColumn = new DataGridViewComboBoxColumn();
        LayerColumn.Name = "cLayer";
        LayerColumn.HeaderText = "Child Layer";
        LayerColumn.DataPropertyName = "cLayer";
        LayerColumn.AutoComplete = true;
        LayerColumn.ValueMember = "cLayer";
        LayerColumn.ValueType = typeof(string);
        dataGridView.Columns.Add(LayerColumn);

        // parent name column
        DataGridViewTextBoxColumn parentColumn = new DataGridViewTextBoxColumn();
        parentColumn.HeaderText = "Parent Name";
        parentColumn.Name = "cParent";
        parentColumn.DataPropertyName = "cParent";
        parentColumn.ReadOnly = true;
        dataGridView.Columns.Add(parentColumn);

        //parent layer column
        var pLayerColumn = new DataGridViewComboBoxColumn();
        pLayerColumn.Name = "pLayer";
        pLayerColumn.HeaderText = "Parent Layer";
        pLayerColumn.DataPropertyName = "pLayer";
        pLayerColumn.AutoComplete = true;
        pLayerColumn.ValueMember = "pLayer";
        pLayerColumn.ValueType = typeof(string);
        dataGridView.Columns.Add(pLayerColumn);

        //child name column
        DataGridViewTextBoxColumn nameColumn2 = new DataGridViewTextBoxColumn();
        nameColumn2.Name = "cName";
        nameColumn2.HeaderText = "Feat 1 Name";
        nameColumn2.DataPropertyName = "cName";
        nameColumn2.ReadOnly = true;
        dataGridView1.Columns.Add(nameColumn2);

        //child layer column
        var LayerColumn2 = new DataGridViewComboBoxColumn();
        LayerColumn2.Name = "cLayer";
        LayerColumn2.HeaderText = "Feat 1 Layer";
        LayerColumn2.DataPropertyName = "cLayer";
        LayerColumn2.AutoComplete = true;
        LayerColumn2.ValueMember = "cLayer";
        LayerColumn2.ValueType = typeof(string);
        dataGridView1.Columns.Add(LayerColumn2);

        // parent name column
        DataGridViewTextBoxColumn parentColumn2 = new DataGridViewTextBoxColumn();
        parentColumn2.HeaderText = "Feat 2 Name";
        parentColumn2.Name = "cParent";
        parentColumn2.DataPropertyName = "cParent";
        parentColumn2.ReadOnly = true;
        dataGridView1.Columns.Add(parentColumn2);

        //parent layer column
        var pLayerColumn2 = new DataGridViewComboBoxColumn();
        pLayerColumn2.Name = "pLayer";
        pLayerColumn2.HeaderText = "Feat 2 Layer";
        pLayerColumn2.DataPropertyName = "pLayer";
        pLayerColumn2.AutoComplete = true;
        pLayerColumn2.ValueMember = "pLayer";
        pLayerColumn2.ValueType = typeof(string);
        dataGridView1.Columns.Add(pLayerColumn2);

        _p = new Processor(this);

        _characteristicViewModels = new BindingList<RelativeCharacteristicViewModel>();

        dataGridView.DataSource = _characteristicViewModels;

        foreach (var c in characteristics)
        {
            foreach (var d in c.Value)
            {
                _characteristicViewModels.Add(new RelativeCharacteristicViewModel
                {
                    cName = c.Key.name,
                    cLayer = c.Key.layer,
                    cParent = d.name,
                    pLayer = d.layer
                });
            }
        }

        DataGridViewComboBoxColumn cLayerColumn = dataGridView.Columns["cLayer"] as DataGridViewComboBoxColumn;
        if (cLayerColumn != null)
        {
            layers.ForEach(p => cLayerColumn.Items.Add(p));
        }

        DataGridViewComboBoxColumn parentLayerColumn = dataGridView.Columns["pLayer"] as DataGridViewComboBoxColumn;
        if (parentLayerColumn != null)
        {
            layers.ForEach(p => parentLayerColumn.Items.Add(p));
        }

        _p = new Processor(this);

        _characteristicViewModels2 = new BindingList<RelativeCharacteristicViewModel>();

        dataGridView1.DataSource = _characteristicViewModels2;

        foreach (var c in characteristics2)
        {
            foreach (var d in c.Value)
            {
                _characteristicViewModels2.Add(new RelativeCharacteristicViewModel
                {
                    cName = c.Key.name,
                    cLayer = c.Key.layer,
                    cParent = d.name,
                    pLayer = d.layer
                });
            }
        }

        DataGridViewComboBoxColumn cLayerColumn2 = dataGridView1.Columns["cLayer"] as DataGridViewComboBoxColumn;
        if (cLayerColumn2 != null)
        {
            layers.ForEach(p => cLayerColumn2.Items.Add(p));
        }

        DataGridViewComboBoxColumn parentLayerColumn2 = dataGridView1.Columns["pLayer"] as DataGridViewComboBoxColumn;
        if (parentLayerColumn2 != null)
        {
            layers.ForEach(p => parentLayerColumn2.Items.Add(p));
        }
//子名称列
DataGridViewTextBoxColumn nameColumn=新DataGridViewTextBoxColumn();
nameColumn.Name=“cName”;
nameColumn.HeaderText=“子名称”;
nameColumn.DataPropertyName=“cName”;
nameColumn.ReadOnly=true;
dataGridView.Columns.Add(nameColumn);
//子层列
var LayerColumn=新的DataGridViewComboxColumn();
LayerColumn.Name=“cLayer”;
LayerColumn.HeaderText=“子层”;
LayerColumn.DataPropertyName=“cLayer”;
LayerColumn.AutoComplete=true;
LayerColumn.ValueMember=“cLayer”;
LayerColumn.ValueType=类型(字符串);
dataGridView.Columns.Add(LayerColumn);
//父名称列
DataGridViewTextBoxColumn parentColumn=新DataGridViewTextBoxColumn();
parentColumn.HeaderText=“父名称”;
parentColumn.Name=“cParent”;
parentColumn.DataPropertyName=“cParent”;
parentColumn.ReadOnly=true;
dataGridView.Columns.Add(parentColumn);
//父层列
var pLayerColumn=新的DataGridViewComboxColumn();
pLayerColumn.Name=“pLayer”;
pLayerColumn.HeaderText=“父层”;
pLayerColumn.DataPropertyName=“播放器”;
pLayerColumn.AutoComplete=true;
pLayerColumn.ValueMember=“玩家”;
pLayerColumn.ValueType=类型(字符串);
dataGridView.Columns.Add(pLayerColumn);
//子名称列
DataGridViewTextBoxColumn nameColumn2=新DataGridViewTextBoxColumn();
nameColumn2.Name=“cName”;
nameColumn2.HeaderText=“专长1名称”;
nameColumn2.DataPropertyName=“cName”;
nameColumn2.ReadOnly=true;
dataGridView1.Columns.Add(nameColumn2);
//子层列
var LayerColumn2=新的DataGridViewComboxColumn();
LayerColumn2.Name=“cLayer”;
LayerColumn2.HeaderText=“专长1层”;
LayerColumn2.DataPropertyName=“cLayer”;
LayerColumn2.AutoComplete=true;
LayerColumn2.ValueMember=“cLayer”;
LayerColumn2.ValueType=typeof(字符串);
dataGridView1.Columns.Add(LayerColumn2);
//父名称列
DataGridViewTextBoxColumn parentColumn2=新DataGridViewTextBoxColumn();
parentColumn2.HeaderText=“专长2名称”;
parentColumn2.Name=“cParent”;
parentColumn2.DataPropertyName=“cParent”;
parentColumn2.ReadOnly=true;
dataGridView1.Columns.Add(parentColumn2);
//父层列
var pLayerColumn2=新的DataGridViewComboxColumn();
pLayerColumn2.Name=“pLayer”;
pLayerColumn2.HeaderText=“专长2层”;
pLayerColumn2.DataPropertyName=“播放器”;
pLayerColumn2.AutoComplete=true;
pLayerColumn2.ValueMember=“玩家”;
pLayerColumn2.ValueType=typeof(字符串);
dataGridView1.Columns.Add(pLayerColumn2);
_p=新处理器(此);
_characteristicViewModels=新绑定列表();
dataGridView.DataSource=\u characteristicViewModels;
foreach(特性中的var c)
{
foreach(c.值中的var d)
{
_特性视图模型。添加(新的相对特性视图模型
{
cName=c.Key.name,
克莱尔=c.关键层,
cParent=d.name,
玩家=d层
});
}
}
DataGridViewComboBoxColumn cLayerColumn=dataGridView.Columns[“cLayer”]作为DataGridViewComboxColumn;
如果(cLayerColumn!=null)
{
layers.ForEach(p=>cLayerColumn.Items.Add(p));
}
DataGridViewComboxColumn parentLayerColumn=dataGridView.Columns[“播放器”]作为DataGridViewComboxColumn;
如果(parentLayerColumn!=null)
{
layers.ForEach(p=>parentLayerColumn.Items.Add(p));
}
_p=新处理器(此);
_characteristicViewModels2=新绑定列表();
dataGridView1.DataSource=\u characteristicViewModels2;
foreach(特性2中的变量c)
{
foreach(c.值中的var d)
{
_特征视图模型2.添加(新的相对特征视图模型
{
cName=c.Key.name,
克莱尔=c.关键层,
cParent=d.name,
玩家=d层
});
}
}
DataGridViewComboxColumn cLayerColumn2=dataGridView1.Columns[“cLayer”]作为DataGridViewComboxColumn;
如果(cLayerColumn2!=null)
{
layers.ForEach(p=>cLayerColumn2.Items.Add(p));
}
DataGridViewComboxColumn parentLayerColumn2=dataGridView1.Columns[“pLayer”]作为DataGridViewComboxColumn;
如果(parentLayerColumn2!=null)
{
layers.ForEach(p=>parentLayerColumn2.Items.Add(p));
}