添加动态控件以自动滚动表单

发布于 2024-12-12 02:18:41 字数 653 浏览 0 评论 0原文

当我将控件添加到表单时,一切都会正常,直到我尝试指定大于 int16.MaxValue 的位置。控件只是堆积在一起。这是经过简化但演示了行为的代码:

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。

When I add my controls to the form, it goes fine until I try to specify a location larger than int16.MaxValue. The controls just pile up on top of each other. Here is code which is simplified but demonstrates the behavior:

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);
    }
}

I want to avoid moving the scroll bar programaticaly, since this causes timing issues.

Do you have any ideas on how to fix this? TIA.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

但可醉心 2024-12-19 02:18:41

此限制 (32767) 是由 GDI+ 造成的。我相信根据 Windows 版本可能会观察到不同的行为。

This limit (32767) is due to GDI+. I believe different behaviours may be observed according to the Windows version.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文