• ベストアンサー

VB2005 アクティブフォームのキャプション(タイトル)取得について

お世話になります。 VB2005(.net)にて、アクティブフォームのキャプションを取得したいのですが可能でしょうか? VB6.0では下記方法にて取得しておりました。 Screen.ActiveForm.Caption ご教授よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.3

お世話になります。 > MDI親フォームを使用しているとそちらのテキストを取得してしまうのですが、 > 子フォームのテキストを取得する場合はどのようにすればよろしいのでしょうか? Form.ActiveMdiChild プロパティ で 取得すればよろしいかと。 If Form.ActiveForm IsNot Nothing AndAlso Form.ActiveForm.ActiveMdiChild IsNot Nothing Then   Console.WriteLine(Form.ActiveForm.ActiveMdiChild.Text) End If

参考URL:
http://msdn2.microsoft.com/ja-jp/library/system.windows.forms.form.activemdichild.aspx
ken-mm
質問者

お礼

naganaga_001さん、何回も質問に回答していただきましてありがとうございました。 無事にやりたいことが可能となりました。

その他の回答 (2)

回答No.2

お世話になります。 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

参考URL:
http://msdn2.microsoft.com/ja-JP/library/system.windows.forms.form.activeform.aspx
ken-mm
質問者

補足

naganaga_001さん、ご回答ありがとうございました。 当方、ブレークポイントを設定し確認していたのでNothingとなっておりました。 ブレークポイントをはずして確認できました。ありがとうございました。 追加の質問で申し訳ないのですが、MDI親フォームを使用しているとそちらのテキストを取得してしまうのですが、子フォームのテキストを取得する場合はどのようにすればよろしいのでしょうか? よろしくお願いいたします。

回答No.1

お世話になります。 こんな感じになると思います。 If Not System.Windows.Forms.Form.ActiveForm Is Nothing Then   Console.WriteLine(System.Windows.Forms.Form.ActiveForm.Text) End If

参考URL:
http://msdn2.microsoft.com/ja-jp/library/system.windows.forms.form.activeform.aspx
ken-mm
質問者

補足

naganaga_001さん、ご回答ありがとうございます。 取得したい箇所はモジュールですので、System.Windows.Forms.Form.ActiveFormはNothingになっております。 よろしくお願いいたします。

関連するQ&A