假设我有一个包含A,B,C,D,E列的DataTable。
我有一个在虚拟模式下工作的DataGridView,因为我必须添加一个未绑定DataTable的列。这个附加列是一个组合框,它将A,B,D列值组合成一个,并在用户选择一个项目之后,比我想读取这个选定的项目值进行进一步处理。在方法DataGridView1_ValueChanged中,我尝试通过以下方式读取该值:
DataGridView1[e.ColumnIndex, e.RowIndex].Value.ToString()
和编译器显示异常,我应该使用operator new来启动对象。 所以,似乎我看到新的行在视觉上添加但我无法访问它。
我被困在这里:(
答案 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();
}
}
}
这看起来很奇怪。你应该能够编译它。