- PR -

ボタンのアクションイベントについて

投稿者投稿内容
sarah
常連さん
会議室デビュー日: 2006/02/08
投稿数: 32
投稿日時: 2006-03-07 16:13
ボタンを押下時に、Orchis(ランチャー)のような選択できるものが出力する
イベントというのは標準で存在するのでしょうか?

画面上にこれ以上ボタンを追加する余地がないので、ボタンを押下時に
そこでさらに選択メニューのようなものを出力できないかと考えています。
説明が分かりにくくてすいません。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-03-07 16:23
引用:

sarahさんの書き込み (2006-03-07 16:13) より:

ボタンを押下時に、Orchis(ランチャー)のような選択できるものが出力する
イベントというのは標準で存在するのでしょうか?


ボタン押下 == Click イベントですから必要ないですよね。(汎用性がありませんし)

引用:

画面上にこれ以上ボタンを追加する余地がないので、ボタンを押下時に
そこでさらに選択メニューのようなものを出力できないかと考えています。
説明が分かりにくくてすいません。


透明なウィンドウを使えば、実装可能だと思います。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
sarah
常連さん
会議室デビュー日: 2006/02/08
投稿数: 32
投稿日時: 2006-03-07 16:43
プルダウンメニューのようなものでよいのですが。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-03-07 16:51
引用:

sarahさんの書き込み (2006-03-07 16:43) より:

プルダウンメニューのようなものでよいのですが。


であれば、ContextMenu か何かでも良いんじゃないでしょうか。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
todo
ぬし
会議室デビュー日: 2003/07/23
投稿数: 682
投稿日時: 2006-03-07 17:03
VB6だとこんな感じで出来ます。

コード:
Private Sub Command1_Click()
    Me.PopupMenu Menu1 
End Sub

Private Sub Menu2_Click(Index As Integer) 
    MsgBox Index & "が選択されました"
End Sub

Menu1は非表示なメニュー
Menu2はMenu1のサブメニュー



.NETでは、PopupMenuメソッドが廃止されています。
ContextMenuクラスで出来るのかも。
sarah
常連さん
会議室デビュー日: 2006/02/08
投稿数: 32
投稿日時: 2006-03-07 17:45
ContextMenuというのは右クリック専用ですよね。
左クリックにも対応できるのでしょうか?

指定した位置に左クリックでポップアップメニューを出力
させるのは困難そうですね。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-03-07 17:48
引用:

sarahさんの書き込み (2006-03-07 17:45) より:

ContextMenuというのは右クリック専用ですよね。
左クリックにも対応できるのでしょうか?
指定した位置に左クリックでポップアップメニューを出力
させるのは困難そうですね。


まったく問題ありません。

コード:

    Private Sub Button1_Click(...) Handles Button1.Click
        Dim hContextMenu As ContextMenu

        Try
            hContextMenu = New ContextMenu()
            hContextMenu.MenuItems.Add("ほげほげ")
            hContextMenu.MenuItems.Add("ふーばー")
            hContextMenu.MenuItems.Add("ふがぴよ")

            hContextMenu.Show(Me.Button1, New Point(Me.Button1.Width, 0))
        Finally
            If Not hContextMenu Is Nothing Then
                hContextMenu.Dispose()
            End If
        End Try
    End Sub


_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
sarah
常連さん
会議室デビュー日: 2006/02/08
投稿数: 32
投稿日時: 2006-03-08 11:25
早速実装してみたところ確認できました。
ただボタンを連打すると
「'System.NullReferenceException' のハンドルされていない例外が
 不明なモジュールです。 で発生しました。
 追加情報 : オブジェクト参照がオブジェクト インスタンスに設定されていません。」

というエラーダイアログが出力するのですが、何か特別制御が必要なのでしょうか?

スキルアップ/キャリアアップ(JOB@IT)