Makale numarası: 818220 - Son Gözden Geçirme: 03 Aralık 2007 Pazartesi - Gözden geçirme: 3.11

Varolan projeyi yeniden açtığınızda kullanıcı ActiveX denetimi form tasarımcısında görünür durumda değilse

Sistem İpucuBu makale, kullandığınızdan farklı bir işletim sistemine yöneliktir. Sizinle ilgili olmayabilecek makale içeriği devre dışı bırakıldı.

Bu Sayfada

Hepsini aç | Hepsini kapa

Belirtiler

Varolan bir Windows uygulaması Visual Studio .NET veya Visual Studio 2005'i yeniden açtığınızda, daha önce görünür bir kullanıcı ActiveX denetimi Windows Form tasarımcısında görünmeyebilir. Ayrıca, proje derlemeye çalıştığınızda, aşağıdakine benzer bir hata iletisini alabilirsiniz:
Tür 'AxProject1.AxTestControl' tanımlı değil.
Başvurulan 'AxProject1' bileşeni bulunamadı. Bağımlı bir tür kitaplığı için BIR .NET derlemesi sarmalayıcı 'Project1' bulunamadı.

Neden

Dahili bir Visual Studio .NET veya Visual Studio 2005 proje için bir <a0>ActiveX</a0> kullanıcı denetimi eklediğinizde, Visual Studio .NET veya Visual Studio 2005 Windows Forms ActiveX Denetimi Alıcısı (Aximp.exe) aracı başlatılır. Tür kitaplığı Aximp.exe dönüştürür ActiveX ve kullanıcı denetimi aşağıdaki iki dosya oluşturur:
  • Ortak dil çalışma zamanı için BIR proxy COM türü.
  • Windows Forms proxy kullanıcı ActiveX denetimi için.
Bu iki proxy dosyalar için varolan ActiveX kullanıcı denetimi bilgileri vardır.

Bir veya daha çok ortak üye, bir olay, yöntem veya özelliği gibi varolan ActiveX kullanıcı denetimi için bir ortak üye ekleme ve kullanıcı ActiveX denetimini yeniden derleyin, ActiveX denetiminin kullanıcı arabirimi eklenir. Ancak, bu yeni bilgilerle ortak dil çalışma zamanı proxy dosyası güncelleştirilmez. Bu nedenle, kullanıcı denetimi doğru Windows Form tasarımcısında oluşturulan ActiveX, karşılık gelen Windows formları proxy değil ya da güncelleştirilmiş ve bu makalenin "Belirtiler" bölümünde açıklanan davranış.

NotÖzellikler iletişim kutusunu proje, Bileşen sekmesini tıklatın ve sonra Microsoft Visual Basic 6. 0'ın varolan ActiveX kullanıcı denetimini yeniden derleyin önce İkili uyumluluk seçeneği seçin. Ortak dil çalışma zamanı proxy güncelleştirildi, ancak bu durumda, Windows Forms proxy güncelleştirilmedi. Bu belirtilerin içinde olur.

Pratik Çözüm

Bu soruna geçici bir çözüm bulmak için <a0></a0>, varolan başvurular <a0>ActiveX</a0> kullanıcının denetimini kaldırmak ve sonra güncelleştirilmiş başvurular yeniden ekleyin. Bunu yapmak için <a0></a0>, aşağıdaki yöntemlerden birini izleyin.

Yöntem 1

  1. Solution Explorer'da (Çözüm Gezgini), Başvurular altında AxProject1 ' ı sağ tıklatın ve sonra da <a2>Kaldır</a2>'ı tıklatın.
  2. Başvurular altında Project1 ' ı sağ tıklatın ve sonra da <a2>Kaldır</a2>'ı tıklatın.
  3. Araç kutusunda, Project1.TestControl değiştirilmiş ActiveX kullanıcı denetimi, forma eklemek için çift tıklatın.

    ActiveX kullanıcı denetleyen Windows Form tasarımcısı ve AxProject1 ve Project1 başvuruları bildirimi UserControlDemo için Başvurular altında görünür.
  4. Yapı) menüsünde tıklatın Build Solution.

    Herhangi bir hata almazsınız.
Not Bu geçici çözümü kullanırsanız, formunuzu AxTestControl2 olarak değiştirilmiş olan ActiveX kullanıcı denetimi eklenir, ve formunuzu hala AxTestControl1 için ilgili kod var. AxTestControl1 artık formunuzda olsa da, aşağıdaki deyim hala, varsa:

Visual Basic .NET örnek kod
Friend WithEvents AxTestControl1 As AxProject1.AxTestControl
Visual C# .NET örnek kod
private AxProject1.AxTestControl axTestControl1;
AxTestControl1 kodunuzda herhangi bir yerde kullanılan ve bir AxProject1.AxTestControl nesnesinin bir kopyas?n? açıkça oluşturmadıysanız, bir
'NullReferenceException'
alabileceğiniz hata.

Ayrıca, birden çok kullanıcı ActiveX denetiminin örneğini formlar varsa, her form için önceki adımları yinelemelisiniz.

Yöntem 2

  1. Solution Explorer'da (Çözüm Gezgini), Başvurular altında AxProject1 ' ı sağ tıklatın ve sonra da <a2>Kaldır</a2>'ı tıklatın.
  2. Başvurular altında Project1 ' ı sağ tıklatın ve sonra da <a2>Kaldır</a2>'ı tıklatın.
  3. Visual Studio .NET veya Visual Studio 2005 komut istemini açın ve sonra da dizin yolunu UserControlDemo <a1>depo gözü</a1> dizini değiştirin.
  4. Aşağıdaki komutu yazın ve sonra bir ortak dil çalışma zamanı proxy'si ve bir Windows Forms proxy açıkça oluşturmaya Aximp.exe çalıştırmak için ENTER tuşuna basın:

    aximp "<FilePath > \Project1.ocx "/out:AxInterop.Project1.dll

    AxInterop.Project1.dll ve Project1.dll bölme dizininde oluşturulur.

    NotFilePath Project1.ocx içeren dizin yolu ile değiştirin.
  5. Için Visual Studio .NET veya Visual Studio 2005 geçiş yapın. Proje) menüsünde Add Reference ' ı tıklatın.
  6. Görüntülenen Başvurusu Ekle iletişim kutusunda Gözat ' ı tıklatın.
  7. AxInterop.Project1.dll ve Project1.dll bulun ve tıklatıp seçin.
  8. ' ı tıklatın ve sonra bu başvuruları Projenize eklemek için Tamam ' ı tıklatın.
  9. Kapatın ve Windows Form Tasarımcısı'nı açın.

    Değiştirilmiş ActiveX kullanıcı denetimi <a0>Windows</a0> formundaki fark Tasarımcısı.

    Not Farklı önceki geçici çözümde, değiştirilmiş ActiveX kullanıcı denetimini hala AxTestControl1 adı verilir. Bu nedenle, gereksiz kod yoktur.
  10. Yapı) menüsünde tıklatın Build Solution.

    Herhangi bir hata almazsınız.
Not Bu adımlar, "Daha fazla bilgi" örnek dayanır bölümü. Bu nedenle, bu görevler için belirtilen varlıkları varlıkları uygulamanız bağlı olarak, projenizdeki farklı olabilir.

Durum

Bu davranış tasarım yüzündendir.

Daha fazla bilgi

Davranışı Yeniden Oluşturma Adımları

  1. Visual Basic 6. 0'ı açın ve sonra bir ActiveX denetimi proje.
  2. Özellikler penceresinde Name için TestControl değiştirin.
  3. Görünüm menüsünde kodu ' ı tıklatın ve sonra aşağıdaki kodu ekleyin:
    Public Sub Method1()
       MsgBox ("Method 1")
    End Sub
  4. Dosya menüsünde Project1.ocx yap'ı tıklatın ve görüntülenen Proje oluştur iletişim kutusunda Tamam ' ı tıklatın.
  5. Visual Studio .NET veya Visual Studio 2005'i açın. Visual Basic .NET, Visual Basic 2005 veya Visual C#. NET'i kullanarak UserControlDemo adlı bir Windows uygulaması oluşturun.
  6. Visual Studio .NET 2003'te tıklatın Ekle/Kaldır Denetim Araç kutusu öğeleriAraçlar menüsünden.

    Visual Studio .NET 2002'de tıklatın Özelleştir araçAraçlar menüsünden.


    Visual Studio'da.2005 tıklatın Seç Toolbox ıtemsAraçlar menüsünden.
  7. COM bileşenleri</a1> sekmesini tıklatın ve sonra da <a2>Gözat</a2>'ı tıklatın.
  8. (Adım 4'te oluşturulan) Project1.ocx bulun ve seçin.
  9. ' ı tıklatın ve sonra da araç kutusuna Project1.TestControl eklemek için Tamam ' ı tıklatın.
  10. Araç kutusunda, Project1.TestControlAxTestControl1 forma eklemek için çift tıklatın.

    AxProject1 ve Project1 başvuru, Başvurular altında UserControlDemo için otomatik olarak görüntülenir.
  11. Yapı) menüsünde tıklatın Build Solution.
  12. Projeyi kaydedin ve Visual Studio çıkın .NET veya Visual Studio 2005.
  13. Visual Basic 6. 0'a geçin ve bir genel olay, yöntem veya özellik için TestControl ekleyin. Örneğin, aşağıdaki kod, TestControl için append:
    Public Sub Method2()
       MsgBox ("Method 2")
    End Sub
  14. Proje menüsünde Project1 Properties ' i tıklatın.
  15. Project1 - proje özellikleri içinde görüntülenen iletişim kutusunda, Bileşen seçmek için tıklatın.
  16. Sürüm uyumluluğu altında İkili uyumluluk tıklatıp seçin ve Tamam ' ı tıklatın.

    Not 14 Bir adım adım 16-kullanıcı ActiveX denetimi recompiling önce İkili uyumluluk seçeneği nasıl açıklayın.
  17. Dosya menüsünde yap Project1.ocx.
  18. Varolan dosyayı değiştirmek isteyip istemediğiniz sorulduğunda, Evet ' i tıklatın.
  19. Visual Studio .NET ve Visual Studio 2005 UserControlDemo açın.

    TestControl1 Windows Form tasarımcısında görünür olduğuna dikkat edin.
  20. Yapı) menüsünde tıklatın Build Solution.

    "Belirtiler" sözü edilen hata aldığınız bölümüne.

Referanslar

Ek bilgi için, Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
316171  (http://support.microsoft.com/kb/316171/EN-US/ )
Daha fazla bilgi için aşağıdaki MSDN Web sitelerini ziyaret edin:
Microsoft ActiveX denetimleri genel bakış
http://msdn2.microsoft.com/en-us/library/ms968501.aspx (http://msdn2.microsoft.com/en-us/library/ms968501.aspx)
Windows Forms ActiveX Denetimi Alıcısı (Aximp.exe)
http://msdn2.microsoft.com/en-us/library/8ccdh774(vs.71).aspx (http://msdn2.microsoft.com/en-us/library/8ccdh774(vs.71).aspx)
Çalışma Zamanı Modülü Çağrı Wrapper
http://msdn2.microsoft.com/en-us/library/8bwh56xe(vs.71).aspx (http://msdn2.microsoft.com/en-us/library/8bwh56xe(vs.71).aspx)
Ikili Visual Basic'te uyumluluk değişiklikleri
http://msdn2.microsoft.com/en-us/library/a6xdzb3y(vs.71).aspx (http://msdn2.microsoft.com/en-us/library/a6xdzb3y(vs.71).aspx)


Bu makaledeki bilginin uygulandığı durum:
  • Microsoft .NET Framework 1.1
  • Microsoft .NET Framework 1.0
  • Microsoft Visual Studio .NET 2003 Academic Edition
  • Microsoft Visual Studio .NET 2003 Enterprise Architect
  • Microsoft Visual Studio .NET 2003 Enterprise Developer
  • Microsoft Visual Studio .NET 2003 Professional Edition
  • Microsoft Visual Studio .NET 2002 Academic Edition
  • Microsoft Visual Studio .NET 2002 Enterprise Architect
  • Microsoft Visual Studio .NET 2002 Enterprise Developer
  • Microsoft Visual Studio .NET 2002 Professional Edition
  • Microsoft Visual Basic 2005
  • Microsoft Visual Basic .NET 2003 Standard Edition
  • Microsoft Visual Basic .NET 2002 Standard Edition
  • Microsoft Visual C# .NET 2003 Standard Edition
  • Microsoft Visual C# .NET 2002 Standard Edition
  • Microsoft .NET Framework 2.0
Anahtar Kelimeler: 
kbmt kbvs2005swept kbvs2005applies kbideproject kbide kbcomctrls kbctrlcreate kbctrl kbcontrol kbcominterop kbprb KB818220 KbMttr
Otomatik TercümeOtomatik Tercüme
ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.
Makalenin İngilizcesi aşağıdaki gibidir:818220  (http://support.microsoft.com/kb/818220/en-us/ )