我是Visual Basic的新手,并试图为聊天界面开发一个好的gui。我可以理解语言,因为我一直在使用php和java。
要求
基本上我正在尝试开发一个界面,该界面将显示用户列表,并显示状态(在线/离线)。我的用户将驻留在mysql数据库中。在点击用户时,我希望发生一些操作。
问题
我看到有datagrid,listview,listbox但不确定使用哪一个。通过直接查询mysql数据库或访问运行少量查询并提供数据的php脚本来显示用户也是个好主意吗?
答案 0 :(得分:1)
ListBox控件不是一个很好的选择,因为它不容易支持多列。 “详细信息”视图中的ListView控件是一个很好的选项。我认为它看起来比DataGrid更好,但它本身并不支持多行项目。如果您需要多行项目,DataGrid控件可能是您的最佳选择。另一个可以提供更大灵活性的选项是使用LayoutPanel控件显示您自己的UserControl的垂直列表。您可以设计您想要的UserControl,这意味着您可以完全控制列表中每个项目的大小,外观和布局,而不受列表控件的约束。
就获取数据而言,这取决于。如果数据库始终在LAN上并且性能很重要,那么每个客户端都应该直接进入数据库。否则,从php脚本,Web服务或WCF服务获取数据将是一个更好的选择。
我建议不要使用TableLayoutPanel,而是将FlowLayoutPanel与FlowDirection属性一起使用到TopDown,将AutoScroll属性设置为True。然后,要动态添加控件,您可以执行以下操作:
Dim item As New MyUserControl()
' Set properties of user control
FlowLayouPanel1.Controls.Add(item)