投稿日 | : 2005/01/31(Mon) 14:44 |
投稿者 | : じゃんぬねっと |
Eメール | : |
URL | : http://jeanne.wankuma.com/ |
タイトル | : Re^4: 現在のフォーカスの位置を取得したい |
じゃんぬねっと です。
質問内容が変わっているようですが、初めからこちらが聞きたかったのでしょうか?
> 実は、標準モジュールに記述したのですが、
> エラーがでまして、調査すると標準モジュールには
> 記述できないと書かれてありました。
そりゃ、標準モジュールはフォームのインスタンスでないからですね。
> どうしても標準モジュールに記述したいのですが、
> 何かいい方法はありますでしょうか。
対象となるフォームのインスタンス変数の ActiveControl プロパティを使用してください。
以下は極端な例になりますが、
【fromMain 側】
Call Hoge(Me)
【標準モジュール】
Public Sub Hoge(ByRef pForm As frmMain)
If pForm.ActiveControl Is pForm.Text1 Then
Call MsgBox("Text1 にフォーカスがあります")
End If
End Sub
という感じに渡す必要があります。
しかしながら、標準モジュールで GUI に関わる処理はしないで欲しいものです。
標準モジュールとクラスモジュール (サブクラス化を除く) ではビジネスロジックのみを書きましょう。
hhttp://jeanne.wankuma.com/tips/rule/02-vb6oop.html