私はShowDialog
を使用して呼び出すフォームを持っています。このフォームには、テキストボックス、ラベル、およびボタンがいくつか含まれています。私が抱えている問題は、テキストボックスがフォーム自体の前に描画され、他のコントロールが描画されているということです。コントロールは同時に描画されません
私はこれが問題を引き起こしていることができれば、私はよく分からないOnPaint
方法オーバーライドしています:
protected override void OnPaint(PaintEventArgs e)
{
ControlPaint.DrawBorder(e.Graphics, e.ClipRectangle, Color.Black, ButtonBorderStyle.Solid);
base.OnPaint(e);
}
それはわずかな遅れだが、それは目に見えると迷惑なんです。ありがとうございました。
フォームは途中でダブルバッファされます。
EDIT:フォームにFormBorderStyle
が含まれていないという問題が特定されています。 FormBorderStyle
をSizable
に設定すると、この問題は発生しません。しかし、私のボーダースタイルとしてFormBorderStyle.None
が必要であることに注意してください、私は解決策をまだ見つけていません。
あなたはラベル、テキストボックスとボタンの描画に関連するすべての関連のコードを投稿することができますか? – JosephGarrone
実際、親要素は、それ自身をレンダリングする前に各子コントロールのrenderメソッドを呼び出します。これがデフォルト動作です。フォームロードが完了したらダイアログを表示することができます。 – Saravanan
すべてのコントロールはVisual Studioデザイナーを介して追加されていますので、これらのコントロールの図面には触れませんでした。 –