я хочу знать, как удалить кнопки «одна страница», «две страницы» и т. д. и «страница» в printPreviewDialog? Я использую C ++ Windows Forms Visual Studio 2012.
Спасибо
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;
}
}
Выглядит так во время выполнения:
Других решений пока нет …