int line = 0;///i want to reset this back to 0///
private void printDocument1_PrintPage(object sender, PrintPageEventArgs e)
{
int y = 0;
Console.WriteLine("1st " + line);
do
{
e.Graphics.DrawString(invoiceList[line], new Font("Arial", 10, FontStyle.Regular), Brushes.Black, 50, 200);
Console.WriteLine("2nd " + line);
line += 1;
Console.WriteLine("3rd " + line);
y += 1;
if (y > 0)
{
e.HasMorePages = line != invoiceList.Count();
Console.WriteLine("4th " + line);
break;
}
} while (line < invoiceList.Count());
Console.WriteLine("6th " + line);
}
如何重置变量line
?因为当我按printPreviewDialog
结果System.ArgumentOutOfRangeException
时的打印按钮时,它会继续累加。
编辑1:
对不起,伙计看起来我不清楚。它的这一行e.Graphics.DrawString(invoiceList[line], new Font("Arial", 10, FontStyle.Regular), Brushes.Black, 50, 200);
给了我一个错误。
首先this is what happen when i press the print button
从图片中可以看出&#34; 6th(line
)= 12&#34;或索引12。
因此,当我再次从打印预览中按下打印按钮以打印物理副本时,它将显示this。对不起,我很难解释事情。
答案 0 :(得分:0)
如果您需要i
位于外部范围内,则必须在内部范围内的某处重置i = 0;
。
在Console.WriteLine("6th " + line);
之后,您可以立即添加一行,然后只说i = 0;
通过这种方式,您的代码会执行您所要求的内容,并且您仍然拥有i
的外部范围。
答案 1 :(得分:0)
//设置为0
if (y > 0)
{
e.HasMorePages = line != invoiceList.Count();
Console.WriteLine("4th " + line);
break;
}
} while (line < invoiceList.Count());
Console.WriteLine("6th " + line);
line = 0;
}
答案 2 :(得分:0)
private void printDocument1_BeginPrint(object sender, PrintEventArgs e)
{
line = 0;
}
伙计们感谢您的时间,我想通了:P。
答案 3 :(得分:0)
我用这个程序进行排序,希望它可以帮助别人。
static void SortArray()
{
int[] array = { 40, 5, 6, 1, 90, 23, 5 };
//Array.Sort(array);
int i = 0;
while (i < array.Length)
{
bool flag = false;
if (i < array.Length - 1)
{
if (array[i] > array[i + 1])
{
int temp = array[i];
array[i] = array[i + 1];
array[i + 1] = temp;
//reset i
i = 0;
flag = true;
}
}
if (!flag)
{
i++;
}
}
//PRINT
for (int a = 0; a < array.Length; a++)
{
Console.WriteLine(array[a].ToString());
}
}