@@ -148,6 +148,10 @@ private void FormMain_Load(object sender, EventArgs e)
148
148
Logger . I ( TAG , $ "{ page . Name } OnLoad completed") ;
149
149
}
150
150
151
+ // 默认选中首页
152
+ if ( ListPages . SelectedIndex == - 1 )
153
+ ListPages . SelectedIndex = 0 ;
154
+
151
155
Logger . I ( TAG , "FormMain_Load completed" ) ;
152
156
}
153
157
@@ -207,7 +211,6 @@ private void InitPages()
207
211
{
208
212
Logger . I ( TAG , "InitPages enter" ) ;
209
213
Pages = new Dictionary < string , BasePage > ( 32 ) ;
210
- TCMain . SuspendLayout ( ) ;
211
214
CreatePage < PageHome > ( ) ;
212
215
var poc = CreatePage < PageOpenCommand > ( ) ;
213
216
poc . ShowTipInRunButton = msg => ShowTip ( msg , BtnInvokeOpenCommand ) ;
@@ -233,7 +236,6 @@ private void InitPages()
233
236
#if DEBUG
234
237
CreatePage < PageTools > ( ) ;
235
238
#endif
236
- TCMain . ResumeLayout ( ) ;
237
239
Logger . I ( TAG , "InitPages completed" ) ;
238
240
}
239
241
@@ -377,7 +379,19 @@ private void ListPages_SelectedIndexChanged(object sender, EventArgs e)
377
379
. ElementAt ( ListPages . SelectedIndex )
378
380
. Item1 ;
379
381
// 通过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 ( ) ;
381
395
}
382
396
383
397
/// <summary>
@@ -422,9 +436,6 @@ private void ListPages_SizeChanged(object sender, EventArgs e)
422
436
Name = typeof ( T ) . Name ,
423
437
} ;
424
438
Pages . Add ( page . Name , page ) ;
425
- var tp = new TabPage ( ) ;
426
- TCMain . TabPages . Add ( tp ) ;
427
- tp . Controls . Add ( page ) ;
428
439
return page ;
429
440
}
430
441
@@ -698,13 +709,18 @@ private void FormMain_KeyDown(object sender, KeyEventArgs e)
698
709
// F5 为执行命令
699
710
OnOpenCommandInvoke ( ) ;
700
711
}
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 )
702
713
{
703
- // Alt+数字键 = 跳转到对应页面
714
+ // Alt|Ctrl +数字键 = 跳转到对应页面
704
715
var i = e . KeyCode == Keys . D0 ? 9 : e . KeyCode - Keys . D1 ;
705
716
if ( i < ListPages . Items . Count )
706
717
ListPages . SelectedIndex = i ;
707
718
}
719
+ else if ( e . Control && e . KeyCode == Keys . Tab )
720
+ {
721
+ // 切换到下一个页面
722
+ ListPages . SelectedIndex = ( ListPages . SelectedIndex + 1 ) % ListPages . Items . Count ;
723
+ }
708
724
else if ( Common . KeyGo . IsEnabled == false )
709
725
{
710
726
foreach ( var hotkeyItem in Common . KeyGo . Items )
@@ -755,13 +771,23 @@ private void ShowTip(string message, Control control)
755
771
/// 导航到目标页面并返回该页面实例
756
772
/// </summary>
757
773
/// <typeparam name="TPage">页面类型</typeparam>
758
- /// <returns>如果导航到了则返回页面实例,否则返回空</returns>
759
774
public TPage NavigateTo < TPage > ( ) where TPage : BasePage
760
775
{
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 ;
765
791
}
766
792
767
793
#endregion - 通用 General -
0 commit comments