2016-11-16 65 views
0

我有這樣的應用程序中的所有計算機可以在Windows 7使用下面的顯示設置時除外(我複製在幾臺計算機的問題):C#的DataGridView不是某些顯示設置正確呈現

enter image description here

這就是我的應用程序在使用此設置時的樣子: 單元格大部分都朝向datagridview的右側變黑。如果我嘗試向上/向下滾動,單元格/字體爭奪,一切看起來都無法閱讀。

enter image description here

我查this解決方案,嘗試過,但問題仍然存在。有趣的是,這個問題隻影響datagridview。

這是微軟常見的故障還是可以用代碼修復的東西?我有一些使用上述顯示設置的同事。

回答

0

我一直在做一些研究,發現datagridview的DoubleBuffered屬性在默認情況下是關閉的,它有點「隱藏」,所以基本上不可能在不需要做一些編碼的情況下打開它。

隨着中說,即使我下面張貼的代碼是從另一個question該研究還發現here一個答案,我認爲這將是一個好主意,而不是刪除的問題,擴大的情況下, DoubleBuffering可以是一個解決方案。

private void Form1_Load(object sender, EventArgs e) 
    { 
     typeof(DataGridView).InvokeMember("DoubleBuffered", 
     BindingFlags.NonPublic | 
     BindingFlags.Instance | BindingFlags.SetProperty, null, 
     mydataGridView, new object[] { true }); 
    }