ぽざうねっと

ホーム 連絡をする 同期する ( RSS 2.0 ) Login
投稿数  420  : 記事  0  : コメント  9718  : トラックバック  76

ニュース

さて、今年は何を漬けようか

書庫

日記カテゴリ

Accessory

Community

Private

ここに ParentForm と ChildForm の二つの Form があります。

ParentForm と ChildForm にはそれぞれ Button が 1 つずつあります。
ParentForm の Button には、
private void Button_Click(object sender, EventArgs e)
{
    ChildForm child = new ChildForm();
    child.ShowDialog(this);
}
ChildForm の Button には、
private void Button_Click(object sender, EventArgs e)
{
    base.Owner.Enabled = false;
    base.Owner.Enabled = true;
}
がそれぞれ定義してあります。

ParentForm の Button を押すと、ChildForm がダイアログとして表示されます。
ダイアログですので、当然 ParentForm は操作不可能になります。
しかし、ChildForm の Button を押すと ParentForm が操作可能になります。
これは Enabled を true にするだけでは起こらず、false から true へと変化させることで起こります。
ちなみに .NET2.0 で作っても、Vista で動かしても同じ動きになるはず。
試したとき Vista はまだ RC だか β だかでしたが・・・

C++ で MFC とか VB をやったことがないので、これが正常な動作かわかりません。(勉強しないと;)
以前、特殊な要件を満たすためにこれを利用したんですが、バグ利用な気がして今でも後味がよろしくありません。
投稿日時 : 2006年11月21日 20:54

コメント

# re: ダイアログの親フォームを操作可能にする 2006/11/21 22:50 はつね
VB2005で確認しましたが、こうなりますね。
VB6だとなりませんでした。


# re: ダイアログの親フォームを操作可能にする 2006/11/21 23:15 かるあ
ほんとだ。。。


# re: ダイアログの親フォームを操作可能にする 2006/11/23 0:13 THREE-ONE
VB6だとならないってことはバグなのかなぁ?
まあ、意外と使う場面も・・・・ないか
これを使うようなときはたいてい設計がまずいでしょうな

Post Feedback

タイトル
名前
Url:
コメント: