1
正如標題說的視野高度,滾動條會崩潰時,所有行的高度超過DataGridView的
DataGridview.ScrollBars =垂直;
假設DataGridview的願景可以包含4行,如果行到6,它有一個垂直滾動條。但是如果點擊ScrollBar,程序會崩潰。 如果我們設置DataGridview.ScrollBars = None,則不會發生問題。
public partial class visitorLeave : Form
{
public visitorLeave()
{
InitializeComponent();
}
bool isWorkerStopped = false;
bool clickstart = false;
ManageEmployee me = null;
Thread tr1;
private void visitorLeave_Load(object sender, EventArgs e)
{
me = new ManageEmployee(10);
dataGridView1.AutoGenerateColumns = false;
dataGridView1.DataSource = me.DataSource;
tr1 = new Thread(new ThreadStart(Add));
tr1.IsBackground = true;
tr1.Start();
}
void Add()
{
while (!isWorkerStopped)
{
if (clickstart)
{
me.AddEmployee(new EmployeeData("new" + DateTime.Now.Ticks.ToString(), "0", "0", "0", "0", "0", null));
dataGridView1.DataSource = me.DataSource;
dataGridView1.UpdateRowHeightInfo(0, true);
clickstart = false;
}
}
}
private void button1_Click(object sender, EventArgs e)
{
clickstart = !clickstart;
}
}
但我仍然有一個問題:我想要一個程序(或一個線程)將數據添加到數據源,並且MainProgram更新datagridview。我怎麼做到的? – Michael 2010-10-27 12:40:53
使用線程向列表<>添加數據沒有問題。但綁定到網格*必須*發生在主線程上。這不是問題,檢索數據是昂貴的,綁定不是。 – 2010-10-27 12:51:01