public void PaintCellsBackground_ValidRowIndex_Success()
 {
     using (var image = new Bitmap(10, 10))
         using (Graphics graphics = Graphics.FromImage(image))
         {
             var dataGridView = new DataGridView();
             dataGridView.Columns.Add("name", "text");
             var e = new DataGridViewRowPrePaintEventArgs(dataGridView, graphics, Rectangle.Empty, Rectangle.Empty, 0, DataGridViewElementStates.Displayed, null, new DataGridViewCellStyle(), false, false);
             e.PaintCellsBackground(new Rectangle(1, 2, 3, 4), true);
         }
 }
 public void PaintCellsBackground_InvalidRowIndex_ThrowsInvalidOperationException(int rowIndex)
 {
     using (var image = new Bitmap(10, 10))
         using (Graphics graphics = Graphics.FromImage(image))
         {
             var dataGridView = new DataGridView();
             dataGridView.Columns.Add("name", "text");
             var e = new DataGridViewRowPrePaintEventArgs(dataGridView, graphics, Rectangle.Empty, Rectangle.Empty, rowIndex, DataGridViewElementStates.Displayed, null, new DataGridViewCellStyle(), false, false);
             Assert.Throws <InvalidOperationException>(() => e.PaintCellsBackground(new Rectangle(1, 2, 3, 4), true));
         }
 }
Пример #3
0
        private void gridSchLibPrimitives_RowPrePaint(object sender, DataGridViewRowPrePaintEventArgs e)
        {
            if (_loading || e.RowIndex < 0)
            {
                return;
            }

            // Draw background depending on the "display mode" matching the current one
            var primitive = (SchPrimitive)gridSchLibPrimitives.Rows[e.RowIndex].Tag;

            if (!primitive.IsOfCurrentDisplayMode)
            {
                e.PaintCellsBackground(e.RowBounds, (e.State & DataGridViewElementStates.Selected) == DataGridViewElementStates.Selected);
                using (var brush = new HatchBrush(HatchStyle.DiagonalCross, Color.FromKnownColor(KnownColor.ControlDark), Color.Transparent))
                {
                    e.Graphics.FillRectangle(brush, e.RowBounds);
                }

                // Draw contents
                e.PaintCellsContent(e.RowBounds);
                e.Handled = true;
            }
        }