Как узнать, установлен ли флажок в другой форме? - PullRequest
0 голосов
/ 06 сентября 2018

Я начал проект на графическом интерфейсе для всех моих друзей, но я не могу понять, как читать логическое значение из другой формы. Это та часть моего кода. Я действительно новичок в кодировании, поэтому я бы действительно предложил (тот, кто читает это) задать вопрос, что я должен объяснить больше. Этот код не работает, но я понятия не имею, почему. Я делаю новые настройки с именем s, а затем пытаюсь прочитать логическое значение из настроек, но оно не работает.

// main form
 private void checkBox5_CheckedChanged(object sender, EventArgs e)
    {
        Settings s = new Settings();          
        {
            if(s.checkBox2.Checked)
            {
                Opacity = 0.9; //For an example

            }              
        }


// Settings form
private void checkBox2_CheckedChanged(object sender, EventArgs e)
    {

    }

1 Ответ

0 голосов
/ 06 сентября 2018

Одна вещь, которую вы могли бы сделать, это создать общедоступное свойство только для чтения, которое отражает значение флажка в форме Settings:

public partial class Settings : Form
{
    // This is a read-only property providing access to the Checked propery of a checkbox
    public bool CheckBoxIsChecked => checkBox2.Checked;

    // Rest of form code omitted...
}

Затем, когда вы создаете экземпляр формы Settings из формы Main, вы можете получить доступ к свойству.

Из вашего примера не ясно, когда вы хотите отобразить форму Settings, но вот пример, где она отображается модально (пользователь должен закрыть ее, чтобы вернуться к форме Main), и значение флажок снят:

public partial class MainForm : Form
{
    private void checkBox5_CheckedChanged(object sender, EventArgs e)
    {
        Settings settings = new Settings();
        settings.ShowDialog();

        // Here we can get the checked state of the checkbox on the Settings form
        if (settings.CheckBoxIsChecked)
        {
            Opacity = 0.9;
        }
    }

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