我有一个c#WinForms
应用程序,它具有一些搜索参数(TextBox
和ComboBox
)和一个搜索Button
,在此GroupBox
下是两个{ {1}}控件并排放置。然后,我将DataGridView
放置在PictureBox
控件的顶部,并将其DataGridView
属性设置为Visible
。然后,我还有一个False
。在BackgroundWorker
事件中,我将button1_Click
PictureBox's
属性设置为Visible
,并调用True
。在backgroundWorker1.RunWorkerAsync();
上,我正在获取记录并填充backgroundWorker1_DoWork(object sender, DoWorkEventArgs e),
控件。在DataGridView
上,我打电话给backgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e),
但是,自从我添加了此 loader 功能以来,表单与以前的行为不同,仍然没有响应几秒钟。 pictureBox3.Hide();
控件中的ScrollBars
被涂黑。就像,实际上是涂黑的。。尽管如此,DataGridView
控件仍然可以滚动。表单本身已将DataGridView
设置为DoubleBuffered
。另外,我已经通过True
制作了DataGridView
控件DoubleBuffered
,
Reflection
请帮助我解决有问题的(粗体)部分。谢谢。
编辑-
public static void DoubleBuffered(this DataGridView dgv, bool setting) { Type dgvType = dgv.GetType(); PropertyInfo pi = dgvType.GetProperty("DoubleBuffered", BindingFlags.Instance | BindingFlags.NonPublic); pi.SetValue(dgv, setting, null); }
代码
DoWork