Formに貼り付けたActiveXコントロールへのアクセスを別Classに担当させる方法
プログラミング初心者です。
現在VB.NETでRS-232Cで接続するデバイスを制御するフォームアプリケーションを作成しています。
デバイス制御にはメーカからActiveXコントロールが配布されており、それをフォームに貼り付けて基本的な動作をさせるところまではできています。
ただ、現在全てのコードがForm1クラスに記述されており、今後ボリュームが増えていくとメンテがしづらくなりそうですので、まとまった各機能群を別のクラスとして作成したいのですが、フォームに貼り付けたActiveXコントロールを別のクラスから動かすためにはどうすれば良いのかわかりませんので教えていただけないでしょうか。
以外検討してだめだったものです。
Class Class2
Dim frm As Form1 = New Form1
frm.AxSample1
End Class
上記のようにForm1のインスタンスを作成するのも何かが違う気がしますし…。
Class Class2
Dim frm As Form
Public Sub New(ByVal senderfrm As Form)
frm = senderfrm
End Sub
frm.AxSample1
End Class
上記だとAxSample1がClass2に認識されるはずもないですし…。
Importsとか色々試してみたのですがうまく行かず…という状況です。
そもそも根本的に別クラスにさせようということがおかしい、などの回答でも結構です。
よろしくお願いいたします。
No.2ベストアンサー
- 回答日時:
> Inherits AxSample1
> のように記述するのでしょうか?
これでOKですね。
> その場合、グループ分けした機能群の数だけActiveXコントロールの派生クラスを作成するような
> イメージでしょうか。
こちらも、その考え方でOKです。
機能ごとに派生クラスを用意するという事は、例えば以下のような事ですよね。
基底クラス:TextBox
派生クラスA:数値のみ入力可能なTextBox
派生クラスB:郵便番号のみ入力可能なTextBox
※ 補足として、継承について書かれているHPを記載しておきます。
http://homepage1.nifty.com/rucio/main/VBdotNet/A …
http://www.atmarkit.co.jp/fdotnet/vb6tonet/vb6to …
せっかくご回答いただいたのにお礼が遅くなってしまいました、すみません。
なかなかうまくいかずに試行錯誤していたら時間が過ぎてしまいました。
> Inherits AxSample1
のように記述すると、AxSample1がフォームに貼り付けた段階でクラスではないためエラーになってしまいました。
Inherits SampleLib
でもうまくいかず…。
結局インスタンス化するときに、NewをオーバーライドしてMe.AxSample1を引数として渡すことで処理ができました。
また何かありましたらご質問させていただくかもしれません。よろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) EXCEL VBAにて動的にCheckBOXを複数作成し、同BOXにイベントを追加したい 1 2023/03/16 07:05
- Access(アクセス) DoCmd.SearchForRecord が動かない時の解決方法 3 2022/07/22 15:31
- Visual Basic(VBA) VBA This Workbookモジュールを別ファイルにコピーする方法 1 2022/09/14 01:51
- Visual Basic(VBA) このVBAでExcelアプリケーションを作成は必要ですか? 3 2023/07/19 21:13
- Visual Basic(VBA) QRコード作成マクロについて 3 2022/11/26 16:55
- Visual Basic(VBA) 改行ごとに行を追加し、数量を分割 4 2023/07/11 16:39
- Visual Basic(VBA) VBA Userformで一部別シートに転記がしたいのですが 2 2023/05/24 13:08
- Visual Basic(VBA) コード名シートA列と集計シートA列のコードが一致したら、コード名シートA5からk12の範囲をコピーし 1 2022/08/29 23:46
- その他(Microsoft Office) マクロVBAについて 1 2022/09/06 18:12
- Access(アクセス) docmd.gotorecordを起動するには 5 2022/06/17 15:20
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
イベントにAddHandlerされてい...
-
FriendとPublicの違い。。。
-
C#のクラス設計について教えて...
-
MFCのドラッグ&ドロップについて
-
クラスのアドレスを引数として...
-
オーバーライド関数の呼び出し...
-
既定のコンストラクタがない?
-
MRUの一時回避 VC++2008 MFC
-
MFCアプリのコマンドラインでパ...
-
C++ protectedにアクセス不可
-
vba sendKeysを送る相手のソフ...
-
MFC CSplitter内にコントロール...
-
ダイアログ表示時にチェックボ...
-
VC++ MFC CFrameWndって・・・
-
このコンパイルエラーの意味に...
-
ボタンのオーナードローについて
-
派生クラスから基本クラスprote...
-
DLLからEXEのクラスを呼び出す...
-
CMainFrameクラスの使い方
-
MessageBoxを継承したい
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
FriendとPublicの違い。。。
-
既定のコンストラクタがない?
-
(UWSC) 「#32770」の意味わかり...
-
クラスのアドレスを引数として...
-
ダイアログ表示時にチェックボ...
-
イベントにAddHandlerされてい...
-
【ASP.NET】 独自で作成したク...
-
MFCアプリのコマンドラインでパ...
-
DebugクラスとTraceクラスの違い
-
ボタンのオーナードローについて
-
OnInitDialog()の関数の組み込み方
-
IncludeではなくClassで宣言す...
-
関数の呼び出し元の検索
-
このコンパイルエラーの意味に...
-
C++ protectedにアクセス不可
-
C++で継承元のクラスの代入演算...
-
DataGridViewのセルに斜線を引...
-
C#で通常のbuttonコントロール...
-
エディットコントロールのイベ...
-
CMainFrameクラスの使い方
おすすめ情報