C# windows窗体中的动态内容

C# windows窗体中的动态内容,c#,winforms,C#,Winforms,我正在开发一个从C#中的提要获取内容的应用程序。然后,该内容应显示在表单上 我的问题是,我应该使用什么控件来保存这些数据?我是否应该为每个项目创建一个新标签(动态)?有人建议我应该使用RichTextBox,但此内容不应编辑 如果有帮助的话,我是一名网络开发人员。我通常以HTML格式输出我的内容,并使用标题、段落等作为我的内容。我是不是看错了 如果这似乎是一个非常基本的问题,那么很可能是。我对Windows窗体非常陌生 谢谢, Ross如果您对HTML感到满意,我建议您使用WebBrowser控

我正在开发一个从C#中的提要获取内容的应用程序。然后,该内容应显示在表单上

我的问题是,我应该使用什么控件来保存这些数据?我是否应该为每个项目创建一个新标签(动态)?有人建议我应该使用RichTextBox,但此内容不应编辑

如果有帮助的话,我是一名网络开发人员。我通常以HTML格式输出我的内容,并使用标题、段落等作为我的内容。我是不是看错了

如果这似乎是一个非常基本的问题,那么很可能是。我对Windows窗体非常陌生

谢谢,
Ross

如果您对HTML感到满意,我建议您使用WebBrowser控件。它易于使用,您熟悉HTML,因此您可以完全控制要显示的内容。试图重新发明轮子是没有用的


编辑:如果你严格地想坚持使用Winforms,并且觉得WebBrowser不能解决这个问题,我可能会建议使用DataGridView。您可以在其中托管各种内容以及图像和链接,并且可以关闭各种编辑。您甚至可以去掉网格线,这样它就不会有网格的“外观”。

如果您对HTML感到满意,我建议使用WebBrowser控件。它易于使用,您熟悉HTML,因此您可以完全控制要显示的内容。试图重新发明轮子是没有用的


编辑:如果你严格地想坚持使用Winforms,并且觉得WebBrowser不能解决这个问题,我可能会建议使用DataGridView。您可以在其中托管各种内容以及图像和链接,并且可以关闭各种编辑。您甚至可以去掉网格线,这样它就不会有网格的“外观”。列表框或列表视图也是不错的选择。最好的特性是,您可以轻松地从顶部删除内容,同时将内容添加到底部,从而使滚动非常容易实现


它是什么样的内容?它是否有样式(例如有字体、颜色、链接)

列表框或列表视图也是不错的选择。最好的特性是,您可以轻松地从顶部删除内容,同时将内容添加到底部,从而使滚动非常容易实现


它是什么样的内容?它是否有样式(例如有字体、颜色、链接)

以下是WPF发明的原因。与WinForms相比,它在将基于标记的内容添加到应用程序中时要灵活得多。如果您可以使用WPF,请检查一下(尽管您必须通过学习曲线才能做到这一点)


否则,您可以动态创建标签控件并将其放置在面板控件上,以在某种程度上控制布局。如果必须使用WinForms并且必须使用公共控件,请使用TextBox或RichTextEditor并禁用对其进行编辑

以下是WPF被发明的原因。与WinForms相比,它在将基于标记的内容添加到应用程序中时要灵活得多。如果您可以使用WPF,请检查一下(尽管您必须通过学习曲线才能做到这一点)


否则,您可以动态创建标签控件并将其放置在面板控件上,以在某种程度上控制布局。如果必须使用WinForms并且必须使用公共控件,请使用TextBox或RichTextEditor并禁用对其进行编辑

我有一个来自web服务的WCF数据源。在windows窗体应用程序中,我创建了一个用户控件来显示一个数据单元。对于来自web服务的每个数据单元,我创建一个用户控件的实例。它们垂直添加到滚动窗口中。用户控件允许我根据需要对信息进行样式化,用户可以通过按钮等与内容交互。

我有一个来自web服务的WCF数据源。在windows窗体应用程序中,我创建了一个用户控件来显示一个数据单元。对于来自web服务的每个数据单元,我创建一个用户控件的实例。它们垂直添加到滚动窗口中。用户控件允许我根据需要对信息进行样式化,用户可以通过按钮等与内容进行交互。

DataGridView对此已经足够好了。看看这个例子。当然,您可以改进外观和感觉:)

公共部分类表单1:表单
{
公共表格1()
{
初始化组件();
列表项=新列表();
增加(新项目(“项目1”);
增加(新项目(“项目2”);
增加(新项目(“项目3”);
增加(新项目(“项目4”);
dataGridView1.DataSource=项目;
}
}
类项目
{
公共字符串ItemName{get;set;}
公共项(字符串名称)
{
ItemName=名称;
}
}

DataGridView足以满足这一需求。看看这个例子。当然,您可以改进外观和感觉:)

公共部分类表单1:表单
{
公共表格1()
{
初始化组件();
列表项=新列表();
增加(新项目(“项目1”);
增加(新项目(“项目2”);
增加(新项目(“项目3”);
增加(新项目(“项目4”);
dataGridView1.DataSource=项目;
}
}
类项目
{
公共字符串ItemName{get;set;}
公共项(字符串名称)
{
ItemName=名称;
}
}

如果您使用WPF只需要一个表单,那么这个表单可以包含在更大的WinForms应用程序中吗?如果您使用WPF只需要一个表单,那么这个表单可以包含在更大的WinForms应用程序中吗?我尝试了您的示例,这看起来是一个很好(也很简单!)的方法。我尝试了您的示例,这看起来很好(也很简单!)做这件事的方法。
public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();

        List<Item> items = new List<Item>();

        items.Add(new Item("item 1"));
        items.Add(new Item("item 2"));
        items.Add(new Item("item 3"));
        items.Add(new Item("item 4"));


        dataGridView1.DataSource = items;
    }
}
class Item
{
    public string ItemName { get; set; }
    public Item(string name)
    {
        ItemName = name;
    }

}