取值赋值的问题 我的值是111100101010这种行事的 然后在判断下他是不是1如果是1 checkbox就显示的是打上勾的 如果是0就不选择 不知道怎么做 各位大虾帮帮忙啊 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 SubString()提出你要的字符,比对,如果是1,checkbox1.check=true;是这个意思么? 是不是一個checkbox1.check=true對應一個字符? 用FOR循環取出每個字符,然後用反射實例化對應的checkbox,然後判斷打勾,你試下看行不行 关键是 我现在不知道怎么吧取出来的值与chechbox对应上 string text = "111100101010";char[] Temp = text.ToCharArray();for (int i = 0; i<= Temp.Length; i++){ int ii = (int)Temp[i]; } 我的字符串有多少位 就代表checkbox就有多少个啊分别对应上他们 如果你是要有多少位就要有多少个checkbox的话是要动态创建的要是那样的话就直接用ToCharArray来做更简单 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; ; } } } 字符串,checkbox控件如果是固定的很容易实现如果是动态的有点麻烦 那你的checkbox到底是怎么才选中?不是说文本中值是1的时候就选中么?是有一个还是N个?如果是n个,你怎么来判断是要选中哪一个? 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; } } } }写了个动态创建的,你看看吧,不知道是不是你要的 //根据字符串长度判断控件数量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(); } } 只要你的CheckBox顺序不变 怎么怕对应不上? 用个笨办法:先把控件放数组,再去对应。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';} 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); } } 有一点没弄明白的就是楼主的checkbox数量是不是固定的。如果是固定的,一开始就建控件数组放进去就好了,如果是根据字符串长度变化的,就涉及到动态创建的问题。 那就是说取出的字符串,每位对应固定的checkbox了?上面任何一个人写的代码你少改改都能用,自己动手吧, 制作安装包问题 如何判断类的实例中的值改变过了 关于VS2008做的winform程序打包问题 高手再帮我看看吧,多线程问题 怎样在删除数据库X1表中的某条记录时将此记录写入X2表? DevExpress控件包2.0中的DateEdit控件问题。 LinkButton 的OnCommand事件怎么刷新页面的时候执行了呢,每刷新一次就执行一次。。 关于反射方法的调用,救命啊。 这道题怎么做? DataSet读入XML的关系(relation):错在哪里?(一晚上都没解决,郁闷中:( richtextbox显示问题 无法以编程方式向 DataGridView 的行集合中添加行???
是这个意思么?
你試下看行不行
char[] Temp = text.ToCharArray();
for (int i = 0; i<= Temp.Length; i++)
{
int ii = (int)Temp[i];
}
分别对应上他们
要是那样的话就直接用ToCharArray来做更简单
{
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; ;
}
} }
如果是动态的有点麻烦
{
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;
}
}
}
}写了个动态创建的,你看看吧,不知道是不是你要的
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();
} }
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';
}
{
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);
}
}