Sukram: Verschiebung der Elemente wenn Scrollleiste erscheint

Beitrag lesen

Hallo,

ich habe ein ganz normales Windows.Form ertsellt und darin ein Panel (panel1) welches an dem Windows.Form andockt. In den Eigenschaften des Panels habe ich Autoscroll auf TRUE gesetzt.

Dann habe ich ein kleines Programm geschrieben, welches mir, wenn ich auf einen Button drücke untereinander Textfelder anlegt.

  
using System;  
using System.Collections.Generic;  
using System.ComponentModel;  
using System.Data;  
using System.Drawing;  
using System.Linq;  
using System.Text;  
using System.Windows.Forms;  
  
namespace point  
{  
    public partial class Form1 : Form  
    {  
        int a = 0;  
        public void create_form()  
        {  
  
            TextBox test = new TextBox();  
            test.Name = "test";  
            test.Size = new System.Drawing.Size(100, 100);  
            test.Location = new System.Drawing.Point(100, 100*a);  
            test.Text = "test";  
  
            panel1.Controls.Add(test);  
            a += 1;  
        }  
        public Form1()  
        {  
  
            InitializeComponent();  
            create_form();  
  
        }  
  
        private void panel1_Paint(object sender, PaintEventArgs e)  
        {  
  
        }  
  
        private void button1_Click(object sender, EventArgs e)  
        {  
            create_form();  
        }  
    }  
}  
  

Funktioniert soweit auch und er legt mir bei jedem Klick auf den Button ein Textfeld an, welches 100px unter dem Anderen liegt.


Wenn die Größe des Fensters überschritten ist, erscheint die Scrollleiste.

Wenn ich jetzt die Y-Scrolleiste ganz nach unten und die X-Scrolleiste ganz nach rechts verschiebe und dann den Button nochmals anklicke, kommt folgendes heraus:

Man sieht, dass die TextBox ewas weiternach rechts und ein ganzes Stück nach unten verschoben ist. Irgendwie wird der Bezugspunkt, nach dem sich new Point() richtet verschoben, aber warum?
Kann es sein, dass er als Bezugspunkt immer die obere linke Ecke vom SICHTBAREN Bereich nimmt?

Wie kann ich mitteilen, dass er sich immer den Bezugspunkt oben links in der Ecke nehmen soll, wie das ja auch passiert so lange noch keine Scrolleisten da sind?

Gruß

Sukram