Posty bez odpowiedzi |oraz Aktywne tematy Dzisiaj jest 2024-11-25, 12:04x



Odpowiedz w temacie  [ Posty: 3 ] 
Kontrolka OCX nie inicjuje się w formularzu. 
Autor Wiadomość

Rejestracja: 2016-08-10, 13:59
Posty: 25
Pomógł: 4
Post Kontrolka OCX nie inicjuje się w formularzu.
Utworzyłem sobie najzwyklejszą kontrolkę w C# używając Winforms z dwoma przyciskami i textboxem. Gdy próbuję ją wrzucić do formularza:
Cytuj:
Form "ControlTest", 400, 230
Control "NazwaWRejestrze", test, 10, 10, 370, 150
Button "Zamknij",280, 170, 100, 25, 2
Button "OK",10, 170, 100, 25, OnOK()
//test.test1()
int rv = ExecForm

Otrzymuję pusty formularz (nawet bez przycisków). Gdy próbuję wywołać (tu zakomentowaną) metodę, otrzymuję błąd "Obiekt OLE nie został zainicjowany".

Jest to o tyle dziwne, że gdy gdy dostaję się do niej przez:
Cytuj:
dispatch test = "NazwaWRejestrze"
test.test1()

Wszystko przebiega pomyślnie.

Czy ktoś napotkał podobny problem, lub ma pomysł czym może to być spowodowane?


Ostatnio zmieniony 2016-09-12, 13:58 przez Mustrum, łącznie zmieniany 1 raz



2016-09-12, 13:33
Wyświetl profil
Autor Wiadomość
 



Rejestracja: 2016-08-10, 13:59
Posty: 25
Pomógł: 4
Post Re: Kontrolka OCX nie inicjuje się w formularzu.
W zasadzie cała funkcjonalność kontrolki mieści się w:

Kod:
[ProgId("NazwaWRejestrze")]
    [ClassInterface(ClassInterfaceType.AutoDual)]
    public partial class UserControl1: UserControl
    {
        public UserControl1()
        {
            InitializeComponent();
        }

         private void UserControl1_Load(object sender, EventArgs e)
        {

        }

        private void button1_Click(object sender, EventArgs e)
        {
            textBox1.Text = "";
        }

        private void button2_Click(object sender, EventArgs e)
        {
            textBox1.Text += "hurr ";
        }

        public void test1()
        {
            textBox1.Text = "asdasd";
        }

        [ComRegisterFunction()]
        public static void RegisterClass(string key)
        {
            StringBuilder sb = new StringBuilder(key);
            sb.Replace(@"HKEY_CLASSES_ROOT\", "");
            RegistryKey k = Registry.ClassesRoot.OpenSubKey(sb.ToString(), true);
            RegistryKey ctrl = k.CreateSubKey("Control");
            ctrl.Close();
            RegistryKey inprocServer32 = k.OpenSubKey("InprocServer32", true);
            inprocServer32.SetValue("CodeBase", Assembly.GetExecutingAssembly().CodeBase);
            inprocServer32.Close();
            k.Close();
        }

        [ComUnregisterFunction()]
        public static void UnregisterClass(string key)
        {
            StringBuilder sb = new StringBuilder(key);
            sb.Replace(@"HKEY_CLASSES_ROOT\", "");
            RegistryKey k = Registry.ClassesRoot.OpenSubKey(sb.ToString(), true);
            k.DeleteSubKey("Control", false);
            RegistryKey inprocServer32 = k.OpenSubKey("InprocServer32", true);
            k.DeleteSubKey("CodeBase", false);
            k.Close();
        }
    }


2016-09-12, 13:50
Wyświetl profil

Rejestracja: 2016-08-10, 13:59
Posty: 25
Pomógł: 4
Post Re: Kontrolka OCX nie inicjuje się w formularzu.
Już nieaktualne, rozwiązałem to w inny sposób.

Zamiast tworzyć komponent utworzyłem nowy proces otwierający osobne okno.


2016-09-13, 09:39
Wyświetl profil
Wyświetl posty nie starsze niż:  Sortuj wg  
Odpowiedz w temacie   [ Posty: 3 ] 
   Podobne tematy   Autor   Odpowiedzi   Odsłony   Ostatni post 
Na tym forum nie ma nowych nieprzeczytanych postów. Kontrolka MxDlg

w Programowanie

tatanka

8

5090

2018-10-31, 07:43

rafal Wyświetl najnowszy post

Na tym forum nie ma nowych nieprzeczytanych postów. Załączniki Kontrolka picturebox

w Programowanie

klesta

13

9187

2010-06-29, 11:59

daniel Wyświetl najnowszy post

Na tym forum nie ma nowych nieprzeczytanych postów. Załączniki Kontrolka UserControl .NET w Handel Premium

[ Przejdź na stronę: 1, 2 ]

w Programowanie

Darek258

15

7868

2013-11-19, 22:16

koronen Wyświetl najnowszy post

Na tym forum nie ma nowych nieprzeczytanych postów. no to się porobiło!

w Programy Kadrowo Płacowe

anpola

2

3116

2011-03-03, 20:32

anpola Wyświetl najnowszy post



Kto jest online

Użytkownicy przeglądający to forum: Nie ma żadnego zarejestrowanego użytkownika i 15 gości


Nie możesz tworzyć nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Przejdź do:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Support forum phpbb by phpBB Assistant