我想知道如何删除 printPreviewDialog 中的“一页”、“两页”等和“页面”按钮?我使用 C++ windows forms visual studio 2012。谢谢
问问题
121 次
1 回答
0
PrintPreviewDialog 只是使用 PrintPreviewControl 的对话框的样板实现。如果您想要自己的设计,您应该实现自己的对话框。
然而,这在 .NET 中可能会被弄乱。这些按钮是类的私有成员,因此您无法在自己的代码中访问它们。.NET 中的反射支持提供了一个后门,您可以使用 BindingFlags::NonPublic 访问私有字段。使其看起来与此类似(使用默认名称):
using namespace System::Reflection;
...
Form1(void)
{
InitializeComponent();
array<String^>^ names = gcnew array<String^> {"onepageToolStripButton",
"twopagesToolStripButton", "threepagesToolStripButton",
"fourpagesToolStripButton", "sixpagesToolStripButton",
"separatorToolStripSeparator1"};
for (int ix = 0; ix < names->Length; ix++) {
FieldInfo^ fi = printPreviewDialog1->GetType()->GetField(names[ix],
BindingFlags::NonPublic | BindingFlags::Instance);
ToolStripItem^ item = safe_cast<ToolStripItem^>(fi->GetValue(printPreviewDialog1));
delete item;
}
}
在运行时看起来像这样:
于 2013-10-06T18:23:44.093 回答