ActiveXコントロールのどのプロパティがデフォルトのプロパティであるかを判断することは可能ですか?たとえば、VB6コントロールのCommandButtonのデフォルトのプロパティは何ですか?また、他のコントロールのデフォルトをどのように見つけることができますか?
/編集:オブジェクト自体へのソースがない
私はVBを使用していませんが、ここにあります。
コントロールの値の使用を見つけましたが、プログラムによる解決策ではありません。コードにアクセスできる場合は、
Attribute Value.VB_UserMemId = 0
メモ帳を使用します。
これは、いつ決定するかによって異なります。たとえば、(「値」プロパティを持たない) ラベル コントロールの「値」を次のようにデバッガに出力できます。
debug.print "Value for cmdTest is ["+format(cmdTest)+"]"
次のようなものが得られます。
cmdTest の値は [False] です
結局のところ、コマンド ボタンのデフォルト値はその状態 (押されているかどうか) であるため、上記のコード例をコントロールのクリック イベントに配置すると、別の場所で実行すると "True" と表示されます。 、「False」と表示されます。
他の結果については、このメソッドは少なくとも探しているプロパティの種類を表示します。あなたが使用することができます:
debug.print "cmdTest's value is of type ["+TypeName(oObject) +"]"
つまり、実際のタイプを示します。
cmdTest の値は [Boolean] 型です
値を設定して何が起こるかを見るなど、さまざまな方法を使用して物事を絞り込むことができます。
Microsoft Visual Studio で配布されている OLE/Com Object Viewer を使用します。
タイプ ライブラリに移動し、コントロールが格納されているライブラリを見つけます。たとえば、 CommandButton はMicrosoft Forms 2.0 Object Libraryに格納されています。ライブラリを右クリックし、ビューを選択します。コントロールを表すコクラスを見つけて選択します。
ご覧のとおり、CommandButton の既定のインターフェイスは ICommandButton です。ICommandButton を調べると、dispid が 0 のプロパティを探します。CommandButton の dispid 0 プロパティの IDL は次のとおりです。
[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();
デフォルトのプロパティを表示します。
コードにアクセスできる場合は、
残念ながら、ほとんどのコントロールのコードにアクセスできません。ただし、リンクは Microsoft コントロールに役立ちますが、他のコントロールについて知る方法が必要です。