此问题已在此处有答案:
What is an IndexOutOfRangeException / ArgumentOutOfRangeException and how do I fix it?(5个答案)
上个月关门了。
我正在获取此System.ArgumentOutOfRangeException:'索引超出范围。必须为非负数且小于集合的大小。参数名称:但只有在数据网格视图中,当宽度大于1321时才会出现此错误。when it is like this no error,here error occures .我的目标是在整个屏幕上适合数据网格视图,但我不能。
代码:
Rectangle originalFormSize;
List<Rectangle> originalControlsRectangle = new List<Rectangle>();
private void Form1_Load(object sender, EventArgs e) // Called when form loaded
{
originalFormSize = new Rectangle(this.Location, this.Size);
for (int i = 0; i < Controls.Count; i++)
{
originalControlsRectangle.Add(new Rectangle(Controls[i].Location, Controls[i].Size));
}
this.WindowState = FormWindowState.Maximized;
}
private void resizeControl(Rectangle r, Control c)
{
float xRatio = (float)(this.Width) / (float)(originalFormSize.Width);
float yRatio = (float)(this.Height) / (float)(originalFormSize.Height);
int newX = (int)(r.Location.X * xRatio);
int newY = (int)(r.Location.Y * yRatio);
int newWidth = (int)(r.Width * xRatio);
int newHeight = (int)(r.Height * yRatio);
c.Location = new Point(newX, newY);
c.Size = new Size(newWidth, newHeight);
}
private void Form1_Resize(object sender, EventArgs e) // Called when form resized
{
for (int i = 0; i < Controls.Count; i++)
{
resizeControl(originalControlsRectangle[i], Controls[i]); // Error here
}
}
1条答案
按热度按时间xesrikrc1#
我重新设计了我的形式与码头和面板,这是不像以前,但至少它的工作。