printPreviewDialogで「1ページ」「2ページ」などのボタンと「ページ」を削除する方法が知りたいです。私はC++ windowsフォームのビジュアルスタジオ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 に答える