C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[8]: 子フォームへ引数などを渡すには


(過去ログ 135 を表示中)

[トピック内 9 記事 (1 - 9 表示)]  << 0 >>

■79448 / inTopicNo.1)  子フォームへ引数などを渡すには
  
□投稿者/ 初心者 (47回)-(2016/04/03(Sun) 18:57:17)

分類:[VB.NET/VB2005 以降] 

2016/04/03(Sun) 19:01:37 編集(投稿者)
Form1から同じForm2を開くのですが、子フォーム1から開いたものと子フォーム2で開いたものとを区別をしたいです。
引数などでも渡せたらと思い検索もしてみたのですが良く分かりません。
よろしくお願いします。


    Private Sub 子フォーム1ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 子フォーム1ToolStripMenuItem.Click
        Dim frmchild As New Form2
        frmchild.MdiParent = Me
        frmchild.Show()
    End Sub

    Private Sub 子フォーム2ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 子フォーム2ToolStripMenuItem.Click
        Dim frmchild As New Form2
        frmchild.MdiParent = Me
        frmchild.Show()
    End Sub

引用返信 編集キー/
■79449 / inTopicNo.2)  Re[1]: 子フォームへ引数などを渡すには
□投稿者/ WebSurfer (880回)-(2016/04/03(Sun) 19:31:28)
No79448 (初心者 さん) に返信

> Form1から同じForm2を開くのですが、子フォーム1から開いたものと子フォーム2で開いたものとを区別をしたいです。
> 引数などでも渡せたらと思い検索もしてみたのですが良く分かりません。

Form2 のコンストラクタに渡したいオブジェクトを引数に持つものを作ってはいかがですか?
引用返信 編集キー/
■79452 / inTopicNo.3)  Re[2]: 子フォームへ引数などを渡すには
□投稿者/ 初心者 (48回)-(2016/04/03(Sun) 22:20:57)
No79449 (WebSurfer さん) に返信

ありがとうございます。

> Form2 のコンストラクタに渡したいオブジェクトを引数に持つものを作ってはいかがですか?

ネット検索していてそのようなのもあったのですが結局分からず質問したようなことです。

引用返信 編集キー/
■79453 / inTopicNo.4)  Re[3]: 子フォームへ引数などを渡すには
□投稿者/ WebSurfer (881回)-(2016/04/03(Sun) 23:03:21)
No79452 (初心者 さん) に返信

コンストラクタというのは何だか分かりますか?

#今後もこのコミュニティに参加していくつもりがあるのでしたら「初心者」という
 ハンドル名を使うのは止めましょう。誰が誰だか分かりません。「利用方法/規約」
 にあるようにユニークなハンドル名を使ってください。
引用返信 編集キー/
■79454 / inTopicNo.5)  Re[4]: 子フォームへ引数などを渡すには
□投稿者/ 初心者 (49回)-(2016/04/03(Sun) 23:26:15)
No79453 (WebSurfer さん) に返信

すみません。

質問攻めなど拘りがあるのでしたら遠慮しておきます。


> ■No79452 (初心者 さん) に返信
>
> コンストラクタというのは何だか分かりますか?
>
> #今後もこのコミュニティに参加していくつもりがあるのでしたら「初心者」という
>  ハンドル名を使うのは止めましょう。誰が誰だか分かりません。「利用方法/規約」
>  にあるようにユニークなハンドル名を使ってください。
引用返信 編集キー/
■79455 / inTopicNo.6)  Re[5]: 子フォームへ引数などを渡すには
□投稿者/ WebSurfer (882回)-(2016/04/04(Mon) 00:11:16)
No79454 (初心者 さん) に返信

> 質問攻めなど拘りがあるのでしたら遠慮しておきます。

そんなものはありませんが「コンストラクタ」といわれて何だか分からない
ようですと掲示板で説明するのは難しいので聞いてます。

そんな基本的なことは知っているということであれば、その旨返答していた
だけばいいと思いますよ。
引用返信 編集キー/
■79460 / inTopicNo.7)  Re[6]: 子フォームへ引数などを渡すには
□投稿者/ 初心者 (50回)-(2016/04/04(Mon) 13:26:17)
No79455 (WebSurfer さん) に返信

具体的にプログラムも付け教えてください。
その方が理解もし易いですし実質的です。

> そんなものはありませんが「コンストラクタ」といわれて何だか分からない
> ようですと掲示板で説明するのは難しいので聞いてます。
>
> そんな基本的なことは知っているということであれば、その旨返答していた
> だけばいいと思いますよ。
引用返信 編集キー/
■79461 / inTopicNo.8)  Re[7]: 子フォームへ引数などを渡すには
□投稿者/ 魔界の仮面弁士 (684回)-(2016/04/04(Mon) 13:54:00)
No79448 (初心者 さん) に返信
> 子フォーム1から開いたものと子フォーム2で開いたものとを区別をしたいです。

たとえば、
 frmchild.Tag = "子フォーム1ToolStripMenuItem"
 frmchild.Show()
のように、「Tag プロパティ」あるいは「自作プロパティ」などに
識別用のデータ(数字でも文字列でも自作クラスでも可)を入れておき、
その内容に従って区別させる事はできます。


このとき、子フォームが呼び出し元に依存しすぎないよう注意してください。

たとえば、MessageBox を呼び出す場合、呼び出し元からは
ボタン種・アイコン種・メッセージ・タイトル等を指定することになりますが、
その呼び出し元が Form1 であろうと Form2 であろうと、
MessageBox 側の振る舞いが変わる事はありませんよね。



No79460 (初心者 さん) に返信
> 具体的にプログラムも付け教えてください。
> その方が理解もし易いですし実質的です。

子フォームに、必須な情報を渡す場合はコンストラクタ、
オプショナルな情報であれば、メソッドやプロパティで渡すと良いでしょう。


メソッドやプロパティで渡す方法については、こちらに実例があります。
http://www.atmarkit.co.jp/fdotnet/chushin/introwinform_07/introwinform_07_02.html


下記は、コンストラクタに Integer 値を渡せるようにした例です。
http://dobon.net/vb/bbs/log3-37/22887.html
http://www.itlab51.com/?p=4320
引用返信 編集キー/
■79465 / inTopicNo.9)  Re[8]: 子フォームへ引数などを渡すには
□投稿者/ 初心者 (51回)-(2016/04/04(Mon) 18:28:45)
2016/04/04(Mon) 18:35:38 編集(投稿者)

No79461 (魔界の仮面弁士 さん) に返信

ありがとうございます。

> たとえば、
>  frmchild.Tag = "子フォーム1ToolStripMenuItem"
>  frmchild.Show()

の方で希望通りになりました。

> このとき、子フォームが呼び出し元に依存しすぎないよう注意してください。

こちらの方にも注意します。

> 子フォームに、必須な情報を渡す場合はコンストラクタ、
> オプショナルな情報であれば、メソッドやプロパティで渡すと良いでしょう。

これも併せて勉強してみます。

本当にありがとうございました。



解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -