[英]synchronize drawing of rectangles and scrolling in datagridview
我目前正在為datagridview進行單元格選擇功能,我在單元格周圍繪制矩形以使用矩形的坐標和大小來模擬選擇。 當我向下或向右滾動以選擇更多單元格時,就會出現問題。 選擇時,無論哪個單元格受矩形限制,均以相同的尺寸和參數繪制矩形。
我想知道如何將我的矩形圖形與滾動同步,以便在矩形中選擇/限制相同的單元格。
任何幫助或方向對此表示贊賞。
謝謝
我不知道您當前正在使用什么技術,但是值得一提的是,通過處理其Paint
事件直接在DataGridView
控件上Paint
是不明智的。
您將必須將繪畫代碼分解為特定單元格和/或行的邊界,並在CellPainting
或'RowPostPaint`事件中進行CellPainting
。 要在幾個單元格周圍繪制一個矩形,可以在受影響的單元格的邊界內繪制,也可以在相鄰單元格中繪制。
DataGridViewCellPaintingEventArgs
的CellBounds
屬性為您提供始終相對於單元格本身的坐標,這意味着它將自動適應DataGridView
滾動。
編輯:如何處理CellPainting
事件以在特定單元格周圍繪制自定義邊框的示例:
void dataGridView1_CellPainting(object sender, DataGridViewCellPaintingEventArgs e) {
e.Paint(e.ClipBounds, e.PaintParts);
if ((e.RowIndex == myRowIndex) && (e.ColumnIndex == myColumnIndex)) {
Pen pen = new Pen(Color.Red, 2f);
e.Graphics.DrawRectangle(pen, e.CellBounds);
}
e.Handled = true;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.