我有一个程序,我可以在我的打印文件中切换不同的布局(a4,a5或a6大小的图形图纸等等。打印文档总是a4大小)。我可以在PrintPreviewDialog中显示这个文档,但是我必须在代码之前手动指定我想看的布局。
我想在PrintPreviewDialog工具栏中添加一个新按钮,让我只需在这些不同的布局之间切换。
不要担心按钮的功能,我只是想把它拿到那里并连接到任何方法(我自己会编码)。干杯!
答案 0 :(得分:2)
嗯,我想我成功了。这是灵感:davidjt52 @ bytes.com
这是我最后编写的代码(当我想在整个程序的其他地方预览我的文档时调用此类):
using System.Reflection; //FieldInfo
public class MyPrintPreviewDialog:PrintPreviewDialog { 私人ToolStripButton myTestButton;
public MyPrintPreviewDialog() : base()
{
Type T = typeof(PrintPreviewDialog);
FieldInfo fi = T.GetField("toolStrip1", BindingFlags.Instance |
BindingFlags.NonPublic);
ToolStrip toolStrip1 = (ToolStrip)fi.GetValue(this);
myTestButton = new ToolStripButton();
myTestButton.ToolTipText = "TEST";
myTestButton.ImageIndex = 0;
myTestButton.Click += new EventHandler(Btn_Click);
Button Btn = new Button();
toolStrip1.Items.Add(myTestButton);
}
private void Btn_Click(object Sender, EventArgs args)
{
MessageBox.Show("Button Clicked");
}
}
感谢您的帮助。 :)
更正:我知道我设法做到了。
答案 1 :(得分:1)
你可以随时制作自己的。使用您想要/需要的任何按钮将PrintPreviewControl添加到表单中。然后将控件上的Document属性设置为您想要的任何可打印对象。
编辑>它的效果非常好btw。我已经这样做了,因为我在表单中添加了一些Microsoft.Ink控件(以允许对预览文档进行签名)。然后我只需要调用ppcDocument.RefreshPreview();
答案 2 :(得分:0)
您是否尝试创建新类并从PrintPreviewDialog继承?
答案 3 :(得分:0)
我再次。
我在网络上看到了一些使用PrintPreviewControl的“精心设计”的代码片段。几百行代码或更多。
他们也都使用Form。我不希望这样。我知道PrintPreviewDialog在某种程度上使用它,但我不想实际拥有一个Form文件或在Form主体中写入我的代码。
对于我来说,继承PrintPreviewDialog或设置一个PrintPreviewControl,让我在不涉及Form主体/文件的情况下添加新按钮,是否有任何快速的方法?