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

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

ログ内検索
  • キーワードを複数指定する場合は 半角スペース で区切ってください。
  • 検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
  • [返信]をクリックすると返信ページへ移動します。
キーワード/ 検索条件 /
検索範囲/ 強調表示/ ON (自動リンクOFF)
結果表示件数/ 記事No検索/ ON
大文字と小文字を区別する

No.90070 の関連記事表示

<< 0 >>
■90070  Re[2]: ユーザーコントロールの使い方
□投稿者/ ルパン -(2019/02/04(Mon) 11:25:36)
    No90069 (魔界の仮面弁士 さん) に返信
    ありがとうございます。
    
    削除部分は以下のように変更しました。
    
    >ucTiem が Diposed となったときに、lblTime がまだ Disposed 状態でないことは
    >保証できているのでしょうか。
    保証できるようにするにはどうすればよいのでしょうか?
    
    フォームでは FormClose に入れていたのですが
    ユーザーコントロールではこれに該当するものがわからなかったので
    ネットで調べたら 「UserControl の後処理は Dispose で行う」とあったので、
    ユーザーコントロールのコンストラクタに
    this.Disposed += UcMakeAbilityTime_Disposed;
    を追加し Dispose のイベントに Properties への保存処理を入れました。
    
    現状以下のようになっています。
    
    frmMain.cs              ucTime.cs
    ┌──────┬─────────┐  ┌─────────┐
    │┌────┐│         │  │┌──┐┌───┐│
    ││btnTime ││         │  ││lbl ││btn  ││
    │└────┘│         │  ││Time││Close ││
    │      │         │  │└──┘└───┘│
    │pnlMain   │pnlSub      │  │UserControl    │
    └──────┴─────────┘  └─────────┘
    
    ≡ frMain.cs ≡
    private void Button_Click(object sender, EventArgs e)
    {
     SelectButton((Control)sender);
    }
    
    private void SelectButton(Control SelectButton)
    {
     while (pnlSub.Controls.Count > 0){
      pnlSub.Controls.Remove(pnlSub.Controls[0]);
      pnlSub.Controls[0].Dispose();
     }
     if (sender== btnTime) AddUserControl(new ucTime());
    }
    
    private void AddUserControl(Control cnt)
    {
     cnt.Dock = DockStyle.Fill;
     pnlSub.Controls.Add(cnt);
    }
    
    ≡ ucTime.cs ≡
    public ucTime()
    {
     InitializeComponent();
     this.Disposed += UcTime_Disposed;
    }
    
    private void UcMakeAbilityTime_Disposed(object sender, EventArgs e)
    {
     Properties.Settings.Default.ucMakeAbilityTime = lblTime.Text;
     Properties.Settings.Default.Save();
    }
    
    private void btnClose_Click(object sender, EventArgs e)
    {
     this.ParentForm.Close();     ←正しいかどうかわかりませんが、
    }                  この場合は正常に保存されている。
    
記事No.90068 のレス /過去ログ155より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -