@@ -148,6 +148,10 @@ private void FormMain_Load(object sender, EventArgs e)
148148 Logger . I ( TAG , $ "{ page . Name } OnLoad completed") ;
149149 }
150150
151+ // 默认选中首页
152+ if ( ListPages . SelectedIndex == - 1 )
153+ ListPages . SelectedIndex = 0 ;
154+
151155 Logger . I ( TAG , "FormMain_Load completed" ) ;
152156 }
153157
@@ -207,7 +211,6 @@ private void InitPages()
207211 {
208212 Logger . I ( TAG , "InitPages enter" ) ;
209213 Pages = new Dictionary < string , BasePage > ( 32 ) ;
210- TCMain . SuspendLayout ( ) ;
211214 CreatePage < PageHome > ( ) ;
212215 var poc = CreatePage < PageOpenCommand > ( ) ;
213216 poc . ShowTipInRunButton = msg => ShowTip ( msg , BtnInvokeOpenCommand ) ;
@@ -233,7 +236,6 @@ private void InitPages()
233236#if DEBUG
234237 CreatePage < PageTools > ( ) ;
235238#endif
236- TCMain . ResumeLayout ( ) ;
237239 Logger . I ( TAG , "InitPages completed" ) ;
238240 }
239241
@@ -377,7 +379,19 @@ private void ListPages_SelectedIndexChanged(object sender, EventArgs e)
377379 . ElementAt ( ListPages . SelectedIndex )
378380 . Item1 ;
379381 // 通过Key找到页面的父节点也就是TabPage,设置为选中项
380- TCMain . SelectedTab = Pages [ key ] . Parent as TabPage ;
382+ ShowPage ( Pages [ key ] ) ;
383+ }
384+
385+ /// <summary>
386+ /// 展示页面
387+ /// </summary>
388+ /// <param name="page">页面实例</param>
389+ private void ShowPage ( BasePage page )
390+ {
391+ NavContainer . Panel2 . SuspendLayout ( ) ;
392+ NavContainer . Panel2 . Controls . Clear ( ) ;
393+ NavContainer . Panel2 . Controls . Add ( page ) ;
394+ NavContainer . Panel2 . ResumeLayout ( ) ;
381395 }
382396
383397 /// <summary>
@@ -422,9 +436,6 @@ private void ListPages_SizeChanged(object sender, EventArgs e)
422436 Name = typeof ( T ) . Name ,
423437 } ;
424438 Pages . Add ( page . Name , page ) ;
425- var tp = new TabPage ( ) ;
426- TCMain . TabPages . Add ( tp ) ;
427- tp . Controls . Add ( page ) ;
428439 return page ;
429440 }
430441
@@ -698,13 +709,18 @@ private void FormMain_KeyDown(object sender, KeyEventArgs e)
698709 // F5 为执行命令
699710 OnOpenCommandInvoke ( ) ;
700711 }
701- else if ( e . Alt && e . KeyCode >= Keys . D0 && e . KeyCode <= Keys . D9 )
712+ else if ( ( e . Alt || e . Control ) && e . KeyCode >= Keys . D0 && e . KeyCode <= Keys . D9 )
702713 {
703- // Alt+数字键 = 跳转到对应页面
714+ // Alt|Ctrl +数字键 = 跳转到对应页面
704715 var i = e . KeyCode == Keys . D0 ? 9 : e . KeyCode - Keys . D1 ;
705716 if ( i < ListPages . Items . Count )
706717 ListPages . SelectedIndex = i ;
707718 }
719+ else if ( e . Control && e . KeyCode == Keys . Tab )
720+ {
721+ // 切换到下一个页面
722+ ListPages . SelectedIndex = ( ListPages . SelectedIndex + 1 ) % ListPages . Items . Count ;
723+ }
708724 else if ( Common . KeyGo . IsEnabled == false )
709725 {
710726 foreach ( var hotkeyItem in Common . KeyGo . Items )
@@ -755,13 +771,23 @@ private void ShowTip(string message, Control control)
755771 /// 导航到目标页面并返回该页面实例
756772 /// </summary>
757773 /// <typeparam name="TPage">页面类型</typeparam>
758- /// <returns>如果导航到了则返回页面实例,否则返回空</returns>
759774 public TPage NavigateTo < TPage > ( ) where TPage : BasePage
760775 {
761- ListPages . SelectedIndex = - 1 ;
762- var page = Pages [ typeof ( TPage ) . Name ] ;
763- TCMain . SelectedTab = page . Parent as TabPage ;
764- return page as TPage ;
776+ var key = typeof ( TPage ) . Name ;
777+ var page = Pages [ key ] as TPage ;
778+ var i = 0 ;
779+ foreach ( var it in PageTabOrders . Where ( it => it . Item2 ) )
780+ {
781+ if ( it . Item1 == key )
782+ {
783+ ListPages . SelectedIndex = i ;
784+ return page ;
785+ }
786+ i ++ ;
787+ }
788+
789+ ShowPage ( page ) ;
790+ return page ;
765791 }
766792
767793 #endregion - 通用 General -
0 commit comments