C # Como posso verificar para ver se uma caixa de seleção está marcada em outra forma?
Pergunta
Eu estou usando C # e eu gostaria de verificar para ver se uma caixa de seleção no formulário principal está marcada e se assim for executar algum código, o problema é que eu estou em um arquivo de classe (arquivo com nenhuma forma, é arquivo de classe correto?). Qual é a maneira mais fácil de fazer isso?
Graças Jamie
Solução
A melhor opção é criar uma propriedade boolean
no formulário que expõe o valor Checked
do CheckBox
.
public bool OptionSelected
{
get { return checkBox.Checked; }
set { checkBox.Checked = value; } // the set is optional
}
Outras dicas
Você precisa de uma referência para o formulário e o formulário tem de expor a caixa de seleção (ou uma propriedade que consulta a caixa de seleção).
Não há nenhuma diferença entre a programação UI e programação não-UI a este respeito. Como iria pedir a propriedade Name
de uma instância Person
de uma classe diferente? Você deseja obter uma referência à instância, e pedir para a propriedade relevante.
Então, você definitivamente precisa de uma referência para o formulário e, em seguida, é um dos seguintes:
bool checked = form.IsAdultCheckbox.Checked;
bool checked = form.IsAdult;
(onde a propriedade IsAdult
voltaria someCheckbox.Checked
.)
Os nomes das propriedades reais podem ser errado aqui (por exemplo Checked
não pode retornar um bool
), mas eu espero que você começa a idéia.
Você pode definir uma interface com uma propriedade, tem a forma de implementar a interface e retornar true se a caixa está marcada, e passar uma instância desta interface para sua classe?
Por exemplo:
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
}
}
}
Pessoalmente, eu não gosto de usar set ou obter. Eu fiz isso como este:
if (checkBox.IsChecked.Equals(true))
{
//insert code here
}
Você pode usar isso funciona bem para mim
if (Convert.ToBoolean(CheckBox1.IsChecked))
{
MessageBox.Show("true");
}
else
{
MessageBox.Show("false");
}