如何使用Visual Studio C#中动态数量的选项卡创建选项卡控件?使用Visual Studio C#中动态数量的选项卡创建选项卡控件#
我有一个数据库与表customers
。我需要创建一个表格,显示客户姓氏首字母的标签(只有表格中有条目的第一个字母)。每个选项卡应该包含一个DataGrid控件和相应的客户。我使用DataSet连接到数据库。
我应该在哪里插入可生成此类选项卡的代码片段?我可以使用现有的选项卡控件来做到这一点,还是应该创建自定义控件?
如何使用Visual Studio C#中动态数量的选项卡创建选项卡控件?使用Visual Studio C#中动态数量的选项卡创建选项卡控件#
我有一个数据库与表customers
。我需要创建一个表格,显示客户姓氏首字母的标签(只有表格中有条目的第一个字母)。每个选项卡应该包含一个DataGrid控件和相应的客户。我使用DataSet连接到数据库。
我应该在哪里插入可生成此类选项卡的代码片段?我可以使用现有的选项卡控件来做到这一点,还是应该创建自定义控件?
您可以使用现有的TabControl生成动态选项卡。下面是一个如何以某种伪代码形式完成的例子...
TabControl tabControl = new TabControl();
tabControl.Dock = DockStyle.Fill;
foreach (Char c in lastNameList)
{
TabPage tabPage = new TabPage();
tabPage.Text = c.ToString();
DataGrid grid = new DataGrid();
grid.Dock = DockStyle.Fill;
grid.DataSource = dataForTheCurrentLoop;
tabPage.Controls.Add(grid);
tabControl.Controls.Add(tabPage);
}
this.Controls.Add(tabControl);
这听起来像你最好的路线是创建自己的自定义选项卡控件类。它可以继承自tab控件的大部分功能和datagrid的属性,以及其他任何你需要的定制。然后,当你得到你的客户时,你可以为你需要的每个字母创建一个标签并设置相应的属性。
您可以添加代码来生成选项卡,以确定需要显示哪些字母,可能是在检索数据时或在表单的OnLoad()
方法中。您应该能够动态添加/删除内置选项卡控件中的选项卡。您可以查看设计器代码,了解如何执行此操作或文档。
请注意,为每个字符添加单独的选项卡并不一定是个好主意。 26个选项卡(当数据库变得相当大时会发生)是一个非常多的选项卡供人们查看 - 它不一定会让事情变得更快。
相反,考虑提供一个动态过滤机制,类似于Vista的开始菜单上的搜索框。您的用户可以输入单个字符(假设您未编写某种类型的信息亭或仅使用触摸屏软件)并立即放大相关名称。这将在List或Details模式下理想地与ListView
一起工作。
我不记得现在的具体情况。但只需查看XXX.designer.cs文件中的代码,获取包含选项卡控件的表单。你会看到生成的代码添加一个新选项卡。只需复制这些行,您可以随时添加一个新选项卡。