Вопросы по дезайнеру и превью
1. Как проще всего добраться до меню дезайнера?
Пока ничего умнее чем:
2. У PreviewControl события Shown нет, и непонятно как добраться в runtime до кнопок тулбара (например, спрятать некоторые кнопоки или переопределить обработчик события Click). Как вариант, может сделать так:
preview.Buttons["Open"].Visible = false;
и
preview.Buttons["Open"].Click += new EventHandler(button_Click);
3. Класс EnvironmentSettings творит чудеса, если создать два эеземпляра:
Как вариант может:
p.s. Пока вроде все, если я где неправ (полохо маны читал
), заранее извиняюсь....
p.s.s. Работаю под VS2005, FastReport 1.0.132 (beta)
Пока ничего умнее чем:
...
Report report = new FastReport.Report();
Designer designer = new Designer(report);
designer.Shown += new EventHandler(designer_Shown);
designer.ShowDialog();
...
void designer_Shown(object sender, EventArgs e)
{
Designer designer = (Designer)sender;
DesignerMenu menu = designer.Plugins.Find("MainMenu") as DesignerMenu;
menu.Visible = false; //например
}
не придумал 
2. У PreviewControl события Shown нет, и непонятно как добраться в runtime до кнопок тулбара (например, спрятать некоторые кнопоки или переопределить обработчик события Click). Как вариант, может сделать так:
preview.Buttons["Open"].Visible = false;
и
preview.Buttons["Open"].Click += new EventHandler(button_Click);
3. Класс EnvironmentSettings творит чудеса, если создать два эеземпляра:
EnvironmentSettings environmentSettings = new EnvironmentSettings();
environmentSettings.CustomOpenDialog += new FastReport.Design.OpenSaveDialogEventHandler(environmentSettings_CustomOpenDialog);
environmentSettings.CustomOpenReport += new FastReport.Design.OpenSaveReportEventHandler(environmentSettings_CustomOpenReport);
environmentSettings.CustomSaveDialog += new FastReport.Design.OpenSaveDialogEventHandler(environmentSettings_CustomSaveDialog);
environmentSettings.CustomSaveReport += new FastReport.Design.OpenSaveReportEventHandler(environmentSettings_CustomSaveReport);
EnvironmentSettings environmentSettings2 = new EnvironmentSettings();
environmentSettings2.CustomOpenDialog += new FastReport.Design.OpenSaveDialogEventHandler(environmentSettings2_CustomOpenDialog);
environmentSettings2.CustomOpenReport += new FastReport.Design.OpenSaveReportEventHandler(environmentSettings2_CustomOpenReport);
environmentSettings2.CustomSaveDialog += new FastReport.Design.OpenSaveDialogEventHandler(environmentSettings2_CustomSaveDialog);
environmentSettings2.CustomSaveReport += new FastReport.Design.OpenSaveReportEventHandler(environmentSettings2_CustomSaveReport);
то дезайнер вызывает обработчики обоих. Как он вообще определяет, что EnvironmentSettings есть, я так и не понял.Как вариант может:
FastReport.Design.DesignerSettings designerSettings = new FastReport.Design.DesignerSettings();
designerSettings.CustomOpenDialog +=...
...
FastReport.Design.Designer designer = new FastReport.Design.Designer(report, designerSettings);
//или designer.Settings = designerSettings;
и также может у PreviewControl...p.s. Пока вроде все, если я где неправ (полохо маны читал

p.s.s. Работаю под VS2005, FastReport 1.0.132 (beta)
Комментарии
http://fast-report.com/ru/forum/index.php?...ost&p=22557
Непонятно, зачем Вы в обработчике designer.Shown скрываете меню. Можно было это сделать сразу при создании объекта дизайнера.
По ссылке выше также про тулбар есть.
1) именно так. В будущих релизах могу добавить св-во Menu в дизайнер.
2) такого события пока нет. Вы можете сделать свое окно просмотра. Спрятать кнопки можно, используя EnvironmentSettings.
3) класс EnvironmentSettings является оберткой над глобальным объектом Config. Делать несколько экземпляров не имеет смысла.
а на счет Designer designer = new Designer(report);
DesignerMenu menu = dess.Plugins.Find("MainMenu") as DesignerMenu;
menu в этом случае равно null, его еще нет в этот момент см. ниже.
Такое свойство уже есть, от формы наследуется, на данный момент возвращает только null. Вобщем и так ничего, но до меню можно добраться только после запуска дезайнера. До запуска designer.Plugins.Find("MainMenu") as DesignerMenu вернет null (designer.Plugins.Count равно 0)..
программно это будет выглядеть примерно так