質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

.NET Framework

.NET Framework は、Microsoft Windowsのオペレーティングシステムのために開発されたソフトウェア開発環境/実行環境です。多くのプログラミング言語をサポートしています。

Q&A

解決済

1回答

901閲覧

複数フォームから一つのフォームに情報を渡す

FWdaichi

総合スコア1

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

.NET Framework

.NET Framework は、Microsoft Windowsのオペレーティングシステムのために開発されたソフトウェア開発環境/実行環境です。多くのプログラミング言語をサポートしています。

2グッド

1クリップ

投稿2022/12/26 08:56

c#初心者です。よろしくお願いします。
リストボックスを作り、ユーザーに項目を選択してもらうフォームを四つ作成。(四人が行う)
その各自が選んだ項目を配列にして、一つのフォームで共通項や違いを処理したいです。 
二つのフォーム間の情報の受け渡しはネットで紹介されていますが、複数フォームから一つのフォームに情報を渡すことは可能ですか?

TN8001, FWdaichi👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Zuishin

2022/12/26 09:03

はい。システムが独特すぎて、最終的な形が私の想像と違うならいいえ。
退会済みユーザー

退会済みユーザー

2022/12/26 09:26

何を何で作っているかを質問欄を編集して追記してください。(例: Windows 10 の Visual Studio 2022 で Windows Forms アプリをターゲットフレームワーク .NET Framework 4.8 で作っています・・・とか) ターゲットフレームワークというのは、Visual Studio のソリューションエクスプローラーでプロジェクト名を右クリックして出てくるメニューでプロパティを選んで表示すると「対象のフレームワーク」という項目があるので、それを見てください。
FWdaichi

2022/12/26 10:37

返信ありがとうございました。やろうとしていることが独特なんですね。もう一度組み立て直してみます。 ターゲットフレームワークについても知りませんでした。勉強します。ありがとうございました。
dodox86

2022/12/26 11:13

> リストボックスを作り、ユーザーに項目を選択してもらうフォームを四つ作成。(四人が行う) 説明がザックリし過ぎで読んでいる者には分からないのです。4人が行うって書かれると、同時にということ? ひとつの画面を同時に4人とは考えづらいからネット? でもデスクトップアプリ(例えばWindows Forms)なのかネット、WEBアプリ(例えばASP.NET) なのか分からない。 読んでみましょう。teratailに限りません。 [質問するときのヒント] https://teratail.com/help/question-tips
FWdaichi

2022/12/26 11:21

すいません。初心者すぎて、質問のマナーもなってないですね。一つのパソコンを四人で順番に使うことを考えてます‥が、みなさんからヒントをもらったので、改めて組み立て直してみます。ありがとうございました。
Zuishin

2022/12/26 11:46 編集

マナーというか、質問の意味がわかりません。 > 二つのフォーム間の情報の受け渡しはネットで紹介されていますが、 素直に読めば、「紹介されている方法でなぜやってみないの?」という疑問がわきます。 二つの間で受け渡しできるなら、それを四回繰り返すだけなので、何もハードルがあるように思えません。 それをわざわざ聞くということは、私の想定していないことをしようとしていて、質問にそれが反映されていないのだろうと推測できます。 しかし、何がしたいのかを聞くと大抵の質問者は「何をしようが自分の勝手で教える必要はない、ただ聞かれたことだけに答えろ」と理不尽なことを言い始めるので、聞かれたことにだけ答えました。 > 一つのパソコンを四人で順番に使うことを考えてます ユーザーアカウントを四つ作るのが普通の、そして推奨される使い方です。
FWdaichi

2022/12/26 12:00

返信ありがとうございます。二つのフォームでできましたが、結果を同一フォームにすることができません。四つのフォームの結果を一つのフォームに送れません。 しかし、そもそも一つのパソコンを四人で使うところからおかしいのですね。 勉強し直します。
退会済みユーザー

退会済みユーザー

2022/12/26 12:26

何を何で作っているか・・・と聞きましたが答えられないのですよね。それでは話が通じるはずはないと思いますよ。
FWdaichi

2022/12/26 13:21

ジョハリの窓という自己分析ツールを、Windows 11の Visual Studio 2019で.NET Framework 4.7.2 で作っています。
退会済みユーザー

退会済みユーザー

2022/12/26 13:31 編集

質問欄を編集して追記してください・・・とお願いしましたが。即、上記のことを質問欄を編集して追記してくれていたら話が変わってきたかもしれませんよ。
退会済みユーザー

退会済みユーザー

2022/12/26 13:41

質問する際はそもそも何がしたいのかを書くことをお勧めします。今回の場合は「ジョハリの窓という自己分析ツール」を作りたいということ。でないと、初学者の場合は XY 問題になりがちです。 XY 問題とは、X という課題があって、Y という解決策を考えついて Y について質問したが(質問には X は書かないで)、Y は X の解決策とはなっておらず、回答者と質問者間で話がかみ合わず、一向に解決にならないということです。 X も書いてください。
FWdaichi

2022/12/26 13:47

わかりました。曖昧な質問でみなさんを煩わしてしまいました。気をつけます。
guest

回答1

0

ベストアンサー

二つのフォーム間の情報の受け渡しはネットで紹介されていますが、複数フォームから一つのフォームに情報を渡すことは可能ですか?

4人同時に入力するわけではないでしょうから、「二つのフォーム間の情報の受け渡し」を順番に4回すれば良いように思います。

個人的にはダイアログは好きではないので、メインウィンドウ内で遷移するようにしたいですね。
そうすれば「フォーム間」でどうのこうのと考える必要もありません。

ウィンドウ内遷移は、このあたりがポピュラーかと思います。

  • PanelVisibleを変える
  • PanelのZオーダーを変える(BringToFront
  • Panelの中身ごと入れ替える
  • TabControlを使う

Visual C#での画面遷移の一般的な方法
C#での画面遷移の仕方を教えてください

ご存じだとは思いますが、こちらもある意味「ウィンドウ内遷移」ですよね?
ジョハリの窓Webアプリ


蛇足というかある意味本題w

ジョハリの窓という自己分析ツールを、Windows 11の Visual Studio 2019で.NET Framework 4.7.2 で作っています。

初めて聞いたので調べてみましたが、面白そうですね。
ggって出てきた↓をパクッて大いに参考にさせていただいて、ちょろちょろコードを書いていました。
ジョハリの窓Webアプリ(β) ~みんなで自己分析・他己分析~ | 適性検査「ポテクト」

書いてはいたんですがWindowsフォームではあまりにレイアウトが難しすぎて、私の手には負えませんでした^^;
特に結果の画面をTableLayoutPanelFlowLayoutPanelで作ろうと数日格闘していたんですが、思ったようにならず頭にきてやめましたw

口直しに得意なWPFでやることにしたら、スイスイできてしまいました(xamlを書いているときが一番楽しいです)

Windowsフォームとは前提知識にだいぶ差があるので、参考になるかどうかはわかりませんがよかったら見てみてください(WPFは楽しいですよ^^)

あまりトリッキーなことはしていませんが、唯一DataGridDataTable)を行列ひっくり返して使っています(DataGridVIewでもこの手でいけます)
入力画面をできるだけ簡単に作るためですが、そのせいで扱いがややこしくなっています。

無駄に細かいところに凝ったせいで、1万字に収まりませんでした。
TN8001/JohariWindow: ジョハリの窓 Johari window

アプリ画像1
アプリ画像2


リポジトリにWindowsFormsApp1が追加されています。

アプリ画像3

投稿2022/12/29 12:04

編集2023/07/31 10:30
TN8001

総合スコア9244

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

FWdaichi

2022/12/29 13:00

ありがとうございます。この一カ月くらいずっと考えていて、先に進まず参ってました。まさかこんなに考えてくれた人がいたとは‥涙 本当にありがたいです。初心者のため、理解が追いついていませんが、これからじっくり勉強させていただきます。また質問することがあるかもしれませんが、まずは回答を参考に勉強します。本当にありがとうございました。
TN8001

2022/12/30 13:23

参考サイトに寄せようとしすぎて無駄に難解になってる気がするので、現状に近そうな実装でやり直しました^^; * サイズ追従なし(色付きパネルが伸縮しない) * 4人で固定(可変にする余地は残しているが、現状デザイナ配置) * 入力はダイアログのリストボックス 個人的には納得いっていませんが、わかりやすさを重視しました。 リポジトリにWindowsFormsApp1が追加されています。
FWdaichi

2022/12/30 15:12

本当に丁寧な回答ありがとうございます。WPFは学んだことがなく、理解が追いついていません。しかしいただいたヒントをもとにパネルに取り掛かって、少し進みました。追加分も確認します。いただいた回答を無駄にしないよう頑張ります。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問