Laden...
S
Stu42 myCSharp.de - Member
Softwareentwickler Aus dem Norden Dabei seit 15.10.2006 506 Beiträge
Benutzerbeschreibung

Forenbeiträge von Stu42 Ingesamt 506 Beiträge

30.07.2007 - 16:13 Uhr

Hi,

also ich habe mir im DC ein abstraktes Blatt Papier gemacht. Dort sind nun grafische Elemente drauf. Nun will ich das, was auf dem Blatt Papier ist, auf ein Blatt drucken. Also male ich es auf den Druckerkontext.

Also was ich machen will, ist praktisch mein Blatt Papier zu Disignen und dann drucken. Wenn ich mir im DIsigner doch nun einen Text mit der größe 12 Punkt erstelle, dann ist es mir egal wie groß er im Disigner dargestellt wird, hauptsache er ist 12 Punkt auf dem Blatt Papier.

Also ich mein Blatt das original.
Mir fehlt irgentwie nun der Skalierungsansatz. Also ich denke am einfachsten wäre es, ich platziere die Element in Originalgröße auf meinen Druckerkontext, und zeige sie verkleinert/vergrößert im Disigner an.

Der Skalierungsfaktor von "Grafics" heißt ja PageScale, aber dieser Funktioniert im Paint irgentwie nicht, bzw nur dann, wenn ich die PageUnit ändere.

Also wie würde man sein Problem lösen, etwas zu Disignen , und dann in Originalgröße zu drucken?

Gruß Stu

30.07.2007 - 15:29 Uhr

oh das ging schnell 🙂 - vielen dank

30.07.2007 - 15:11 Uhr

Moin, ich möchte ne ComboBox mit schriftarten haben.

Aber wie rufe ich die Schrifarten ab? In dem Order Windows\Font sind die ganzen Dateien ja drin. Aber wenn ich die dort abrufe, bekomme ich ja nur den Dateinamen, und nicht den Font namen.

Das .NET Framework hat doch bestimmt auch irgentwas um die Schriftarten abzurufen oder?

Gruß Stu

30.07.2007 - 15:09 Uhr

ah, der Editor ist gut. Danke.

30.07.2007 - 11:54 Uhr

Hallo,

ich hab nen Control auf einer Form. Nun möchte ich das verschieben. Also frage ich die Event von dem Control ab (MouseDown & MouseMove) und verschiebe es.

Problem: Ich muss wärend des ziehens alles neu zeichnen. ALso sage ich Invalidate(). Da die Maustaste aber noch auf dem Control gedrückt ist, werden in meiner übergeordneten Form keine Events mehr bearbeitet.

Wie löse ich das Problem? Gibt es eine Möglichkeit dennoch die Event abzuarbeiten?

gruß Stu

30.07.2007 - 11:50 Uhr

ja die Transparents nimmer immer den hintergrund an.... beim verhschieben wurd der natrülich mit genommen.

Hast du mal Probiert alles neu zu zeichenen?

Also Invalidate(true) oder Update()

28.07.2007 - 15:58 Uhr

ja das soll ja eine markierung sein, mit der man das objekt verschieben, drehen, etc... kann. da wird ein rotes recheck nicht ausreichen

Und was ist wenn 2 objecte scher überschneiden? ich muss ja jede markierung sehen können.

Werden die untergeordneten controls eigentlich mit "base.OnPaint" gezeichnet?

EDIT: Nein werden sie nicht.

EDIT: Nochmal zum abschluss: Es geht wirklich nicht so ohne weiteres. Selbst mit dem FormDC nicht.

28.07.2007 - 10:46 Uhr

ja aber wie mache ich das dann am besten? Also das mit Markierung.

Ich hab eine UserControl, auf dem auf wider Controls sitzen. Und damit bin ich wieder beim altern Problem mit dem "über ein Control zeichnen".

Kann ich mir nicht irgenteinen DC hohlen, der übergeordnet ist? Zur not halt den DesktopDC auch wenn das dirty ist....

27.07.2007 - 14:44 Uhr

wo ist eigentlich das Problem, wenn sich nen neuen DC erstellt, um dann drauf zu zeichnen?

z.B. so:


Graphics g =  Graphics.FromHwnd(this.Handle);
s.Draw(g);
g.Dispose();

Ich meine klar ist das schlecht wenn ich an jeder Programmecke nen dc erstelle...
aber wenn ich es nur für meine Selektionen benutzt, hat es dann Nachteile?

EDIT: ach mist, der fenster DC wird auch unter einem control gezeichnet

Gibt es eine Möglichkeite vom Paint aus einen Control heraus über seine gerenzen zu zeichnen?

27.07.2007 - 14:16 Uhr

dann müsste ich jedes control aber künstlich größer machen. Und wenn sich 2 Controls dann überschneiden sieht es schlecht aus.

Kann man nicht írgentwie auf die Zeichenfolge draufzugreifen?

Oder sich nen DC ausserhalb des Paint Events hohlen?

27.07.2007 - 13:58 Uhr

Hallo,

ich habe in Control, und möchte um dieses eine Selection zeichnen.

Problem: Das Paint event der Form auf der die Controls sitzen wird als erstes aufgerufen, bevor die Controls ins Paint kommen.

Das hat zur folge das meine Selection übergemalt wird.

Gibt es eine möglich im übergeordneten Kontext über ein Contol zu zeichnen?

Gruß Stu

27.07.2007 - 13:55 Uhr

deine textur wird dir also automatisch an deinem Rechteck angepasst...

mhh... du hast doch die große der Recheckes oder? Dann kannste dir doch einfach ausrechnen wo die objecte liegen müssen.

Musst halt die Matrix der Meshobjecte so Transformieren, das es für jeden object passt.

27.07.2007 - 09:58 Uhr

Hallo,

ich muss mich gerade mit den Drucken herumschlagen, und da habe ich einige Frage.

Ich möchte erst einmal ein maximales Recheck drucken. Also ein Rechteck , was mir den möglichen zu bedruckenden bereich angibt.

   
void a_PrintPage(object sender, PrintPageEventArgs e)
        {
            Graphics g = e.Graphics;
            g.PageUnit = GraphicsUnit.Display;
            Pen pen = new Pen(Color.Black);

            g.DrawRectangle(pen, e.PageSettings.PrintableArea.Left,
            e.PageSettings.PrintableArea.Top,
            e.PageSettings.PrintableArea.Right,
            e.PageSettings.PrintableArea.Bottom);
        }

Wenn ich aber nun drucke, dann wird das Recheck rechts und unten abgeschnitten!

Woran liegt das? Wie macht man es richtig?

Gruß Stu

24.07.2007 - 15:01 Uhr

Moin,

ich hatte eben das Problem, dass ich mit diesen Excel-Adressierungen (z.B. AA5) rechnen musste. Da ich keine Convertierungsroutinen gefunden habe, hab ich meine eigenen schnell geschrieben.

Also, wer das selbe Problem hat:

string NumberToExcelNumeration(int n)
        {
            string ExcelAdress = "";
            int rest = n;
            do
            {
                if (rest <= 26)
                {
                    ExcelAdress += (char)((byte)'A' + rest - 1);
                    break;
                }
                if ((int)(rest / 26) != 0)
                {
                    ExcelAdress += (char)((byte)'A' + (byte)(rest / 26 - 1));
                    rest = rest - (int)(rest / 26) * 26;
                }
                else
                    break;
            }
            while (rest != 0);
            return ExcelAdress;
        }
        void ExcelNumerationToNumber(string ExcelAdress, out int nColumnCount, out int nRowCount)
        {
            string Column = "", Row = "";
            nColumnCount = 0;
            nRowCount = 0;
            //split the chars from the numerics
            for (int i = 0; i < ExcelAdress.Length; i++)
            {
                if (!IsNumeric(ExcelAdress[i]))
                    Column += ExcelAdress[i];
                else
                    Row += ExcelAdress[i];
            }
            //Convert the Column to int
            int nValue = 1, nPosition = 1;
            for (int i = Column.Length - 1; i >= 0; i--, nPosition++)
            {
                nColumnCount += ((byte)Column[i] + 1 - (byte)'A') * nValue;
                nValue = 26 * nPosition;
            }
            //convert the row
            nRowCount = int.Parse(Row);
        }

        bool IsNumeric(char c)
        {
            if( (byte) c >= (byte) '0' && (byte) c <= '9')
                return true;
            else
                return false;
        }

Diese Funktionen sind recht Fehleranfällig, also sollte man bitte nur Großbuchstaben nehmen. Und immer erst Buchstaben und dann Zahlen angeben.

Gruß Stu

24.07.2007 - 10:14 Uhr

ich habs schon gelöst. Mann muss den string mit FreeHGlobal löschen, und nicht mit FreeBSTR.

24.07.2007 - 09:58 Uhr

Hallo,

ich convertiere einen .NET String in einern elementaren string mittels Marshal.StringToHGlobalUni um. Was die Funktion mir zurück gibt ist ein IntPtr.
Da ich aber einen Elementaren string haben will, convertiere ich den IntPtr zu einem Zeiger (IntPtr.ToPointer()).

Nun meine Frage:

Muss ich den von StringToHGlobalUni zurück gegeben String wieder löschen mit Marshal.FreeBSTR ? Oder übernimmt das der Garbage Collector?

Bis jetzt habe ich den string immer mit FreeBSTR gelöscht. Gab auch keine Fehler. Doch nun hab ich meine DLL in ein Office 2007 AddIn Project eingebunden, und Excel stürtzt bei dem aufruf von FreeBSTR ab. Ich kann die Exception nicht einmal abfangen die von FreeBSTR ausgelöst wird - das Programm stürtzt gleich ab.

Gruß Stu

23.07.2007 - 10:25 Uhr

mit msoButtonIconAndCaptionBelow wird das Bild auch einfach links neben dem Text gezeichnet.

Ich hab auch schon alle Styles durch. Nen großes Bild ist da aber nicht dabei.

Von Ribbons habe ich keine Ahnung, und ich denke es lohnt sich nicht , mich da noch reinzufuchsen. Da ich ja nur nen Button brauche, von dem ich dann mit den gewöhnten Forms weiter machen kann.

23.07.2007 - 09:49 Uhr

also mit eine ToolBar bin ich schon zufrieden.

Ich hab da auch schon nen sample:

[php]private void AddToolbar()
{
try
{
commandBar = Application.CommandBars["Test"];
}
catch (ArgumentException e)
{
// Toolbar named Test does not exist so we should create it.
}

        if (commandBar == null)  
        {  
            // Add a commandbar named Test.  
            commandBar = Application.CommandBars.Add(&quot;Test&quot;, 1, missing, true);  
            commandBar.Name = &quot;hallo&quot;;  
        }  
        try  
        {  
            // Add a button to the command bar and an event handler.  
            firstButton = (Office.CommandBarButton)commandBar.Controls.Add(1, missing, missing, missing, missing);  

            firstButton.Style = Office.MsoButtonStyle.msoButtonIconAndCaption;  
            firstButton.Caption = &quot;button 1&quot;;  
            firstButton.Tag = &quot;button1&quot;;  
            firstButton.Picture = getImage();  
            firstButton.Click += new Office._CommandBarButtonEvents_ClickEventHandler(ButtonClick);  

            // Add a second button to the command bar and an event handler.  
            secondButton = (Office.CommandBarButton)commandBar.Controls.Add(1, missing, missing, missing, missing);  

            secondButton.Style = Office.MsoButtonStyle.msoButtonCaption;  
            secondButton.Caption = &quot;button 2&quot;;  
            secondButton.Tag = &quot;button2&quot;;  
            secondButton.Picture = getImage();  
            secondButton.Click += new Office._CommandBarButtonEvents_ClickEventHandler(ButtonClick);  

            commandBar.Visible = true;  
        }  
        catch (ArgumentException e)  
        {  
            MessageBox.Show(e.Message);  
        }  
    }  


    // Handles the event when a button on the new toolbar is clicked.  
    private void ButtonClick(Office.CommandBarButton ctrl, ref bool cancel)  
    {  
        MessageBox.Show(&quot;You clicked: &quot; + ctrl.Caption);  
    }[/php]  

Nun hab ich aber noch ne Frage. Ich möchte so einen Button haben, der so aussieht wie die anderen. Also ein großes bild, und darunter Text.

Mein jetziger code macht mir aber nur Text, mit nem kleinen Icon davor;

Ist das ne anderen Buttonklasse?

19.07.2007 - 14:49 Uhr

ah ja danke. Mit dem Beispielen aus der MSDN klapps. !

19.07.2007 - 14:41 Uhr

danke erstmal für deine antwort.

also wenn ich das richtig verstehe, dann ist :

 this.Application.CommandBars

das Hauptmenü.

und wenn ich nun ne Bar da einfügen will, wie im Beipiel dann mache ich:

 Office.CommandBar oCommandBar =  this.Application.CommandBars.Add("test", missing, missing, missing);

aber das gibt ne Exception, was mache ich falsch?

//Edit: ich werde mich erstma durch die neuen Tutorial lesen.

19.07.2007 - 14:12 Uhr

Moin,

hab mir eben Excel 2007 installiert. Mit Excel 2007 werden die COM AddIns auch bei mir geladen.

Nun sitze ich aber hier vor mein VSTO, und meine rechte Augenbraue fängt wieder an zu zucken, dabei will ich doch nur nen einfach knopf in die Menübar einbauen, damit ich von da an weiter in meinen Forms weiter machen kann.

Aber ich habe im Forum auch kein vollständiges Beispiel gefunden. Und in der Bibliothek wird man auch nicht schlau, da alles object´s sind.....

Also, wenn jemand weiß, wie man in einem Excel Add-In nen Knopf in diese obere Menübar einbaut, dann möge er/sie mir bitte helfen.

Nen tutorial wäre auch fein.

Danke schon im voraus.

Gruß Stu

16.07.2007 - 12:22 Uhr

ja habe ich. Im GAC sind meine Assamblys aber gar nicht verzeichnet, muss ja auch nicht sein, da sie aus dem selber Ordner geladen werden.

16.07.2007 - 09:48 Uhr

Hallo,

ich habe auf meinem Entwicklungsrechner mein "VS2005" auf "VS2005 SP1" geupdatet (und die MS Office PIA´s aber daran wird das folgende Problem ja nicht liegen).

Das Programm läuft auch auf einem Testrechner. Auf dem sind logischerweise auch die Programmdatein drauf. Nun hab ich bei einem Update immer die Dateien von meinem Entwicklungsrechner immer auf den Testrechner kopiert.

Hat bis jetzt auch immer geklappt. Doch seit dem ich das SP1 installiert habe, kann ich mein Update nicht mehr auf dem Testrechner ausführen, da meine Assamblys nicht mehr gefunden werden, obwohl sie in dem selben Ordner sind.

Ich habe aber auch alles mit dem VS05 SP1 compiliert.

Kennt jemand das Problem? Wie kann ich es lösen?

Gruß Stu

12.07.2007 - 15:20 Uhr

so ein Event ist mir nicht bekannt. Aber du kannst die ne Api importieren, die dir Fenster mit dem Focus zurück gibt. Wenn du das dann einen Timer machst, der meinetwegen jede Sekund das TopWnd abfragt, dann hast du praktisch dein event.

Die funktion heißt irgentwas mit GetWindow , da kannste dann ne FensterID angeben. Glaube es müsste aber auch ne Funktoin geben, die heißt GetTopWindow.

12.07.2007 - 09:52 Uhr

ok habs gefunden, bin beim schreiben drauf gekommen.

 void EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
        {
            dgv.EditingControl.KeyUp += new KeyEventHandler(EditingControl_KeyUp);  
        }
12.07.2007 - 09:41 Uhr

Hallo,

also wenn man in einem DGV eine Zelle Editiert, möchte ich ein gerne ein KeyUp Event haben.

Das KeyUp-Event vom DGV bezieht sich aber nur auf das DGV selbst. D.h wenn ich gerade am Editieren bin, bekomme ich keine KeyUp Event mehr.

Ich hab auch schon probiert, in einem geerben DGV Control das KeyUp Event direkt in der WndProc abzufangen - erfolglos. Es schein so, also würde das DGV zum editieren einer Zelle eine Editboxen erstellen, welche logischerweise auf ghetrennt Events empfängt.

Also, gibt es eine Möglichkeit ein KeyUp Event zu bekommen, wärend man am editieren ist?

Wozu ich das Event brauchte?

Wenn man beim editieren z.b. F8 drückt, soll er in die nächste Zeile gehen, und die alten werden kopieren/inkrementieren.

Gruß Stu

12.07.2007 - 09:05 Uhr

mhh dann gibts die *.ncb dateien wohl nur bei c++ projekten. Sind deine Dateien vieleicht schreibgeschützt? Kahm das Problem einfach so? oder hast du vorher was bestimmtes gemacht?

12.07.2007 - 08:38 Uhr

in deinem Ordner, wo das Projekt ist, ist auch eine *.ncb dabei, lösch diese mal, und starte das Projekt neu. (Behalte die Datei aber da, wo du sie noch zur Not zurückkopieren kannst)

11.07.2007 - 13:17 Uhr

Write, und ReadWrite zugriff sind immer Exklsive, D.h nur eine Klasse kann darauf zugreifen.

Wenn die datei bereits als Write/ReadWrite geöffnet wurde, schkägt ein öffnen fehl.

11.07.2007 - 13:15 Uhr

und dann brauchst du auch noch die Adresse in der Dll , wo die Datei anfängt, und die länge...

10.07.2007 - 19:16 Uhr

bei aufleiten wird immer eine konstante hinzuaddiert, weil die gleichung sonst nicht vollständg ist, d.h sie konnte doch mathe!!!

10.07.2007 - 15:50 Uhr

meine Brötchen werden auch Erprogrammiert. X( Und zwar in C#, C/ C++. Halt der Ganze Microsoft Heckmeck.

10.07.2007 - 15:37 Uhr

ahhh bei dem FolderBrowserDialog heit die Eigenschaft : RootFolder

also fbd.RootFolder = "C:&quot;

10.07.2007 - 15:32 Uhr

ahso, das heißt du ziehst die PicuteBox ausßerhalb den rändern vom UserControl.

Gut, dann musst du halt den Linken und den Oberen Rand kleiner machen, und den rechten und den unteren größer

Was du aber machst, ist das du alles mal den Facktor nimmst, das heißt du macht es nicht größer, sondern du verschiebst es.



 Width = (double)this.myPictureWidthWithoutZoom * myActualZoom;
 Height = (double)this.myPictureHeightWithoutZoom * myActualZoom;
 
//hier.... Top und Left muss halt auch kleiner werden
 //Top = (double)this.myPictureTopWithoutZoom * myActualZoom;
//  Left = (double)this.myPictureLeftWithoutZoom * myActualZoom;


10.07.2007 - 15:11 Uhr

also, wenn ich das richtig verstehe, dann hast du einmal ein Rechteck, welches die Ursprungsgröße angibt.

Ursprungsgröße = 100%

Und du willst jetzt zoomen, in dem du einen Faktor angibst, wie z.B. 110%?

So wie ich das sehe, zoomt die PictureBox automatisch, wenn man kleine Propertionen vom bild angibt, richtig?

D.h du musst dein Originalrechteck verkleinern, proportional zum Zommfaktor, und es dann neu der PictureBox zuweisen, richtig?

Hast du dabei beachtet, das du den Linken rand größer machen musst, und den rechten kleiner? (Oben und unten natürlich genau so)

10.07.2007 - 14:47 Uhr

also weiß nicht wie is im .NET framework ist, aber in der API ist es so, das wenn du Accept machst, das die Verbindung weiter gegeben wird.

D.h eine Verbindung kann nur einmal weitergegeben werden. Wenn du 2 mal Accept machst, dann wird sich das nächste object wohl die nächste verbindung beziehen, welche du natürlich seperate vewalten kannst.

10.07.2007 - 14:35 Uhr

hast es mal mit SelectedPath probiert? Den must du setzen, bevor du showdialog machst.

Bei den anderen Dialogen heißt die eigenschaft: InitialDirectory

10.07.2007 - 14:27 Uhr

geht nicht. Environment.SpecialFolder sind standard Pfade, wie "Eigene Dateien" oder "Arbeitsplatz".

Was willst du denn machen,möchstest du einen Startpfad setzen?

10.07.2007 - 14:18 Uhr

ich glaube das wenig Leute zeit haben sich durch deinen Code zu suchen, es wäre schon hilfreich wenn du einen Auszug aus deinem Code hier posten würdest, bei dem das gezoome schief geht.

10.07.2007 - 13:55 Uhr

da machste es dir aber kompliziert. Warum nimmste überhaupt ne picturebox , kann die schon zoomen?

Mach die doch einfach nen Normales UserControl, und Zeichne da dein Bitmap drauf.

Wären bestimmt nur 100 zeilen oder so. Das gezoome ist ja nur nen bischen 3-Satz.

10.07.2007 - 12:21 Uhr

dein Problem ist folgendes. Es gibt keine Transperanz.

Wenn du dein Control auf Transparent stellt, dann nimmt es bei der erstellung den Hintergrund das darunterliegenden Bitmaps an.

D.h du musst auf die Reinfolge beachten.

//Edit:
Oder du Invalidierst in der richtigen reinfolge.

10.07.2007 - 12:11 Uhr

also ich hab mich vieleicht weiter oben etwas missverstädnlich ausgedrückt.

Also: Bei der orthogonalen Matrix wird das Bild vorne schmäler. Bei der "Normalen" aber nicht.

Was ich jetzt eigentlich brauche, wäre eine kombination aus beiden.
D.h bei einer Draufsicht (von oben) möchte ich die Orthogonale Projektionsmatrix nehmen, und sonst die "Normal".

Und bevor ich mich nun an die Arbeite mache, würde ich gerne wissen ob mein folgendes vorhaben überhaupt funktionieren kann.

Also wenn die Kamera weiter hoch geht, möchte ich meine "normale" Matrix immer mehr zu der Orthogonalen zurechnen.

Konkret:

Ich errechne mir am Start meine Normale Matrix, und meine Orthogonale Matrix. Dann errechne ich mir eine Inkement-Matrix, also eine Matrix die X mal auf die Normale Matrix drauf addiert, die Orthogonale-Matrix ergibt. Bei Steigender Kamera errechne ich mir dann mit der Y Position und dem Drei-Satz die aktuelle Projektionsmatrix.

Könnte mein Vorhaben klappen? Würden da dann vernümpftige Projektionen rauskommen?

09.07.2007 - 23:06 Uhr

also mit GDI+ willst du doch bestimmt 2D sachen zeichnen oder? Und Messdaten werden ja in der Regel nach einer logik aufgenommen, wie z.B. 2 Datenpunkte pro sekunde.

Also das heißt, du kannst dir die Punkte ganz einfach errechnen, die wirklich auf den bildschirm passen.

09.07.2007 - 14:25 Uhr

ah danke, orthogonal ist gut.

Aber orthogonal ist speziel für Draufsichten oder? Denn bei einer Draufsicht sieht es auf wie ein rechteck, also nicht gekrümmt.

Aber sobalt ich die ansicht ändere, verläuft es spitz nach vorne (siehe bild). Aber das scheint wohl so zu seien bei der orthogonalen.

Um dieses Problem zu lösen, müsste man wohl bei steigender Kamera die "normale" matrix immer stärker mit einer orthogonal Matrix verrechnen.

Oder gibs da noch eine anderen Art?

09.07.2007 - 12:16 Uhr

ja das kann man sogar schon, man kann die Ansicht drehen und verschieben. Aber du weißt ja sicherlich wie das ist... der User dreht und kommt auf diese Kamera position, dann ruft er an, und meckert das die Berge auseinander gehen 8o weil er die Perspektive nicht vertseht.

Ich werde mir mal die anderen Projektionsmatrizentypen anschauen.

09.07.2007 - 11:09 Uhr

Hallo,

im Ahnang befindet sich ein Screenshot von einer 3D Ansicht von Messdaten. Diese Messdaten ergeben solche Berge. Durch die Perspeltive sieht es bei mir aber so aus, als würden diese "Berge" auseinander gehen, was für die feinen Herren und Damen der Chemie natürlich total falsch ist...

Diese Einstellung der Ansicht sollte sich doch durch die Projektionsmatrix einstellen lassen oder?

Die Aktuelle Projektionsmatrix:


device.Transform.Projection = Matrix.PerspectiveFovLH((float)Math.PI / 4, this.Width / this.Height, 1f, 250f);

Natürlich hab ich schon probiert den ersten Parameter von PerspectiveFovLH zu ändern. Die Ansicht ändert sich zwar, aber das Problem, das die Berge auseinander gehen bleibt.

Fällt jemand eine Lösung des Problem ein?

Gruß Stu

09.07.2007 - 09:35 Uhr

Ich hab hier gerade was bei MS gefunden, was vieleicht etwas mit Problem zutun haben könnte.

VSTO 2005 SE kann über jede der folgenden Versionen von Visual Studio 2005 installiert werden:

Visual Studio 2005 Professional*
Visual Studio 2005 Team Suite
Visual Studio 2005 Team Edition for Software Architects
Visual Studio 2005 Team Edition for Software Developers
Visual Studio 2005 Team Edition for Software Testers
Visual Studio 2005 Tools for the Microsoft Office System

* Hinweis: Wenn Sie über Visual Studio 2005 Professional installieren, werden weder Anpassungen auf Dokumentebene noch andere Funktionen installiert, die zur Vollversion von Visual Studio 2005 Tools for Office (VSTO 2005) gehören. VSTO 2005 SE fügt nur die auf Anwendungsebene wirksamen Features hinzu, die weiter oben unter "Besondere Features" aufgeführt sind.

Also ich arbeite mir Visual Studio 2005 Professional . Das heißt also ich kann nicht diesen Grafischen Editor benutzen? Ich dachte das die Professional-Version die höchste von allen sei. Aber so wie es aussieht ist Team Suite noch höher.

Benutzt ihr alle die VS 2005 Team Suite? Wird das AddIn da zu einer *.xla - Datei übersetzt?

Aber nichts deso trotz muss das VSTO doch ein AddIn compilieren was sich im Office 2003 ausführen lässt! Es kann doch nicht sein, das ich das compilierte Add-In(*.dll warum auch immer) nicht laden kann.

06.07.2007 - 22:21 Uhr

shared Add-In`? keine ahnung, ich hab so nen Office-Excel Projekt gemacht.

Also, ich hab in den StartUp event Handler ne MessageBox eingebaut, da diese nicht erscheint, gehe ich davon aus , das es nicht geladen ist.

Außerdem habe ich im Debugger auch keinen Einstiegspunkt, was auch heißt, das es nicht geladen ist.

Müsste ein Excel Add-In nicht auch die Endung *.xla , und nicht *.dll haben?

06.07.2007 - 16:00 Uhr

wenn ich es ausführe, wird automatisch Excel geöffnet. Aber das Add-In wird nicht geladen.

Und manuell kann ich es auch nicht in Excel Laden. Beim laden des Add-In´s (Welches mir als DLL compiled wird) kommt eine Meldung :"Ungültiges Add-In".

Das kann aber eigentlich nicht sein, ich habe Office 2003 , und ich habe auch ein 2003er Add-In erstellt. 🤔

06.07.2007 - 15:23 Uhr

Hallo,

ich hab die FAQ natürlich gelesen, aber dennoch habe ich einige grundlegende Fragen.

Ich habe VS2005 SP1 und VSTO.

Nun hab ich mir ein Office 2003 Projekt erstellt.
In der Projektmappe sind standardmäßg ein Installations-Projekt, sowie das Excel Add-In Projekt.

In dem Excel Projekt ist eine Datei, die heißt: Excel.
Untergeordner diese klasse ist meine Partial Class, in der ich wohl meinen Code unterbringe.

Jetzt komme ich zum eigentlich "Problem". Das Compilat, was ich herausbekomem ist ja eine *.DLL, welches wohl das Add-In sein wird.

Aber wie kann ich dieses Add-In in Excel(2003) laden? Wenn ich in Excel 2003 auf Extras - AddIns klicke, um dort meine Dll zu laden, bekomme ich eine Fehlermeldung, das es kein Addin sei.

Ist das denn überhaupt richtig das ich eine DLL als compilat bekomme?
Was mache ich falsch?

Gruß Stu