複数テキストBOX同一処理で最適な方法

解決


ARC  2005-03-31 19:52:48  No: 89148  IP: [192.*.*.*]

テキストボックスが8個あります。
すべてのテキストボックスに共通処理があるので現状は下記のようにしてます
Private Sub txt1_GotFocus()
    wk=str
End Sub
Private Sub txtWK_GotFocus()
    wk=str
End Sub
Private Sub txtShinNO_GotFocus()
    wk=str
End Sub
以下省略
コード長が長くなるので1処理にまとめたいのです。
テキストボックス配列にすればまとまりますが
個々のテキストボックス名に固有の名称をつけたいので配列は避けたいのです
どうすれば対処できるでしょうか?どなたかご存知の方いましたら教えて頂けると幸いです。
宜しくお願い致します

編集 削除
じゃんぬねっと  URL  2005-03-31 20:10:10  No: 89149  IP: [192.*.*.*]

見たところ、VB6 以前のようなので、
サブクラス化をお勧めします。

まずは、調べてみてください。

編集 削除
魔界の仮面弁士  2005-04-01 23:14:28  No: 89150  IP: [192.*.*.*]

私の場合は、WithEventsで処理をまとめる事が多いかな……。
http://www.gj.il24.net/~nakasima/vb/tech/excontrol/index.htm

編集 削除
ARC  2005-04-04 12:29:10  No: 89151  IP: [192.*.*.*]

アドバイスして頂き有難うございます
下記のようにコードを作成したら出来ました。
有難うございました
'フォーム
Private NewControl  As Collection
Private Sub Form_Load()
    Set NewControl = New Collection
    With NewControl
        .Add NoGetHide.TxtInit(txtBikou)
    End With
End Sub
'標準モジュール
Public Function NoGetHide() As clsNoGetHide
    Set NoGetHide = New clsNoGetHide
End Function
'クラスモジュール
Public Function TxtInit(txt As TextBox) As clsNoGetHide
    Set NewText = txt
    Set TxtInit = Me
End Function
Private Sub NewText_GotFocus()
    NoGet.Hide: DoEvents
End Sub

編集 削除
ARC  2005-04-05 12:58:58  No: 89152  IP: [192.*.*.*]

解決しました

編集 削除