Member 12924059 Ответов: 3

Как мне ... как решить ошибку " индекс был вне диапазона. должен быть неотрицательным "


мой код таков


  private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
        {
            int height = 0;
            int width = 0;
            Pen p = new Pen(Brushes.Black, 2.5f);
            #region Invoice
            e.Graphics.FillRectangle(Brushes.DarkGray, new Rectangle(25,25, dataGridView1.Columns[0].Width, dataGridView1.Rows[0].Height));
            e.Graphics.DrawRectangle(p, new Rectangle(25,25, dataGridView1.Columns[0].Width, dataGridView1.Rows[0].Height));
            e.Graphics.DrawString(dataGridView1.Columns[0].HeaderText.ToString(), dataGridView1.Font, Brushes.Black, new Rectangle(25,25, dataGridView1.Columns[0].Width, dataGridView1.Rows[0].Height));
            #endregion

            #region name
            e.Graphics.FillRectangle(Brushes.DarkGray, new Rectangle(5 + dataGridView1.Columns[0].Width, 10, dataGridView1.Columns[0].Width, dataGridView1.Rows[0].Height));
            e.Graphics.DrawRectangle(p, new Rectangle(10 + dataGridView1.Columns[0].Width, 10, dataGridView1.Columns[0].Width, dataGridView1.Rows[0].Height));
            e.Graphics.DrawString(dataGridView1.Columns[1].HeaderText.ToString(), dataGridView1.Font, Brushes.Black, new Rectangle(10 + dataGridView1.Columns[0].Width, 10, dataGridView1.Columns[0].Width, dataGridView1.Rows[0].Height));
            #endregion
        }

What I have tried:

I had tried many values instead of 25

F-ES Sitecore

Когда вы получаете сообщение об ошибке, всегда говорите, на какой линии оно находится.

Leo Chapiro

Попробуйте отладить свой код, взгляните на dataGridView1. Columns

3 Ответов

Рейтинг:
2

#realJSOP

Мой ответ:

Make the index greater than or equal to 0.


Это прекрасный пример качества ответа, соответствующего качеству вопроса.


[no name]

И меньше, чем размер массива. :-)

Рейтинг:
2

CPallini

Это может произойти, например, если ваш dataGridView1 имеет только один столбец, и вы пытаетесь проиндексировать второй, как в приведенной ниже строке

Цитата:
е.Графика.Шнурок(dataGridView1.Столбцы[1].HeaderText.ToString (), dataGridView1. Font, кисти.Черный, новый прямоугольник(10 + dataGridView1. Columns[0].Ширина, 10, dataGridView1. Columns[0].Ширина, dataGridView1. Rows[0].Высота));


Рейтинг:
1

Richard MacCutchan

Видеть Учебник По Массивам (C#)[^].