我是新来的Visual Basic,并试图避开开发一个很好的聊天界面gui。我可以理解语言,因为我一直在使用php和java。VB聊天界面 - 显示用户
要求
基本上我试图建立一个接口,它会显示用户的,并与显示器的状态(在线/离线)一起列表。我的用户将驻留在MySQL数据库中。点击用户我想要发生一些动作。
问题
我看到有数据网格,列表视图,列表框,但无法确定使用哪一个。通过直接查询mysql数据库或访问运行少量查询并提供数据的php脚本来显示用户也是一个好主意吗?
我是新来的Visual Basic,并试图避开开发一个很好的聊天界面gui。我可以理解语言,因为我一直在使用php和java。VB聊天界面 - 显示用户
要求
基本上我试图建立一个接口,它会显示用户的,并与显示器的状态(在线/离线)一起列表。我的用户将驻留在MySQL数据库中。点击用户我想要发生一些动作。
问题
我看到有数据网格,列表视图,列表框,但无法确定使用哪一个。通过直接查询mysql数据库或访问运行少量查询并提供数据的php脚本来显示用户也是一个好主意吗?
ListBox控件不会是一个不错的选择,因为它不容易支持多列。 Details视图中的ListView控件是一个不错的选择。我认为它看起来比DataGrid更好,但它本身不支持多行项目。如果您需要多行项目,则DataGrid控件可能是您的最佳选择。另一个选项会给你更多的灵活性,那就是使用LayoutPanel控件来显示你自己的UserControl的垂直列表。无论如何,您可以设计UserControl,这意味着您可以完全控制列表中每个项目的大小,外观和布局,而不受列表控件的约束。
就获取数据而言,这取决于。如果数据库始终位于局域网上并且性能很重要,那么每个客户端都应直接访问数据库。否则,从php脚本,Web服务或WCF服务获取数据将是更好的选择。
而不是使用TableLayoutPanel,我会建议使用FlowLayoutPanel的FlowDirection属性TopDown和AutoScroll属性设置为True。然后,动态添加控件,你可以这样做:
Dim item As New MyUserControl()
' Set properties of user control
FlowLayouPanel1.Controls.Add(item)
谢谢@Steven。回复晚了,请原谅。我明白你的意思。我还有一个查询。如果我使用TableLayoutPanel,总行不确定。这取决于我有多少用户,然后我需要动态添加它们。这是我现在坚持的主要步骤。你能帮我吗 ? –
查看我的更新回答。 –
谢谢@Steven。我现在明白了。 FlowLayoutPanel实际上是我需要的。这服务我的目的。答复你的答案。我可能没有其他疑点。请回答。 –