C#WinForm用PrintDialog 控件和三个赋值label控件设置,实现三个赋值label控件可调整字体大小,可任意移动位置,然后按钮打印
时间: 2024-02-24 08:00:32 浏览: 120
好的,首先你需要在 WinForm 中添加一个 PrintDialog 控件和三个 Label 控件。然后你可以为每个 Label 控件添加一个 MouseDown 事件和一个 MouseMove 事件,用于允许用户移动标签。你还需要为每个 Label 控件添加一个 ContextMenuStrip,用于允许用户选择调整标签字体大小的选项。
接下来,你可以在 WinForm 的代码中添加以下代码:
```csharp
private int fontSize = 12;
private Dictionary<string, Point> labelPositions = new Dictionary<string, Point>
{
{ "label1", new Point(50, 50) },
{ "label2", new Point(100, 100) },
{ "label3", new Point(150, 150) }
};
private void UpdateLabels()
{
foreach (var kvp in labelPositions)
{
var label = Controls[kvp.Key] as Label;
label.Location = kvp.Value;
label.Font = new Font(label.Font.FontFamily, fontSize);
}
}
private void label_MouseDown(object sender, MouseEventArgs e)
{
var label = sender as Label;
label.DoDragDrop(label, DragDropEffects.Move);
}
private void label_MouseMove(object sender, MouseEventArgs e)
{
var label = sender as Label;
if (e.Button == MouseButtons.Left)
{
label.Left += e.X - label.Width / 2;
label.Top += e.Y - label.Height / 2;
labelPositions[label.Name] = label.Location;
}
}
private void fontToolStripMenuItem_Click(object sender, EventArgs e)
{
var dialog = new FontDialog();
if (dialog.ShowDialog() == DialogResult.OK)
{
fontSize = (int)dialog.Font.Size;
UpdateLabels();
}
}
private void printToolStripMenuItem_Click(object sender, EventArgs e)
{
var dialog = new PrintDialog();
if (dialog.ShowDialog() == DialogResult.OK)
{
var printDocument = new PrintDocument();
printDocument.PrinterSettings = dialog.PrinterSettings;
printDocument.PrintPage += (s, args) =>
{
foreach (var kvp in labelPositions)
{
var label = Controls[kvp.Key] as Label;
args.Graphics.DrawString(label.Text, label.Font, new SolidBrush(label.ForeColor), kvp.Value);
}
};
printDocument.Print();
}
}
```
在这个代码段中,我们使用一个 fontSize 变量和一个 labelPositions 字典来存储标签的字体大小和位置。UpdateLabels() 方法用于更新标签的位置和字体大小。label_MouseDown 和 label_MouseMove 事件用于允许用户移动标签。fontToolStripMenuItem_Click 事件用于允许用户选择调整标签字体大小的选项。printToolStripMenuItem_Click 事件用于打印标签。
现在,你可以在 WinForm 中调整标签的位置和字体大小。当你点击打印按钮时,它会打印出标签。
阅读全文