問題描述:當數據量過多,但是又需全部展示出來時;拖動dataGridView滾動條時數據逐條更新,加載緩慢;
解決方案:利用System.Reflection緩沖刷新
代碼實現:
/// <summary>
/// 緩沖幫助類
/// </summary>
public class Buffered
{
/// <summary>
/// 用於解決dataGridView數據更新問題
/// 利用反射機制修改控件的的Protected的DoubleBuffered屬性
/// </summary>
/// <param name="dgv">DataGridView控件</param>
/// <param name="setting">是否開啟</param>
public static void DoubleBuffered(System.Windows.Forms.DataGridView dgv, bool setting)
{
dgv.GetType()
.GetProperty("DoubleBuffered",
System.Reflection.BindingFlags.Instance
| System.Reflection.BindingFlags.NonPublic)
.SetValue(dgv, setting, null);
}
}
