首页 > 解决方案 > 允许文本换行和平滑滚动的 Winforms 控件

问题描述

Winforms 是否有任何默认情况下允许文本换行和平滑滚动的控件?

我试过 DataGridView 但似乎它不允许平滑滚动。另一个是 ListView,但我无法按像素运行滚动,尽管在将 ShowGroups 设置为 true 后它应该可以工作。而且我读过 ListView 不支持文本换行。

更新:我正在寻找类似网格的控件,这意味着我需要像使用表格一样使用它。

标签: c#winforms

解决方案


您可以使用floating panel, 并向其中添加新项目,然后将焦点向下滚动到该项目。您可以将自己的用户控件作为新项目,但在下面的示例中,我使用了一个简单的文本框。 在此处输入图像描述

    private void btn_add_clicked(object sender, EventArgs e)
    {
        var textbox = new TextBox
        {
             Text = txtItem.Text,
             Width = flowLayoutPanel1.Width

        };
        flowLayoutPanel1.Controls.Add(textbox);
        textbox.Focus(); // set focus to it to make sure scroll down
    }

只要确定flowLayoutPanel1.AutoScroll是真的

flowLayoutPanel1.AutoScroll = true;

正如我之前所说,您可以自己制作user control而不是文本框。

如何在 Windows 窗体应用程序中创建用户控件


推荐阅读