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

VB.NETの画面遷移

  • 題名: VB.NETの画面遷移
  • 著者: fuel
  • 日時: 2010/03/10 14:24:54
  • ID: 26530
  • この記事の返信元:
    • (なし)
  • この記事への返信:
  • ツリーを表示
環境/言語:[WindowsXP,VB.NET]
分類:[.NET]

お世話になります。
fuelと申します。

現在画面遷移における以下のケースに苦慮しております。

以下のソースにおいてForm1のボタンを押下するとForm1を非表示にして
Form2を表示するようにしております。通常は問題は起きないのですが、
Form1のボタンを押下したと同時に続けてForm1上でボタンを連打したり
Form1の運動をDragしたりすると、Form1が非表示にならず、Form2も表示
されてしまいます。
恐らくForm1に対してイベントが発生している為、以下のAの個所の処理が
効かない(Me.Hideでも同じ)ように思います。
稀なケースではありますが、このように前画面が残ってしまうことに対して
何か有効な方法はありますでしょうか?

Public Class Form1
Private Sub Form1Btn_Click(〜) Handles Form1Btn.Click
   'ここでDB接続処理などを実行し、OKの場合、Form2に遷移
   Dim form2 As New Form2
Me.Visible = False @
frmMenu.Show() A
End Sub
End Class
画面遷移以前に、
イベント駆動型プログラミングの、
勉強をしていないだけでは?

Private Sub Form1Btn_Click

End Sub
で、
イベント処理中に、再度イベントが発生した場合の
処理を考えていないから、そうなるだけ。

A.イベント処理中に、再度イベントが発生しても、
  無効とするようにプログラムする。
B.イベントの抑止が必要な場合は、イベント処理中は、イベントを抑止する。
C.その他

A、Bどちらが良いかは、場合によります。
  • 題名: Re[2]: VB.NETの画面遷移
  • 著者: fuel
  • 日時: 2010/03/10 22:50:22
  • ID: 26534
  • この記事の返信元:
  • この記事への返信:
    • (なし)
  • ツリーを表示
通りすがり様、ご回答ありがとうございます。

ご回答頂いたように処理中にイベントを無効にすることが
対応できました。ありがとうございました。


■No26533に返信(通りすがりさんの記事)
> 画面遷移以前に、
> イベント駆動型プログラミングの、
> 勉強をしていないだけでは?
> ’
> Private Sub Form1Btn_Click
> :
> End Sub
> で、
> イベント処理中に、再度イベントが発生した場合の
> 処理を考えていないから、そうなるだけ。
>
> A.イベント処理中に、再度イベントが発生しても、
>   無効とするようにプログラムする。
> B.イベントの抑止が必要な場合は、イベント処理中は、イベントを抑止する。
> C.その他
>
> A、Bどちらが良いかは、場合によります。

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