当我想更改datagridview的组合框时,它会自动更改同一datagridview的所有其他组合框
本文关键字:datagridview 组合 其他 | 更新日期: 2023-09-27 18:19:37
首先,我必须指出,我看到了这个问题,但它并没有帮助我解决问题。
根据我之前的问题,我将DataGridView
保存到了一个XML文件中。现在,当我使用存储在XML文件中的数据加载窗口表单时,我将填充DataGridView
。
我的问题是,当我想根据存储的数据设置一个ComboBox
的值时,另一个ComboBox
的值也会更改。我想分别设置每个ComboBox
的值。
我的代码如下:
private void WindowSelection_Load(object sender, EventArgs e)
{
dataGridSource = DeserializeFromXML();
foreach (WindowHolder obj in dataGridSource)
{
int index = dataGridViewWindowSelection.Rows.Add();
DataGridViewComboBoxColumn combo2 = new DataGridViewComboBoxColumn();
combo2 = (DataGridViewComboBoxColumn)dataGridViewWindowSelection.Rows[index].Cells["Reader"].OwningColumn;
combo2.DataSource = readerSource;
int readerSourceIndex = findReaderSourceIndex(obj.reader);
if (readerSourceIndex != -1)
{
combo2.DefaultCellStyle.NullValue = readerSource[readerSourceIndex];
}
else
{
combo2.DefaultCellStyle.NullValue = readerSource[0];
}
dataGridViewWindowSelection.Rows[index].Cells["Location"].Value = obj.location;
dataGridViewWindowSelection.Rows[index].Cells["AlwaysOnTop"].Value = obj.alwaysOnTop;
dataGridViewWindowSelection.Rows[index].Cells["AlwaysShow"].Value = obj.alwaysShow;
}
}
您是指更改combo2.DefaultCellStyle
的行吗?
之所以会发生这种情况,是因为combo2.DefaultCellStyle
引用了所有组合的默认单元格样式,所以您没有更改这一个组合,而是更改了常见的默认样式。
如果你想让这个组合的风格不同于默认的风格(也不同于其他组合的风格),你可能应该创建一个单独的风格,并将其设置为combo2的风格。
我想该语句应该类似于combo2.DefaultCellStyle = ...
或combo2.SetDefaultCellStyle( ... )