【问题标题】:.NET (C#) winforms "tweet" UI control question [closed].NET(C#)winforms“tweet”UI控制问题[关闭]
【发布时间】:2009-07-06 08:05:09
【问题描述】:

我在 UI 构建方面是一个真正的傻瓜,所以我想知道 - 如果旨在以列表方式显示推文,并使用包含推文文本的类似框进行更新,那么最好使用什么 .NET winforms 控件及其下方的元数据。这种类型的东西有特定的winforms列表功能吗?还是您建议我寻找/使用第三方 winforms 控件?谢谢!希望我的问题不会太傻。

更新:我从许多回复中得到指示,我自己构建一个简单的 winform 控件会更好,但是谁能指出我这样做的教程?另外,如果我要构建这样的控件,是否存在一个方便的内置控件,用于制作可滚动的自定义控件列表 - 也许是面板?提前致谢!

【问题讨论】:

    标签: c# .net winforms user-interface


    【解决方案1】:

    我将构建一个用户控件来显示一条推文的信息。然后我会在面板中重复该用户控件。

    您可以在用户控件中使用与“推文”标准相同的布局。

    左对齐图片框显示用户图像。 用户名的 LinkLabel。 推文的标签。


    更新:这里有几个关于用户控件的页面

    http://msdn.microsoft.com/en-us/library/a6h7e207(VS.71).aspx
    http://www.akadia.com/services/dotnet_user_controls.html

    使用设计器创建一个用户控件以及一个 Tweet 类 只是一个愚蠢的数据结构来保存每条推文的信息。同时创建一条推文 自定义用户控件上的属性,将处理设置推文和分配信息 到其中包含的标准控件(标签、文本框、图片框等)。

    在您要托管用户控件的表单中,创建一个空面板。在你的代码中的某个地方 会做类似于这个代码块的事情。

            pnlHost.Controls.Clear();
    
            List<Tweet> tweets = new List<Tweet>();
    
            //Populate your collection of tweets here
    
            foreach (Tweet tweet in tweets)
            {
                TweetControl control = new TweetControl();
                control.Tweet = tweet;
    
                pnlHost.Controls.Add(control);
                control.Dock = DockStyle.Top;
    
            }
    

    【讨论】:

    • 你能给我指一个关于构建用户控件的教程吗?我想我知道如何构建它,但是将它保存为控件并将其放入面板中并不在我目前的知识框架中。谢谢!
    • 我不会使用 UserControl 的 Dock 属性,而是使用 FlowLayoutPanel...
    【解决方案2】:

    您好,我会从 Infragistics、DevExpress 或 Telerik 等公司购买第三方网格控件。另一种选择是构建一个用户控件,该控件能够显示一个帖子并将该控件放入 vb.net 转发器控件(随 vb.net powerpack 一起提供)。但是我不确定最后一个解决方案的实际效果如何,因为我刚刚读到它,但从未尝试过。

    【讨论】:

    • DevExpress 数据网格非常快速且可自定义。
    【解决方案3】:

    尝试使用 DataGridView(及其后面的 DataTable)并覆盖 CellPainting 事件以按照您喜欢的方式绘制推文。

    编辑 我认为使用自定义控件只是为了显示推文有点重。基本上,这取决于所显示推文的所需功能——你想用它们做什么。例如,如果您只想让用户单击推文,然后将他重定向到浏览器中的某个网页,那么 DataGridView 就可以了,因为您可以将此操作附加到 CellClick 事件。另外,您已经拥有DataTable(以及相关的DefaultView)的排序/搜索功能。见鬼,你甚至可以在推文上附加ContextMenuStripRightClick 有无限的选择。

    另一方面,如果您需要DataGridView 中不可用的某些功能(例如,您希望推文底部有 5 个不同的按钮,右侧有 3 个复选框),那么自定义控件就可以了你会更好,因为你几乎可以建造你想要的一切。在这种情况下,OG 很好地解释了这一点。

    【讨论】:

    【解决方案4】:

    试试 listbox,它很容易使用,看起来很适合你的需要。

    【讨论】:

    • 使用 ListBox,您无法控制项目的外观......除非您使用 DrawMode = OwnerDrawVariable 手动绘制它们,它可以是 PITA
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-22
    • 1970-01-01
    相关资源
    最近更新 更多