2017-12-05 7 views
-1

以下のコードを使用してライトボックスの効果を作り、期待どおりに動作します。しかし、親フォームを移動すると、画面の中央にポップアップが表示されます。新しいフォームの場所を設定する

// Execute this code from parent form 
Form f = new Form(); 
f.ShowInTaskbar = false; 
f.BackColor = Color.Black; 
f.Size = this.Size; 
f.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; 
f.StartPosition = this.StartPosition; 
f.Opacity = 0.6; 
f.Show(); 

私は上記のコードを以下のように変更しました。

f.StartPosition = FormStartPosition.CenterParent; 

ただし、親フォームのポップアップセンターはまだありません。

また、以下も試してみましたが、うまくいきませんでした。

f.SetBounds(this.Location.X, this.Location.Y,this.Width, this.Height); 

私は既にここで解決策を試しました。

Show a child form in the centre of Parent form in C#

彼らはまた、動作しませんでした。

私がしたいことは、同じサイズと同じ場所の2番目のフォームを作成することです。

+0

@stuardトピックは重複していません。このマークを削除してください。私はその話題の答えもありませんでした。また私はすでに私の質問でそれを言った。私の質問をまず読んでください。 –

+0

私は解決策が指摘したのと同じ方法で "子供"フォームのStartPositionプロパティを定義しているので、問題は既存の質問で解決されているとは思われません。 –

+1

私はあなたの作成したフォームがあなたの親フォームの子ではないと推測しているので、https://stackoverflow.com/questions/6463894/creating-form-inside-the-form の代わりにこれをチェックしてください。それがあなたが望む行動を達成していない理由です。 –

答えて

0

この行を変更するだけです。

f.Show(); 

この行には、

f.ShowDialog(); 
関連する問題