日期:2014-05-17  浏览次数:21414 次

DataGridView 不刷新怎么办?
winform DataGridView控件绑定数据源进行显示,后通过对话框对数据进行修改,修改完成后数据不显示,只有手动最小化窗口或用其他窗口遮盖DataGridView后显示,试了很多方法都没行通,.NET的强制刷新也不管用,难道要调用windows API 来强制刷新吗? 代码如下:
if (dvSales.SelectedRows.Count == 0)
            {
                return;
            }

            foreach (DataGridViewRow row in dvSales.SelectedRows)
            {
                SaleEntity s = row.DataBoundItem as SaleEntity;
                CommoditySaleForm dlg = new CommoditySaleForm(s);
                dlg.Show();
            }

            this.BindingContext[dvSales.DataSource].SuspendBinding();
            this.dvSales.DataSource = null;
            dvSales.AutoGenerateColumns = false;
            this.dvSales.DataSource = _saleEntities;
            this.BindingContext[dvSales.DataSource].ResumeBinding();


同样类似的方法,是在文本框回车事件时改变数据源的值就没问题,,看代码中那个Count++:
private void txtCode_KeyPress(object sender, KeyPressEventArgs e)
        {
            if(e.KeyChar != '\r')
            {
                return;
            }

            string code = txtCode.Text.Trim();

            if (code == string.Empty)
            {
                return;