繁体   English   中英

在Visual Studio C#中使用动态数量的选项卡创建选项卡控件

[英]Creating a tab control with a dynamic number of tabs in 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);

您可以添加代码以生成选项卡,您可以在其中确定需要显示哪些字母,可能是在检索数据时或在表单的OnLoad()方法中。 您应该能够从内置选项卡控件动态添加/删除选项卡。 您可以查看设计器代码,了解如何操作或文档。

请注意,为每个字符添加单独的选项卡不一定是个好主意。 26个选项卡(当你的数据库变得相当大时会发生这种情况)是一个非常可怕的选项卡供人们查看 - 它根本不会让事情变得更快。

相反,请考虑提供动态过滤机制,类似于Vista开始菜单上的搜索框。 您的用户可以键入单个字符(假设您没有编写某种自助服务终端或仅限触摸屏的软件)并立即缩放到相关名称。 理想情况下,这将在列表或详细信息模式下使用ListView

我现在不记得具体细节了。 但是,只需查看XXX.designer.cs文件中包含选项卡控件的表单中的代码即可。 在那里,您将看到生成的代码以添加新选项卡。 只需复制这些行,您可以随时添加新选项卡。

听起来你最好的方法是创建自己的自定义选项卡控件类。 它可以从标签控件继承其大部分功能和数据网格属性以及您需要的任何其他自定义。 然后,当您获得客户时,可以为所需的每个字母创建一个选项卡并设置相应的属性。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM