Я хочу знать, как удалить кнопки «одна страница», «две страницы» и т. Д. И «страница» в printPreviewDialog? Я использую C++ windows forms visual studio 2012. СпасибоКак удалить кнопки «одна страница», «две страницы» ... «шесть страниц» в printpreviewdialog?
0
A
ответ
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;
}
}
выглядит следующим образом во время выполнения: