[C#]MagicLibrary.dll控件的使用(二)(TabControl控件)

MagicLibrary.dll控件功能中昨天写了个Menu的实现,全部以代码方式实现的一个例子。
在MagicLibrary.dll中,还一TabControl控件。
今天以拖拉方式(工具方法拖出)实现TabControl,其中加有Menu例子。

例子源码下载:/Files/HD/MagicLibrary_Demo/TabControlDemo.rar

截图如下:
例图一:
TabControlDemo_1.jpg

例图二:加入TabPage
TabControlDemo_2.jpg

例图三:关才已选择的TabPage
TabControlDemo_3.jpg

例图四:在已选择的TabControl中的RichTextBox控件右键菜单
TabControlDemo_4.jpg

例图五:TabControl控件的PositionTop属性设为flase
TabControlDemo_5.jpg


操作示例:
(界面设计)
项目中加入MagicLibrary.dll(包括解决方案资源管理器、工具箱中)。
项目中包括两个Form,分别为:Form1、Form2,Form1为起始Form。
打开Form1,在窗口设计器中从工具箱中拖入刚加入的控件:MenuControl,把MenuControl的Dock属性设为:Top,Name属性为:_topMenu,PositionTop属性设为:true,ShowArrows属性设为:true,ShowClose属性设为:true,ShrinkPagesToFit属性设为:false。接着再从工具箱中拖入:TabControl,把TabControl控件的Dock属性设为:Fill,Name属性为:_tabControl。
打开Form2,在窗口设计器中从工具箱中拖入控件:RichTextBox,把RichTextBox的Dock属性设为:Fill,Name属性设为:rtxContent

一:Form1
(代码实现)
打开Form1的代码设计器,在Form1的构造函数中加入:this.SetupMenu();
见源码:

None.gif          public  Form1()
ExpandedBlockStart.gifContractedBlock.gif        
dot.gif {
InBlock.gif            
//
InBlock.gif            
// Windows 窗体设计器支持所必需的
InBlock.gif            
//
InBlock.gif
            InitializeComponent();
InBlock.gif            
InBlock.gif            
//加入菜单
InBlock.gif
            this.SetupMenu();
ExpandedBlockEnd.gif        }

接着复制这段代码到设计器中:
None.gif
ExpandedBlockStart.gifContractedBlock.gif        
/**/ /// <summary>
InBlock.gif        
/// 加入下拉菜单
ExpandedBlockEnd.gif        
/// </summary>

None.gif          protected   void  SetupMenu()
ExpandedBlockStart.gifContractedBlock.gif        
dot.gif {
InBlock.gif            Crownwood.Magic.Menus.MenuCommand top1 
= new Crownwood.Magic.Menus.MenuCommand( "&PageControls" );
InBlock.gif            Crownwood.Magic.Menus.MenuCommand top1_1 
= new Crownwood.Magic.Menus.MenuCommand( "&AddPage",new EventHandler( OnAddPageSelected ) );
InBlock.gif            Crownwood.Magic.Menus.MenuCommand top1_2 
= new Crownwood.Magic.Menus.MenuCommand( "&RemovePage",new EventHandler( OnColseSelected ) );
InBlock.gif            Crownwood.Magic.Menus.MenuCommand top1_3 
= new Crownwood.Magic.Menus.MenuCommand( "&Exit",new EventHandler( OnExitSelected ) );
ExpandedSubBlockStart.gifContractedSubBlock.gif            top1.MenuCommands.AddRange( 
new Crownwood.Magic.Menus.MenuCommand[]dot.gif{ top1_1,top1_2,top1_3 } );
InBlock.gif
InBlock.gif            Crownwood.Magic.Menus.MenuCommand top2 
= new Crownwood.Magic.Menus.MenuCommand( "&TabControl" );
InBlock.gif            Crownwood.Magic.Menus.MenuCommand top2_1 
= new Crownwood.Magic.Menus.MenuCommand( "&Top",new EventHandler( OnTopSelected ) );
InBlock.gif            Crownwood.Magic.Menus.MenuCommand top2_2 
= new Crownwood.Magic.Menus.MenuCommand( "&Buttom",new EventHandler( OnButtomSelected ) );
ExpandedSubBlockStart.gifContractedSubBlock.gif            top2.MenuCommands.AddRange( 
new Crownwood.Magic.Menus.MenuCommand[]dot.gif{ top2_1,top2_2 } );
InBlock.gif
ExpandedSubBlockStart.gifContractedSubBlock.gif            
this._topMenu.MenuCommands.AddRange( new Crownwood.Magic.Menus.MenuCommand[]dot.gif{ top1,top2 } );
InBlock.gif
InBlock.gif            
this._tabControl.MouseUp += new MouseEventHandler( OnMouseUpTabPage );
ExpandedBlockEnd.gif        }

None.gif
ExpandedBlockStart.gifContractedBlock.gif        
/**/ /// <summary>
InBlock.gif        
/// 加入页面
ExpandedBlockEnd.gif        
/// </summary>

None.gif          protected   void  AddPage()
ExpandedBlockStart.gifContractedBlock.gif        
dot.gif {
InBlock.gif            Form2 f2 
= new Form2();
InBlock.gif            System.Windows.Forms.Control ctlForm 
= f2;
InBlock.gif            Crownwood.Magic.Controls.TabPage tp 
= new Crownwood.Magic.Controls.TabPage( "Page"+this._tabControl.TabPages.Count.ToString(),ctlForm );
InBlock.gif            
this._tabControl.TabPages.Add( tp ).Selected = true;
ExpandedBlockEnd.gif        }

None.gif
None.gif
None.gif
None.gif        
protected   void  OnExitSelected(  object  sender , EventArgs e )
ExpandedBlockStart.gifContractedBlock.gif        
dot.gif {
InBlock.gif            DialogResult dr 
= MessageBox.Show( "Are you sure exit application?","Warning",MessageBoxButtons.YesNo,MessageBoxIcon.Warning );
InBlock.gif            
if ( dr == DialogResult.Yes )
ExpandedSubBlockStart.gifContractedSubBlock.gif            
dot.gif{
InBlock.gif                Application.Exit();
ExpandedSubBlockEnd.gif            }

ExpandedBlockEnd.gif        }

None.gif
None.gif        
protected   void  OnTopSelected(  object  sender,EventArgs e )
ExpandedBlockStart.gifContractedBlock.gif        
dot.gif {
InBlock.gif            
this._tabControl.PositionTop = true;
ExpandedBlockEnd.gif        }

None.gif
None.gif        
protected   void  OnButtomSelected(  object  sender , EventArgs e )
ExpandedBlockStart.gifContractedBlock.gif        
dot.gif {
InBlock.gif            
this._tabControl.PositionTop = false;
ExpandedBlockEnd.gif        }

None.gif
None.gif        
protected   void  OnAddPageSelected(  object  sender , EventArgs e )
ExpandedBlockStart.gifContractedBlock.gif        
dot.gif {
InBlock.gif            
this.AddPage();
ExpandedBlockEnd.gif        }

None.gif
None.gif        
protected   void  OnMouseUpTabPage(  object  sender , System.Windows.Forms.MouseEventArgs e )
ExpandedBlockStart.gifContractedBlock.gif        
dot.gif {
InBlock.gif            
if ( this._tabControl.TabPages.Count>0 && e.Button == MouseButtons.Right && this._tabControl.SelectedTab.Selected )
ExpandedSubBlockStart.gifContractedSubBlock.gif            
dot.gif{
InBlock.gif                Crownwood.Magic.Menus.MenuControl muMenu 
= new Crownwood.Magic.Menus.MenuControl();
InBlock.gif                Crownwood.Magic.Menus.MenuCommand menu1 
= new Crownwood.Magic.Menus.MenuCommand( "&SavePage" );
InBlock.gif                Crownwood.Magic.Menus.MenuCommand menu2 
= new Crownwood.Magic.Menus.MenuCommand( "&Close",new EventHandler( OnColseSelected )  );
InBlock.gif
InBlock.gif                Crownwood.Magic.Menus.PopupMenu pm 
= new Crownwood.Magic.Menus.PopupMenu();
ExpandedSubBlockStart.gifContractedSubBlock.gif                pm.MenuCommands.AddRange( 
new Crownwood.Magic.Menus.MenuCommand[]dot.gif{ menu1,menu2 } );
InBlock.gif                pm.TrackPopup( 
this._tabControl.PointToScreen( new Point( e.X,e.Y ) ) );
ExpandedSubBlockEnd.gif            }

ExpandedBlockEnd.gif        }

None.gif
None.gif        
protected   void  OnColseSelected(  object  sender , EventArgs e )
ExpandedBlockStart.gifContractedBlock.gif        
dot.gif {
InBlock.gif            
if ( this._tabControl.TabPages.Count > 0 )
ExpandedSubBlockStart.gifContractedSubBlock.gif            
dot.gif{
InBlock.gif                
this._tabControl.TabPages.Remove( this._tabControl.SelectedTab );
ExpandedSubBlockEnd.gif            }

ExpandedBlockEnd.gif        }

(添加事件)
打开Form1窗口设计器,选中TabControl控件,向控件加入MouseUp事件:
ExpandedBlockStart.gif ContractedBlock.gif          /**/ /// <summary>
InBlock.gif        
/// 单击TabControl关闭按钮时关闭已选择的TabPage
InBlock.gif        
/// </summary>
InBlock.gif        
/// <param name="sender"></param>
ExpandedBlockEnd.gif        
/// <param name="e"></param>

None.gif          private   void  _tabControl_ClosePressed( object  sender, System.EventArgs e)
ExpandedBlockStart.gifContractedBlock.gif        
dot.gif {
InBlock.gif            
if ( this._tabControl.TabPages.Count > 0 )
ExpandedSubBlockStart.gifContractedSubBlock.gif            
dot.gif{
InBlock.gif                
this._tabControl.TabPages.Remove( this._tabControl.SelectedTab );
ExpandedSubBlockEnd.gif            }

ExpandedBlockEnd.gif        }


二:Form2
打开Form2窗口设计器,选中RichTextBox,为RichTextBox控件添加MouseUp事件:
None.gif
None.gif        
private   void  rtxContent_MouseUp( object  sender, System.Windows.Forms.MouseEventArgs e)
ExpandedBlockStart.gifContractedBlock.gif        
dot.gif {
InBlock.gif            
if ( e.Button == MouseButtons.Right )
ExpandedSubBlockStart.gifContractedSubBlock.gif            
dot.gif{
InBlock.gif                System.Windows.Forms.RichTextBox rt 
= ( RichTextBox )sender;
InBlock.gif                Crownwood.Magic.Menus.MenuControl muMenu 
= new Crownwood.Magic.Menus.MenuControl();
InBlock.gif                Crownwood.Magic.Menus.MenuCommand menu1 
= new Crownwood.Magic.Menus.MenuCommand( "&Copy" );
InBlock.gif                Crownwood.Magic.Menus.MenuCommand menu2 
= new Crownwood.Magic.Menus.MenuCommand( "&Cut" );
InBlock.gif
InBlock.gif                Crownwood.Magic.Menus.PopupMenu pm 
= new Crownwood.Magic.Menus.PopupMenu();
ExpandedSubBlockStart.gifContractedSubBlock.gif                pm.MenuCommands.AddRange( 
new Crownwood.Magic.Menus.MenuCommand[]dot.gif{ menu1,menu2 } );
InBlock.gif                pm.TrackPopup( rt.PointToScreen( 
new Point( e.X,e.Y ) ) );
ExpandedSubBlockEnd.gif            }

ExpandedBlockEnd.gif        }

转载于:https://www.cnblogs.com/HD/archive/2005/10/28/263800.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值