我的值是111100101010这种行事的 然后在判断下他是不是1如果是1 checkbox就显示的是打上勾的 如果是0就不选择 不知道怎么做  各位大虾帮帮忙啊

解决方案 »

  1.   

    SubString()提出你要的字符,比对,如果是1,checkbox1.check=true;
    是这个意思么?
      

  2.   

    是不是一個checkbox1.check=true對應一個字符?
      

  3.   

    用FOR循環取出每個字符,然後用反射實例化對應的checkbox,然後判斷打勾,
    你試下看行不行
      

  4.   

    关键是 我现在不知道怎么吧取出来的值与chechbox对应上
      

  5.   

    string text = "111100101010";
    char[] Temp = text.ToCharArray();
    for (int i = 0; i<= Temp.Length; i++)
    {
       int ii = (int)Temp[i]; 
     }      
      

  6.   

    我的字符串有多少位 就代表checkbox就有多少个啊
    分别对应上他们
      

  7.   

    如果你是要有多少位就要有多少个checkbox的话是要动态创建的
    要是那样的话就直接用ToCharArray来做更简单
      

  8.   

    public void IsChecked(string p_string) 
            {            
                char[] ch = p_string.ToCharArray(); 
                string temp = null;             for (int i = 0; i < ch.Length; i++) 
                { 
                    switch (ch[i].ToString()) 
                    { 
                        case "1": 
                            CheckBox.checked = true;                      
                            break; 
                        case "1": 
                            CheckBox.checked = false;                      
                            break;                   
                        default:                        
                            break; ; 
                    } 
                }         }
      

  9.   

    字符串,checkbox控件如果是固定的很容易实现
    如果是动态的有点麻烦
      

  10.   

    那你的checkbox到底是怎么才选中?不是说文本中值是1的时候就选中么?是有一个还是N个?如果是n个,你怎么来判断是要选中哪一个?
      

  11.   

            private void button1_Click(object sender, EventArgs e)
            {
                FileStream fs = File.OpenRead(@"\Temp.txt");
                StreamReader sr = new StreamReader(fs);
                string str = sr.ReadLine();
                int x = 0;
                int y = 0;
                char[] temp_char = str.ToCharArray();
                for (int cnt = 0; cnt < temp_char.Length; cnt++)
                {
                    CheckBox check = new CheckBox();
                    check.Location = new System.Drawing.Point(x + 15, y + 10);
                    check.Size = new System.Drawing.Size(52, 20);
                    check.Name = "check" + cnt.ToString();
                    if (temp_char[cnt] == '1')
                    {
                        if (check.Name == "check" + cnt.ToString())
                        {
                            check.Checked = true;
                        }                }
                    else
                    {
                        if (check.Name == "check" + cnt.ToString())
                        {
                            check.Checked = false;
                        }
                    }
                }
            }写了个动态创建的,你看看吧,不知道是不是你要的
      

  12.   

    //根据字符串长度判断控件数量
    System.Windows.Forms.CheckBox[] check=new CheckBox[50];
    public void a(string a)
    {
    int len=a.Length;
    int h;
    if(len%2==0)
    {
    h=len/2;
    }
    else
    {
    h=len/2+1;
    }
    this.panel1.Controls.Clear();
    for(int a1=0;a1<h;a1++)
    {
    for   (int a2=0;a2<2;a2++)
    {
    check[a2+a1*2]=new CheckBox();
    check[a2+a1*2].Width=80;
    check[a2+a1*2].Height=30;
    check[a2+a1*2].Left=120*a2+50;
    check[a2+a1*2].Top =40*a1+50;
    check[a2+a1*2].Text ="备用";
    this.panel1.Controls.Add(check[a2+a1*2]); }
    }
    for(int i=0;i<len;i++)
    {
    string zhi=a.Substring(i,1);
    if(zhi=="1")
    {
    check[i].Checked=true;
    }
    else
    {
    check[i].Checked=false;
    }
    check[i].Text =i.ToString();
    } }
      

  13.   

    只要你的CheckBox顺序不变 怎么怕对应不上?
      

  14.   

    用个笨办法:先把控件放数组,再去对应。
    CheckBox[] checkbox = new CheckBox[]{checkbox1,checkbox2,…}
    char[] temp_char = str.ToCharArray(); 
    for (int cnt = 0; cnt < temp_char.Length; cnt++){
      checkbox[cnt]=temp_char[cnt]=='1';
    }
      

  15.   

      public void IsChecked(string p_string)
      {
          for (int i = 0; i < p_string.Length; i++)
          {
              int s = System.Convert.ToInt32(p_string.Substring(i, 1));
               this.checkBox1.Checked = System.Convert.ToBoolean(s);
          }
      }
      

  16.   

    有一点没弄明白的就是楼主的checkbox数量是不是固定的。如果是固定的,一开始就建控件数组放进去就好了,如果是根据字符串长度变化的,就涉及到动态创建的问题。
      

  17.   

    那就是说取出的字符串,每位对应固定的checkbox了?上面任何一个人写的代码你少改改都能用,自己动手吧,