none
ActiveXの作成について RRS feed

  • 質問

  • こんばんは。VB初心者のうっちゃん2号です。

    現在VB5.0で開発をするプロジェクトに参加しています。

     

    テキストボックスやコンボボックスのActiveXを作成して、vbpに取り込ませているのですが、

    テキストボックスのやコンボボックスのサイズが変更出来ません。

    変更を可能にするプロパティとかってあるのでしょうか?

     

    あと、ユーザーコントロールのイベントの数が5つ(GotFocusやLostFocusなど)しかないのですが

    イベントを増やす方法ってありますでしょうか?

     

    誰かわかる方がいらっしゃったら教えてください。

    よろしくお願いいたします。

     

    2007年10月3日 9:53

回答

  •  うっちゃん2号 さんからの引用

    テキストボックスやコンボボックスのActiveXを作成して、vbpに取り込ませているのですが、

    テキストボックスのやコンボボックスのサイズが変更出来ません。

    変更を可能にするプロパティとかってあるのでしょうか?

     

    Private textBox1 As New TextBox

    MsgBox(CStr(textBox1.MaxLength))

     

    これは問題ないですよね。

     

    Private userControl1 As New MyUserControl

    MsgBox(CStr(userControl1.MaxLength))

     

    これはどうでしょう?

    もちろん、MyUserControlクラスがMaxLengthプロパティを持っていないとエラーになりますよね。

     

    あなたが作られたのは後者です。

    利用する側はMyUserControlを利用します。

    貼り付けたテキストやコンボはその内側にあり外からは見えません。

    したがって、必要なものはMyUserControlへ作って外へ公開する必要があります。

     

    ただし、書かれた内容(リサイズ)だけに限って言えば

    ユーザーコントロールにResizeイベントがあります。

    当然そのイベント処理はユーザーコントロール内に記述するわけですのでテキストやコンボを知っており扱えます。

    したがって、ユーザ-コントロールのリサイズと連動してテキストやコンボのサイズを変更すればよいことになります。

    しかし、テキストやコンボを単独で選択してリサイズとなると、旧VBの機能では出来ないと思います。

     

     うっちゃん2号 さんからの引用

    あと、ユーザーコントロールのイベントの数が5つ(GotFocusやLostFocusなど)しかないのですが

    イベントを増やす方法ってありますでしょうか?

    上記のとおり、増やすと言うより必要なものを用意するわけですが

    アドインに「ActiveX コントロール インターフェース ウィザード」というのがあります。

    これを使うと直接コーディングするより若干簡単に独自のインターフェースを自動生成することが出来ます。

    ただし、どんなものを公開するかをまず設計する必要があります。

    #このアドインについては、VB5.0は英語のみのリリースで使ったことがありませんので、VB6での話になります。

    2007年10月4日 11:46
  • 返事が遅れてもうしわけありませんでした。

     

    なんとか作成することが出来ました。

    まどかさん、ご返事を頂き誠にありがとうございました。

     

    また何かあればご助力をお願い致します。

     

    以上

    2007年10月16日 6:00

すべての返信

  •  うっちゃん2号 さんからの引用

    テキストボックスやコンボボックスのActiveXを作成して、vbpに取り込ませているのですが、

    テキストボックスのやコンボボックスのサイズが変更出来ません。

    変更を可能にするプロパティとかってあるのでしょうか?

     

    Private textBox1 As New TextBox

    MsgBox(CStr(textBox1.MaxLength))

     

    これは問題ないですよね。

     

    Private userControl1 As New MyUserControl

    MsgBox(CStr(userControl1.MaxLength))

     

    これはどうでしょう?

    もちろん、MyUserControlクラスがMaxLengthプロパティを持っていないとエラーになりますよね。

     

    あなたが作られたのは後者です。

    利用する側はMyUserControlを利用します。

    貼り付けたテキストやコンボはその内側にあり外からは見えません。

    したがって、必要なものはMyUserControlへ作って外へ公開する必要があります。

     

    ただし、書かれた内容(リサイズ)だけに限って言えば

    ユーザーコントロールにResizeイベントがあります。

    当然そのイベント処理はユーザーコントロール内に記述するわけですのでテキストやコンボを知っており扱えます。

    したがって、ユーザ-コントロールのリサイズと連動してテキストやコンボのサイズを変更すればよいことになります。

    しかし、テキストやコンボを単独で選択してリサイズとなると、旧VBの機能では出来ないと思います。

     

     うっちゃん2号 さんからの引用

    あと、ユーザーコントロールのイベントの数が5つ(GotFocusやLostFocusなど)しかないのですが

    イベントを増やす方法ってありますでしょうか?

    上記のとおり、増やすと言うより必要なものを用意するわけですが

    アドインに「ActiveX コントロール インターフェース ウィザード」というのがあります。

    これを使うと直接コーディングするより若干簡単に独自のインターフェースを自動生成することが出来ます。

    ただし、どんなものを公開するかをまず設計する必要があります。

    #このアドインについては、VB5.0は英語のみのリリースで使ったことがありませんので、VB6での話になります。

    2007年10月4日 11:46
  • 返事が遅れてもうしわけありませんでした。

     

    なんとか作成することが出来ました。

    まどかさん、ご返事を頂き誠にありがとうございました。

     

    また何かあればご助力をお願い致します。

     

    以上

    2007年10月16日 6:00