永发信息网

c# 利用windows打印机打印问题

答案:2  悬赏:30  手机版
解决时间 2021-01-25 09:25
private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
{
SqlConnection con = new SqlConnection(constr);
con.Open();
string sqlstr = string.Format("select tbid from hy_dbfp_j where tbcnnm = '{0}'", this.comboBox1.Text);
SqlDataAdapter ada = new SqlDataAdapter(sqlstr, con);
DataSet ds = new DataSet();
ada.Fill(ds);
string sqlstr1 = string.Format("select * from {0} order by stcd", ds.Tables[0].Rows[0].ItemArray[0].ToString());
SqlCommand com = new SqlCommand(sqlstr1,con);
SqlDataReader myread = com.ExecuteReader();

}

private void button2_Click(object sender, EventArgs e)
{
printDialog1.ShowDialog();
printPreviewDialog1.Document = this.printDocument1;
printPreviewDialog1.ShowDialog();
}现在是可以调用打印对话框。可是预览出来的是一张白纸
请高手给改改
最佳答案
选择打印机然后打印文件
使用 PrintDialog 组件选择要使用的打印机。

在下面的代码示例中,有两个要处理的事件。第一个事件是 Button 控件的 Click 事件,在该事件中,PrintDialog 类被实例化,并且用户选择的打印机在 DialogResult 属性中捕获。

第二个事件是 PrintDocument 组件的 PrintPage 事件,在该事件中,将一个示例文档打印到指定的打印机。

Visual Basic 复制代码
Private Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim PrintDialog1 As New PrintDialog()
PrintDialog1.Document = PrintDocument1
Dim result As DialogResult = PrintDialog1.ShowDialog()

If (result = DialogResult.OK) Then
PrintDocument1.Print()
End If

End Sub

Private Sub PrintDocument1_PrintPage(ByVal sender As Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles PrintDocument1.PrintPage
e.Graphics.FillRectangle(Brushes.Red, New Rectangle(500, 500, 500, 500))
End Sub

C# 复制代码
private void button1_Click(object sender, System.EventArgs e)
{
PrintDialog printDialog1 = new PrintDialog();
printDialog1.Document = printDocument1;
DialogResult result = printDialog1.ShowDialog();
if (result == DialogResult.OK)
{
printDocument1.Print();
}
}

private void printDocument1_PrintPage(object sender,
System.Drawing.Printing.PrintPageEventArgs e)
{
e.Graphics.FillRectangle(Brushes.Red,
new Rectangle(500, 500, 500, 500));
}

J# 复制代码
private void button1_Click(Object sender, System.EventArgs e)
{
PrintDialog printDialog1 = new PrintDialog();
printDialog1.set_Document(printDocument1);
DialogResult result = printDialog1.ShowDialog();
if (result == DialogResult.OK)
{
printDocument1.Print();
}
}

private void printDocument1_PrintPage(Object sender,
System.Drawing.Printing.PrintPageEventArgs e)
{
e.get_Graphics().FillRectangle(Brushes.get_Red(),
new Rectangle(500, 500, 500, 500));
}

Visual C++ 复制代码
private:
void button1_Click(System::Object ^ sender,
System::EventArgs ^ e)
{
PrintDialog ^ printDialog1 = gcnew PrintDialog();
printDialog1->Document = printDocument1;
System::Windows::Forms::DialogResult result =
printDialog1->ShowDialog();
if (result == DialogResult::OK)
{
printDocument1->Print();
}
}
private:
void printDocument1_PrintPage(System::Object ^ sender,
System::Drawing::Printing::PrintPageEventArgs ^ e)
{
e->Graphics->FillRectangle(Brushes::Red,
Rectangle(500, 500, 500, 500));
}

((Visual C#、Visual J# 和 Visual C++)在窗体的构造函数中放入以下代码以注册事件处理程序。

C#
this.printDocument1.PrintPage += new
System.Drawing.Printing.PrintPageEventHandler
(this.printDocument1_PrintPage);
this.button1.Click += new System.EventHandler(this.button1_Click);
全部回答

做个测试,希望有所帮助。

代码

    datatable datatable = new datatable();     datatable.columns.add("打印机编号");     datatable.columns.add("打印机信息");     int printernum = system.drawing.printing.printersettings.installedprinters.count;     for (int i = 0; i < printernum; i++)     {     datarow dr = datatable.newrow();     dr["打印机编号"] = i + 1;     dr["打印机信息"] = system.drawing.printing.printersettings.installedprinters[i].tostring();     datatable.rows.add(dr);     }     this.datagridview1.datasource = datatable;     结果

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
门上的薄膜撕下来之后粘粘的是什么,应该怎么
欧登咖啡地址有知道的么?有点事想过去
岭南佳果荔枝要结出荔枝,必须要经过开花、传
qq输入法纯净版怎么不能打符号 就是以前v1 v2
河北省实现了省内异地就医持卡结算吗
想问下哪位知道汽车电池的仓库需要哪些消防设
在括号中填上拼音或汉字。(2分)人,不要无
家里的漏电总控开老是跳闸,想卸掉总空开
原始生命形成的场所是在A. 原始海洋中B. 原始
现阶段常见的鲤鱼和鲫鱼死亡的问题?
玉美人化妆品地址在什么地方,想过去办事
我们公司是建筑材料零售企业,每个月开普通发
德语wei heisen sie
appear 和fear各是什么意思
一又二分之一丝扣是多大
推荐资讯
粤景客车空调地址在哪,我要去那里办事
天下三:五行盘的一些知识?
有其他银行的信用卡,可以申请工行信用卡吗
鸿腾娱乐城地址在什么地方,想过去办事
秋菊能傲霜,风霜重重恶写的是什么季节
河南中博物流商水县分部地址有知道的么?有点
王俊凯11岁那年扛起了支离破碎的公司???真
说话的内容很乱,这到底是怎么回事
本人或监护人提出申请城乡特殊困难未成年人教
国家为什么支持郑州为国家中心城市
10分钟 的歌词 是什么?
今年新上市的小麦封闭除草剂叫啥名子
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?