|
■No10444 (Tesla さん) に返信
> ■No10441 (PPP さん) に返信
>>Formを閉じるボタン押下時にtextBox1.Text.Lengthでチェックしてますが、値が入っていても上記現象になります。
>
> コードの提示がないので推測になりますが、Form.Closeの後にLengthを参照していませんか?
>
> # そもそもLengthをチェックする理由がわかりませんが...
>
Tesla様
LengthのチェックはDispose()の前に行なっています。
Lengthを確認しているのは、textBox1の値を必須項目としたい為、未入力ならアラート出すようにしたい為です。(Text==""でも構いません)
***Form1側***
//From2表示ボタン
private void button1_Click(object sender, EventArgs e) {
Form2 frm = new Form2();
frm.ShowDialog();
}
***Form2側***
最初の投稿でTabPageを6つと書きましたが、2つでも現象出ますので以下の設定とします。
TabPage1の中にtextBox1を配置
TabPage2の中にtextBox2を配置
//From2の閉じるボタン
private void button1_Click(object sender, EventArgs e) {
if (textBox1.Text.Length == 0) {
MessageBox.Show("Textが空です。入力を確認してください。");
return;
}
TabCrlTst.Properties.Settings.Default.Save();
this.Dispose();
}
***現象が出る状況***
1.アクティブ(表示中)以外のTabPageに配置したtextBoxの入力値が取れません。
たとえば、TabPage1を選択しており、TabPage2に配置したtextBox2の値が取れません。
2.From2表示時に既に(textBox1とtextBox2に)値が入っている場合、何も操作せず即From2の「閉じる」押すと正常に値が取れます=アラート出ません。
3.From2表示時に既に(textBox1とtextBox2に)値が入っている場合で、textBox1の値のみ編集しFrom2の「閉じる」押すとtextBox2の値が取れません。
この時、閉じる前にTabPage2を選択し「閉じる」と正常に値が取れます。
|