Я работаю с C# Windows приложения на основе. [Visual Studio 2010]e.graphics.drawstring показывает текст на PrintPreview, но не печатает
В том, что я пытаюсь напечатать счет.
Я сформировал этот счет, используя e.Graphics.Drawstring
.
В этом он показывает мне printpreview со всеми соответствующими данными.
Но, когда я беру распечатку этого printpreview, его не показывая мне предметы в счете. [Частная часть предварительного просмотра. Отображаются другие данные].
Мой код выглядит следующим образом:
e.Graphics.DrawString("Amount", drawFont, Brushes.Black, new RectangleF(tempX + 600, tempY, dataGridView1.Columns[0].Width, dataGridView1.Rows[1].Height), str);
while (i < dataGridView1.Rows.Count-1)
{
if (height > e.MarginBounds.Height)
{
height = 100;
width = 100;
e.HasMorePages = true;
return;
}
height += dataGridView1.Rows[i].Height;
e.Graphics.DrawString((idInCol).ToString(), drawFont, Brushes.Black, new RectangleF(tempX, ((i*22)+(tempY+25)), dataGridView1.Columns[0].Width, dataGridView1.Rows[0].Height), str);
e.Graphics.DrawString(dataGridView1.Rows[i].Cells[2].FormattedValue.ToString().Trim(), drawFont, Brushes.Black, new RectangleF(tempX + 30, ((i * 22) + (tempY +25)), 500, dataGridView1.Rows[0].Height), str);
e.Graphics.DrawString(dataGridView1.Rows[i].Cells[3].FormattedValue.ToString(), drawFont, Brushes.Black, new RectangleF(tempX + 400, ((i * 22) + (tempY +25)), dataGridView1.Columns[0].Width, dataGridView1.Rows[0].Height), drawFormat);
width += dataGridView1.Columns[0].Width;
e.Graphics.DrawString(dataGridView1.Rows[i].Cells[4].FormattedValue.ToString().Trim(), drawFont, Brushes.Black, new RectangleF(tempX + 500, ((i * 22) + (tempY +25)), dataGridView1.Columns[0].Width, dataGridView1.Rows[0].Height), drawFormat);
width += dataGridView1.Columns[0].Width;
e.Graphics.DrawString(dataGridView1.Rows[i].Cells[5].FormattedValue.ToString().Trim(), drawFont, Brushes.Black, new RectangleF(tempX + 600, ((i * 22) + (tempY +25)), dataGridView1.Columns[0].Width, dataGridView1.Rows[0].Height), drawFormat);
width += dataGridView1.Columns[0].Width;
idInCol++;
i++;
}
Вот мой скриншот счета:
В этом его не показывает мне вексельных подробности, когда я беру распечатку , Все остальные данные отображаются в распечатке, за исключением этой.
Я вставил код (в то время как цикл), из которого я извлекал данные счета (элементы, серийные номера и т. Д.).
В коде отсутствует что-то недостающее?
или
Я сделал ничего плохого в коде?
Пожалуйста, помогите мне.
Что явно отсутствует в коде, является обработчик события BeginPrint. Требуется, чтобы сброс переменной «i» вернулся к 0. –