篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C# tabControl 关闭窗口的界面切换问题。相关的知识,希望对你有一定的参考价值。
参考技术C
private void button1_Click(object sender, EventArgs e)
this.tabControl1.TabPages.Remove(this.tabControl1.SelectedTab);
this.tabControl1.SelectTab(this.tabControl1.TabCount - 1);
追问这个是不可以的,你看下浏览器里面的,关闭一个标签后,会到最后面一个标签,但是这个会产生个刷新闪烁,先跳转到第一个,在到最后一个的。
在数据多了后 会非常明显
追答我发的是在winform下的,web我不太清楚,但是看你的效果肯定是先刷新了界面 然后再对tablecontrol赋值了,你可以考虑下刷新前赋值,希望能够帮助到你。
追问这个是winform下面的,我现在就想实现个 功能,比如tabcontrol 里面有10个 tabpage,关闭除了第一之外的任何一个 调用 this.tabControl1.SelectTab() 这个方法 的时候,都不要执行第一个一次在跳转到最后一个
追答我试过了,winform下不会跳到第一个,源码发上来看看吧,应该跟你数据加载的地方有关。
追问this.tbCenter.TabPages.RemoveAt(tbCenter.SelectedIndex);
if (this.tbCenter.SelectedIndex == 0)
this.tbCenter.SelectedIndex = tbCenter.TabCount - 1;
追答自己试了一下,每当你REMOVE后,SelectedIndex会自动变为0,所以会产生你的这种情况,解决方法为在remove事件触发时,先更改SelectedIndex,可以解决这个问题。你可以试试,代码如下:
private void button1_Click(object sender, EventArgs e)
this.tabControl1.TabPages.Remove(this.tabControl1.SelectedTab);
private void tabControl1_ControlRemoved(object sender, ControlEventArgs e)
this.tabControl1.SelectTab(this.tabControl1.TabCount - 1);
本回答被提问者采纳
最近在项目需要从主界面切换到配置界面,配置界面主要是一个TabControl,有几个不同的配置界面。之前刚刚创建项目的时候,从主界面切换到配置界面是没有闪屏现象,后来才发现有闪屏现象,不过一直没有时间解决,今天才空闲时间来查找原因。
原因就是配置界面的背景使用的是UI提供的图片,而且我只直接在自定义控件中将UserControl的Backgroud.ImageBrush设置为相对的图片路径。
1 <UserControl ....>
2 <UserControl.Background>
3 <ImageBrush ImageSource ="..."/>
4 </UserControl.Background>
5 </UserControl >
后面直接在TabControl的Template直接用Image控件来加载背景图片,然后就可以了。
没有想到这么一个大坑,忙了一天,现在才找到原因。