0

我对编程比较陌生,还在学习。我刚刚做了一个计算器,然后我想到我想将两个输入数字(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;                        
    }

我想我需要使用数据表和循环通过信息类中的内容。但我真的不知道如何使这项工作。我用谷歌搜索,但我没有找到我理解的东西。我在正确的轨道上吗?还是我的想法完全错了?如果有人能花时间向我解释该怎么做,并可能向我展示一个如何做的例子,我将不胜感激。谢谢

4

1 回答 1

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;

编辑:

要正确反映数据网格视图的更改,最好使用 BindingList 而不是 List

于 2013-08-22T12:58:09.750 回答