Всякий раз, когда я нажимаю кнопку печати, возникает эта ошибка
Необработанное исключение типа 'System.Об' произошел в mscorlib.dll
Дополнительная информация: индекс и длина должны ссылаться на местоположение внутри строки.
Что я уже пробовал:
общественного недействительными CreateReceipt(объект отправителя, система.Рисование.Печатание.PrintPageEventArgs e)
{
int total = 0;
поплавок наличными = поплавок.Синтаксический анализ(txtCash.Текст.Подстрока(1,5)); //ошибка здесь показано
изменение поплавка = 0.00 f;
//печатается чек
Графика graphic = e.Graphics;
Font font = new Font("Century Gothic", 12); //необходимо использовать моно-разнесенный шрифт, так как пробелы должны выстраиваться в линию
float fontHeight = шрифт.GetHeight();
int startX = 10;
int startY = 10;
int offset = 40;
графический.Шнурок(" домашнего ", новый шрифт("века Готика", 18), Новый SolidBrush(цвет.Черный), startX, startY);
строка top = "имя элемента".PadRight(30) + "Цена";
graphic.DrawString(top, font, new SolidBrush(Color.Черный), startX, startY + offset);
offset = offset + (int)fontHeight; //сделайте интервал согласованным
графика.шнурок("----------------------------------", шрифт, новая сплошная кисть(цвет.Черный), startX, startY + offset);
offset = offset + (int)fontHeight + 5; //Сделайте интервал согласованным
float totalprice = 0.00 f;
foreach (строковый элемент в listBox1.Предметы)
{
//создайте строку для печати на reciept
характеристика намечаемой к выпуску строка = элемент;
строка productTotal = item.Substring(item.Длина - 6, 6);
float productPrice = float.Синтаксический анализ(поз.Подстрока(номенклатура.Длина - 5, 5));
//MessageBox.Показать(пункт.Подстрока(номенклатура.Длина - 5, 5) + "PROD TOTAL:" + productTotal);
totalprice += productPrice;
если (характеристика намечаемой к выпуску.Содержит(" -"))
{
строку ассортимент продукции = характеристика намечаемой к выпуску.Подстрока(0, 24);
graphic.DrawString(productLine, new Font("Century Gothic", 12, FontStyle.Курсив), new SolidBrush(Color.Red), startX, startY + offset);
offset = offset + (int)fontHeight + 5; //Сделайте интервал согласованным
}
еще
{
строку ассортимент продукции = характеристика намечаемой к выпуску;
graphic.DrawString(productLine, font, new SolidBrush(Color.Черный), startX, startY + offset);
offset = offset + (int)fontHeight + 5; //Сделайте интервал согласованным
}
}
изменение = (cash - totalprice);
//когда мы нарисовали все элементы, добавьте общую сумму
offset = offset + 20; //освободите немного места, чтобы общая сумма выделялась.
graphic.DrawString("Total to pay ".PadRight(30) + String.Формат("{0:c}", totalprice), новый шрифт("Century Gothic", 12, FontStyle.Жирный шрифт), новая сплошная кисть(цвет.Черный), startX, startY + offset);
offset = offset + 30; //освободите немного места, чтобы общая сумма выделялась.
graphic.DrawString("CASH ".PadRight(30) + String.Формат("{0:c}", cash), шрифт, новая сплошная кисть(Color.Черный), startX, startY + offset);
смещение = смещение + 15;
графика.шнурок("смена ".PadRight(30) + Строка.Формат("{0:c}", изменение), шрифт, новая сплошная кисть(цвет.Черный), startX, startY + offset);
offset = offset + 30; //освободите немного места, чтобы общая сумма выделялась.
graphic.DrawString(" Спасибо за ваш заказ", шрифт, новая сплошная кисть(цвет.Черный), startX, startY + offset);
смещение = смещение + 15;
graphic.DrawString(" пожалуйста, вернись скорее!", шрифт, новая сплошная кисть(цвет.Черный), startX, startY + offset);
}
}
}