日期:2014-05-20  浏览次数:21948 次

Winform中Tabcontrol 多行tabpage上下行切换 问题
大家好,今天碰到个棘手的问题,Tabcontrol的有多行tabpage的时候 上下行tabpage切换时会自动上下行切换排列
为了更好说明问题 下面我举个例子说明
例:
1,Winform工程,想主form添加tabcontrol
2,在tabcontrol中添加5个tabpage
3,设置tabcontrol的multiline属性为true(能够多行表示tabpage)
4, 缩小tabcontrol至tabpage如下顺序表示
tabpageA | tabpageB | tabpageC |
tabpageD | tabpageE |
5, 运行程序,我们会看到表示的tabpage顺序还是4的形式,
  这个时候我们切换tabpageA,我们会发现上下行tabpage互换了位置变成如下的顺序
tabpageD | tabpageE |
tabpageA | tabpageB | tabpageC |
6,问题,能不能禁止这一功能也就是说 当在5,切换到tabpageA的时候 tabpage的顺序还是下图这种
tabpageA | tabpageB | tabpageC |
tabpageD | tabpageE |

当然我也实验一些方法,比如可以改变tabcontrol的外观属性(如果没记错的话,应该是Appearance), 可以解决上面问题,关键是外观被改变了,
还是不能根本解决问题,所以来请大家帮帮忙。先谢谢了。。。。

希望高手指教

------解决方案--------------------
C# code
tabControl1.Appearance = TabAppearance.FlatButtons;

------解决方案--------------------
封装好的控件,有时我们是很难硬性去改变的,就算通过巧方法达到了,性能多多少少也会损一点。
所以还是自己写一个来得实在些。
------解决方案--------------------
不一定要继承TabControl,可以自己定义一个,就像QQ面板里那个一样。
http://album.hi.csdn.net/views/photo/283917
------解决方案--------------------
比如下图红色表示选中状态 
tabpageA | tabpageB | tabpageC | 
tabpageD | tabpageE | 

切换到tabpageA时候需要下面的效果 
tabpageA | tabpageB | tabpageC | 
tabpageD | tabpageE |


这个好象很难使用现成的控件办到。
------解决方案--------------------
学习又得分,何乐而不为呢
------解决方案--------------------
感覺上你說的問題,在介面上好像不太合理,
當顯示tabpage a時會擋住了c和d的page了吧.
如果切換tabpage a後,若沒一個專門切換的按鈕,如何顯示c和d的page呢?
若不想自動切換,我想應該用縮排的方式比較好吧.
http://dotnetrix.co.uk/tabcontrol.htm
這個綱站有很多tabcontrol的源代碼,
看有沒有你需要的?