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

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

ログ内検索
  • キーワードを複数指定する場合は 半角スペース で区切ってください。
  • 検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
  • [返信]をクリックすると返信ページへ移動します。
キーワード/ 検索条件 /
検索範囲/ 強調表示/ ON (自動リンクOFF)
結果表示件数/ 記事No検索/ ON
大文字と小文字を区別する

No.87769 の関連記事表示

<< 0 >>
■87769  Re[3]: 別フォームにデータを渡したい
□投稿者/ にゃるら -(2018/06/29(Fri) 09:55:24)
    No87764 (いまそかり さん) に返信
    > Dim fType As Type = Form1.GetType()
    >
    > Dim f2 As New Form2()
    >
    > fType.InvokeMember("Form1_Load",
    > BindingFlags.NonPublic Or
    > BindingFlags.Instance Or
    > BindingFlags.InvokeMethod,
    > Nothing,
    > From1,
    > New Object() {Form1, f2}
    > )
    >
    >
    > 参考(https://dobon.net/vb/dotnet/programing/invokenonpublicmember.html
    > 「隠蔽されている非パブリックメンバを呼び出す」)
    >
    > これで合ってますかね…?

    4つめの引数のFrom1がForm1クラスのインスタンスであればこれでよいと思います。

    あと補足でNew Object()の部分は、Form1_Loadの引数になって渡す値ですね。

    Form1_Loadの1つ目の引数はsender、これはForm1_Loadメソッドを備えている
    Form1のインスタンスを渡してあげる方がよいですね。

    2つ目の引数はe、Loadイベントを呼んだ補足情報となるEventArgs型の値です。
    特に使うことがないときは、私はEventArgs.Empty(staticなメンバ)を渡してあげます。
    何に使うの?っていうと、たとえばですけども、
    ClosingイベントだとCancelEventArgsっていう型になっていて、フォームを閉じようとした
    ときに、「やっぱり閉じるのやめるわ」ってことがCancelEventArgsのCancelプロパティに
    falseを設定することで実現できたりします。
    マウスを動かしているときのMouseMoveイベントだとMouseEventArgsg型で、座標の値(x, y)が取れたりします。

    > また、以前「基本はPublicではなくPrivateで書いたほうがいい」と授業で習った覚えがあったので、
    > Privateで記述していました。

    そうですね、その習ったことが間違いとは思いません。
    教えられたことを素直に実践するのはとても良いことだと思います。
    とはいえ、まずはプログラムは動いてなんぼ。
    動く->適切な設定 の順で試される方が良いと思います。(動いた方が楽しいし!)

    > でも、まずはにゃるらさんの言う通りPublicでやった方がやりやすいかもですね…。
    > 次回からはその方法も試してみます。

    時間がもしあるなら、色々試してみてね。
    ちなみに僕が回答したリフレクションを使って解決するのは、今回の課題の要件でいけば「適切でない方法」「間違った方法」です。
    他の方からの意見は「適切な方法」「正しい方法」です。
    いじわるしたわけではないですが、やろとする方法で動くようにすることを提案したまでです。

    適切な方法、適切でない方法、正しい方法、間違った方法、どれも「自分で試す」ことが大事だと思います。

    出来ればこれからもプログラミングを楽しいと思ってもらえたら幸いです。
    でわでわ。
記事No.87756 のレス /過去ログ151より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -