Aze*_*eem 3 c# visual-studio-2010 winforms
我有一个情况.我需要在Visual Studio 2010中使用C#以Windows窗体创建员工卡结构.该结构可能包含带有白色背景的标签和图片框.我没有创建它的问题,但我也在这个表单上给出一个名为"打印"的按钮,以便用户可以打印该卡.我用谷歌搜索,但没有找到具体的东西.请帮帮我.
namespace Employee_Card_Manager
{
public partial class Card : Form
{
public Card(String a, String b, String c, String d, String e, String f, String g, String h, String i)
{
InitializeComponent();
this.label2.Text = a;
this.label9.Text = b;
this.label10.Text = c;
this.label11.Text = d;
this.label12.Text = e;
this.label13.Text = f;
this.label14.Text = g;
this.label16.Text = h;
this.pictureBox1.Image = Image.FromFile(i);
Image myimg = Code128Rendering.MakeBarcodeImage(h, 2, true);
this.pictureBox2.Image = myimg;
}
private void button1_Click(object sender, EventArgs e)
{
//Print Card Code
}
}
}
Run Code Online (Sandbox Code Playgroud)
卡片模板如下:

我已将所有卡片结构放在Panel Control上,并将Panel背景设置为白色.你能填写打印这张卡的代码吗?谢谢
Aze*_*eem 14
我发现以下代码工作正常!!
//declare event handler for printing in constructor
printdoc1.PrintPage += new PrintPageEventHandler(printdoc1_PrintPage);
//Rest of the code
Bitmap MemoryImage;
public void GetPrintArea(Panel pnl)
{
MemoryImage = new Bitmap(pnl.Width, pnl.Height);
pnl.DrawToBitmap(MemoryImage, new Rectangle(0, 0, pnl.Width, pnl.Height));
}
protected override void OnPaint(PaintEventArgs e)
{
if (MemoryImage != null)
{
e.Graphics.DrawImage(MemoryImage, 0, 0);
base.OnPaint(e);
}
}
void printdoc1_PrintPage(object sender, PrintPageEventArgs e)
{
Rectangle pagearea = e.PageBounds;
e.Graphics.DrawImage(MemoryImage, (pagearea.Width / 2) - (this.panel1.Width / 2), this.panel1.Location.Y);
}
public void Print(Panel pnl)
{
pannel = pnl;
GetPrintArea(pnl);
previewdlg.Document = printdoc1;
previewdlg.ShowDialog();
}
private void button1_Click(object sender, EventArgs e)
{
Print(this.panel1);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
32263 次 |
| 最近记录: |