• 締切済み

モジュール内の静的関数からフォームの名前を取得することは可能でしょうか?

VB2008で、ListBox上にプログラムに含まれるフォームの名前の一覧を表示させたいのですが、モジュールに静的関数で呼び出す作りで(クラス内だとMeが使えますが、モジュールだとMeが使えないので難しいかな?) お願いします。

みんなの回答

回答No.2

>[フォームID]は何ですか? 例えば、Form1という名前でモジュールなりクラスを作ったとします。 そのForm1を関数を作成した参照設定して使えるようにし、引数として使用してあげれば実行できる気がしますがどうでしょう。

全文を見る
すると、全ての回答が全文表示されます。
回答No.1

モジュールに引数を用意して渡してあげればできると思いますよ。 Private Sub Edit_ListBoxItem (ByVal ifForm As [フォームID]) For Each objControl As Windows.Forms.Control In inForm.Controls MsgBox(objControl.Name) Next End Sub

su31fox
質問者

補足

[フォームID]は何ですか?

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • VB.NETのモジュールで定義した関数のように、どこからでも呼び出せる 関数は、C#でどのように記述するのでしょうか?

    C#2005で、どこからでも呼べる関数ができないか悩んでいます。 昔、関数のプログラムを作っていた頃から、進歩せず オブジェクト思考的なプログラミングが苦手で、 エラー 名前 '***関数名***' は現在のコンテキスト内に存在しません。 というエラーがたくさん出て、苦しんでおります。 VB.NETのモジュールで定義した関数のように、どこからでも呼び出せる 関数は、C#でどのように記述するのでしょうか? クラスが基本という方針はわかりますが、まず手がかりが欲しいです。

  • フォームとモジュール

    フォームで指定したデータを モジュールに渡し、その結果を フォームに反映させる処理を作成すると したら、どのようなVBソースを書けば良いでしょうか? 処理の流れ、方法は以下の通りとなります。 **フォーム*************************** (1):検索する年、月を画面から指定 (6):検索フラグ判定   フラグが"1"…   (5)で取得したレコードセットの内容を   画面に表示する   フラグが"0"…エラーを表示 ***モジュール*************************** (2):DB接続 (3):(1)の年、月から、モジュール内関数を使用し、   月の最終日を取得 (4):検索用SQL発行((1)と(3)の年月を使用) (5):検索データ取得判定   (4)の対象データ(レコードセット)が有…   検索フラグを"1"にする   レコードセットの内容は保存する   (4)の対象データ(レコードセット)が無…   検索フラグを"0"にする

  • VBのフォームモジュールと標準モジュールの使い分け

    VBのフォームモジュールと標準モジュールの使い分けが今一つわかっていません。 フォームモジュールとは、フォーム(画面)上で起こったイベント(例えば、ボタンをクリックした時とか、ユーザーが行を選択したりだとか)の処理を、記述するところと解釈しています。 標準モジュールは、フォームが2つ以上あって、その2つが共通する処理(関数)などを、記述したり、フォームが1つでも、同じ処理を繰り返す場合、その処理を標準モジュールに書いたり・・・・という解釈をしています。 あってますでしょうか? フォームが一つしかない場合、もしくは2つあっても、あまり共通する処理がない場合、なんかは標準モジュールはあまり使わないのでしょうか? それとも、フォームが1つとかでも、今後のメンテの事など考慮して、標準モジュールを作ってそこにグローバル変数なんかで処理を書いた方がよいのでしょうか? どなたか、教えてくださいませんか? いろいろBBSなどで見てみるんですが、いろいろ書いてあって、どれが理想か わかりません。よろしくお願いいたします。

  • モジュールからルート名前空間を取得する方法

    VB2008を使っています。 モジュールからルート名前空間を取得する方法はありますか? まだ、MeやClass,Moduleの違いがようやくわかってきたところです。

  • モジュールのShowDialogで呼出したフォーム上で実行。さらにMe

    モジュールのShowDialogで呼出したフォーム上で実行。さらにMe.Disposeを実行 (vb.net2003)。 当サイトは何度か利用させて頂いて感謝をしております。上記についてですが呼び出されたフォームは確かに消えるようになりました。が、モジュールに戻った時点でメッセージが出てモジュールが終了しません。原因は「既にフォームが消された」情報がモジュールに伝わっていないので ShowDialog が終わらずメッセージを出したと思われます。モジュール側で、Try***Finally***等の対策コードをつくる必要があると思われますが全くのおてあげです。よろしくご教授をお願いいたします。

  • フォーム名一覧の取得

    VB6を使用しております。 プロジェクト内のフォーム、標準モジュールの一覧を 取得する方法を探しております。 ご存知の方がいらっしゃいましたら 教えてください。 よろしくお願い致します。

  • クラスモジュールについて

    VBを勉強し始めた初心者です。 標準モジュールについては何とかわかるようになってきましたが、クラスモジュールについては、ほとんどわかりません。 クラスモジュールの意味や、プログラム法について初心向けにわかりやすく書いた本等がありましたら、ご紹介下さい。

  • VB2008でMDIフォームを使用した時の不具合

    お世話になります。 VB2008でMDI親フォームから 子フォームを表示して子フォーム内のイベントから クラスモジュールを生成してフォーム内のリストに 表示処理を行っているのですが、クラスは確かに 呼ばれているのですが子フォーム内のリストに データが表示されません。 親フォームに Me.IsMdiContainer = True FRM = New FRMZIP With FRM .MdiParent = Me .Show() End With 以外に子フォームのオブジェクト定義が 必要なのでしょうか? VBは6.0以降殆ど実務では経験ありません。 宜しくお願いいたします。 PS 子フォームを単体で起動すると普通に 動作します。

  • フォームが開けなくなりました

    VB6のsp6での質問です。開発環境はWinXP Proです。 作成中に、急に一つのフォームが開かなくなりました。 プロジェクトエクスプローラにはフォームやモジュールなどが表示されていますが、その一つをダブルクリックするとフォームが開かれますよね。それが、何も開かないフォームが出来てしまったんです。プログラムを実行すると、その見えないフォームもきちんと表示され、動かすことが出来ます。また、コードを表示することは出来ます。ただ画面が表示されないので、デザインの変更が出来ない状況です。 原因のお分かりになる方、よろしくお願いいたします。

  • 標準モジュールからフォームをコントロールしたい

    こんにちは。 標準モジュールからフォームのリストボックスに文字を追加したいんですが、うまくいきません。 まず、button1をクリックすると、共通モジュールのサブルーチンを呼び出します。そして引数"0"を渡すと、Form1のListBox1に"hello"を追加したいのです。 実行させると、エラーはでないのですが、追加されるはずの"hello"がListBox1に追加されません。 たぶん     frm1.ListBox1.Items.Add("hello") あるいは    Dim frm1 As New Form1() あたりの宣言の仕方がまずいのだと思うんですが... どなたか、ご教授よろしくお願いします。 ■共通モジュール Module Module1 Dim frm1 As New Form1() Sub PC(ByVal PCrecieve As String) If PCrecieve = "0" Then frm1.ListBox1.Items.Add("hello") End If End Sub End Module ■フォーム Public Class Form1 Inherits System.Windows.Forms.Form Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Call PC("0") End Sub End Class

このQ&Aのポイント
  • 上司が自分の懇意にしている部下にだけお菓子を配る行動について疑問が生じています。
  • 独身者には平等に配るイメージがある中、既婚者が一人で取り込むのは不思議です。
  • この行動が一般的かどうかについて考えています。
回答を見る