У меня есть проект MVP, я пытаюсь отобразить выбранную строку в 3 текстовых поля и 1 флажок: я знаю, что могу сделать это из события CellClick так:
private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
{
int index = e.RowIndex;// get the Row Index
DataGridViewRow selectedRow = dataGridView1.Rows[index];
textBox1.Text = selectedRow.Cells[0].Value.ToString();
textBox2.Text = selectedRow.Cells[1].Value.ToString();
textBox3.Text = selectedRow.Cells[2].Value.ToString();
textBox4.Text = selectedRow.Cells[3].Value.ToString();
checkBox1.Checked = Convert.ToBoolean(selectedRow.Cells[4].Value);
}
Но я хочу вызвать его из другого класса, называемого Presenter, но получаю ошибки:
1. Имя «e» не существует в текущем контексте. 2. 'object' не содержит определения для 'Rows' и не может быть найден доступный метод расширения 'Rows', принимающий первый аргумент типа 'object' (вам не хватает директивы using или ссылки на сборку?) . 3. Невозможно неявно преобразовать тип «string» в «int».
Спасибо...
Салем, что я вижу в вашем коде, и на основании вашего объяснения у вас есть щелчок по событию, и вы хотите вызвать его из самого ведущего, поэтому я думаю, что это неправильный подход, я пойду путем извлечения метода из-за щелчка и вызова от ведущего нового метода, я думаю, вам понадобится способ получить индекс от ведущего и передать его в качестве аргумента.
private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
{
int index = e.RowIndex;// get the Row Index
CheckRowBoxByID(index);
}
void FillDataWithRowByID(int index){
DataGridViewRow selectedRow = dataGridView1.Rows[index];
textBox1.Text = selectedRow.Cells[0].Value.ToString();
textBox2.Text = selectedRow.Cells[1].Value.ToString();
textBox3.Text = selectedRow.Cells[2].Value.ToString();
textBox4.Text = selectedRow.Cells[3].Value.ToString();
checkBox1.Checked = Convert.ToBoolean(selectedRow.Cells[4].Value);
}
Это общий обзор, он может быть неправильным, но я пойду с разделением обязанностей. и из метода ведущего вызова ниже.
FillDataWithRowByID(withTheIntID);
В основном ошибки, которые вы получаете, потому что:
Надеюсь, это имеет смысл, Ура.
Что такое класс «Ведущий»? Вызвать метод
dataGridView1_CellClick
? Как ты это назвал? Не могли бы вы предоставить более конкретную информацию?