Не взлетает дизайнер из рантайма

отредактировано 01:44 Раздел: FastReport .NET
Демо-версия от 01.05.2009, пустое WinForms приложение, форма с кнопкой, в обработчике нажатия:
using (Report report = new Report())
    report.Design();
На второй строчке выбрасывается
написал:
System.InvalidOperationException: DragDrop registration did not succeed. ---> System.Threading.ThreadStateException: Current thread must be set to single thread apartment (STA) mode before OLE calls can be made. Ensure that your Main function has STAThreadAttribute marked on it.
at System.Windows.Forms.Control.SetAcceptDrops(Boolean accept)
--- End of inner exception stack trace ---
at System.Windows.Forms.Control.SetAcceptDrops(Boolean accept)
at System.Windows.Forms.Control.OnHandleCreated(EventArgs e)
at System.Windows.Forms.TreeView.OnHandleCreated(EventArgs e)
at System.Windows.Forms.Control.WmCreate(Message& m)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.TreeView.WndProc(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
at System.Windows.Forms.UnsafeNativeMethods.IntCreateWindowEx(Int32 dwExStyle, String lpszClassName, String lpszWindowName, Int32 style, Int32 x, Int32 y, Int32 width, Int32 height, HandleRef hWndParent, HandleRef hMenu, HandleRef hInst, Object pvParam)
at System.Windows.Forms.UnsafeNativeMethods.CreateWindowEx(Int32 dwExStyle, String lpszClassName, String lpszWindowName, Int32 style, Int32 x, Int32 y, Int32 width, Int32 height, HandleRef hWndParent, HandleRef hMenu, HandleRef hInst, Object pvParam)
at System.Windows.Forms.NativeWindow.CreateHandle(CreateParams cp)
at System.Windows.Forms.Control.CreateHandle()
at System.Windows.Forms.TreeView.CreateHandle()
at System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
at System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
at System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
at System.Windows.Forms.Control.CreateControl()
at System.Windows.Forms.Control.ControlCollection.Add(Control value)
at DevComponents.DotNetBar.DocumentDockUIManager.Dock(Bar referenceBar, Bar barToDock, eDockSide dockSide)
at DevComponents.DotNetBar.DocumentDockUIManager.Dock(Bar barToDock)
at FastReport.Design.ToolWindows.ToolWindowBase.STM9LKcQS(DockSite )
at FastReport.Design.Designer.InitPlugins()
at FastReport.Design.StandardDesigner.DesignerControl.InitPlugins()
at FastReport.Design.Designer.aH6DubDjs()
at FastReport.Design.Designer..ctor()
at FastReport.Design.StandardDesigner.DesignerControl..ctor()
at FastReport.Design.StandardDesigner.Office2007DesignerForm..ctor()
at FastReport.Report.aAAdWe5pg(Boolean , Form )
at FastReport.Report.Design(Boolean modal)
at FastReport.Report.Design()
at FastReport.Form1.button1_Click(Object sender, EventArgs e) in C:\Documents and Settings\ххх\Мои документы\Visual Studio 2008\Projects\Reports\FastReport\Form1.cs:line 25
Что я делаю не так?

Комментарии

  • CouRageCouRage Санкт-Петербург
    отредактировано 01:44
    У процедуры Main поставьте атрибут [STAThread]:
    [STAThread]
    static void Main()
    {
      ...
      Application.Run(new Form());
    }
    

  • отредактировано May 2009
    CouRage написал: »
    У процедуры Main поставьте атрибут [STAThread]:
    [STAThread]
    static void Main()
    {
      ...
      Application.Run(new Form());
    }
    
    Естесственно, атрибут установлен. В первом посте забыл это указать.

    UPD: хм, был уверен, что без атрибута не будет запускаться само приложение... Ан, нет, стартует... Но все равно результат не зависит - атрибут есть/нет, дизайнера - нет.
  • отредактировано 01:44
    Здравствуйте,

    А демка Demo.exe запускается нормально?
  • отредактировано 01:44
    AlexTZ написал: »
    Здравствуйте,

    А демка Demo.exe запускается нормально?
    Да. Демка из той же версии собирается и работает правильно.
  • отредактировано 01:44
    Значит, все-таки [STAThread] виноват. Я пробовал убирать его - получаю тот же стек ошибки, 1:1. Проверьте, что атрибут на месте, и сделайте Rebuild солюшна. Если не поможет - присылайте тестовый проект на tz@fast-report.com, буду смотреть.
  • отредактировано 01:44
    AlexTZ написал: »
    Значит, все-таки [STAThread] виноват. Я пробовал убирать его - получаю тот же стек ошибки, 1:1. Проверьте, что атрибут на месте, и сделайте Rebuild солюшна. Если не поможет - присылайте тестовый проект на tz@fast-report.com, буду смотреть.
    Спасибо за готовность помочь.

    Собственно, виной всему оказался некий конфликт имен - обратил внимание, что мой проект и сборка по умолчанию называются FastReport, смена имени результирующей сборки на любое другое избавляет от проблемы. Я думаю, присылать что-то нет смысла, при желании Вы легко сможете воспроизвести ошибку.

Оставить комментарий

Многофункциональный текстовый редактор. Чтобы отредактировать стиль параграфа, нажмите TAB, чтобы перейти к меню абзаца. Там вы можете выбрать стиль. По умолчанию не выбран ни один стиль. Когда вы выберете текст, появится встроенное меню форматирования. Нажмите TAB, чтобы войти в него. Некоторые элементы, такие как многофункциональные вставки ссылок, картинок, индикаторов загрузки и сообщений об ошибок могут быть вставлены в редактор. Вы можете перемещаться по ним, используя стрелки внутри редактора и удалять с помощью клавиш delete или backspace.