[C#] Addin in Excel krijgt focus niet van cel af

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Hallo mensen,

ik ben bezig met een addin voor Excel. Deze heeft een knop op een eigen ribbon.
Deze is gemaakt o.a. dmv Addinexpress en flink wat eigen code (C#).

Waar mijn probleem nu zit is het volgende:
Ik heb een Excel.Application object, hiervan wil ik na het klikken op mijn knop de ActivePrinter property wijzigen. Dit werkt, mits je niet op dat moment in een cel aan het typen was, en je op de knop klikt dus zonder eerst op enter of pijltje omlaag te drukken.

Op het moment dat je de cell nog aan het editten bent, en dan via mijn Addin de active printer wilt wijzigen, is de Active Printer property read-only, en is deze niet te wijzigen.

De oplossing is dus (in theorie) simpel, eerst zorgen dat een cell niet meer geëdit word op het moment dat de ActivePrinter gezet word. Dit heb ik geprobeerd op verschillende manieren op te lossen.

De eerste manier is, de eerstvolgende cell (Excel.Range ActiveCell.Next) te selecteren (Range.Select() of Range.Activate()).
Op dat moment, zie je de omlijning van de cell in excel wel verspringen, maar de cursor knippert nog in de cell waar je in eerste instantie aan het typen was. Dus dit werkt niet.

Mijn volgende oplossing was, een SendKeys("{ENTER}",true) te geven, echter is dit ook niet mogelijk. Op het moment van klikken ligt de focus namelijk op de Ribbon, en deze krijg je niet op de ActiveSheet.

Wie heeft er enig idee van een oplossing? Ik kom er niet meer uit...

Acties:
  • 0 Henk 'm!

  • YakuzA
  • Registratie: Maart 2001
  • Niet online

YakuzA

Wat denk je nou zelluf hey :X

Je kan het linksom of rechtsom oplossen:

Je kan de edit proberen te stoppen, ik weet ook niet hoe dat zit bij excel add-ins.
Of je kan de gebruiker een waarschuwing geven dat de functie alleen gebruikt kan worden als hij niet in een cel aan het editen is.

Death smiles at us all, all a man can do is smile back.
PSN


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Linksom kan niet, alleen rechtsom ;)

Het is inmiddels opgelost, wel op een rare manier... je kan aan excel niet vragen of hij in edit mode zit, en in edit mode blokkeert hij dus enige interactie met het object. Heb het op kunnen lossen dankzij het volgende artikel:
http://www.codeproject.com/KB/office/Excel_Edit_Mode.aspx