Winform C# dataGridViev

Хочу создать статическую переменную ,которая возвращает количество строк в таблице.

Ошибка: CS0120 Для нестатического поля, метода или свойства "Person.dataGridView1" требуется ссылка на объект.

Как исправить ошибку?

public static int person_count
{
    get =>dataGridView1.RowCount;
    set
    {
    }
}

Ответы (3 шт):

Автор решения: xantin

Это происходит из-за того, что переменная person_count статическая, а dataGridView1 не статический, одним из возможных способов решения является - сделать переменную не статической, то есть

было:public static int person_count.

стало:public int person_count.

Либо же делать dataGridView1 статическим, если переменная необходима статической.

→ Ссылка
Автор решения: Blackmeser
class Form1 : Form //основная форма
{
   //dataGridView1 в дизайнере
   button_click_createform(sender, arg)
   {
      Form2 f2 = new Form2(dataGridView1);
   }
}

class Form2 : Form //второстепенная форма
{
   DataGridView ref_dataGridView;
   int person_count => ref_dataGridView.RowCount; //вот тут нужные вам данные
   public Form2(DataGridView dataGridView)
   {
      ref_dataGridView = dataGridView;
   }
}
→ Ссылка
Автор решения: Mher Balayan

person_count сделайте не статическим:

public int person_count
{
    get =>dataGridView1.RowCount;
    set
    {
    }
}
→ Ссылка