[C#] ActiveX control wil niet werken

Pagina: 1
Acties:

  • cybermans
  • Registratie: Maart 2001
  • Laatst online: 27-04 10:28
[intro]
Voor me mijn stage moet ik een leuke geweldige <*****> applicatie maken die in Media Center draait.
Aangezien je daar enkel hosted html apps een gui kan laten hebben wou ik daarmee aan de slag.
Om te communiceren tussen de html meuk en .NET addin wou ik gebruik maken van activeX (zoveel keus is er niet).
[/intro]

[probleem]
Nu heb ik om wat te testen en te prutsen een control gemaakt aan de hand van deze tutorial
Als ik naar de control ga kijken op mijn testpagina geeft deze enkel een mooi rood kruisje.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
using System;
using System.Collections;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Windows.Forms;

namespace ActiveXDotNet
{
    public interface  AxMyControl 
    {
        String          UserText            {  set; get ; }
    }
    /// <summary>
    /// Summary description for MyControl.
    /// </summary>
    public class MyControl : System.Windows.Forms.UserControl,AxMyControl
    {
        private System.Windows.Forms.TextBox txtUserText;
        private String mStr_UserText;
        public String UserText
        {
            get { return mStr_UserText; }
            set
            { 
                mStr_UserText = value; 
                //Update the text box control value also.
                txtUserText.Text = value;
            }
        }
        /// <summary> 
        /// Required designer variable.
        /// </summary>
        private System.ComponentModel.Container components = null;

        public MyControl()
        {
            // This call is required by the Windows.Forms Form Designer.
            InitializeComponent();

            // TODO: Add any initialization after the InitializeComponent call

        }

        /// <summary> 
        /// Clean up any resources being used.
        /// </summary>
        protected override void Dispose( bool disposing )
        {
            if( disposing )
            {
                if(components != null)
                {
                    components.Dispose();
                }
            }
            base.Dispose( disposing );
        }

        #region Component Designer generated code
        /// <summary> 
        /// Required method for Designer support - do not modify 
        /// the contents of this method with the code editor.
        /// </summary>
        private void InitializeComponent()
        {
            this.txtUserText = new System.Windows.Forms.TextBox();
            this.SuspendLayout();
            // 
            // txtUserText
            // 
            this.txtUserText.BackColor = System.Drawing.Color.White; //begreep van iemand anders dat dit nodig was ivm system colors
            this.txtUserText.Location = new System.Drawing.Point(16, 16);
            this.txtUserText.Name = "txtUserText";
            this.txtUserText.Size = new System.Drawing.Size(112, 20);
            this.txtUserText.TabIndex = 0;
            this.txtUserText.Text = "";
            // 
            // MyControl
            // 
            this.BackColor = System.Drawing.Color.Gray; //begreep van iemand anders dat dit nodig was ivm system colors
            this.Controls.Add(this.txtUserText);
            this.Name = "MyControl";
            this.Size = new System.Drawing.Size(288, 72);
            this.ResumeLayout(false);

        }
        #endregion
    }
}

[/probleem]

[vraag]
Iemand een oplossing, idee, hint in de goede richting?
[/vraag]

[ Voor 3% gewijzigd door whoami op 07-09-2005 13:33 ]

Strava | Runkeeper | Endomondo (mijn leikr uploads)


  • mulder
  • Registratie: Augustus 2001
  • Laatst online: 30-04 15:47

mulder

ik spuug op het trottoir

Bij mij ook.

En dat is omdat die control niet is geinstalleerd bij mij.

oogjes open, snaveltjes dicht


  • cybermans
  • Registratie: Maart 2001
  • Laatst online: 27-04 10:28
FF daar op gegoogled en in iedergeval erachter gekomen dat je een assembly trust level moet verhogen (bron). Dit gedaan en hij komt dan ook netjes in me GAC te staan
Microsoft (R) .NET Global Assembly Cache Utility. Version 1.1.4318.0
Copyright (C) Microsoft Corporation 1998-2002. All rights reserved.


The cache of downloaded files contains the following entries:
ActiveXDotNet, Version=1.0.2076.24998, Culture=neutral, PublicKeyToken=n
ull, Custom=null

Number of items = 1
maar nog steeds gaatie er niets mee doen.

Strava | Runkeeper | Endomondo (mijn leikr uploads)


  • H!GHGuY
  • Registratie: December 2002
  • Niet online

H!GHGuY

Try and take over the world...

voor zover ik weet kan .NET geen ActiveX componenten zelf genereren, want ActiveX is een afgeleide van COM. .NET werkt afaik met assemblies. (daarom ook dat .NET een assembly-wrapper nodig heeft rond aan COM/ActiveX component)

bovendien zijn er volgens mij een stuk meer functies nodig eer je een ActiveX control kan weergeven...

edit: kijk in C# eens naar het WebControl library project en in C++ naar de MFC ActiveX component

[ Voor 14% gewijzigd door H!GHGuY op 07-09-2005 21:25 ]

ASSUME makes an ASS out of U and ME


  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
HIGHGuY schreef op woensdag 07 september 2005 @ 21:22:
voor zover ik weet kan .NET geen ActiveX componenten zelf genereren, want ActiveX is een afgeleide van COM. .NET werkt afaik met assemblies. (daarom ook dat .NET een assembly-wrapper nodig heeft rond aan COM/ActiveX component)

bovendien zijn er volgens mij een stuk meer functies nodig eer je een ActiveX control kan weergeven...

edit: kijk in C# eens naar het WebControl library project en in C++ naar de MFC ActiveX component
Ik heb er nooit veel mee gedaan maar volgens mij kan een .NET assembly ook als COM server dienen. Dus dan zul je waarschijnlijk ook wel een .NET ActiveX component kunnen maken.

[edit]
wat je dus waarschijnlijk bent vergeten is om in visual studio aan te geven dat de assembly ook voor Com geregistreerd moet worden. Of als je niet op je dev machine test moet je het zelf registreren voor Com

[ Voor 14% gewijzigd door Woy op 08-09-2005 09:42 ]

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”