Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.08.2012, 17:49   #1
Paravozzz
 
Регистрация: 15.10.2011
Сообщений: 7
По умолчанию Падение AutoCAD при загрузке плагина на C#

Доброе время суток!

Есть библиотека классов на C# для AutoCAD.
В ней есть два класса AutocadPluginClass и FormMain. Когда я создаю в FormMain экземпляр класса AutocadPluginClass, а в AutocadPluginClass создаю экземпляр класса FormMain - Автокад падает во время загрузки плагина.
Код:
using Autodesk.AutoCAD.Runtime;
using Autodesk.AutoCAD.ApplicationServices;
using Autodesk.AutoCAD.DatabaseServices;
using Autodesk.AutoCAD.Geometry;
using Autodesk.AutoCAD.EditorInput;
using Autodesk.AutoCAD.Windows;

namespace AutocadPlugin
{
    public class AutocadPluginClass : IExtensionApplication
    {
        public byte stampType;
        public FormMain formMain = new FormMain();
       
        [CommandMethod("APBorder")]
        public void comAPBorder()
        {
            Application.ShowModalDialog(this.formMain);
        }
        public void Initialize()
        {

        }

        public void Terminate()
        {

        }

    }
}
Код:
using System;
using System.Text;
using System.Windows.Forms;
using Autodesk.AutoCAD.Runtime;

namespace AutocadPlugin
{
    public partial class FormMain : Form
    {
        public AutocadPluginClass APlugin= new AutocadPluginClass();
       
        public FormMain()
        {
            InitializeComponent();
        }

        private void buttonClose_Click(object sender, EventArgs e)
        {
            this.Hide();
        }

        private void buttonDraw_Click(object sender, EventArgs e)
        {
            this.Hide();
            APlugin.stampType = 0;
        }

    }
}
Если же я создаю экземпляр AutocadPluginClass в методе:
Код:
using System;
using System.Text;
using System.Windows.Forms;
using Autodesk.AutoCAD.Runtime;

namespace AutocadPlugin
{
    public partial class FormMain : Form
    {
        public FormMain()
        {
            InitializeComponent();
        }

        private void buttonClose_Click(object sender, EventArgs e)
        {
            this.Hide();
        }

        private void buttonDraw_Click(object sender, EventArgs e)
        {
            AutocadPluginClass APlugin= new AutocadPluginClass();
            this.Hide();
            APlugin.stampType = 0;
        }

    }
}
, то все нормально. Кроме того, что при каждом нажатии кнопки buttonDraw я заного создаю новый экземпляр AutocadPluginClass. А хочется один раз создать его и продолжать работать с ним.

Подскажите, почему так происходит? И есть ли пути решения?

Спасибо!
Paravozzz вне форума Ответить с цитированием
Старый 30.08.2012, 18:12   #2
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,372
По умолчанию

Цитата:
Сообщение от Paravozzz Посмотреть сообщение
Кроме того, что при каждом нажатии кнопки buttonDraw я заного создаю новый экземпляр AutocadPluginClass. А хочется один раз создать его и продолжать работать с ним.

Подскажите, почему так происходит? И есть ли пути решения?

Спасибо!
Потому что APlugin - локальная переменная в методе buttonDraw_Click.
Сделайте APlugin переменной класса и надо будет создавать только один раз - только надо будет не забыть это сделать.
waleri вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Глюки при загрузке ЦП Florento Общие вопросы Delphi 5 24.06.2011 14:51
ClassCastException при разработке плагина igorDanilov Общие вопросы по Java, Java SE, Kotlin 0 14.10.2009 16:11
XP виснет при загрузке Андрей Белый Windows 2 08.05.2009 21:58
ОШИБКА ПРИ ЗАГРУЗКЕ Костян Пират Операционные системы общие вопросы 5 21.02.2009 12:14
Ошибка и падение (выход) Excel при выполнении сложной программы на VBA Serge_Bliznykov Microsoft Office Excel 6 13.08.2008 16:50