如何在Winform上重现论坛/类似Twitter的UI

时间:2019-06-05 19:34:30

标签: c# html winforms user-interface forum

作为经典论坛,主题和回复会显示在页面上,并带有深色和浅色以及深色和浅色背景。

我正在尝试使用Winform在Windows上编写论坛的客户端。是

起初,我尝试过这种方式:

  1. 在表单中添加一个大面板,我们称之为“父面板”。

  2. 像这样在大面板中添加小面板:

        panel1.Visible = false;
        for (int i=0; i<5;i++)
        {
            Panel parent = new Panel();
            parent.Height = 800;
            Random ra = new Random();
            TextBox p = new TextBox();
            p.Text = "fehsuifq";
            p.Multiline = true;
            p.WordWrap = true;
            p.Dock = DockStyle.Fill;
            parent.BackColor = Color.FromArgb(ra.Next(0, 254), ra.Next(0, 254), ra.Next(0, 254));
            p.BorderStyle = BorderStyle.None;
            p.ReadOnly = true;
            p.TabStop = false;
            p.BackColor = this.BackColor;
            parent.Controls.Add(p);
            parent.Dock = DockStyle.Top;
            panel1.Controls.Add(parent);
        }
        panel1.Visible = true;
    

每个面板(通常是一个控件)都显示线程的文本和图像以及其他详细信息(例如作者或助手)。 单击图像不显示图像。 单击图像后,图像将被加载,并且控件的高度将随之变化。 父面板将包含数百个这样的控件,因为会有很多线程。显然,它必须是可滚动的。

但是,如果我在控件中放置一个文本框,则滚轮将不再在父面板上工作。如果使用标签,则无法选择。

我认为这种方式绝对不会更加愚蠢。

因此,我正在寻找一种更好的方法来完成这项工作,以便在winform上显示数百甚至数千个线程/回复,即:

  1. 高度是动态的,因为内部的图像只有在单击后才能加载。
  2. 里面的文本是可选的(我对此进行了编辑以消除歧义)
  3. “家长面板”可以响应鼠标滚轮,就像Twitter,论坛一样。

这样我就可以使用滚轮一次浏览所有答复。加载是背景工作。

enter image description here 看图片,选择文本后,整个面板仍然对转轮响应(就像普通的webPage一样)。这是一个uwp应用程序,我不确定winform是否可以做到这一点。

0 个答案:

没有答案