Я знаю, что этот вопрос может быть дубликатом других, но я схожу с ума, пытаясь понять, что происходит. Моя программа загружает список файлов Excel, и когда я выбрал один из них, я могу выбрать, какой лист я хочу отобразить с помощью таблицы данных. Теперь, имея data_ListDisplay в качестве DatagridView, заполненного 211 строками: с помощью приведенного ниже кода я хотел бы найти colum.index первой ячейки в наборе строк в datagridview, которая имеет данную «строку», которая соответствует критериям поиска.
Однако row.count ВСЕГДА = 0.
Вчера все работало нормально (OF C было ..). Затем мне нужно было сделать представление данных PUBLI C, чтобы использовать данные внутри для заполнения другого списка (данные уточняются при заполнении), который принадлежит другому классу. Код в порядке, без ошибок, и строка, которую я использовал для создания data_listDisplay pupli c, равна
public DataGridView DataGridCR { get { return data_ListDisplay; } }
Здесь и далее фрагмент кода (в исходном коде 2 конструкции foreach принадлежит к 2 закрытым методам, которые вычисляют переменные CrAnalysedCol и CrRealisedCol. Я помещаю их в один и тот же метод для быстрого копирования / вставки здесь)
private void cbo_List_SelectedIndexChanged(object sender, EventArgs e)
{
//Fill data_ListDisplay with the data set (datagridview) by changing the combobox value
dt = tablecollection[this.cbo_List.SelectedItem.ToString()];
data_ListDisplay.DataSource = dt;
label3.Text = ($"Column Count{data_ListDisplay.Columns.Count}/Row Count {data_ListDisplay.Rows.Count}"); //Debug Purpose
foreach (DataGridViewRow row in data_ListDisplay.Rows)
{
foreach (DataGridViewCell cell in row.Cells)
{
if (cell.Value.ToString().Contains("CR to validate"))
{
CrRealisedCol = cell.ColumnIndex;
}
}
}
foreach (DataGridViewRow row in data_ListDisplay.Rows)
{
foreach (DataGridViewCell cell in row.Cells)
{
if (cell.Value.ToString().Contains("CR analysed"))
{
CrAnalysedCol = cell.ColumnIndex;
}
}
}
}
где: cbo_List - это комбинированный список, который заполняется всеми листами в выбранная книга, а также CrAnalysedCol и CrRealisedCol также объявлены как publi c.
label3.Text всегда корректен с учетом количества столбцов и строк.
Может ли кто-нибудь помочь мне в этом ?
Заранее спасибо
РЕДАКТИРОВАТЬ 05/03/2020 Выглядит так, когда я пытаюсь получить доступ к DataGridView из другого класса использование
Form_VVTool formmain = new Form_VVTool();
dt становится равным нулю. Я предполагаю, что это происходит из-за InitializeComponent (), который вызывается каждый раз, когда выполняется вышеуказанный код. Что может быть способом сохранить все из Form_VVTool? Еще раз спасибо