none
System.Windows.Forms.Panel を極端なサイズにすると配置がおかしくなる RRS feed

  • 質問

  • はじめまして。

        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent(); // 

                int height = 33000;

                Panel p = new Panel();
                p.Location = new Point(0, 0);
                p.Size = new Size(300, height);
                p.Dock = DockStyle.Fill;
                p.AutoScroll = true;
                this.Controls.Add(p);

                Button but1 = new Button();
                but1.Location = new Point(0, height);
                but1.Size = new Size(100,100);

                Button but2 = new Button();
                but2.Location = new Point(100, height - 300);
                but2.Size = new Size(100, 100);

                p.Controls.AddRange(new Control[]{but1,but2});
                but1.Text = "Y=" + but1.Location.Y.ToString();
                but2.Text = "Y=" + but2.Location.Y.ToString();
            }
        }

    上記のコードを実行させた場合に
    but1とbut2のLocation.Yが違うのにもかかわらず、同じ座標に配置されてしまいます。
    Location.Yの値そのものは変更されていないようです。

    バグなのか仕様なのか分からないのですがなにかご存知の方いらっしゃらないでしょうか?
    環境はVisual C# 2010 express です

    2010年11月7日 13:43

回答

すべての返信