VB6.0用掲示板の過去のログ(No.2)−VBレスキュー(花ちゃん)
[記事リスト] [新規投稿] [新着記事] [ワード検索] [管理用]

投稿日: 2005/01/31(Mon) 14:44
投稿者じゃんぬねっと
Eメール
URLhttp://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


- 関連一覧ツリー (★ をクリックするとツリー全体を一括表示します)

- 返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)

- VBレスキュー(花ちゃん) - - Web Forum -