zoukankan      html  css  js  c++  java
  • C# 窗体 切换、重复显示等遗留问题解决(第五天)

    一、解决同一窗体多次点击重复显示BUG

    (1)点击弹出学校窗体

     1         #region 弹出学校窗体               
     2         /// <summary>
     3         /// 弹出学校窗体
     4         /// </summary>
     5         /// <param name="sender"></param>
     6         /// <param name="e"></param>
     7         private void SchoolToolStripMenuItem_Click(object sender, EventArgs e)
     8         {
     9             //点击后显示SchoolTan这个弹窗
    10             SchoolTan schooltanchuang=new SchoolTan();
    11                    
    12             //this.IsMdiContainer = true;
    13             //WFromMain mainForm = new WFromMain();
    14             //schooltanchuang.MdiParent = this;
    15             /*
    16              *  方法:明确父子关系:
    17                     son form = new Form();
    18                     form.MdiParent = this(father);
    19                     form.show();
    20                     前提是先要设置father窗体
    21                     isMdiContainer = true; 
    22              * **/
    23             if (this.MdiChildren==null||this.MdiChildren.Length==0)
    24             {
    25                 schooltanchuang.Show();
    26                 //让子窗体不超出父窗体界限,给子窗体指定父窗体
    27                 schooltanchuang.MdiParent = this;
    28                 return;
    29             }
    30             bool flag = false;
    31             foreach (var item in this.MdiChildren)
    32             {
    33                 if (item.Text == schooltanchuang.Text)
    34                 {
    35                     schooltanchuang = item as SchoolTan;
    36                     schooltanchuang.Activate();
    37                     flag = true;
    38                     break;
    39                 }
    40             }
    41             if (!flag)
    42             {
    43                 schooltanchuang.Show();
    44                 //给子窗体指定父窗体
    45                 schooltanchuang.MdiParent = this;
    46             }
    47         }
    48         #endregion
    View Code

    (2)弹出商会组织窗体

     1  #region 弹出商会组织窗体               
     2         /// <summary>
     3         /// 弹出商会组织窗体
     4         /// </summary>
     5         /// <param name="sender"></param>
     6         /// <param name="e"></param>
     7         private void ShanghuiToolStripMenuItem_Click(object sender, EventArgs e)
     8         {
     9             //点击弹出重庆商会窗体
    10             ShangHui shang = new ShangHui();
    11             //shang.Show();
    12             //shang.MdiParent = this;
    13             if (this.MdiChildren == null || this.MdiChildren.Length == 0)
    14             {
    15                 shang.Show();
    16                 //让子窗体不超出父窗体界限,给子窗体指定父窗体
    17                 shang.MdiParent = this;
    18                 return;
    19             }
    20             bool flag = false;
    21             foreach (var item in this.MdiChildren)
    22             {
    23                 if (item.Text == shang.Text)
    24                 {
    25                     shang = item as ShangHui;
    26                     shang.Activate();
    27                     flag = true;
    28                     break;
    29                 }
    30             }
    31             if (!flag)
    32             {
    33                 shang.Show();
    34                 //给子窗体指定父窗体
    35                 shang.MdiParent = this;
    36             }
    37         }
    38         #endregion
    View Code

    (3)点击弹出公益组织窗体

     1  #region 点击弹出公益组织窗体               
     2         /// <summary>
     3         /// 点击弹出公益组织窗体
     4         /// </summary>
     5         /// <param name="sender"></param>
     6         /// <param name="e"></param>
     7         private void 公益组织ToolStripMenuItem_Click(object sender, EventArgs e)
     8         {
     9             //点击弹出公益组织窗体
    10             GongYi gongyi = new GongYi();
    11             //gongyi.Show();
    12             //gongyi.MdiParent = this;
    13             if (this.MdiChildren == null || this.MdiChildren.Length == 0)
    14             {
    15                 gongyi.Show();
    16                 //让子窗体不超出父窗体界限,给子窗体指定父窗体
    17                 gongyi.MdiParent = this;
    18                 return;
    19             }
    20             bool flag = false;
    21             foreach (var item in this.MdiChildren)
    22             {
    23                 if (item.Text == gongyi.Text)
    24                 {
    25                     gongyi = item as GongYi;
    26                     gongyi.Activate();
    27                     flag = true;
    28                     break;
    29                 }
    30             }
    31             if (!flag)
    32             {
    33                 gongyi.Show();
    34                 //给子窗体指定父窗体
    35                 gongyi.MdiParent = this;
    36             }
    37         }
    38         #endregion      
    View Code

    二、关闭所有的运行环境操作

     1       /// <summary>
     2         /// 关闭运行环境
     3         /// </summary>
     4         /// <param name="sender"></param>
     5         /// <param name="e"></param>
     6         private void 关闭全部窗体ToolStripMenuItem_Click(object sender, EventArgs e)
     7         {
     8             //关闭运行环境
     9             Environment.Exit(0);
    10         }    

    三、右键菜单关闭所有弹窗(右键菜单有多个选项时的情况)

     1 private void CloseAllToolStripMenuItem_Click(object sender, EventArgs e)
     2         {
     3  
     4              int len = this.MdiChildren.Length;
     5              for (int i = 0; i <len ; i++)
     6              {
     7                  Form frm = this.MdiChildren[0];
     8                  frm.Close();
     9              }
    10          }

     四、获取radiobatton的text值的方法

     1  private void btnNanNv_Click(object sender, EventArgs e)
     2         {
     3             string checkedRBName = "";
     4 
     5             //取得选中单选按钮的名称  
     6             if (radioButtonMan.Checked)
     7             {
     8                 checkedRBName = radioButtonMan.Name;
     9                 string textNan = radioButtonMan.Text;
    10                 MessageBox.Show("这是选中了"+textNan);
    11             }
    12             else if (radioButtonGirl.Checked)
    13             {
    14                 checkedRBName = radioButtonGirl.Name;
    15                 string textNv = radioButtonGirl.Text;
    16                 MessageBox.Show("这是选中了"+ textNv);
    17                 //获得和radioButton按钮对应标签的内容,用的是 radioButton2.Text属性;  
    18 
    19             }
    20             
    21             MessageBox.Show(checkedRBName + " was checked."); 
    22         }
  • 相关阅读:
    单例模式
    Curator Zookeeper分布式锁
    LruCache算法原理及实现
    lombok 简化java代码注解
    Oracle客户端工具出现“Cannot access NLS data files or invalid environment specified”错误的解决办法
    解决mysql Table ‘xxx’ is marked as crashed and should be repaired的问题。
    Redis 3.0 Cluster集群配置
    分布式锁的三种实现方式
    maven发布项目到私服-snapshot快照库和release发布库的区别和作用及maven常用命令
    How to Use Convolutional Neural Networks for Time Series Classification
  • 原文地址:https://www.cnblogs.com/pang951189/p/7449980.html
Copyright © 2011-2022 走看看