假设我有一个包含A,B,C,D,E列的DataTable。
我有一个在虚拟模式下工作的DataGridView,因为我必须添加一个与DataTable绑定的列。此附加列是一个组合框,将A,B,D列的值合并为一个,并且在用户选择了一个项目之后,我想读取此选定的项目值以进行进一步处理。在方法DataGridView1_ValueChanged中,我尝试通过以下方式读取该值:
DataGridView1[e.ColumnIndex, e.RowIndex].Value.ToString()
并且编译器显示例外,我应使用new运算符来初始化对象。
因此,好像我看到新行是在视觉上添加的,但是我无法访问它。
我被困在这里:(
最佳答案
我想您是在问为什么不能编译如下内容:
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();
}
}
}
哪个看起来很奇怪。您应该能够进行编译。
关于c# - 虚拟模式下的C#DataGridView,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4723670/