我相对较新的编程和仍在学习。我刚刚制作了一个计算器,然后我想到了我想将两个输入数字(value1,value2)和结果保存在另一个winform的datagridview中。 首先我添加了一个按钮(bSave)来保存它。 我的第一次尝试是: dgvSavedResults.Rows.Add(tbValue1.Text,tbValue2.Text,tbResult.Text);“并且工作正常。
我的下一次尝试是将所有内容保存在另一个类中:
public class Information
{
private string value1;
private string value2;
private string result;
public string Value1
{
get { return value1; }
set { value1 = value; }
}
public string Value2
{
get { return value2; }
set { value2 = value; }
}
public string Result
{
get { return result; }
set { result = value; }
}
}
在计算器表单中,当我点击保存按钮时,它看起来像这样:
private void bSave_Click(object sender, EventArgs e)
{
Information info = new Information();
info.Value1 = tbTal1.Text;
info.Value2 = tbTal2.Text;
info.Result = tbResultat.Text;
}
我想我需要在Information-class中使用数据表和循环。 但我真的不知道如何使这项工作。我用Google搜索了但我找不到我理解的东西。我在正确的轨道上吗?或者我的想法完全错了? 如果有人可以花时间向我解释该做什么,也许可以告诉我一个如何做的例子真的很感激。感谢
答案 0 :(得分:0)
您可以获得结果列表:
BindingList<Information> resultsList = new BindingList<Information>();
使用BindingSource将其绑定到DataGridView:
BindingSource resultsBindingSource = new BindingSource();
this.resultsBindingSource.DataSource = resultsList;
this.dgvSavedResults.DataSource = this.resultsBindingSource ;
然后:
private void bSave_Click(object sender, EventArgs e)
{
Information info = new Information();
info.Value1 = tbTal1.Text;
info.Value2 = tbTal2.Text;
info.Result = tbResultat.Text;
resultsList.Add(info);
}
已经完成了。
此外,根据您要添加列的方式,您可以手动执行,也可以从Information类的公共属性自动生成它:
dgvSavedResults.AutoGenerateColumns=true;
编辑:
要正确反映datagridview的变化,最好使用BindingList而不是List