У меня проблема с моим представлением данных, когда при первом запуске кнопка удаления находится в последнем столбце, но каждый раз, когда я нажимаю кнопку удаления или добавления и вызываю эту функцию printdataview (). Кнопка находится на первый столбец
Эта функция сначала вызывается в Form1 (), затем вызывается каждый раз, я удаляю запись или добавляю запись. Я использую XML для хранения данных и добавления и удаления записей в соответствии с этим, printdataview () просто обновляет данные на нем ... и каким-то образом это портит, даже длина столбца теряется при первой инициализации просмотра данных и после.
Спасибо. Ценю обратную связь.
private void PrintDataView()
{
// clears the old data and repopulate it.
C_DB.DataSource = null;
XmlReader xmlFile;
xmlFile = XmlReader.Create(filename, new XmlReaderSettings());
DataSet ds = new DataSet();
ds.ReadXml(xmlFile);
if (ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0){
DataView dv = new DataView(ds.Tables[0]);
// first adds all rows after sorting today's list into datagridview
string Search = DateTime.Today.ToShortDateString();
dv.RowFilter = "DateTime LIKE '%" + Search + "%'";
dv.Sort = "DateTime ASC";
C_DB.DataSource = dv;
// then add the delete button if there is more than one row
if (dv.Count > 0 && C_DB.ColumnCount != 7 && C_DB.RowCount > 0)
{
// add button
DataGridViewButtonColumn btn = new DataGridViewButtonColumn();
C_DB.Columns.Add(btn);
btn.HeaderText = "Delete Row";
btn.Text = "Delete";
btn.Name = "btn";
btn.UseColumnTextForButtonValue = true;
}
// This scrolls to bottom
if (C_DB.RowCount > 10)
{
C_DB.FirstDisplayedScrollingRowIndex = C_DB.RowCount - 1;
}
}
else
{
C_ErrorMessage.Text = "No Data Found";
}
C_DB.Refresh();
xmlFile.Close();
}