2011-10-25 19 views
0

フォームにコントロールを追加すると、int16.MaxValueより大きな場所を指定しようとするまでうまく行きます。コントロールはちょうどお互いの上に積み重なります。これはタイミングの問題が発生するので、私は、programaticalyスクロールバーを移動しないようにしたい自動スクロールを使用してフォームに動的コントロールを追加する

private void Form1_Load(object sender, EventArgs e) 
{ 
    this.AutoScroll = true; 
    int nexttop = 0; 
    for (int i = 0; i < 500; i++) 
    { 
     TextBox t = new TextBox(); 
     t.Text = i.ToString(); 
     t.Multiline = true; 
     if (nexttop > Int16.MaxValue) 
     { 
      bool debug = true; 
     } 
     t.Location = new Point(0, nexttop); 
     t.Size = new Size(100, 77); 
     nexttop += t.Height; 
     this.Controls.Add(t); 
    } 
} 

:ここでは簡略化されますが動作を示しているコードがあります。

これを修正する方法はありますか? TIA。

+0

私はあなたのコードを実行し、うまくいくようです。何が問題ですか? –

+0

下にスクロールすると、425のテキストボックスしか表示されません。ええと、私はint.MinValueをオーバーフローさせると少なくとも例外を期待します。 – Decker97

+0

しかし最後のテキストボックスには499が表示されます:( –

答えて

0

この制限(32767)はGDI +によるものです。私は、Windowsのバージョンによって異なる動作が観察される可能性があると考えています。

関連する問題