Что происходит здесь, когда в форме открывается, он показывает contextMenu и отображает DataGridView на нем со значением dataSet1. Но когда я нажимаю кнопку, чтобы изменить DataSource Grid, она не отображает записи dataSet2.Устранение неполадок DataSource DataGridView
private void Form1_Load(object sender, EventArgs e)
{
SetDataSource(dataSet1);// A populated DataSet
}
protected void SetDataSource(DataSet ds)
{
dataGridView1.DataSource = ds;
ToolStripControlHost tsHost = new ToolStripControlHost(dataGridView1);
contextMenuStrip1.Items.Clear();
contextMenuStrip1.Items.Add(tsHost);
contextMenuStrip1.Show(textBox1, 0, 27);
}
private void button1_Click(object sender, EventArgs e)
{
SetDataSource(dataSet2);// Another populated DataSet
}
Я попытался добавить другой элемент управления DataGridView (dataGridView2) в моей форме, но на этот раз я не ставил его в ToolStripControlHost и я не добавлял его в contextMenuStrip1.
dataGridView1.DataSource = ds;
dataGridView2.DataSource = ds; // <-- Parent of this is the Form1, the control is not added in the contextMenuStrip.
ToolStripControlHost tsHost = new ToolStripControlHost(dataGridView1);
contextMenuStrip1.Items.Clear();
contextMenuStrip1.Items.Add(tsHost);
contextMenuStrip1.Show(textBox1, 0, 27);
При загрузке Form1, всплывающие окна contextMenuStrip1 и dataGridView1 добавляется в качестве элемента к нему решений dataGridView1 исчезнуть в форме и dataGridView2 остается только в Form1.
Когда я попал в button1
dataGridView2
изменяет свою базу от содержимого своего нового DataSource
(dataSet2
), в то время как dataGridView1 еще отображает значение dataSet1
. То, что я заметил, когда dataGridView1
добавляется в ToolStripHost
и делает его предметом в contextMenuStrip1
, имущество DataSource
DataGridView
не изменилось. В отличие от dataGridView2
, который остается в том виде, который я не добавил к contextMenuStrip1
.
спасибо, сэр, я попробую. – yonan2236
Он работает! хе-хе, я очень благодарен, спасибо ...:) – yonan2236
Ницца. Но какова концепция этого, т. Е. За поведением? – TheBlastOne