- 題名: ボタンのクリックイベントの問題点
- 日時: 2004/02/14 0:40:27
- ID: 2506
- この記事の返信元:
- (なし)
- この記事への返信:
- [2514] Re[1]: ボタンのクリックイベントの問題点2004/02/14 16:35:51
- ツリーを表示
こんにちは、Yukiさん。ピラルクです。 ButtonのEnabledがFalseだったり、VisibleがFalseだったりすると Clickイベントは走らないようですね。PerformClickはユーザのClick をシミュレートするという感じで、ユーザがその時Click出来ない条件 ならPerformClickは何もしないみたい。 VB6以前でPerformClickに近いものとして、 Command1.Value = True 'VB6コード という書き方がありましたが、こちらはButtonの EnabledがFalseでも走っていました。 (今日はこんなことばかりしてますが...(^^;) Private Sub Form_Load() Command1.Value = True End Sub というVB6コードを、アップグレードウィザードにかけると、 Private Sub Form1_Load(... Command1.PerformClick() End Sub としてくれました。(/_;) (期待通りなコトを...) ▼Visual Basic .NET における CommandButton コントロールの変更点 http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/vbcon/html/vxconchangestooptionbuttoncontrolinvisualbasicnet.asp | Value 対応する項目はありません。 | PerformClick メソッドは、Value を true に設定するのと同じです。 | Value プロパティのその他の用途については、対応する項目はありません。 「……同じです」とありますが、全然同じじゃないですね。 個人的には、Buttonの状態も加えて判断してくれる PerformClickの動きは、有難く活用できるケースがありそう で好みです。無条件に呼びたいならYukiさんのコードのよう に呼べますから。よってBugではなく仕様でも良いのですが(私的には)、 何れにせよ、このドキュメントはいただけませんねぇ。
分類:[.NET]
ボタンのクリックイベントを発生させるに件に関してですが。
Button1.PerformClick()
を使用した場合、起動時に上記方法で呼び出した場合、イベントが発生しないボタンが出てきますのでご注意ください。
(マウスクリック後は問題なく動作しますけど)
この現象はランダムに発生するのではなく、起動後常に同じボタンで発生します。
対応策としては、下記の方法で問題なく動作します。
Dim e As System.EventArgs
Button155_Click("", e)