CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  C#

基类窗体

楼主i_linhui()2005-11-17 10:30:14 在 .NET技术 / C# 提问

各位:我想写一个基类窗体,把一些常用的功能放在这个类里。其余窗体可以继承这个基类   。但是老搞不对,那位能干给些示例代码呢? 问题点数:50、回复次数:8Top

1 楼jxufewbt(我的目标是5星)回复于 2005-11-17 10:40:09 得分 0

那里老搞不对了?Top

2 楼i_linhui()回复于 2005-11-17 10:40:12 得分 0

???????????Top

3 楼i_linhui()回复于 2005-11-17 11:14:48 得分 0

自己搞定了Top

4 楼noodle2005(wangf)回复于 2005-11-18 10:57:10 得分 0

楼主是来扔分的   我来接分Top

5 楼aimcy(Debian)回复于 2005-11-18 11:11:04 得分 0

接分~~~~~~~~~~~~~~~~~~~~~~~~~~~~~Top

6 楼zmisfits()回复于 2005-11-18 11:18:02 得分 5

问楼主个问题,你的这个基类窗体的一些常用的功能包括什么,有诸如事件,或方法吗,这些事件方法你是如何定义和调用的,对于事件或方法所需的参数是如何定义和调用的,是否是动态的???Top

7 楼peak_weng(峰)回复于 2005-11-18 11:28:22 得分 40

using   System;  
  using   System.Drawing;  
  using   System.Collections;  
  using   System.ComponentModel;  
  using   System.Windows.Forms;  
  using   System.Text.RegularExpressions;  
   
  namespace   asrs  
  {  
  ///   <summary>  
  ///   PublicFrm   的摘要说明。  
  ///   </summary>  
  public   class   PublicFrm   :   System.Windows.Forms.Form  
  {  
  ///   <summary>  
  ///   必需的设计器变量。  
  ///   </summary>  
  private   System.ComponentModel.Container   components   =   null;  
                  public   DbLink   DataProcess=new   DbLink("wxh","asrs");  
  public   PublicFrm()  
  {  
  //  
  //   Windows   窗体设计器支持所必需的  
  //  
  InitializeComponent();  
   
  //  
  //   TODO:   在   InitializeComponent   调用后添加任何构造函数代码  
  //  
  }  
   
  ///   <summary>  
  ///   清理所有正在使用的资源。  
  ///   </summary>  
  protected   override   void   Dispose(   bool   disposing   )  
  {  
  if(   disposing   )  
  {  
  if(components   !=   null)  
  {  
  components.Dispose();  
  }  
  }  
  base.Dispose(   disposing   );  
  }  
   
  #region   Windows   窗体设计器生成的代码  
  ///   <summary>  
  ///   设计器支持所需的方法   -   不要使用代码编辑器修改  
  ///   此方法的内容。  
  ///   </summary>  
  private   void   InitializeComponent()  
  {  
  //    
  //   PublicFrm  
  //    
  this.AutoScaleBaseSize   =   new   System.Drawing.Size(6,   14);  
  this.ClientSize   =   new   System.Drawing.Size(272,   237);  
  this.Name   =   "PublicFrm";  
  this.Text   =   "PublicFrm";  
  this.Load   +=   new   System.EventHandler(this.PublicFrm_Load);  
   
  }  
  #endregion  
  public   void   InitFrm(GroupBox   groupBox)  
  {  
  foreach(Control   ctl   in   groupBox.Controls)  
  {  
  switch(ctl.GetType().Name)  
  {  
  case   "TextBox":  
  case"ComboBox":  
  ctl.Text=string.Empty;  
  break;  
  case   "CheckBox":  
  ((CheckBox)ctl).Checked=false;  
  break;  
  case"LisBox":  
  ((ListBox)ctl).Items.Clear();  
  break;  
                  case"DataGrid":  
  ((DataGrid)ctl).DataSource=null;  
  break;  
  case"DateTimePicker":  
  ((DateTimePicker)ctl).Value=DateTime.Today;  
  break;  
  }  
  }  
  }  
   
  public   bool   checkEmpty(GroupBox   groupBox)  
  {  
  foreach(Control   ctl   in   groupBox.Controls)  
  {    
  switch(ctl.GetType().Name)  
  {        
  case"ComboBox":  
  case"TextBox":  
  if(ctl.Text=="")  
  {        
  MessageBox.Show(ctl.Name+"   is   not   Null!","ERR!");  
  ctl.Focus();  
  return   false;  
  }  
  break;  
  }  
  }  
                          return   true;  
  }  
   
  public   bool   IsNumeric(string   itemValue)  
  {  
  try  
  {  
  //Regex   numRegex=new   Regex(@"(-?\d*)(\.\d+)?");  
  Regex   numRegex=new   Regex(@"^(-?[0-9]*[.]*[0-9]*)$");  
  Match   Result=numRegex.Match(itemValue);  
  if(Result.Success)  
  {return   true;}  
  else  
  {return   false;}  
  }  
  catch(FormatException   ex)  
  {  
  MessageBox.Show("格式化错误:\n\r"+ex.Message,"Err!");  
  return   false;  
  }  
  catch(Exception   ex)  
  {  
  MessageBox.Show("其他错误:\n\r"+ex.Message,"Err!");  
  return   false;  
  }  
  }  
  private   void   PublicFrm_Load(object   sender,   System.EventArgs   e)  
  {  
   
  }  
  }  
  }  
   
   
  Top

8 楼peak_weng(峰)回复于 2005-11-18 11:28:43 得分 5

public   class   frmMain   :PublicFrm         //System.Windows.Forms.Form  
  {  
  private   System.Windows.Forms.TreeView   treeView1;  
  private   System.Windows.Forms.Splitter   splitter1;  
  private   System.Windows.Forms.MainMenu   mainMenu1;  
  private   System.Windows.Forms.MenuItem   menuItem1;  
  private   System.Windows.Forms.MenuItem   menuItem2;  
  ///   <summary>  
  ///   必需的设计器变量。  
  ///   </summary>  
  private   System.ComponentModel.Container   components   =   null;  
  string                                           sql;  
  DataTable   dTable;  
  private   System.Windows.Forms.StatusBar   statusBar1;  
  private   System.Windows.Forms.StatusBarPanel   statePanel1;  
  private   System.Windows.Forms.StatusBarPanel   statePanel2;  
  TreeNode   rootNode=new   TreeNode();  
   
  public   frmMain()  
  {  
  //  
  //   Windows   窗体设计器支持所必需的  
  //  
  InitializeComponent();  
  //data.Open();  
  //  
  //   TODO:   在   InitializeComponent   调用后添加任何构造函数代码  
  //  
  statusBar1.Panels[0].Text="用户ID:"+frmLogin.strID;  
  statusBar1.Panels[1].Text="用户名称:"+frmLogin.strName;  
   
  }  
   
  ///   <summary>  
  ///   清理所有正在使用的资源。  
  ///   </summary>  
  ///    
  [STAThread]  
  static   void   Main()    
  {  
  frmLogin   login=new   frmLogin();  
  login.ShowDialog();  
  if(frmLogin.blLogin)  
  {  
  Application.Run(new   frmMain());  
  }  
  }  
  protected   override   void   Dispose(   bool   disposing   )  
  {  
  if(   disposing   )  
  {  
  if(components   !=   null)  
  {  
  components.Dispose();  
  }  
  }  
  base.Dispose(   disposing   );  
  }  
   
  #region   Windows   窗体设计器生成的代码  
  ///   <summary>  
  ///   设计器支持所需的方法   -   不要使用代码编辑器修改  
  ///   此方法的内容。  
  ///   </summary>  
  private   void   InitializeComponent()  
  {  
  this.treeView1   =   new   System.Windows.Forms.TreeView();  
  this.splitter1   =   new   System.Windows.Forms.Splitter();  
  this.mainMenu1   =   new   System.Windows.Forms.MainMenu();  
  this.menuItem1   =   new   System.Windows.Forms.MenuItem();  
  this.menuItem2   =   new   System.Windows.Forms.MenuItem();  
  this.statusBar1   =   new   System.Windows.Forms.StatusBar();  
  this.statePanel1   =   new   System.Windows.Forms.StatusBarPanel();  
  this.statePanel2   =   new   System.Windows.Forms.StatusBarPanel();  
  ((System.ComponentModel.ISupportInitialize)(this.statePanel1)).BeginInit();  
  ((System.ComponentModel.ISupportInitialize)(this.statePanel2)).BeginInit();  
  this.SuspendLayout();  
  //    
  //   treeView1  
  //    
  this.treeView1.Dock   =   System.Windows.Forms.DockStyle.Left;  
  this.treeView1.ImageIndex   =   -1;  
  this.treeView1.Location   =   new   System.Drawing.Point(0,   0);  
  this.treeView1.Name   =   "treeView1";  
  this.treeView1.SelectedImageIndex   =   -1;  
  this.treeView1.Size   =   new   System.Drawing.Size(128,   409);  
  this.treeView1.TabIndex   =   1;  
  this.treeView1.DoubleClick   +=   new   System.EventHandler(this.treeView1_DoubleClick);  
  this.treeView1.AfterSelect   +=   new   System.Windows.Forms.TreeViewEventHandler(this.treeView1_AfterSelect);  
  //    
  //   splitter1  
  //    
  this.splitter1.Location   =   new   System.Drawing.Point(128,   0);  
  this.splitter1.Name   =   "splitter1";  
  this.splitter1.Size   =   new   System.Drawing.Size(8,   409);  
  this.splitter1.TabIndex   =   2;  
  this.splitter1.TabStop   =   false;  
  //    
  //   mainMenu1  
  //    
  this.mainMenu1.MenuItems.AddRange(new   System.Windows.Forms.MenuItem[]   {  
      this.menuItem1});  
  //    
  //   menuItem1  
  //    
  this.menuItem1.Index   =   0;  
  this.menuItem1.MenuItems.AddRange(new   System.Windows.Forms.MenuItem[]   {  
      this.menuItem2});  
  this.menuItem1.Text   =   "库存管理";  
  //    
  //   menuItem2  
  //    
  this.menuItem2.Index   =   0;  
  this.menuItem2.Text   =   "入库管理";  
  this.menuItem2.Click   +=   new   System.EventHandler(this.menuItem2_Click);  
  //    
  //   statusBar1  
  //    
  this.statusBar1.Location   =   new   System.Drawing.Point(0,   409);  
  this.statusBar1.Name   =   "statusBar1";  
  this.statusBar1.Panels.AddRange(new   System.Windows.Forms.StatusBarPanel[]   {  
      this.statePanel1,  
      this.statePanel2});  
  this.statusBar1.ShowPanels   =   true;  
  this.statusBar1.Size   =   new   System.Drawing.Size(696,   24);  
  this.statusBar1.TabIndex   =   4;  
  this.statusBar1.Text   =   "statusBar1";  
  //    
  //   statePanel1  
  //    
  this.statePanel1.Text   =   "statusBarPanel1";  
  //    
  //   statePanel2  
  //    
  this.statePanel2.Text   =   "statusBarPanel1";  
  //    
  //   frmMain  
  //    
  this.AutoScaleBaseSize   =   new   System.Drawing.Size(6,   14);  
  this.ClientSize   =   new   System.Drawing.Size(696,   433);  
  this.Controls.Add(this.splitter1);  
  this.Controls.Add(this.treeView1);  
  this.Controls.Add(this.statusBar1);  
  this.IsMdiContainer   =   true;  
  this.Menu   =   this.mainMenu1;  
  this.Name   =   "frmMain";  
  this.Text   =   "   ";  
  this.Load   +=   new   System.EventHandler(this.Main_Load);  
  ((System.ComponentModel.ISupportInitialize)(this.statePanel1)).EndInit();  
  ((System.ComponentModel.ISupportInitialize)(this.statePanel2)).EndInit();  
  this.ResumeLayout(false);  
   
  }  
  #endregion  
   
  private   void   Main_Load(object   sender,   System.EventArgs   e)  
  {  
  rootNode=treeView1.Nodes.Add("ASRS管理系统");  
  rootNode.Tag="main";  
                  sql="Select   Prog_ID,Prog_Name   From   PRG_LST";  
  dTable=DataProcess.Sql_Select(sql);  
  add_Node("库存管理","S",rootNode);  
  add_Node("盘点管理","C",rootNode);  
  add_Node("查询管理","F",rootNode);  
  add_Node("维护管理","M",rootNode);  
  // foreach(DataRow   dr   in   ds.Tables[0].Rows)  
  // {        
  // switch(dr["UserId"].ToString())  
  // {  
  // case   "S":  
  //                                             add_Node(dr["UserName"].ToString(),dr["UserId"].ToString(),S);  
  // break;  
  // case   "P":  
  //     add_Node(dr["UserName"].ToString(),dr["UserId"].ToString(),P);  
  // break;  
  // case"C":  
  // add_Node(dr["UserName"].ToString(),dr["UserId"].ToString(),C);  
  // break;  
  // case"W":  
  // add_Node(dr["UserName"].ToString(),dr["UserId"].ToString(),W);  
  // break;  
  // default:  
  // add_Node(dr["UserName"].ToString(),dr["UserId"].ToString(),S);  
  // break;  
  // }  
  //  
  // }  
  }  
   
  ///   <summary>  
  ///   增加子结点  
  ///   </summary>  
  ///   <param   name="sNode"></param>  
  ///   <param   name="sTag"></param>  
  ///   <param   name="pNode"></param>  
  private     void   add_Node(string   sNode,string   sTag,TreeNode   pNode)  
  {  
  TreeNode   xNode=new   TreeNode();  
  xNode=pNode.Nodes.Add(sNode);  
  xNode.Tag=sTag;  
  foreach(DataRow   dr   in   dTable.Rows)  
  {  
  if(dr[0].ToString().Substring(0,1)==sTag)  
  {  
  TreeNode   cNode=new   TreeNode();  
  cNode=xNode.Nodes.Add(dr[1].ToString());  
  cNode.Tag=dr[0].ToString();  
  }  
  }  
  }  
   
  private   void   menuItem2_Click(object   sender,   System.EventArgs   e)  
  {  
  if(checkChildFrmExist("frmInput"))  
  {  
  return;  
  }  
  frmInput   newFrm=new   frmInput();  
  newFrm.MdiParent=this;  
  newFrm.Show();  
  }  
                   
  ///   <summary>  
  ///   检查子窗体是否存在  
  ///   </summary>  
  ///   <param   name="childFrmName"></param>  
  ///   <returns></returns>  
  private   bool   checkChildFrmExist(string   childFrmName)  
  {  
  foreach(Form   childFrm   in   this.MdiChildren)  
  {  
  if(childFrm.Name==childFrmName)  
  {  
  if(childFrm.WindowState==FormWindowState.Minimized)  
  {  
  childFrm.WindowState=FormWindowState.Maximized;  
  }  
  childFrm.Activate();  
  return   true;  
  }  
  }  
  return   false;  
  }  
   
  private   void   treeView1_AfterSelect(object   sender,   System.Windows.Forms.TreeViewEventArgs   e)  
  {  
   
  switch(e.Node.Tag.ToString())  
  {  
  case   "S1":  
  if(checkChildFrmExist("frmInput"))  
  {  
  return;  
  }  
  frmInput   FrmS1=new   frmInput();  
  FrmS1.MdiParent=this;  
  FrmS1.Show();  
  break;  
  case"M5":  
  if(checkChildFrmExist("frm_Item_Mst"))  
  {  
  return;  
  }  
  frm_Item_Mst   FrmM5=new   frm_Item_Mst();  
  FrmM5.MdiParent=this;  
  FrmM5.Show();  
  break;  
   
  }  
   
  }Top

相关问题

  • 我无法继承基类窗体了!!!!
  • 如何使(基类窗体)上的控件显示(派生类窗体)上 注:在编辑界面时
  • 怎样才能找出同一窗体类创建的窗体
  • 请问若在基类窗体重载DblClick(void);会使派生类窗体从Object Inspector加入的FormDblClick(TObject *Sender)Event失效
  • 我想把一个基类窗体画成圆角矩形,然后让所有的继承窗体都是圆角矩形,要怎么做?
  • 我在基类窗体中无dbgrid,但继承后有的窗体有,有的窗体没有,我如何在基类加入一个popupmenu菜单以对dbgrid中的记录进行操作?
  • 如何创建一个另类窗体?
  • 窗体内处理类指针成员
  • 关于类中窗体的问题
  • 关于类中窗体的问题

关键词

  • 代码
  • statepanel
  • 窗体
  • publicfrm
  • menuitem
  • statusbar
  • splitter
  • treeview
  • childfrm
  • ctl

得分解答快速导航

  • 帖主:i_linhui
  • zmisfits
  • peak_weng
  • peak_weng

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo