teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

回答に追記

2020/09/27 01:40

投稿

y_waiwai
y_waiwai

スコア88173

answer CHANGED
@@ -1,2 +1,46 @@
1
1
  たんにform2のインスタンスを渡してそこからアクセスすればいいだけです。
2
- それができない理由がなにかあるんでしょうか。
2
+ それができない理由がなにかあるんでしょうか。
3
+
4
+ ---
5
+
6
+ [「ファイルを開く」ダイアログボックスを表示する - .NET Tips (VB.NET,C#...)](https://dobon.net/vb/dotnet/form/openfiledialog.html)
7
+
8
+ ```VB.NET
9
+ 'OpenFileDialogクラスのインスタンスを作成
10
+ Dim ofd As New OpenFileDialog()
11
+
12
+ 'はじめのファイル名を指定する
13
+ 'はじめに「ファイル名」で表示される文字列を指定する
14
+ ofd.FileName = "default.html"
15
+ 'はじめに表示されるフォルダを指定する
16
+ '指定しない(空の文字列)の時は、現在のディレクトリが表示される
17
+ ofd.InitialDirectory = "C:\"
18
+ '[ファイルの種類]に表示される選択肢を指定する
19
+ '指定しないとすべてのファイルが表示される
20
+ ofd.Filter = "HTMLファイル(*.html;*.htm)|*.html;*.htm|すべてのファイル(*.*)|*.*"
21
+ '[ファイルの種類]ではじめに選択されるものを指定する
22
+ '2番目の「すべてのファイル」が選択されているようにする
23
+ ofd.FilterIndex = 2
24
+ 'タイトルを設定する
25
+ ofd.Title = "開くファイルを選択してください"
26
+ 'ダイアログボックスを閉じる前に現在のディレクトリを復元するようにする
27
+ ofd.RestoreDirectory = True
28
+ '存在しないファイルの名前が指定されたとき警告を表示する
29
+ 'デフォルトでTrueなので指定する必要はない
30
+ ofd.CheckFileExists = True
31
+ '存在しないパスが指定されたとき警告を表示する
32
+ 'デフォルトでTrueなので指定する必要はない
33
+ ofd.CheckPathExists = True
34
+
35
+ 'ダイアログを表示する
36
+ If ofd.ShowDialog() = DialogResult.OK Then
37
+ 'OKボタンがクリックされたとき、選択されたファイル名を表示する
38
+ Console.WriteLine(ofd.FileName)
39
+ End If
40
+ ```
41
+
42
+ ここでは、ofd にOpenFileDialogというフォームのインスタンスを入れて、そのofdから、そのフォームの変数やプロパティにアクセスし、表示してます。
43
+
44
+ 同じことを、form2やform3に対して行えばいいという話となります
45
+
46
+ #なんなら、form1のインスタンスを渡してやるというはなしに