2008-09-03 17 views
1

ActiveXコントロールのどのプロパティがデフォルトプロパティであるかを判別できますか?たとえば、VB6コントロールCommandButtonの既定のプロパティは何ですか?また、他のコントロールの既定値がどのように見えますか。ActiveXコントロールのデフォルトプロパティディスカバリ

/編集:私はVBを使用していないが、ここでは行くオブジェクト自体

答えて

1

Microsoft Visual Studioと共に配布されるOLE/Comオブジェクトビューアを使用します。ライブラリを入力し、制御が中に収容されているライブラリを見つけるため

Goが、例えばコマンドボタンは、Microsoftが2.0オブジェクトライブラリフォームに格納されます。ライブラリを右クリックし、ビューを選択します。コントロールを表すコクラスを見つけ、それを選択:

alt text

あなたはICommandButtonは0ですIDLのDISPIDを持つプロパティを探して検査する場合、コマンドボタンのデフォルトのインタフェースはICommandButtonで、見ることができるようにCommandButtonのdispid 0プロパティは次のとおりです。

[id(00000000), propput, bindable, displaybind, hidden, helpcontext(0x001e8d04)] 
void Value([in] VARIANT_BOOL rhs); 
[id(00000000), propget, bindable, displaybind, hidden, helpcontext(0x001e8d04)] 
VARIANT_BOOL Value(); 

デフォルトプロパティを表示します。

1

にソースを持たずに。

Using the Value of a Controlが見つかりましたが、プログラム的な解決策ではありません。あなたは、コードへのアクセス権を持っている場合は 、メモ帳を使用して

Attribute Value.VB_UserMemId = 0 

を探します。

1

あなたは、コードへのアクセス権を持って

を探しUnfortunetly私は、コントロールのほとんどのコードにアクセスすることはできません。しかし、このリンクはマイクロソフトのコントロールには便利ですが、私はまだ他のコントロールを知る方法を望んでいます。

1

これはいつ決定するかによって異なります。用

値:あなたのような何かを与える

debug.print "Value for cmdTest is ["+format(cmdTest)+"]" 

:あなたのようなデバッガに(ない「値」プロパティを持っていない)ラベルコントロール、たとえば、の「価値」を印刷することができcmdTestは、結局のところ、コマンドボタンのデフォルト値は、それは状態(押されたかどうか)ですので、あなたがコントロールのClickイベントで上記のコード例を置けば、あなたは意志

[偽]です「True」を参照してください。他の場所で実行すると、「False」と表示されます。

この方法では、少なくともあなたが探しているプロパティの種類が表示されます。あなたは使用することができます

つまり、あなたの実際の型を教えて
debug.print "cmdTest's value is of type ["+TypeName(oObject) +"]" 

cmdTestの値は型である[ブール]

あなたは物事を絞り込むためにさまざまな方法を使用することができ、値を設定したり、何が起こっているか見ることができます。

関連する問題