Перезагрузить форму с разными аргументами c # - PullRequest
0 голосов
/ 24 июня 2018

Я довольно новичок в C #, и я делаю форму, которая должна перезагрузить себя, когда я нажимаю кнопку, но с другими входами.

public partial class Edit_Desloc : Form
{
    public Edit_Desloc(string id_desloc, string proj, string data, string horas)
    {
         ....
    }
}

Я использую это:

Edit_Desloc edit_desloc = new Edit_Desloc(list[0][0], list[4][0], list[1][0], list[3][0]);
edit_desloc.Show();

this.Close();

но это не очень хорошо.

Разве я не могу перезагрузить форму вместо того, чтобы закрыть ее и открыть снова?

1 Ответ

0 голосов
/ 24 июня 2018

Выполните рефакторинг вашего кода и создайте функцию LoadData, имеющую те же параметры, что и в конструкторе, и переместите логику в конструктор.Затем вызывайте метод всякий раз, когда вам нужно.

Допустим, у вас есть следующий код:

public partial class Edit_Desloc : Form
{
    public Edit_Desloc(string id_desloc, string proj, string data, string horas)
    {
        InitializeComponent();
        /* some other initialization based on parameters*/
    }
}

Переформулируйте его следующим образом:

public partial class Edit_Desloc : Form
{
    public Edit_Desloc(string id_desloc, string proj, string data, string horas)
    {
        InitializeComponent();
        LoadData(id_desloc, proj, data, horas);
    }

    public void LoadData(string id_desloc, string proj, string data, string horas)
    {
        /* some other initialization based on parameters*/
    }
}

Затем вызовите LoadData когда вам нужно, передавая параметры.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...