我只是想取出comboBox里面的所有字符串给另一个数组赋值,怎么老出问题呢?
好像没有取出来啊?:(。
public class ConnectionString
{
public string []Stringx = null;
public ConnectionString(ComboBox com)
{
if(com.Items.Count == 0)
{
return;
}
Stringx = new string[com.Items.Count];
for(int i=0;i<com.Items.Count;i++)
{
Stringx[i] = com.Items[i].ToString();
}
MessageBox.Show("h");
}
}
有什么问题么?:(
好像没有取出来啊?:(。
public class ConnectionString
{
public string []Stringx = null;
public ConnectionString(ComboBox com)
{
if(com.Items.Count == 0)
{
return;
}
Stringx = new string[com.Items.Count];
for(int i=0;i<com.Items.Count;i++)
{
Stringx[i] = com.Items[i].ToString();
}
MessageBox.Show("h");
}
}
有什么问题么?:(
好象比原来的COMBOX多一个??应该是COUNT-1.
看看是不是这个造成的问题
public class ConnectionString
{
public string []Stringx = null;
public ConnectionString(ComboBox com)
{
if(com.Items.Count == 0)
{
return;
}
Stringx = new string[com.Items.Count-1];
for(int i=0;i<com.Items.Count-1;i++)
{
Stringx[i] = com.Items[i+1].ToString();
}
}
}private void SaveConnectionString()
{
ConnectionString obj = new ConnectionString(this.comboBox1);
Stream stream = new FileStream("C:\\MyFile1.bin", FileMode.Append, FileAccess.Write, FileShare.None);
IFormatter formatter = new BinaryFormatter();
formatter.Serialize(stream, obj);
stream.Close();
} private void LoadConnectionString()
{
IFormatter formatter3 = new BinaryFormatter();
Stream stream3 = new FileStream("C:\\MyFile1.bin", FileMode.Open, FileAccess.Read, FileShare.Read);
ConnectionString obj3 = (ConnectionString) formatter3.Deserialize(stream3);
this.comboBox1.Items.AddRange(obj3.Stringx);
stream3.Close();
}但是存完后(没有问题),可是取的时候,就告诉我错误是:参数不能为空:Item参数。:(什么意思?
[Serializable]
public class ConnectionString
{
public string []Stringx = null;
public ConnectionString()// add a default constructor
{
}
public ConnectionString(ComboBox com)
{
if(com.Items.Count == 0)
{
return;
}
Stringx = new string[com.Items.Count-1];
for(int i=0;i<com.Items.Count-1;i++)
{
Stringx[i] = com.Items[i+1].ToString();
}
}
}
楼主没有说出问题所在,只看代码,还真的看不出什么问题反而我对 Knight94(愚翁) 的这段代码非常费解
多一个????
更加费解
为什么会出这个问题?
至于count-1还是count这个倒不是关键问题。我-1是因为comboBox的第一个字符串我留作他用了。
多一个无参构造函数无所谓的。各位可以自己在form上拉一个combox和一个button,之后把上面那些填冲。看看。;)
构造函数的参数是Combobox对象,你再反序列化的时候,并不能生成Combobox对象作为ConnectionString构造函数的参数,因此会出现上面的问题。
估计是combobox作为参数的问题,能否把构造函数的参数类型换一种方式,其实你传进去的不就是combobox中的选项值,转化成一位数组作为参数。