idShura
@idShura

Как сделать метод для разных форм?

Подскажите, правильно ли я делаю?

В приложении есть несколько форм. На каждой форме присутствует DataGridView. С каждым DataGridView мне нужно выполнить однотипный набор действий. Для того чтобы не дублировать код в формах, я создал класс Main и в каждой форме создаю экземпляр этого класса.

class Main
    {
        public void defaultSettingDataGridView(Control c)
        {
            if (c.GetType() == typeof(DataGridView))
            {
                DataGridView dgv = c as DataGridView;

                SetDoubleBuffered(dgv, true);

                dgv.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
                dgv.AllowUserToAddRows = false;

                // ...
            }
        }

        private void example(Control c, bool value)
        {
            // ...
        }
    }


public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }


        private void Form1_Load(object sender, EventArgs e)
        {
            Main m = new Main();
            m.defaultSettingDataGridView(dataGridView1);
        }

    }
  • Вопрос задан
  • 201 просмотр
Решения вопроса 1
@cicatrix
было бы большой ошибкой думать
Проще сделать отдельный класс (можно статический), в нём сделать метод, который бы принимал на вход в качестве параметра ссылку на ваш DataGridView, да и делал бы с ним, что нужно.

internal static class Helper
{
      internal static void SetUpGridView(DataGridView dgv)
     {
       // ... делайте всё здесь
     }
} // class Helper

Ну а в классе формы просто:
Helper.SetUpGridView(this.DataGridView1);
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@lvv85
Можно написать метод расширения для DataGridView.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы