• ベストアンサー

フォーム間でのオブジェクト又は値の共有

Visual StudioにてWindowsフォームアプリを作成しています。 ログイン画面がありそこで使用したユーザーIDを別の画面で表示させたいというとき どうすればよいのでしょうか。 インターネットを検索しているとフォーム情報を次の遷移先の画面のフォームクラスに渡す というような処理をやっていたのですがこの方法だと画面数が多いと大変だと思います。 セッションのようなどの画面からもアクセスできるような仕組みはWindowsフォームアプリには 用意されているのでしょうか。一般的にはどのようにやるものなのでしょうか。

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

  • ベストアンサー
  • Wr5
  • ベストアンサー率53% (2177/4070)
回答No.1

>インターネットを検索しているとフォーム情報を次の遷移先の画面のフォームクラスに渡す >というような処理をやっていたのですがこの方法だと画面数が多いと大変だと思います。 データをまとめて保持するクラスを作って、フォームのプロパティなどで受け渡しするようにする。 とかありそうですが……。 面倒なら受け渡しする為のプロパティを組み込んだクラスをFormクラスから継承して、そのクラスを継承してそれぞれのフォームを作ればコード書く場所は限定できますし。 # まぁ、フォームを追加するたびにコードの一部を修正する必要があるでしょうけど。(どうせ追加時の1回だけです) あとは…Program.csにフィールド追加でしょうかね? やったことはありませんけど。 http://okwave.jp/qa/q4740138.html http://social.msdn.microsoft.com/Forums/ja-JP/56f0d319-d1b6-4adb-b91a-c92e16c3bdfc/formclass?forum=csharpgeneralja などなど。

unko347
質問者

お礼

ご回答ありがとうございます。 リンク先を参照してみたいと思います。

その他の回答 (1)

  • DoubtOwl
  • ベストアンサー率50% (63/124)
回答No.2

一般的にはあなたが調べられたようにフォームに受け渡します。 Staticクラスやグローバル変数で調べるといいかと思います。

unko347
質問者

お礼

ご回答ありがとうございます。 早速、調べてみたいと思います。

関連するQ&A

  • Weblogicのセッションについて

    Weblogic10.0.3にてWebアプリケーションの 開発を行っていますが、解決しない問題があり 質問させていただきます。 現在、ログイン画面にてユーザーIDとパスワードを 入力してログイン後各処理を行うアプリを開発していますが、 ログイン時のユーザー情報をセッションに保持する作りに していますが、ログイン時にjsessionidがURLに 表示されてしまいます。 (例:http://testserver:9000/TestApp/Test.do;jsessionid=vFqyK3xMrJ9QCLJnW0X0r2w17ylBVhhD2VQT4qGwdMsGvhnZHdJQ!-425034523) 一度ログインするとそのブラウザを閉じるまでは、画面遷移をしても 何度ログイン・ログアウト処理(セッションの生成・削除)を 行っても二度と表示されません。 (画面遷移はStrutsで制御しています) セッションIDをCookieに保持する方法もあるようですが、 なるべくCookieを使いたくないので、セッションに保持するように したいのです。 web.xml、weblogic.xml、Weblogicサーバーの設定などで セッションIDを表示しなくなる方法がありましたら 教えてください。よろしくお願いします。

  • c# フォームで入力された値をクラスに

    いつも大変助かっています。 c#、 visual studio2005を使ってます。 フォームで入力した値をDBに保存するのではなく、 別に作ったクラスへ保存したいのですが、 何から始めればいいのかが全くわかりません・・・。 どのような流れで進めればよいでしょうか?

  • C# フォームを追加するとエラー

    C# 勉強中の者です。Visual Studio 2008 を使用しています。 既に一つのフォームで実行できているプロジェクトがあり、[プロジェクト]-[Windows フォームの追加]から追加してフォームを2つにしてみようと思いましたが、以下エラーが出てしまいます。 <エラー内容> ファイル内にデザインできるクラスがないため、このファイルのデザイナを表示できませんでした。ファイルの以下のクラスがデザイナで見つかりました: Form2 --- 基本クラス 'System.Object' をデザインできません。 <このエラーのヘルプ> Visual Studio 内のクラスが、画面上でデザインできるクラスから継承されていないため、ファイルのデザイナを開けません。 どうすればフォームを追加することができるのでしょうか? よろしくお願いします。

  • Accessでのフォーム表示

    こんにちは。 現在、Access2003で顧客管理の アプリケーションを作成しています。 ログイン画面でユーザ名とパスワードを入力するテキストを作成し、 コマンドボタンを1つ作成しました。 ユーザ名とパスワードを入力し、ボタンを押すと 認証をして、次のメインフォームを表示するようなものを 作成したいのですが、 別フォームをどうやって表示するのか分かりません。 Visual Basic にはshowメソッドがあったのですが Accessには存在しないようなのですが、どのようにして表示すればよいのでしょうか? どなたかご教授お願いします。

  • docomoのセッションが切れてしまうのは?

    携帯サイト用のセッションでdocomoの時だけ思うように フォームによるページ遷移ができません。 色々試してみたのですが、サッパリです。 どなたかお知恵をお貸し下さい。 例) -- page01.php -- session_name( "test" ); session_start(); session_regenerate_id(true); $test = session_name()."=".session_id(); if ( ( $smp01 = auth() ) == FALSE ) { header( "Location: ./test.php?redirect=index_test.php?" ); exit; }←ログイン時の処理(ユーザー定義関数にて) ・        ・        ・        ・ <form action="page02.php?<?= $test ?>" method="get" /> 入力:<input name="test01" type="text" value="" /> <input name="smp02" type="submit" value="next" > </form> ↑入力させてpage02.phpにて処理 上記のようにしているのですが、 submitするとログイン時の処理に掛かってセッションが切れてしまい ログインページに戻ってしまいます。 ログイン時の処理を削除するとpage02.phpへと遷移します。 ログイン時の処理を残したままセッションが切れずにフォームによる ページ遷移ができるようにするにはどのようにすれば良いのでしょうか? よろしくお願いします。

    • ベストアンサー
    • PHP
  • サーバのフォルダにデータを送りたい。ログイン画面出さないで・・・VB2005

     クライアントからサーバのあるフォルダにアクセスして、テキストデータをおきたいのですが。 サーバにユーザを作らずにアクセスするとIDとパスワードを入力する画面がでてきますが。 一度IDとパスワードを入れてアクセスすれば。PCを終了するまで出てこないですが。 PCを起動しなおすとアクセスする度にログイン画面がでてきてしまいます。 ログイン画面を出さずに、IDとパスワードを自動で入力するなどして。 サーバのフォルダにデータを送る方法はないでしょうか? 本当はサーバにユーザを作ってアクセス設定をしてやるのがBestなのでしょうが。 すいませんが。アドバイスをお願いします。 開発環境  VB2005  Visual Studio 2005 Pro SP1 Windows XP Pro SP2

  • ログイン画面作成

    ASP.NETの初心者ですが、ログイン画面の作成取り掛かっています。 しかし、プログラミングの部分まったく進みません。。 機能としては、 初回起動のときデータベースとの接続を行う。 接続成功の場合はログイン画面を表示する。 失敗の場合はエラーメッセージを表示する。 ログインボタン押下 ユーザID入力あり チェック:半角や桁数チェック(false) エラーメッセージ パスワード入力あり チェック:半角や桁数チェック(false) エラーメッセージ DBに登録されているユーザIDとパスワードと一致するとき セッション変数に ユーザIDの値を設定する。 次の画面(メニュー)に遷移する。 一致しなかった場合 ログイン画面に最遷移 環境は.NET2003 DB: Access 言語VB 大体でいいですが、どういうふうにやるのか教えていただけませんか よろしくお願いします。

  • フォームの入力値のセッション破棄は?

    Aフォームがありまして、入力して確認ボタンを押し、セッションに入力値が格納されたけど、途中でBフォームへ行ってしまった、という場合、いつまでもAフォームの入力値をセッションに格納しておいても使わないですし、セッション変数名が競合して予期しない動作をしても困るので、他のページへ遷移した時点でAフォームの入力値セッションを削除するようにしたいのですが、実装方法としては、URLまたは絶対パスをセッションに入れといて、画面遷移するごとにそのセッションとURLまたは絶対パスを突き合わせ、一致しなければ削除、というやり方で問題ないでしょうか? ロードバランサ使ってても同一ページなら絶対パスは変わらないのでしょうか??詳しくないんですが…。 美しい実装方法をご教示ください…。

    • ベストアンサー
    • PHP
  • フォーム1はどこへいったのでしょう?

    初心者です。 Microsoft Visual Basic 2008 Express Editionを使用しています。 新しいプロジェクト→windowsフォームアプリケーション →Form1に何個かコントロールを置く→デバッグ開始 →プロジェクトの保存→名前、ソリューソン名、WindowsApplication1→上書き保存→VB2008の終了 をしました。 さて質問ですがForm1を起動されたいのですがどこにあるのでしょう? C:\Users\○○\Documents\Visual Studio 2008\Projectsの中に 「WindowsApplication1」というフォルダがあるのでクリックしてみましたがどれを探せばいいのかわかりません。 そもそも「exe」の拡張子を捜せばいいのですよね?どうも見当たりません。 ご教授よろしくお願いします。

  • ■VS2005によるモバイルWebフォームの作成について

    ■VS2005によるモバイルWebフォームの作成について [開発環境] Visual Studio2005 [開発言語] ASP.NET / VB2005 / .netFw3.5 [概要]  モバイルWebフォームで携帯サイト作成中 [質問内容] ・いつもお世話になります。m(__)m  現在モバイルサイトを作成中なのですが、  何点か解らない事があり、困っています。  ご存じの方いらっしゃいましたら、ご教授  願えませんでしょうか。 (1)モバイルWebフォーム上にセットした、「Link」コントロールを  押下した時、遷移先のページへ動的な値を渡したい。  (DBから取得中の情報)  単純に次のページに値を渡す方法も解りませんm(_ _)m  クリックイベントのようなものがあるのでしょうか? (2)モバイルWebフォーム上では、HTMLタグの「<hr>水平線」が使用  出来ないが、水平線のようなものをセットし、区切りを作りたい。  良い方法はありませんでしょうか? (3)携帯端末(Docomo,AU,SoftBank)で、下記の内容を実装して問題は無いでしょうか?  1.Session変数を使用して、遷移時に値を渡す。  2.Server.Transferでの画面遷移  3.Response.Redirectでの画面遷移 (4)コントロールの頭に文字を入れたい。  例:  検索文字列:[TextBox]  ↑↑↑↑↑↑  (モバイルWebフォームでは1行に1個のコントロール?) 以上4点ですが、どうぞ宜しくお願いします。