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

回答編集履歴

1

追記

2020/06/08 07:56

投稿

fana
fana

スコア12216

answer CHANGED
@@ -1,5 +1,30 @@
1
1
  「OpenFileDialog 位置」でググると,
2
+
2
3
  【ダミーのフォームを用意して,それをOpenFileDialogのShowDialog()の引数に与える】
4
+ (OpenFileDialogが出てくる場所は親の位置に応じて決まるっぽい→じゃあ,適当な「親」役のウィンドウを与えれば,「親」の位置で制御できるんじゃね? 的な)
5
+
3
6
  という話が見つかりますが,それだとダメでしょうか.
4
7
 
5
- #実際やってみると,画面からはみ出さないように表示位置が補正される様子なので,「任意の位置」とはいきませんが.
8
+ #実際,下記のようなダミーを作ってやってみると,OpenFileDialogの表示位置は追従するものの,画面からはみ出さないように補正される様子なので,完全に「任意の位置」とはいきませんが.
9
+
10
+ ```C#
11
+ public partial class Dummy : Form
12
+ {
13
+ Point m_Location;
14
+
15
+ public Dummy(){ InitializeComponent(); }
16
+
17
+ public Dummy( Point Pos ) : this()
18
+ { m_Location = Pos; }
19
+
20
+ private void Dummy_Load( object sender, EventArgs e )
21
+ {
22
+ if( DesignMode )return;
23
+
24
+ this.Visible = false;
25
+ this.Location = m_Location;
26
+ new OpenFileDialog().ShowDialog( this );
27
+ this.Close();
28
+ }
29
+ }
30
+ ```