Здравствуйте.
Есть две кнопки и одно и тоже событие для печати файла.
Но на одной кнопке (btnPrintDetails) печатает нормально, а со второй (btnPrint) - по два и более раз (как буд-то несколько раз нажимается кнопка).
Пишу следующее:
Button btnPrint = new Button();
private void DetailsViews(TableLayoutPanel tblDetails)
{
...
Button btnPrintDetails = new Button();
...
btnPrintDetails.Click += new EventHandler(btnPrintDetailsClick);
}
private void dropDownClosedYearMonth(object sender, EventArgs e)
{
...
btnPrint.Text = "Распечатать";
btnPrint.Click += new EventHandler(btnPrintClick);
btnPrint.Height = _buttonHeight - 30;
btnPrint.FlatStyle = FlatStyle.System;
btnPrint.Dock = DockStyle.Top;
btnPrint.Visible = true;
}
private void btnPrintDetailsClick(object sender, EventArgs e)
{
// тут еще код для кнопки 1
........
PrintDocument _print = new PrintDocument();
_print.DocumentName = docname;
_print.PrintPage += new PrintPageEventHandler(printPage);
_print.DefaultPageSettings.Margins = new Margins(3, 3, 3, 3);
_print.Print();
}
void btnPrintClick(object sender, EventArgs e)
{
// тут еще код для кнопки 2
....
PrintDocument _print = new PrintDocument();
_print.DocumentName = docname;
_print.PrintPage += new PrintPageEventHandler(printPage);
_print.DefaultPageSettings.Margins = new Margins(3, 3, 3, 3);
_print.Print();
}
private void printPage(object sender, PrintPageEventArgs e)
{
Font font = new Font("Arial", 12);
string stringToPrint = System.IO.File.ReadAllText(docname, Encoding.UTF8);
int charactersOnPage = 0;
int linesPerPage = 0;
e.Graphics.MeasureString(stringToPrint, font, e.MarginBounds.Size, StringFormat.GenericTypographic, out charactersOnPage, out linesPerPage);
e.Graphics.DrawString(stringToPrint, font, Brushes.Black, e.MarginBounds, StringFormat.GenericTypographic);
stringToPrint = stringToPrint.Substring(charactersOnPage);
e.HasMorePages = (stringToPrint.Length > 0);
}