チェックボックスがオンになったら、ラベルとテキストボックスをどのように表示するのか疑問に思っています。
私のプロジェクトでは、フォームが表示されると初期化コンポーネントの下のすべてが開始されることを知っているので、これを試してみます。
public Form2()
{
InitializeComponent();
if (checkBox1.Checked == true)
{
label9.Visible = true;
textBox4.Visible = true;
}
else
{
label9.Visible = false;
textBox4.Visible = false;
}
}
しかし、それは機能しないので、私はそれをwhile(true)ループに入れました。これは単なる無限ループです。
public Form2()
{
while (true)
{
InitializeComponent();
if (checkBox1.Checked == true)
{
label9.Visible = true;
textBox4.Visible = true;
}
else
{
label9.Visible = false;
textBox4.Visible = false;
}
}
}
しかし、それもうまくいきません。誰かが答えを知っているなら、私に知らせてください:)。
チェックボックスのcheckedchangedイベントを使用する必要があります。
そして、コンストラクターからそれを呼び出して、コントロールの状態を初期化します。
また、Checked
プロパティをプロパティに割り当てるだけで済みVisible
ます。
public Form2()
{
InitializeComponent();
checkBox1_CheckedChanged(checkBox1, EventArgs.Empty);
}
private void checkBox1_CheckedChanged(object sender, EventArgs e)
{
label9.Visible = checkBox1.Checked;
textBox4.Visible = checkBox1.Checked;
}
または、フォームの読み込みを使用して、コンストラクターをそのままにしておくこともできます。
public Form2()
{
InitializeComponent();
}
private void Form2_Load(object sender, EventArgs e)
{
checkBox1_CheckedChanged(checkBox1, EventArgs.Empty);
}
ただし、コンストラクターやフォームの読み込み、表示に無限ループを入れないでください。
そして、どこかに途切れることなくそのような無限ループを決して置かないでください...
それはその中のアプリケーションをフリーズします。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加