C#チェックボックスが別のフォームでチェックされているかどうかを確認するにはどうすればよいですか?
質問
C#を使用していますが、メインフォームのチェックボックスがオンになっているかどうかを確認したいので、コードを実行すると、問題はクラスファイル(フォームのないファイル、クラスファイルは正しいですか?)。これを行う最も簡単な方法は何ですか?
ありがとう ジェイミー
解決
最良のオプションは、 CheckBox
の Checked
値を公開する boolean
プロパティをフォームに作成することです。
public bool OptionSelected
{
get { return checkBox.Checked; }
set { checkBox.Checked = value; } // the set is optional
}
他のヒント
フォームへの参照が必要で、フォームはチェックボックス(またはチェックボックスを参照するプロパティ)を公開する必要があります。
この点では、UIプログラミングと非UIプログラミングに違いはありません。別のクラスの Person
インスタンスの Name
プロパティをどのように要求しますか?インスタンスへの参照を取得し、関連するプロパティを要求します。
だから、あなたは間違いなくフォームへの参照を必要とし、それは次のいずれかです:
bool checked = form.IsAdultCheckbox.Checked;
bool checked = form.IsAdult;
( IsAdult
プロパティが someCheckbox.Checked
を返す場所)
実際のプロパティ名はここでは間違っている可能性があります(例: Checked
は bool
を返さない場合があります)。
プロパティを使用してインターフェイスを定義し、フォームにインターフェイスを実装し、チェックボックスがオンになっている場合は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
}
}
}
個人的に、setやgetを使うのは好きではありません。私はこのようにしました:
if (checkBox.IsChecked.Equals(true))
{
//insert code here
}
これを使用することで問題なく動作します
if (Convert.ToBoolean(CheckBox1.IsChecked))
{
MessageBox.Show("true");
}
else
{
MessageBox.Show("false");
}
所属していません StackOverflow