Win формы, как назначить метод для переключателя при проверке - PullRequest
0 голосов
/ 30 мая 2019

Я новичок в c # и формах Win, поэтому, пожалуйста, будьте терпеливы со мной.

У меня есть электронные кнопки, которые были написаны программно.Я хочу обновить значение какой кнопки проверено.Вот код для одной из кнопок

        RadioButton cab = new RadioButton();
        cab.Text = m_appContext.L10nManager.TranslateString("Modern");
        cab.Name = "Modern";
        cab.Location = new Point(15, 45);
        cab.AutoSize = true;

Я хочу назначить «метод» при его проверке.Итак, я добавляю это к моей радио-кнопке:

ca.Checked = m_appContext.EWSMode;

Вот код для EWSMode:

    public enum EWSMode { Auto = 0, EWS = 1, Classical = 2 };
    EWSMode m_EWSMode = EWSMode.Auto;
    public EWSMode EWSMode
    {
        get { return m_EWSMode; }
        set { m_EWSMode = value; }
    }

В зависимости от того, какая радио-кнопка выбрана, я хочу установить m_EWSMode к этому значению.Поэтому по умолчанию

EWSMode m_EWSMode = EWSMode.Auto;

Когда, скажем, выбран радиокнопка EWS, я хочу установить m_EWSMode на EWS

В какой момент я должен установить / передать новое значениек моему перечислению EWSMode и как мне это сделать?enter image description here

1 Ответ

1 голос
/ 30 мая 2019

Вы должны использовать EventHandler, например так:

ca.Checked += new System.EventHandler(EWSMode);

Обратите внимание, что EWSMode должен иметь правильную подпись, принимая object и EventArgs в качестве параметров:

private void EWSMode(object sender, EventArgs e)

Если вы хотите установить значение переменной в соответствии с выбранной проверкой, вы можете подписать их обоих на обработчик событий:

ca1.Checked += new System.EventHandler(EWSMode_Event);
ca2.Checked += new System.EventHandler(EWSMode_Event);

И затем поместить логику в EWSMode_Event:

private void EWSMode_Event(object sender, EventArgs e)
{
//When ca1 or ca2 gets checked, this event will be triggered. Here, you would
//set your m_EWSMode variable.
}

Вы можете сделать то же самое, используя одно событие для каждого CheckBox:

ca1.Checked += new System.EventHandler(EWSMode_Event);

private void EWSMode_Event(object sender, EventArgs e)
{
    //When ca1 gets checked, this event will be triggered.

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