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

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

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

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

Visual Studio

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

Q&A

解決済

1回答

1200閲覧

DataGridViewの値の呼び出し

maam

総合スコア55

C#

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

Visual Studio

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

0グッド

0クリップ

投稿2019/01/10 05:44

VisualStudioのWindowsFormで
Form1とForm2を用意しています。
Form1にはDataGridViewを配置しています。
Form1ではSQLServerに登録している生徒の情報が検索でき、(名字検索、性別検索など)
該当する生徒の情報(カラム:名前、性別、生年月日、電話番号)がDataGridView上に5件まで表示されます。(この部分は終わっています。)
生徒の情報が表示されると同時に、生徒ごとに編集ボタンが右端にそれぞれ追加されます。
編集ボタンを押すと、その生徒情報を編集する画面Form2へ移動します。

そこで質問です。
DataGridViewの編集ボタンを押した生徒の情報を
Form2のTextBoxやComboBoxに初期値として反映するにはどうしたらよろしいでしょうか。
Form1でも何か処理が必要ですか?

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

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

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

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

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

guest

回答1

0

ベストアンサー

Form2に生徒情報のプロパティを設置し、Form2を表示するときに、そこに生徒情報を代入してしまう、ってのが一番簡単ですね

あるいは、Form2.Showメソッドを再定義し、引数に生徒情報のclassを取る、ってのでもいいかと。

投稿2019/01/10 05:51

y_waiwai

総合スコア87719

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

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

maam

2019/01/10 06:20

ご回答ありがとうございます。 生徒情報のプロパティとは、get set のことでしょうか
y_waiwai

2019/01/10 06:24

まず、生徒情報をまとめたstruct かclassを定義しておき、Form2にpublicのプロパティとして設置しておきます で、Form1から呼び出すときに、そのclassを生成して、生徒情報をそれに設定、Form2に渡す、となりますね
maam

2019/01/10 06:37

Form1の編集ボタン押下時の中で該当する生徒情報のclassを定義して、 編集画面に移動し画面が展開されたと同時にForm2に渡すということですか??
y_waiwai

2019/01/10 06:41

Form2を表示させるときは form2.student = data; // 生徒情報 form2.Show(); で。
maam

2019/01/10 07:10

もともとForm1では private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e) { DataGridView dgv = (DataGridView)sender; //編集ボタンを押したときの処理 if (dgv.Columns[e.ColumnIndex].Name == "編集") { this.Hide(); Form2 form2 = new Form2(); form2.Show(); } } にしていました。 this.Hide(); Form2 form2 = new Form2(); の部分を form2.student = data; にすると、”Form2は存在しません””dataは存在しません” となってしまします…
y_waiwai

2019/01/10 07:28

Form2 form2 = new Form2(); form2.student = data; form2.Show(); で。
maam

2019/01/10 07:45

ありがとうござします。そうすると、””プロパティForm2.studentを作成します”と出てきたので このままその指示に従っていいですか?
y_waiwai

2019/01/10 07:50

だから、そのプロパティを設置しましょう、というはなしなわけですが。
maam

2019/01/10 08:11

質問ばかりですみません。初めてのことばかりでわからないことが多く…。 自動でgetsetが出てきました。ここで生徒の情報をせっていすれば良いのですね。 dataはobject data = null;  の表記でよろしいでしょうか。
y_waiwai

2019/01/10 08:14

そこで生徒データを設定しといて、Shownイベントでデータをコンポーネントに設定しにいくなどしておけば。
maam

2019/01/10 08:25

ここまで導いてくださってありがとうございます。これから先は自分でやってみます。あたわからなくなったらご質問させていただきます。ありがとうございました><
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問