2009-02-01 38 views
0

我正在研究从C#中的源中获取内容的应用程序。此内容应显示在表单上。Windows窗体中的动态内容

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

如果有帮助,我是一个Web开发人员。我通常会以HTML格式输出我的内容,并会为我的内容使用标题,段落等。我看着这个错误的方式吗?

如果这看起来像一个非常基本的问题,它可能是。我对Windows Forms非常陌生。

感谢, 罗斯

回答

1

DataGridView对此很好。看到这个例子。当然,你可以改善外观和感觉:)

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

} 
+0

我试过你的例子,这看起来像一个很好的(和简单!)的方式来做到这一点。 – Ross 2009-02-01 17:52:24

1

如果您熟悉HTML,我会说去了WebBrowser控件。它很容易使用,您熟悉HTML,因此您可以完全控制要显示的内容。尝试重新发明车轮没有用处。

编辑:如果你严格想坚持使用WinForms,并感觉WebBrowser不会削减它,我可能会建议一个DataGridView。您可以在其中托管各种内容以及图像和链接,并且可以关闭各种编辑。你甚至可以摆脱网格线,所以它不会有网格的“外观”。

1

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

它是什么类型的内容?它的风格(如有字体,颜色,链接)

1

这就是为什么WPF被发明。与基于WinForms的应用程序相比,将基于标记的内容放到应用程序上要灵活得多。如果你可以使用WPF,那么检查一下(尽管你必须学习曲线才能做到这一点)。否则,您可以动态创建标签控件并将它们放在Panel控件上以稍微控制布局。如果您必须使用WinForms,并且您必须使用常用控件,请使用TextBox或RichTextEditor并禁用对它们的编辑。

+0

如果你只需要一个使用WPF的表单,这可以包含在一个更大的WinForms应用程序中吗? – 2009-02-01 17:36:11

1

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