0
我正在研究一個使用datagridview可視化一些數據的應用程序。數據的邏輯結構是四乘四。爲了可視化這一點,我想在datagridview的第四行繪製一行/邊框。DataGridView中的自定義繪畫,奇怪的視覺外觀
我已經寫了下面的RowPostPaint方法做到了這一點(剝離的散裝代碼)
System::Void dataGridView1_RowPostPaint(System::Object^ sender, Forms::DataGridViewRowPostPaintEventArgs^ e) {
A = ...
Rectangle rowBorder = dataGridView1->GetRowDisplayRectangle(e->RowIndex,true);
if(A->ID % 4 == 0){
e->Graphics->DrawLine(gcnew Pen(Drawing::Color::Black),(float)
rowBorder.X ,(float)(rowBorder.Y + rowBorder.Height-2), (float) rowBorder.X +
rowBorder.Width ,(float) (rowBorder.Y + rowBorder.Height-2));
}
}
出於某種原因,這幅畫被破壞(顯示的行數比應該有,見圖片)當我使用滾動條或調整窗口大小。例如,通過選擇受影響的行來強制重畫會使錯誤的行消失。
我已經嘗試了幾個技巧(雙緩衝,剪輯等)來解決這個問題,但我還沒有能夠這樣做。你可能已經想通了,我對C++/cli中的圖形/繪畫很新穎。 現在我的想法,我希望你能想出一些新鮮的