今日ちょっとハマったのでメモ。
MDIの子画面がすべて同じスタイルならこんな問題は
発生しないのですが、子画面の中に最大化ボタンを
非表示にしている画面と表示している画面が混在した
場合に発生します。
例えば、Form1が親画面でそこから子画面Form2を最大化にして
呼び出し、さらにForm2から最大化を抑止した子画面Form3を
呼び出すと、なぜかForm3は最大化されてしまいます。
もちろん、Form3のプロパティMaximizeBox=Falseです。
これを最大化させないためには以下のようにすれば
とりあえず、回避できますが・・・
namespace WindowsFormsApplication1
{
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
Form frm = new Form3();
frm.MdiParent = this.MdiParent;
frm.Show();
frm.WindowState = FormWindowState.Normal;
}
}
}
つまり画面を呼び出した後に
frm.WindowState = FormWindowState.Normal;
を指定してやればいいだけです。しかし、これをやると開いているすべての子画面のサイズが
強制的にNormalにされる様が描画されて、画面のちらつきがたまりません。
それを回避する方法は今のところわかりませんorz
0 コメント:
コメントを投稿