我有一個數據表,我必將以編程方式dataGridview1dataGridview1.refresh不起作用
public Form1()
{
InitializeComponent();
dataTable = new DataTable();
dataTable.Columns.Add("name");
this.dataGridView1.DataSource = dataTable;
然後在一些事件處理程序,我DataTable中添加新行做一個不起作用的刷新:網格保持空白!
DataRow dataRow = dataTable.NewRow();
dataRow["name"] = "John";
dataGridView1.Refresh();
我讀到這裏http://objectmix.com/dotnet/92001-datagridview-doesnt-refresh.html使用RaiseListChangedEvents,但我看不出,因爲我沒有BindingSource的,據我可以看到。
我是否有義務使用另一個控件BindingSource來完成那些非常基本的功能?然後,GridView的Refresh方法有什麼用?
注:我可以添加到一個簡單的列表沒有問題。
更新:對於上下文,我捕獲剪貼板中的文本(該部分沒有問題),並將其放入網格中。我曾嘗試invoke方法的建議,但它仍然不能正常工作:
public partial class Form1 : Form
{
public delegate void DelRefresh();
private ClipboardSpy cps;
private DataTable dataTable;
public override void Refresh()
{
dataGridView1.DataSource = dataTable;
}
public Main()
{
InitializeComponent();
cps = new ClipboardSpy(this);
cps.ClipboardChanged += new EventHandler(cps_ClipboardChanged);
dataTable = new DataTable();
dataTable.Columns.Add("Url");
this.dataGridView1.DataSource = dataTable;
}
void cps_ClipboardChanged(object sender, EventArgs e)
{
String clipboardText = cps.GetClipboardData();
DataRow dataRow = dataTable.NewRow();
dataRow["Url"] = clipboardText;
dataGridView1.Invoke(new DelRefresh(Refresh));
//listBox1.Items.Add(string.Format("{0:HH:mm:ss} " + clipboardText, DateTime.Now));
//listBox1.SelectedIndex = listBox1.Items.Count - 1;
}
}
在接受的帖子上閱讀我的問題? – 2010-11-01 18:54:39