none
Access Com Zugriff auf .Net Formular Controlstyles Falsch

    Frage

  • Hi,

    habe eine Access Anwendung bei welcher mittels COM  auf eine .Net Klassenbibliothek zugegriffen wird.
    In der Klassenbibliothek ist ein Formular welches zahlreiche Controls hat.
    Die Eingenschaft FlatStyle der Controls ist auf Standard (System), also verwenden alle Controls den Style vom Betriebssystem.

    Mein Betriebssystemstyle ist XP. Tortzdem wird das Formular wenn ich es über Access aufrufe im 2000 (Klassisch) Style angezeigt.

    Wenn ich meine .Net Klassenbibliothek direkt über eine andere .Net WindowsApplikation aufrufen ist der Style richtig XP.
    Das Problem ist unabhängig davon ob ich Access XP, 2003 oder 2007 verwende sowie die Klassenbiblieothek über Verweis einbinde oder CreateObjekt().

    Hat jemand eine Idee wie man dafür sorgen kann, dass der Betriebssystem Style verwendet wird?

    .Net Framwork 3.5



    Donnerstag, 18. Juni 2009 11:17

Antworten

  • Habe endlich die Lösung.

    Access setzt EnableVisualStyle=false als Standard, dadurch sind alle Formulare im 2000(Klassisch) Style.
    Den selben Effekt kann man auch herstellen, wenn man ein zweites WindowsApplication Projekt erstellt und bei diesem die "Visuelle XP-Stile aktivieren" Projekteigenschaft deaktiviert und dann seine Klassenbibliothek aufruft. Die "Parent" Applikation entscheidet also.

    Deswegen muss man die Application.EnableVisualStyles() Funktion aufrufen damit die EnableVisualStyle Eigenschaft im Application Objekt wieder aktiviert wird.


    Imports System.Windows.Forms
    
    Public Class ComClass1
    
        Public Sub OpenForm1() 
    
            'Style setzen
            Application.EnableVisualStyles()
    
            'Formular öffnen
            Dim frm As New Form1
            frm.Show()
    
        End Sub
    
    End Class

    Hoffe es hilft jemandem weiter.
    Sonntag, 28. Juni 2009 11:10