Tôi muốn thực hiện một đầu vào datagridview được sắp xếp. Đoạn mã sau đây không hoàn toàn cắt nó; ngay cả khi tôi đặt một grd.Refresh, các datagridview không hiển thị giá trị cập nhật của nó. Nếu tôi bấm phím mũi tên xuống và đi lên một lần nữa, lưới là làm mới. Có cách nào khác tôi có thể buộc làm mới nội dung của datagridview?Làm cách nào để buộc làm mới nội dung của DataGridView?
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace TestSortedInput
{
public partial class Form1 : Form
{
DataTable _dt = new DataTable();
public Form1()
{
InitializeComponent();
grd.AllowUserToAddRows = false;
_dt.Columns.Add("sort", typeof(int));
_dt.Columns.Add("product", typeof(string));
_dt.DefaultView.Sort = "sort";
grd.DataSource = _dt;
}
private void dataGridView1_KeyUp(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Insert)
{
if (e.Modifiers == 0)
{
var r = _dt.NewRow();
r["sort"] = _dt.DefaultView.Count + 1;
r["product"] = "";
_dt.Rows.Add(r);
}
else if (e.Alt)
{
var drv = this.BindingContext[_dt].Current as DataRowView;
int sort = (int)drv["sort"];
for (int i = _dt.DefaultView.Count - 1; i >= (int)drv["sort"] - 1; --i)
{
_dt.DefaultView[i]["sort"] = (int) _dt.DefaultView[i]["sort"] + 1;
}
var r = _dt.NewRow();
r["sort"] = sort;
_dt.Rows.Add(r);
grd.Refresh();
}
}
}//void
}
}
điều này đã giải quyết được sự cố của tôi. wow, tôi thực sự bỏ qua điều đó (drv.EndEdit), đoán tôi quen với việc không gọi .EndEdit, nó được tự động hóa trong Form được phân lớp của tôi. cảm ơn rất nhiều^_ ^ – Hao