C # Как проверить, установлен ли флажок в другой форме? - PullRequest
3 голосов
/ 11 сентября 2009

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

Спасибо Джейми

Ответы [ 5 ]

10 голосов
/ 11 сентября 2009

Лучший вариант - создать в форме свойство boolean, которое предоставляет значение Checked CheckBox.

public bool OptionSelected
{
    get { return checkBox.Checked; }
    set { checkBox.Checked = value; } // the set is optional
}
1 голос
/ 11 сентября 2009

Можете ли вы определить интерфейс со свойством, заставить форму реализовать интерфейс и вернуть true, если флажок установлен, и передать экземпляр этого интерфейса вашему классу?

Например:

interface IMyFormFlag
{
    bool IsChecked { get; }
}

public class MyForm : Form, IMyFormFlag
{
    CheckBox chkMyFlag;

    bool IsChecked { get { return chkMyFlag.Checked; } }
}

public class MyObject
{
    public void DoSomethingImportant(IMyFormFlag formFlag)
    {
        if (formFlag.IsChecked)
        {
            // do something here
        }
    }
}
1 голос
/ 11 сентября 2009

Вам нужна ссылка на форму, и форма должна содержать флажок (или свойство, которое обращается к флажку).

В этом отношении нет никакой разницы между программированием пользовательского интерфейса и программированием без пользовательского интерфейса. Как запросить свойство Name экземпляра Person из другого класса? Вы получите ссылку на экземпляр и запросите соответствующее свойство.

Так что вам определенно нужна ссылка на форму, а затем она одна из:

bool checked = form.IsAdultCheckbox.Checked;
bool checked = form.IsAdult; 

(где свойство IsAdult вернет someCheckbox.Checked.)

Фактические имена свойств могут быть здесь неправильными (например, Checked может не возвращать bool), но я надеюсь, что вы поняли.

0 голосов
/ 18 декабря 2013

вы можете использовать это, он прекрасно работает для меня

    if (Convert.ToBoolean(CheckBox1.IsChecked))
      {
         MessageBox.Show("true");
      }
    else
       {
         MessageBox.Show("false"); 
       }
0 голосов
/ 17 октября 2011

Лично я не люблю использовать set или get. Я сделал это так:

if (checkBox.IsChecked.Equals(true))
{
//insert code here
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...