У меня есть панель с включенной автопрокруткой .
Теперь вот мой довольно интересный аномалия:
Если я добавлю один из моих объектов inputForm
кПанель panel
первые три-четыре всегда располагаются правильно.Но если я сейчас сделаю паузу на секунду, создав объекты на панели, расстояние между вновь созданным и последним созданным становится очень высоким.Я проверил свои значения, но они в порядке и работают просто отлично.Я хочу, чтобы объекты создавались вдоль оси X.
И это должно выглядеть так ...
Как видите, между этими двумя объектами и следующим слишком много места.
Мой код выглядит так:
Этот метод добавляет объект на панель.
public void AddInputField(Panel panel)
{
panel.VerticalScroll.Enabled = true;
//New Instance
inputField inputField = new inputField(this.Index, this.Max);
//Check if first run
if (this.Index == 0)
{
panel.Controls.Add(inputField.getInputField());
}
//do every other run
else
{
this.X = this.X + 170;
panel.Controls.Add(inputField.getInputField(this.X));
}
this.inputFields.Add(inputField);
//Add One
this.Index++;
this.Max++;
}
И здесь я устанавливаю расстояние для следующего объекта:
public Panel getInputField(int X)
{
this.mainFrame.Location = new Point(X,0);
return this.mainFrame;
}
И вот как я создал Panel внутри своего класса Object:
//Main Frame
this.mainFrame = new Panel();
this.mainFrame.AutoScroll = true;
this.mainFrame.Name = "MainFrame" + Counter;
this.mainFrame.BackColor = SystemColors.Control;
this.mainFrame.Size = new Size(164,111);
this.mainFrame.Margin = defaultMargin;
this.mainFrame.BorderStyle = BorderStyle.FixedSingle;
Класс inputField объявлен так:
class inputField
{
Если вам нужна дополнительная информация, пожалуйста, дайте мне знать.