c#编程,winform中要求点击后打印功能取消
首先是开始打印在点击按钮后开始打印,然后弹出一个窗体A,A上有一个按钮,点击的话要求取消当前的打印功能。我一开始是用线程开始打印功能,但是每次都报错。privateobj...
首先是开始打印
在点击按钮后开始打印,然后弹出一个窗体A,A上有一个按钮,点击的话要求取消当前的打印功能。
我一开始是用线程开始打印功能,但是每次都报错。
private object obj = new object();
Thread th1 = null;
private void toolStripButton5_Click(object sender, EventArgs e)
{
db = oper.GetDataSetzcClear();
//弹出提示框
//StartPrint();
//建立线程,即实现可终止打印的功能
th1 = new Thread(new ThreadStart(StartPrint));
th1.IsBackground = true;
CheckForIllegalCrossThreadCalls = false;
th1.Start();
fspd.Show();
}
//lw:开始打印程序
private void StartPrint()
{
lock (obj) {
for (int i = 0; i < db.Tables[0].Rows.Count; i++)
{
printbh = db.Tables[0].Rows[i]["资产标签"].ToString();
if (printbh != "")
{
Thread.Sleep(200);
printDocument1.Dispose();
printDocument1.Print();
//printDocument1.PrintController.OnStartPage();
}
if (!flag)
{
break;
th1.Abort();
}
}
}
总是报出同一个错误,求大神解答,在线等。
这个功能是否可以不用线程来做,用其他方法来做也可以 展开
在点击按钮后开始打印,然后弹出一个窗体A,A上有一个按钮,点击的话要求取消当前的打印功能。
我一开始是用线程开始打印功能,但是每次都报错。
private object obj = new object();
Thread th1 = null;
private void toolStripButton5_Click(object sender, EventArgs e)
{
db = oper.GetDataSetzcClear();
//弹出提示框
//StartPrint();
//建立线程,即实现可终止打印的功能
th1 = new Thread(new ThreadStart(StartPrint));
th1.IsBackground = true;
CheckForIllegalCrossThreadCalls = false;
th1.Start();
fspd.Show();
}
//lw:开始打印程序
private void StartPrint()
{
lock (obj) {
for (int i = 0; i < db.Tables[0].Rows.Count; i++)
{
printbh = db.Tables[0].Rows[i]["资产标签"].ToString();
if (printbh != "")
{
Thread.Sleep(200);
printDocument1.Dispose();
printDocument1.Print();
//printDocument1.PrintController.OnStartPage();
}
if (!flag)
{
break;
th1.Abort();
}
}
}
总是报出同一个错误,求大神解答,在线等。
这个功能是否可以不用线程来做,用其他方法来做也可以 展开
2个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询