- ベストアンサー
VB2005 アクティブフォームのキャプション(タイトル)取得について
お世話になります。 VB2005(.net)にて、アクティブフォームのキャプションを取得したいのですが可能でしょうか? VB6.0では下記方法にて取得しておりました。 Screen.ActiveForm.Caption ご教授よろしくお願いいたします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
お世話になります。 > MDI親フォームを使用しているとそちらのテキストを取得してしまうのですが、 > 子フォームのテキストを取得する場合はどのようにすればよろしいのでしょうか? Form.ActiveMdiChild プロパティ で 取得すればよろしいかと。 If Form.ActiveForm IsNot Nothing AndAlso Form.ActiveForm.ActiveMdiChild IsNot Nothing Then Console.WriteLine(Form.ActiveForm.ActiveMdiChild.Text) End If
その他の回答 (2)
- naganaga_001
- ベストアンサー率71% (172/242)
お世話になります。 System.Windows.Forms.Form.ActiveForm プロパティは、静的プロパティなので Module ・ Class 云々関係なく、 どこでも呼び出すことができます。 > System.Windows.Forms.Form.ActiveFormはNothingになっております。 ActiveForm が Nothing の時は、 そのまんまですが、 動かしているアプリケーション内において、 アクティブな Form が存在していないという事です。 以下のコードで、 Form1 が アクティブである事を Module を通して 出力ウィンドウへ出力することができます。 (Windows アプリケーション) Public Class Form1 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Module1.test() End Sub End Class Module Module1 Public Sub test() If System.Windows.Forms.Form.ActiveForm IsNot Nothing Then Console.WriteLine(System.Windows.Forms.Form.ActiveForm.Text & " is ActiveForm") End If End Sub End Module
補足
naganaga_001さん、ご回答ありがとうございました。 当方、ブレークポイントを設定し確認していたのでNothingとなっておりました。 ブレークポイントをはずして確認できました。ありがとうございました。 追加の質問で申し訳ないのですが、MDI親フォームを使用しているとそちらのテキストを取得してしまうのですが、子フォームのテキストを取得する場合はどのようにすればよろしいのでしょうか? よろしくお願いいたします。
- naganaga_001
- ベストアンサー率71% (172/242)
お世話になります。 こんな感じになると思います。 If Not System.Windows.Forms.Form.ActiveForm Is Nothing Then Console.WriteLine(System.Windows.Forms.Form.ActiveForm.Text) End If
補足
naganaga_001さん、ご回答ありがとうございます。 取得したい箇所はモジュールですので、System.Windows.Forms.Form.ActiveFormはNothingになっております。 よろしくお願いいたします。
お礼
naganaga_001さん、何回も質問に回答していただきましてありがとうございました。 無事にやりたいことが可能となりました。