我需要一个属性,为datagridview
中的每一行返回文本。我不知道我的工作方式是否有用。它说得到我不在当前的背景下。我的代码:
TextBox[] text1=new TextBox[100];
public string [] RowText
{
get
{
return text1[i].Text;
}
set
{
int i = 0;
foreach (DataGridViewRow row in datagridview1.Rows)
{
for ( i = 0; i < datagridview1.Rows.Count; i++)
{
text1[i].Text= row.Cells[i].Value.ToString();
}
}
}
}
答案 0 :(得分:2)
首先,如果i
不是全局变量,那么它应该在get
子句中声明。然后text1[i].Text
返回单个字符串,但您的Property返回一个数组,因此将其更改为:
get
{
return new string[] { text1[i].Text };
}
你的套装也没有多大意义。如果你更好地解释你想要达到的目标,也许我可以帮助你。
答案 1 :(得分:1)
首先,您不需要setter - 将代码放在getter或对象的构造函数中。并且您将返回一个TextBox对象数组,但您的属性签名表明您正在返回一个字符串数组。
如果你想返回一个字符串数组,那么可能是:
public string [] RowText
{
get
{
List<string> text = new List<string>();
foreach (DataGridViewRow row in datagridview1.Rows)
{
text.Add(row.Cells[i].Value.ToString());
}
return text.ToArray();
}
}
实际上,仔细查看代码,可能会因for
循环而失败。您的代码假定该行包含与行数相同的单元格数。这可能适用于您的场景,但不太可能。