我想使用制表符控件在DataGridView中显示的数据集之间切换(目前我正在使用单选按钮)。在运行时,我可以将控件从一个选项卡移动到下一个选项卡,但SelectedIndexChanged事件不会在设计器中触发。
private void tabControl1_SelectedIndexChanged(object sender, EventArgs e)
{
tabControl1.TabPages[tabControl1.SelectedIndex].Controls.Add(label1);
}
有没有办法让DGV出现在设计师的所有标签上,或者这是我必须忍受的限制?
答案 0 :(得分:2)
标签控件是否会切换DGV以外的任何控件?你可以只放下标签控件,调整垂直高度,使其高度足以让标签本身,然后将DGV放在它下面(这样它不在标签控件中)?
答案 1 :(得分:1)
我不确定我会认为这是一个限制,但作为正确的实施。标签页是一个容器,我很确定一个小部件只能有一个直接的父容器。所以设计师不应该在飞行中重新分配父母。听起来你并不是真的希望DGV在标签页容器中,而只是为了能够与Tab控件的事件处理的一部分进行交互。
如果是这样,我建议您使用面板和自动调整来处理Dan Neely上面提到的演示问题。
例如,考虑具有不同“模式”的搜索系统。在顶部面板中放置一个标签控件,标签页面包含小部件,以实现与“模式”相关的搜索条件,例如,关键字搜索与属性搜索与工作流搜索。将DGV放在包含标签的面板下方的单独面板中。然后,当有标签事件时,您可以根据需要操作DGV内容。面板可以管理调整大小的演示问题。
答案 2 :(得分:0)
我很确定这是Visual Studio设计师的限制。
我也会选择类似JMarsh的解决方案。