C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[2]: TabControlに配置したバインドしたTextBoxの値


(過去ログ 23 を表示中)

[トピック内 5 記事 (1 - 5 表示)]  << 0 >>

■10441 / inTopicNo.1)  TabControlに配置したバインドしたTextBoxの値
  
□投稿者/ PPP (1回)-(2007/11/18(Sun) 03:09:29)

分類:[C#] 

Window2000 SP4 .NET2.0 VS2005 C# EXPRESS で開発しております。
下記のような現象が出ており困っております、何か解決のヒントをお願いします。

<現象>
TabControlに配置した、PropertyBindingでアプリケーション設定からデータバインドした
textBox1のTextプロパティが正しく取得できない。
textBox1に文字列が入っているが、textBox1.Text.Length == 0がtrueとなります。

<状況>
TabControlのTabPageを6つ追加し、TabPage内にはPanelやGroupBoxなど多用し様々なコントロールを配置してます。
その中で、TabPage(2)に配置したtextBox1のTextプロパティはPropertyBindingでアプリケーション設定からデータをバインドしています。
Formが表示された時にはデータがバインドされてtextBox1.Textに値が自動的に入ります。
Formを閉じるボタン押下時にtextBox1.Text.Lengthでチェックしてますが、値が入っていても上記現象になります。

引用返信 編集キー/
■10444 / inTopicNo.2)  Re[1]: TabControlに配置したバインドしたTextBoxの値
□投稿者/ Tesla (14回)-(2007/11/18(Sun) 09:12:07)
No10441 (PPP さん) に返信
> Formを閉じるボタン押下時にtextBox1.Text.Lengthでチェックしてますが、値が入っていても上記現象になります。

コードの提示がないので推測になりますが、Form.Closeの後にLengthを参照していませんか?

# そもそもLengthをチェックする理由がわかりませんが...

引用返信 編集キー/
■10455 / inTopicNo.3)  Re[2]: TabControlに配置したバインドしたTextBoxの値
□投稿者/ PPP (2回)-(2007/11/18(Sun) 14:06:49)
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を選択し「閉じる」と正常に値が取れます。

引用返信 編集キー/
■10461 / inTopicNo.4)  Re[1]: TabControlに配置したバインドしたTextBoxの値
□投稿者/ 魔界の仮面弁士 (523回)-(2007/11/18(Sun) 16:35:21)
No10441 (PPP さん) に返信
> TabControlに配置した、PropertyBindingでアプリケーション設定からデータバインドした
> textBox1のTextプロパティが正しく取得できない。

過去ログの
http://bbs.wankuma.com/index.cgi?mode=al2&namber=5245&KLOG=15
http://bbs.wankuma.com/index.cgi?mode=al2&namber=7001&KLOG=18
http://bbs.wankuma.com/index.cgi?mode=al2&namber=7749&KLOG=19
などにあるように、tabPage が(ユーザ操作 or Visible プロパティで)表示された後でないと、
正しくバインドされないのでしょう。
引用返信 編集キー/
■10463 / inTopicNo.5)  Re[2]: TabControlに配置したバインドしたTextBoxの値
□投稿者/ PPP (3回)-(2007/11/18(Sun) 17:07:10)
No10461 (魔界の仮面弁士 さん) に返信
> ■No10441 (PPP さん) に返信
>>TabControlに配置した、PropertyBindingでアプリケーション設定からデータバインドした
>>textBox1のTextプロパティが正しく取得できない。
>
> 過去ログの
> http://bbs.wankuma.com/index.cgi?mode=al2&namber=5245&KLOG=15
> http://bbs.wankuma.com/index.cgi?mode=al2&namber=7001&KLOG=18
> http://bbs.wankuma.com/index.cgi?mode=al2&namber=7749&KLOG=19
> などにあるように、tabPage が(ユーザ操作 or Visible プロパティで)表示された後でないと、
> 正しくバインドされないのでしょう。

魔界の仮面弁士 様

過去ログの通りの対応で解決いたしました。
今後はもう少し入念に過去ログ漁りするよう努めたいと思います。
本当に助かりました。ありがとうございました。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -