VB6のコマンドボタン右クリックで項目表示するには?


オアシス  2004-12-06 19:16:14  No: 87151  IP: [192.*.*.*]

初めまして。
コマンドボタン上での右クリックで項目を表示し選択を行いたいのですが
可能でしょうか?
例)1:ON
   2:OFF
   を表示し選択するような形です。

宜しくお願いします。

編集 削除
名無しの☆@UCC  2004-12-06 21:29:23  No: 87152  IP: [192.*.*.*]

MouseDownイベントでクリックしたボタンを取得してください。
それから、ポップアップメニューを出すメソッド・・・、ってなんだったかしら?

このくらいであれば、誰にも聞かずに自分で調べたなんて人が、
この掲示板には多いので注意されないうちに気をつけてください。

てーか、右クリックでONOFF切り替え、左クリックで処理、なんてすると、
えれぇ使い難いウィンドウになりそうですが。
凹んだ状態のコマンドボタンの表示ってかなり面倒だったと思う。
それだったら、ラベルかチェックボックスのほうが楽かもですよ。

僭越ながら。

編集 削除
java.lang.Nullpo  2004-12-07 11:14:14  No: 87153  IP: [192.*.*.*]

私もやったことないけど、すぐできました。

Private Sub cmdHoge_MouseDown(ry
    If iButton = MouseButtonConstants.vbRightButton Then
        Call Me.PopupMenu(mnuHoge)
    End If
End Sub

ちゃんと調べれば解決しますので、Googleなどを使って検索してください。
PopupMenu() メソッドがわからなかったか、
イベントでのボタンの定数がわからなかっただけかと思います。

私も、名無しの☆@UCC さんの意見には同意です。
そんな直感でわからないのは、GUIの癌ではないでしょうか?
直感でわからないものは、ユーザフレンドリとは言えないかと。

編集 削除
たくみ  2004-12-10 22:13:08  No: 87154  IP: [192.*.*.*]

横から、しかもタイムリーでなく、すみません。

あの〜、管理人でもないので言うのもなんなのですが
オアシスさん、なぜ、レスを入れないのでしょう?
なんかこのごろ(前から?)多すぎると思うんですが、
「聞きっぱなし」「聞いてみただけ」
「一般的にはどうなのか反応見てみたかっただけ」
って感じのが。

それともなんかまた言われそうだし、ちょっと
ひいちゃったしーってことなんでしょうか?
聞くだけ聞いといて、そんなのずるくないですか?

あ、すみません。ここは技術的な板でした。

で、本題です。
> 例)1:ON
>   2:OFF
>   を表示し選択するような形です。
ですが、おそらくあなたは「だって客先がそうしろ、
前のシステムもそうなっててそれが都合いいって言うから」
などと言っているのではないですか?

私も名無しの☆@UCCさんやjava.lang.Nullpoさんの意見に
賛成です。なにせ、Windowsのプログラムなのですからね。

・・営業が取ってきた案件でその仕様に
「3回まわってワンと言え」とあったとします。
あなたは「この御時世だからサラリーのためにはしょうがない」
とそれをのみ「ワン」と鳴いてみせますか?
どーしても「ワン」と鳴かざるを得ない場面もあるかとは
思います。しかし今回のお話は十分コンサルティング
(こちらから説得)できる話しと思いますよ。

もし、それが見当違いのお話しでオアシスさん自身の好みで
おっしゃているのなら、それは即刻考え方を改めましょう。

編集 削除
名無しの☆  2004-12-10 23:51:57  No: 87155  IP: [192.*.*.*]

あ、クライアントの・・・。
そーゆー話もあるんですね。
自分が趣味でやっているもので、気付きませんでした。
気分を害されたのなら申し訳ないです。

ところで、勝手にVB6のつもりでレスしましたけど。
それでよかったのでしょうか。
何せNETは全く知らないもので。

礼だなんてずーずーしーことは言いませんけど、
話を聞いてもらえたのか、話が通じたのか、
それとも話がかみ合っていないのか、
なにかしらのレスポンスは期待するのが人ってモンかなと。

もっとも、マルチポストでとっくに解決しているとまぁ、見ていないでしょうけども・・・。

・・・あらやだあたしったら(猛毒)。

編集 削除
ねろ  2004-12-11 12:16:16  No: 87156  IP: [192.*.*.*]

コマンドボタンの右クリックは無い話じゃ無い。
Windowsの右クリックは、そのオブジェクトのプロパティの設定を行う
ポップアップメニューを出す場合が多いと思われる。
つまり質問の「ON,OFF」がEnable、Desableだとすれば
右クリックでそのボタンのプロパティーを設定する方法は
ごく普通の方法ですよね。と言うか他の方法を私は思いつかない。
ということでコマンドボタンのEnable、Desableを
切り替えて、Iniファイルやレジストリーに記録しておく
などと言う手は私も使ってます。
それとVBでの「PopupMenu メソッド」と言うのは何となく
トリッキーで、本か何かで読まなければ、ポップアップ
メニューというキーワードを思いつかないのでは。
メニューを非表示で作っておいて、それを右クリックで
呼び出すと言うのは知らないと検索も難しいかな。。
初めて質問していきなり怒られると、なかなか出て来れなくなるし。。
風邪をひいて体調不良につき、本日の運勢「弱気」。。。。。。。。

編集 削除
さくら  2004-12-11 12:59:12  No: 87157  IP: [192.*.*.*]

私も、今やってるシステムで右クリックのポップアップON/OFF設定やってますよ!使用目的は、グリッドを使用した場合に複数選択して、ON/OFFモードの切替を行ってます。
選択して、1(ON)、0(OFF)を入力するでもよかったのですが、ユーザに分かり難いということで、ポップアップでのON/OFF設定といった仕様になってます。

それと、今回の皆さんの指摘事項に関して私も思い当たるふしがあり申し訳ないです。いつも聞いてばかりですし、初歩的なことものせちゃってることがあったりと。。。すみませんm(_ _)m

編集 削除
たくみ  2004-12-11 23:07:01  No: 87158  IP: [192.*.*.*]

ねろさん、そしてみなさんへ。
>初めて質問していきなり怒られると、なかなか出て来れなくなるし
あ、それはあるでしょうね。私も少し反省しているところです。

>コマンドボタンの右クリックは無い話じゃ無い。
なるほど、そういうこともありなんですね・・・
勉強不足でした。

一応、誤解のないように言うと、
java.lang.Nullpoさんの書かれた
>直感でわからないものは、ユーザフレンドリとは言えないかと。
という文章に共感しての加筆でした。
もう少し考え方の間口を広くしていきたいと思います。

PS.
オアシスさんもう出てこないのかな〜

編集 削除
VB初心者22号  2005-07-28 13:34:12  No: 87159  IP: [192.*.*.*]

オアシスさんの肩を持つ訳ではありませんが、
>直感でわからないものは、ユーザフレンドリとは言えないかと。
などのご意見は納得できません。

皆様方のようなスペシャリストばかりがここに来ている訳ではありません。

一生懸命勉強しているものにとっては遺憾に思います。

編集 削除
・・・。  2005-07-28 14:26:08  No: 87160  IP: [192.*.*.*]

> > 直感でわからないものは、ユーザフレンドリとは言えないかと。
> などのご意見は納得できません。

納得できないのはわかったけど、あなたの意見は?
画面がごちゃごちゃしてて、何処から入力してよいかわからないような
GUIが果たしてユーザに優しいかどうか?ってのも意見が分かれるよね?

>皆様方のようなスペシャリストばかりがここに来ている訳ではありません。
なんのスペシャリストがは知らないけど、
少なくともマルチポストするようなモラルの低さは何とかならないですかね?

一生懸命回答しているものにとってはそれこそ遺憾に思います。

編集 削除
ねろ  2005-07-28 14:59:01  No: 87161  IP: [192.*.*.*]

技術的な内容の更新で無いのなら、古い投稿の
掘りおこしは避けるべきです。

編集 削除
Anonymous Coward  2005-07-28 15:37:18  No: 87162  IP: [192.*.*.*]

使う人は、作った人が初心者であるかどうかなんて知りません。
内部でどんなに素晴らしい処理をしているかなんて、微塵も考えません。
その上で、正常に動くのが当たり前であって、動かなければ、
文句だけはくどくどとのたまいます。しかも全力で罵ります。
文句を言わない人は、黙って捨てます。よりよいものを探します。
これが今の日本のソフトウェア市場です。

だから、初心者を主張するのは、ただの言い訳と受け取られかねないのですよ。
逆にいえば、どんな人でも平等な扱いを受ける、非常に素晴らしい世界だということですが。

//ちょっと厳しいですか?

個人的に、気の利いた答えの欲しいときには、質問の仕方を考えています。

1:まず、どうしたいか、それから、どこでトラブったか
環境(OSとVBのバージョン)とか、
どんな処理を考えたのか、
エラーが出るならどこででたのか、
どこまでは順調に進むのか
トラブルの再現性とか、
起こったことをできるだけ『正確』に伝えます。

2:どこまで分かっているのか
原因はわかっているけど回避法がわからないとか、
ソースのどこを書き換えると治るけどそれはいやだとか、
自分がどこまで知っていてどこがわからないのか、相手に知らせます。

3:個人的な事情は晒せるだけ晒す
クライアントの仕様だからとか、プログラム全体の整合性とか、
トラブル発生のシナリオには『作ろう』と思った時点からはじまるものも。

少々長文になるでしょうが、この掲示板の皆さんは優しいので頑張って読んでくれますよ。と思う。
それよりも、これだけ書けば、
回答者も適切なアドバイスを絞り込むことが出来ますし、
質問者も必要な回答を効率よく受け取ることが出来ます。
ポイントのずれた回答を一つづつ否定する必要はありませんし、
とりあえずググれなんて批判されることも減るでしょう。

つーか、これは他人にモノを頼む上で最低限必要な礼儀だと思っていますし、
これだけ調べるうちに、多くの問題は自己完結します。

ここにいる人も、日々ぐぐるやMSDNや場合によっては英語と格闘しながら、
毎日を生き抜いています。それは今でも初心者とあまり変わらない筈です。
答えてくれる人の考える時間を無料で使っていることを認識してください。
誰だって、こんなところで喧嘩なんかしたくありませんもの。

//ところで、似たような文章をどこかで見た覚えがあるのは気のせいですか?

編集 削除