我是 Visual Basic 的新手,正在尝试为聊天界面开发一个好的 gui。我可以理解这种语言,因为我很长一段时间以来一直在使用 php 和 java。
要求
基本上我正在尝试开发一个界面,该界面将显示用户列表并显示状态(在线/离线)。我的用户将驻留在 mysql 数据库中。单击用户时,我希望发生一些操作。
问题
我看到有数据网格、列表视图、列表框,但不确定要使用哪一个。通过直接查询 mysql 数据库或访问运行少量查询并提供数据的 php 脚本来显示用户也是一个好主意吗?
我是 Visual Basic 的新手,正在尝试为聊天界面开发一个好的 gui。我可以理解这种语言,因为我很长一段时间以来一直在使用 php 和 java。
要求
基本上我正在尝试开发一个界面,该界面将显示用户列表并显示状态(在线/离线)。我的用户将驻留在 mysql 数据库中。单击用户时,我希望发生一些操作。
问题
我看到有数据网格、列表视图、列表框,但不确定要使用哪一个。通过直接查询 mysql 数据库或访问运行少量查询并提供数据的 php 脚本来显示用户也是一个好主意吗?
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)