c#在虚拟模式下的datagridview

时间:2011-01-18 11:47:41

标签: c# datagridview virtual mode

假设我有一个包含A,B,C,D,E列的DataTable。

我有一个在虚拟模式下工作的DataGridView,因为我必须添加一个未绑定DataTable的列。这个附加列是一个组合框,它将A,B,D列值组合成一个,并在用户选择一个项目之后,比我想读取这个选定的项目值进行进一步处理。在方法DataGridView1_ValueChanged中,我尝试通过以下方式读取该值:

DataGridView1[e.ColumnIndex, e.RowIndex].Value.ToString()

和编译器显示异常,我应该使用operator new来启动对象。 所以,似乎我看到新的行在视觉上添加但我无法访问它。

我被困在这里:(

1 个答案:

答案 0 :(得分:0)

我想你在问为什么你不能编译这样的东西:

using System.Data;
using System.Windows.Forms;

namespace ZZZ
{
    class Program
    {
        private DataTable _table;
        private readonly DataGridView _view = new DataGridView();

        public void Setup()
        {
            CreateTable();
            _view.CellValueChanged += CellValueChanged;
        }

        private void CellValueChanged(object sender, DataGridViewCellEventArgs e)
        {
            _view[e.ColumnIndex, e.RowIndex].Value.ToString();
        }

        private void CreateTable()
        {
            _table = new DataTable("Table");
            _table.Columns.Add("A");
            _table.Columns.Add("B");
            _table.Columns.Add("C");
            _table.Columns.Add("D");
            _table.Columns.Add("E");
            _table.Columns.Add("Combined");
        }

        static void Main(string[] args)
        {
            var p = new Program();
            p.Setup();
        }
    }
}

这看起来很奇怪。你应该能够编译它。