DOBON.NET DOBON.NETプログラミング掲示板過去ログ

Buttonコントロール

  • 題名: Buttonコントロール
  • 著者: a
  • 日時: 2005/08/16 17:19:02
  • ID: 12225
  • この記事の返信元:
    • (なし)
  • この記事への返信:
  • ツリーを表示
環境/言語:[XP VB.NET NET Framework1.1]
分類:[.NET]

早速質問いたします。

複数のbuttonコントロールを貼り付けたform(子画面)を
別のform(親画面)からShowDialogで読んだ場合に、
子画面側でbuttonコントロールの背景色がMuoseEnterでグレーに、
MouseLeaveで元に戻るという動きが、
おかしくなりMouseLeaveしても、元に戻らなくなってしまいました。

元々、親画面から呼ぶ度に子画面をNewして、子画面でCloseして
としていたところを、子画面のCloseをHideに変更して、
親画面ではLoad時、一度だけNewするよう変更してから、
上記現象発生しました。

同じような現象、遭遇されている方ありましたら、ご教示お願い致します。
■No12225に返信(aさんの記事)
> 早速質問いたします。
>
> 複数のbuttonコントロールを貼り付けたform(子画面)を
> 別のform(親画面)からShowDialogで読んだ場合に、
> 子画面側でbuttonコントロールの背景色がMuoseEnterでグレーに、
> MouseLeaveで元に戻るという動きが、
> おかしくなりMouseLeaveしても、元に戻らなくなってしまいました。
>
> 元々、親画面から呼ぶ度に子画面をNewして、子画面でCloseして
> としていたところを、子画面のCloseをHideに変更して、
> 親画面ではLoad時、一度だけNewするよう変更してから、
> 上記現象発生しました。
>
> 同じような現象、遭遇されている方ありましたら、ご教示お願い致します。
>

お世話になります。

↓ここに書かれているとおり、Hideメソッドは、非表示にするだけなので、
 前回表示した情報が残っているため、aさんの意図する通りにならないのでは?

http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/cpref/html/frlrfsystemwindowsformscontrolclasshidetopic.asp

子画面の初期化処理を、子画面をHideする前か、子画面Load時にやっておけば宜しいかと。
なおこさま。レス有難うございます。

あつかましく、重ねて質問です。
子画面の初期化、というのはどんな処理を指しておられのでしょうか?
特に、問題になっておりますButtonコントロールの初期化と
言うのが判りません。
よろしくお願い致します。

>
> お世話になります。
>
> ↓ここに書かれているとおり、Hideメソッドは、非表示にするだけなので、
>  前回表示した情報が残っているため、aさんの意図する通りにならないのでは?
>
> http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/cpref/html/frlrfsystemwindowsformscontrolclasshidetopic.asp
>
> 子画面の初期化処理を、子画面をHideする前か、子画面Load時にやっておけば宜しいかと。
> 子画面の初期化、というのはどんな処理を指しておられのでしょうか?

聞く相手間違ってます。
自分に聞いてください、あなたが実装してる初期処理のことですからね。

それと投稿前に最低限の推敲はしましょ。
誤字だらけだと、頼ってる感が満載ですよ。
ほげふーばー様。ご指摘有難うございます。
誤字に関しては、大変申し訳ありません。
気をつけます。

初期化の内容に関して
たとえば、TextBoxならばTextのクリアなどが
思い当たるのですが、Buttonコントロールの場合
それが思い当たらず、お伺いしました。
Load時にコントロールを生成するような組み方を
していないためでしょうか?


■No12229に返信(ほげふーばーさんの記事)
>>子画面の初期化、というのはどんな処理を指しておられのでしょうか?
>
> 聞く相手間違ってます。
> 自分に聞いてください、あなたが実装してる初期処理のことですからね。
>
> それと投稿前に最低限の推敲はしましょ。
> 誤字だらけだと、頼ってる感が満載ですよ。
>aさん

お世話になります。
aさんがNewした時に意図する動きとなったのであれば、
InitializeComponentでやっている事を
そのまま(というとちょっと語弊がありますが…)
やればよいのでは…??

たとえば、aさんがデザインモードで設定した
ボタンの各プロパティ等です。
なおこさま。毎々有難うございます。
InitializeComponentの中身をLoadにコピーして実行してみましたが
結果は同様でした。

引き続き、調査して、成功したらご報告いたします。
お時間頂き、有難うございました。

> InitializeComponentでやっている事を
> そのまま(というとちょっと語弊がありますが…)
> やればよいのでは…??
>
> たとえば、aさんがデザインモードで設定した
> ボタンの各プロパティ等です。
なおこ(・∀・)さんのおっしゃりたいことは、フォームが表示されたときにテキストボックスを初期化するということだと思いますが、LoadイベントはHideの後で再表示したときには発生しませんし、InitializeComponentを何回も呼び出すべきではありません。

テキストボックスを初期化するタイミングとしては、Hideを呼び出した後か、フォームのVisibleChangedイベントあたりが適当でしょう。どのような初期化を行うかに関しては、情報が与えられていないため、何とも言えません。どこが問題なのか、デバッグをして調べてみてください。
  • 題名: Re[8]: Buttonコントロール
  • 著者: なおこ(・∀・)
  • 日時: 2005/08/19 1:26:46
  • ID: 12259
  • この記事の返信元:
  • この記事への返信:
    • (なし)
  • ツリーを表示
■No12244に返信(管理人さんの記事)
> LoadイベントはHideの後で再表示したときには発生しませんし、

お世話になります。
確かにそうでした…(恥)
ごめんなさい。

DOBON.NET | プログラミング道 | プログラミング掲示板