tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板) [ツリー表示へ]   [Home]
一括表示(VB.NET VB2005)
タイトルコントロールの名前が分かりません
記事No6114
投稿日: 2007/08/21(Tue) 16:39
投稿者はむ
お世話になります。
開発環境:VB2005 Express Edition

VBの開発画面のプロパティウィンドウで、FontやItemsの右側に
「...」というボタンがありますが、これと同じように、
テキストボックスの右側にボタンがあるコントロールを
フォームに配置したいと考えています。
ボタンを押すと、FontやItemsの右側のボタンを押下した時と同じように、
ダイアログを表示出来るようにしたいのです。

しかしコントロールの名前が分からず、調べるにも
うまく検索する言葉が分からなかった為、この掲示板に投稿させて頂きました。

この機能を持つコントロールの名前を教えてください。
それともComboBoxやListBoxのプロパティをいじれば出来るのでしょうか?
もしくはカスタムコントロールで作成しないといけないのでしょうか?

よろしくお願いします。

[ツリー表示へ]
タイトルRe: コントロールの名前が分かりません
記事No6115
投稿日: 2007/08/21(Tue) 17:42
投稿者よねKEN
> VBの開発画面のプロパティウィンドウで、FontやItemsの右側に
> 「...」というボタンがありますが、これと同じように、
> テキストボックスの右側にボタンがあるコントロールを
> フォームに配置したいと考えています。

期待されているものが「テキストボックス + ボタン」な箇所を指しているなら、
そのまんまテキストボックスにボタンを配置しただけのものです。

そうでなく、まさにプロパティウィンドウのようなものであれば、
PropertyGridです。

> ボタンを押すと、FontやItemsの右側のボタンを押下した時と同じように、
> ダイアログを表示出来るようにしたいのです。

これらではなく各ボタンを押下した際に出るダイアログでしたら、
ケースバイケースです。
Fontを選択したいなら、FontDialogです。

> この機能を持つコントロールの名前を教えてください。

どれのことか確信できなかったので、
とりあえずこれかな?と思うものをいくつか挙げてみました。

[ツリー表示へ]
タイトルRe^2: コントロールの名前が分かりません
記事No6116
投稿日: 2007/08/21(Tue) 18:28
投稿者はむ
よねKENさん

書き込みして頂きましてどうもありがとうございます。

> 期待されているものが「テキストボックス + ボタン」な箇所を指しているなら、
> そのまんまテキストボックスにボタンを配置しただけのものです。
まさにこれができるコントロールを期待しています。

確かにテキストボックスにボタンを配置しただけのものですが、
この形で部品を用意されてはいないのでしょうか?


> そうでなく、まさにプロパティウィンドウのようなものであれば、
> PropertyGridです。
このようなコントロールがあったんですね。
これはこれですごく勉強になりました。


> これらではなく各ボタンを押下した際に出るダイアログでしたら、
> ケースバイケースです。
> Fontを選択したいなら、FontDialogです。
FontDialog.ShowDialog()でFontのダイアログが表示されることは知っています。
しかし今回のダイアログは新規で作成する物です。
右側のボタンを押したらClickイベントが発生する機能を持つ
コントロールを期待しています。


> どれのことか確信できなかったので、
> とりあえずこれかな?と思うものをいくつか挙げてみました。
色々と言葉が足りず申し訳ありません。

この組み合わせでカスタムコントロールを作成するしかないのならば
そのように対応しますが、わざわざ個人でそれぞれ製造しないと
いけないような物なのでしょうか。
用意してあっても良いと思うのですが。。

[ツリー表示へ]
タイトルRe^3: コントロールの名前が分かりません
記事No6117
投稿日: 2007/08/22(Wed) 00:27
投稿者魔界の仮面弁士
> そのように対応しますが、わざわざ個人でそれぞれ製造しないと
> いけないような物なのでしょうか。
単にコントロールを並べただけのものであるならば、わざわざ専用のコントロールとして
用意するほどのことはない、という判断なのかも。

> 用意してあっても良いと思うのですが。。
用意してあるとすれば、すでに回答のあった PropertyGrid ですかね。

# 今回の目的に合うかどうかは別として。(^^;

[ツリー表示へ]
タイトルポストスクリプトは回答が得られない場合でもマナー違反ですか?
記事No6118
投稿日: 2007/08/22(Wed) 09:04
投稿者はむ
魔界の仮面弁士さん
書き込み頂きましてどうもありがとうございます。

> 単にコントロールを並べただけのものであるならば、わざわざ専用のコントロールとして
> 用意するほどのことはない、という判断なのかも。

なるほど。そういう物なんでしょうかね?

> > 用意してあっても良いと思うのですが。。
> 用意してあるとすれば、すでに回答のあった PropertyGrid ですかね。
>
> # 今回の目的に合うかどうかは別として。(^^;

確かにこれがあればMicroSoftとしては用がすんでしまいますしね(笑)


皆さんのお知恵を拝借して、あっさり解決するのかと思いましたが、
そういう物ではないことが分かりました。
このような場合、他の掲示板にマルチポストをしても良いのでしょうか?
もちろん質問をマルチポストをしている旨とこちらのURL、
解決した際の報告はこちらにさせて頂くつもりです。
それでもマナー違反になりますでしょうか?

大変恐縮ですが考え方を教えて頂ければと思います。
この考え方自体間違っているようでしたらお詫びします。
よろしくお願いします。

#コントロールの問題、ボタンは作ってしまえばいいやとは思っていますが、
#もしかしたら他の掲示板に知っている人もいるのではないかという
#興味本位で聞いてみたいのです。

[ツリー表示へ]
タイトルRe^3: コントロールの名前が分かりません
記事No6119
投稿日: 2007/08/22(Wed) 11:50
投稿者よねKEN
> この組み合わせでカスタムコントロールを作成するしかないのならば
> そのように対応しますが、わざわざ個人でそれぞれ製造しないと
> いけないような物なのでしょうか。
> 用意してあっても良いと思うのですが。。

#あくまで私見です

そういうときは、汎用的な部品を提供する側の気持ちになって考えてみると
よいと思います。"テキストボックス + ボタン"というコントロールが提供される
として、はむさんは、どういう機能を期待されますか?

"テキストボックス + ボタン"という構成からたぶん明らかなのは、
ここでのボタンはテキストボックスに対する入力補助を行うためのもので、
ボタンをクリックすると何かが起きて、その結果がテキストボックスに反映される、
という仕様くらいでしょう。

このテキストボックスがフォントを指定するためのものなら、
ボタンをクリックするとフォントのダイアログが表示されることが
期待されるでしょう。同様にこのテキストボックスが色を指定するためのものなら、
色指定用のダイアログが表示されることが期待されるでしょう。
URLを指定するためのものだったら?郵便番号を指定するためのものだったら?

こうやって考えていくとボタンのクリックに対する処理は、汎用部品が決めることは
できず、ユーザ側で自由に処理できるようにする必要があると思います。
ボタン表面のテキストもクリック時の処理も汎用部品内では実装できないので、
個別に開発者が作りこむ必要があり、あまり共通化されているとは言えません。

今度はテキストボックスとボタンの配置について考えて見ましょう。
よくある一般的なものとしては、テキストボックスのすぐ右横にボタンを配置する
というレイアウトでしょう。しかし、開発する内容によっては左横がよかったり、
下側(この場合はさらにテキスボックスとの位置関係で下側の中で左よりか右よりか
真ん中かといったことも選択肢として考えられます)、上側(下側と同様の考慮が必要)
がよかったりと様々です。汎用部品であれば、こういったレイアウトに対しても
汎用性が求められます。これについては仕様を決定するのも、実装するのもテスト
をするものかなりの工数がかかることが予想されます。

さらに、前提として"テキストボックス + ボタン"という構成で考えていますが、
ある開発者の期待する機能としては、テキストボックスの代わりにコンボボックス
がよいとしたらどうでしょうか?その開発者にとっては"テキストボックス + ボタン"
というコントロールでは要件を満たせません。"テキストボックス + ボタン"を
もし作るなら、ここのテキストボックスの代わりに、テキスト編集できる
コンボボックスを代わりに使うことができるようになっていた方がよいでしょう。
または、"コンボボックス + ボタン"のコントロール化も検討の余地がでてきます。

汎用部品を作る上で検討しないといけないことはたくさんありますが、
開発者が同様の機能(テキストボックスとボタンを使った機能)をベタに
作りこむためにかかる工数は、それほどのものではないでしょう。
レイアウトもその開発案件に見合ったレイアウトをデザイナで好きに
配置すればよいだけです。

このようにごく一部分についてだけでも汎用部品の仕様を考えた場合、開発にかかる
工数等に対して、その汎用部品により受けられる恩恵が割に合いません。
そういう意味で汎用部品としては用意されていないのだと思います。

汎用部品については上記の通りですが、ある開発案件の中で、
限定された仕様のもとに"テキスボックス+ボタン"なコントロールを作る
ということは検討の価値はあるかもしれません。
#ただし、下手なカスタムコントロールは仕様変更に対する柔軟性を失う
#危険性もあります。

[ツリー表示へ]
タイトルRe^4: コントロールの名前が分かりません
記事No6120
投稿日: 2007/08/22(Wed) 12:45
投稿者はむ
よねKENさん

貴重なお時間を削って頂いて、
このような大変丁寧なコメントをどうもありがとうございます。

確かにおっしゃるとおり、汎用性を高めるための検証と開発の時間に対して
得られるVBのユーザー側の利点はそこまで大きくないですね。

テキストボックスとボタンの組み合わせなど、
ユーザー側で好きに作ればいいだけのことですし。

これだけの機能を開発するために時間をかけるなら、
Microsoftにはユーザーが簡単には作れない、もっと有意義な物を
作ってもらった方がいいですからね。


非常に納得することが出来ました。勉強になりました。
貴重な意見をありがとうございます。

[ツリー表示へ]