CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  C#

有关WinForm的

楼主terry1021_82(小狐狸)2006-05-02 20:59:04 在 .NET技术 / C# 提问

我做了一个类:  
  public   class   Control  
          {    
              Table_Form2   form2   =   new   Table_Form2();  
   
              public   void   Table2_Enable(bool   flag)  
                {  
                        switch   (flag)  
                        {  
                                case   false:  
   
                                        form2.TextBox26.ReadOnly   =   true;  
                                        form2.TextBox27.ReadOnly   =   true;  
                                        form2.TextBox28.ReadOnly   =   true;  
   
                                        form2.RichTextBox2.ReadOnly   =   true;  
                                        form2.RichTextBox3.ReadOnly   =   true;  
                                        form2.RichTextBox4.ReadOnly   =   true;  
                                        form2.RichTextBox5.ReadOnly   =   true;  
                                        form2.RichTextBox6.ReadOnly   =   true;  
   
                                        break;  
                                case   true:  
   
                                        form2.TextBox26.ReadOnly   =   false;  
                                        form2.TextBox27.ReadOnly   =   false;  
                                        form2.TextBox28.ReadOnly   =   false;  
   
                                        form2.RichTextBox2.ReadOnly   =   false;  
                                        form2.RichTextBox3.ReadOnly   =   false;  
                                        form2.RichTextBox4.ReadOnly   =   false;  
                                        form2.RichTextBox5.ReadOnly   =   false;  
                                        form2.RichTextBox6.ReadOnly   =   false;  
   
                                        break;  
                        }  
                }  
   
  然后在窗体中:  
                  Control   S   =   new   Control();  
   
                  private   void   Table_Form2_Load(object   sender,   EventArgs   e)  
                  {  
                          S.Table2_Enable(false);  
                  }  
   
  调试时候返回错误:  
  未处理的“System.StackOverflowException”类型的异常出现在   信息管理系统.exe   中。  
   
  错误提示:确保没有无限循环或无限递归.  
   
  调用这个方法的程序段里没有循环和递归啊,不知道是哪儿出问题了,请大家帮忙侃侃 问题点数:40、回复次数:7Top

1 楼jzyray(晶)回复于 2006-05-02 21:05:22 得分 5

Control初始化时会初始化一个Table_Form2:Table_Form2   form2   =   new   Table_Form2();  
   
  而Table_Form2初始化时又会初始化一个Control:Control   S   =   new   Control();  
   
  这就是死循环。Top

2 楼terry1021_82(小狐狸)回复于 2006-05-02 22:44:21 得分 0

那怎么解决这个问题呢Top

3 楼diandian82(点点(nothing))回复于 2006-05-02 22:51:11 得分 5

这本来就是一个死循环,除非把其中一个声明成静态的不知道可以不?你试试Top

4 楼cxchao_online(cxchao)回复于 2006-05-03 00:40:53 得分 5

这是一个死循环  
  为什么你要这样写呢  
  换一种方法不可以吗Top

5 楼Knight94(愚翁)回复于 2006-05-03 09:29:48 得分 25

修改你的control类如下:  
  public   class   Control  
  {  
  public   static   void   Table2_Enable(Table_Form2   form2,   bool   flag)  
  {  
  switch   (flag)  
  {  
  case   false:  
   
  form2.TextBox26.ReadOnly   =   true;  
  form2.TextBox27.ReadOnly   =   true;  
  form2.TextBox28.ReadOnly   =   true;  
   
  form2.RichTextBox2.ReadOnly   =   true;  
  form2.RichTextBox3.ReadOnly   =   true;  
  form2.RichTextBox4.ReadOnly   =   true;  
  form2.RichTextBox5.ReadOnly   =   true;  
  form2.RichTextBox6.ReadOnly   =   true;  
   
  break;  
  case   true:  
   
  form2.TextBox26.ReadOnly   =   false;  
  form2.TextBox27.ReadOnly   =   false;  
  form2.TextBox28.ReadOnly   =   false;  
   
  form2.RichTextBox2.ReadOnly   =   false;  
  form2.RichTextBox3.ReadOnly   =   false;  
  form2.RichTextBox4.ReadOnly   =   false;  
  form2.RichTextBox5.ReadOnly   =   false;  
  form2.RichTextBox6.ReadOnly   =   false;  
   
  break;  
  }  
  }  
  }  
   
  调用改成如下:  
  Control.Table2_Enable(   this,   false);Top

6 楼Knight94(愚翁)回复于 2006-05-03 09:31:26 得分 0

不过如果你的control类只是完成以上功能的话,不建议单独写到一个类中,因为破坏了类的封装。Top

7 楼terry1021_82(小狐狸)回复于 2006-05-03 12:30:22 得分 0

大家的建议让我收益菲浅  
  谢谢大家Top

相关问题

关键词

得分解答快速导航

  • 帖主:terry1021_82
  • jzyray
  • diandian82
  • cxchao_online
  • Knight94

相关链接

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

广告也精彩

反馈

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