3ds Max 9 以降では、 dotNetControl クラスは、コントロールに関連するプロパティ、メソッド、およびイベントを、反映(リフレクション)によって公開します。
プロパティ アクセスは、MAXScript の数値データ タイプ(必要に応じて桁数を調整)、文字列、ブール値、dotNetControl、dotNetObject、および dotNetClass の各値を取ります。プロパティ アクセスは、通常のプロパティ アクセスの指定[control.property]、および get/setProperty を介して行われます。
コントロール メソッドにアクセスすることによって、dotNetMethod インスタンスが作成されます。
dotNetControl のイベント ハンドラは、すべての UI コントロールがイベント ハンドラを使用する場合と同じように処理されます。つまり、ユーザは、UI コントロールでイベントが発生したときに呼び出されるロールアウトの定義の中で、イベントと同じ名前の名前付きスクリプト イベント ハンドラを定義します。
イベント ハンドラの追加および管理には新しいメソッドが使用されます。イベントが発生すると、これらの新しいメソッドは呼び出すべきコールバック関数の登録および登録解除を行います。コールバック関数に渡される引数には、オブジェクト、イベント名、イベント ハンドラによって渡された引数などがあります。詳細は、「dotNet 構造体のメソッド」を参照してください。
コントロールが作成され、イベント ハンドラが割り当てられた後にキーワード引数がコントロールに適用され、このコントロールはその後ロールアウトに追加されます。
true に設定すると、コントロールにフォーカスが設定されます。false(既定値)に設定すると、コントロールにフォーカスが設定されません。
false に設定すると、コントロールは無効になります。true(既定値)に設定すると、コントロールは有効になります。
asDotNetObject が false (既定値)の場合は、この値は可能ならネイティブ MAXScrript 値に変換され、true の場合は、この値は dotNetControl または dotNetObject の値として返されます。
指定されたプロパティの値を設定します。指定された値がネイティブ MAXScript 値である場合は、この値は可能であれば適切な DotNet 値に変換されます。
コントロールによって公開されるプロパティ名の配列を返します。
showStaticOnly が true (既定値)の場合は静的プロパティのみが表示され、false の場合は静的プロパティとインスタンス プロパティが表示されます。
declaredOnTypeOnly が true の場合は指定したコントロールで宣言されているプロパティのみが表示され、false (既定値)の場合はコントロールおよびその派生元のクラスのプロパティが表示されます。
このメソッドの結果は、名前でソートされます。実際に返されるプロパティには、DotNet でいうプロパティとフィールドの 2 つの内容が含まれています。最初にプロパティがソート順に表示され、続いてフィールドがソート順に表示されます。
showProperties <dotNetControl> ["prop_pat"] [to:<stream>] [showStaticOnly:<bool>] [showMethods:<bool>] [showAttributes:<bool>] [declaredOnTypeOnly:<bool>]
プロパティ パターン(prop_pat)に一致する名前を持ったコントロールによって公開されるプロパティを表示します。
to が指定されていない場合はリスナーに出力され、それ以外の場合は指定されたストリームに出力されます。
showStaticOnly が true (既定値)の場合は静的プロパティのみが表示され、false の場合は静的プロパティとインスタンス プロパティが表示されます。
showMethods が true の場合は、get メソッドおよび set メソッドのシグネチャ(存在する場合)が表示されます。既定値は false です。
showAttributes が true の場合は、プロパティに関連付けられているアトリビュートが表示されます。既定値は false です。
declaredOnTypeOnly が true の場合は指定したコントロールで宣言されているプロパティのみが表示され、false (既定値)の場合はコントロールおよびその派生元のクラスのプロパティが表示されます。
このメソッドの結果は、名前でソートされます。実際に返されるプロパティには、DotNet でいうプロパティとフィールドの 2 つの内容が含まれています。最初にプロパティがソート順に表示され、続いてフィールドがソート順に表示されます。
showMethods <dotNetControl> ["prop_pat"] [to:<stream>] [showStaticOnly:<bool>] [showSpecial:<bool>] [showAttributes:<bool>] [declaredOnTypeOnly:<bool>]
プロパティ パターン(prop_pat)に一致する名前を持ったコントロールによって公開されるメソッドを表示します。
to が指定されていない場合はリスナーに出力され、それ以外の場合は指定されたストリームに出力されます。
showStaticOnly が true (既定値)の場合は静的プロパティのみが表示され、false の場合は静的プロパティとインスタンス プロパティが表示されます。
showSpecial が true の場合は、通常はユーザによって呼び出されることのないメソッド(プロパティ値を設定するためのメソッドやイベント ハンドラを起動するためのメソッド)が表示されます。既定値は false です。
showAttributes が true の場合は、プロパティに関連付けられているアトリビュートが表示されます。既定値は false です。
declaredOnTypeOnly が true の場合は指定したコントロールで宣言されているプロパティのみが表示され、false (既定値)の場合はコントロールおよびその派生元のクラスのプロパティが表示されます。
結果は、名前でソートされます。ソートにおいて名前の次に優先されるのは、パラメータの数です。
showEvents <dotNetControl> ["prop_pat"] [to:<stream>] [showStaticOnly:<bool>] [declaredOnTypeOnly:<bool>]
プロパティ パターン(prop_pat)に一致する名前を持ったコントロールによって公開されるイベントを表示します。
to が指定されていない場合はリスナーに出力され、それ以外の場合は指定されたストリームに出力されます。
showStaticOnly が true (既定値)の場合は静的プロパティのみが表示され、false の場合は静的プロパティとインスタンス プロパティが表示されます。
declaredOnTypeOnly が true の場合は指定したコントロールで宣言されているプロパティのみが表示され、false (既定値)の場合はコントロールおよびその派生元のクラスのプロパティが表示されます。
このコントロールによって公開されるコンストラクタを表示します。
to が指定されていない場合はリスナーに出力され、それ以外の場合は指定されたストリームに出力されます。
コントロールのクラス名によって DotNet コントロールを作成することもできます。
クラス インスタンスを作成するためには、DotNet には情報のみでなく、コンストラクタ文字列内のアセンブリ情報も必要となります。次の例は、必要な文字列をすべて示したもので、実際に使用することもできるものです。
多くの場合、ユーザはアセンブリのバージョンに注意を払うことはなく、単にクラス名を指定しようとします。MAXScript UI コントロール ラップは、指定されたクラス名を使用してコントロールの作成を試み、コントロールを作成できなければ「System.Windows.Forms」アセンブリ情報をクラス名に付加してさらに解決を試みます。
指定されたクラス名をそれでも解決できない場合は、クラス名の先頭に「System.」を付加して、さらに解決を試みます。したがって、次のように処理されます。
指定されたクラス名をそれでも解決できない場合は、クラス名の先頭に「System.Windows.Forms」を付加して、さらに解決を試みます。したがって、次のように処理されます。