簡體   English   中英

同步矩形的繪制並在datagridview中滾動

[英]synchronize drawing of rectangles and scrolling in datagridview

我目前正在為datagridview進行單元格選擇功能,我在單元格周圍繪制矩形以使用矩形的坐標和大小來模擬選擇。 當我向下或向右滾動以選擇更多單元格時,就會出現問題。 選擇時,無論哪個單元格受矩形限制,均以相同的尺寸和參數繪制矩形。

我想知道如何將我的矩形圖形與滾動同步,以便在矩形中選擇/限制相同的單元格。

任何幫助或方向對此表示贊賞。

謝謝

我不知道您當前正在使用什么技術,但是值得一提的是,通過處理其Paint事件直接在DataGridView控件上Paint是不明智的。

您將必須將繪畫代碼分解為特定單元格和/或行的邊界,並在CellPainting或'RowPostPaint`事件中進行CellPainting 要在幾個單元格周圍繪制一個矩形,可以在受影響的單元格的邊界內繪制,也可以在相鄰單元格中繪制。

DataGridViewCellPaintingEventArgsCellBounds屬性為您提供始終相對於單元格本身的坐標,這意味着它將自動適應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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM