| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 514 人关注过本帖
标题:命名空间问题
只看楼主 加入收藏
点号
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2013-5-8
结帖率:0
收藏
已结贴  问题点数:10 回复次数:4 
命名空间问题
请教问题,在form1中动态创建了3000个label控件,name分别为lb[0]到lb[2999].现在创建timer控件来调用这些label控件,显示错误 “ 当前上下文中不存在名称“lb”   ”。这个问题该怎么解决呢?

能不能通过动态的设置这3000个label的modifiers属性来实现呢?
搜索更多相关主题的帖子: 上下文 动态 
2013-05-08 17:22
lantian8134
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:8
帖 子:115
专家分:789
注 册:2013-1-11
收藏
得分:10 
把代码贴出来看看吧
2013-05-08 19:29
点号
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2013-5-8
收藏
得分:0 
回复 2楼 lantian8134
public Form1()
        {
            InitializeComponent();


        }

         public void Form1_Load(object sender, EventArgs e)
         {
         Label [] lb = new Label[3000];
  
  for(int i = 0; i < 3000; i++)
 {
 lb[i] = new Label();
     
 lb[i].Location = new System.Drawing.Point( 80+12 * (i % 100),180+15 * (i / 100));
 lb[i].Name = "btnTest";
 lb[i].Size = new System.Drawing.Size(10, 12);
 lb[i].Text = ".";
   lb[i].BackColor = Color.White;
   lb[i].Modifiers=public;
   //lb[i].Font = new Font("微软雅黑", 30, FontStyle.Bold, GraphicsUnit.Pixel);
 this.Controls.Add(lb[i]);
         
 }
   
      }
 public  void timer1_Tick(object sender, EventArgs e)
{
           int Vmax;
          Vmax = int.Parse(textBox2.Text);
          int q=0;
          int m;
          int v=0;
          int j;
          for (j = 0; j < 100; j=j + v)
          {
              if (lb[j].Text != ".")
              {
                  v = int.Parse(lb[j].Text);
                  for (m = 1; m <= v; m++)
                  {
                      if (lb[j + m].Text == ".")
                      {
                          q = 1;
                      }
                      else
                      {
                          q = 0;
                          break;
                      }
                  }
                  if (q == 1 && v < Vmax)
                  {
                      v++;
                  }
                  else if (q == 0 && v > 0)
                  {
                      v--;
                  }
                  else v = v + 1 - 1;
              }
              lb[j + v].Text = v.ToString();
              lb[j].Text = ".";
}



在 void timer1_Tick里面调用lb[i]等 就显示上下文不存在“lb”  怎么解决呢?谢谢
2013-05-08 19:48
lantian8134
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:8
帖 子:115
专家分:789
注 册:2013-1-11
收藏
得分:0 
程序代码:
Label [] lb;
public void Form1_Load(object sender, EventArgs e)
         {
         lb = new Label[3000];
  
  for(int i = 0; i < 3000; i++)
{
lb[i] = new Label();
    
lb[i].Location = new System.Drawing.Point( 80+12 * (i % 100),180+15 * (i / 100));
lb[i].Name = "btnTest";
lb[i].Size = new System.Drawing.Size(10, 12);
lb[i].Text = ".";
   lb[i].BackColor = Color.White;
   lb[i].Modifiers=public;
   //lb[i].Font = new Font("微软雅黑", 30, FontStyle.Bold, GraphicsUnit.Pixel);
this.Controls.Add(lb[i]);
        
}
你声明的lb数组在Load方法中,代表只能在Load中访问,把它提到外面来就行了
2013-05-08 20:14
点号
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2013-5-8
收藏
得分:0 
回复 4楼 lantian8134
十分感谢,我是c#初学者!
2013-05-08 20:56
快速回复:命名空间问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.026628 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved