![]() |
If this is your first visit, be sure to check out the FAQ by clicking the link above. You may have to register before you can post: click the register link above to proceed. To start viewing messages, select the forum that you want to visit from the selection below. |
|
|
Thread Tools | Search this Thread | Display Modes |
#1
|
|||
|
|||
![]()
Hi,
I am developing a C# COM add-in for MS Office 2003 and 2007. My add-in creates a custom command bar with a CommandBarPopup menu containing several CommandBarPopup submenus populated with CommandBarButton objects. Upon user click on some buttons, I'd like to perform 'refresh' on the submenus i.e. delete the buttons and re-create them. I am doing so using the following code: for (int index = 1; index = popup.Controls.Count; index++) { popup.Controls[index].Delete(1); index--; } This works for all buttons except the one that was actually clicked, for it a COMException with message "Error HRESULT E_FAIL has been returned from a call to a COM component" is thrown. Am I not allowed to delete this button because it has just been clicked, and what other options do I have - delete the whole popup? Thanks for all advice, Teodora Gancheva |
Ads |
#2
|
|||
|
|||
![]()
It would be logical that you couldn't delete a button during its Click()
event. Think about it. If you really want to do what you're doing then set a timer in the Click() event that will fire after that event is completed, then do your refresh in the timer event handler. Just make sure the timer thread is the same or marshalled to the main thread. -- Ken Slovak [MVP - Outlook] http://www.slovaktech.com Author: Professional Programming Outlook 2007. Reminder Manager, Extended Reminders, Attachment Options. http://www.slovaktech.com/products.htm "Teodora Gancheva" wrote in message ... Hi, I am developing a C# COM add-in for MS Office 2003 and 2007. My add-in creates a custom command bar with a CommandBarPopup menu containing several CommandBarPopup submenus populated with CommandBarButton objects. Upon user click on some buttons, I'd like to perform 'refresh' on the submenus i.e. delete the buttons and re-create them. I am doing so using the following code: for (int index = 1; index = popup.Controls.Count; index++) { popup.Controls[index].Delete(1); index--; } This works for all buttons except the one that was actually clicked, for it a COMException with message "Error HRESULT E_FAIL has been returned from a call to a COM component" is thrown. Am I not allowed to delete this button because it has just been clicked, and what other options do I have - delete the whole popup? Thanks for all advice, Teodora Gancheva |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Thread Starter | Forum | Replies | Last Post |
Text centered in CommandBarPopup (not left-aligned) | Diego | Outlook and VBA | 3 | April 13th 09 06:44 PM |
How to Monitor Click event of a CommandBarPopup | n777krish | Outlook and VBA | 1 | December 3rd 07 01:54 PM |
CommandBarPopup event? | Robert G. Schaffrath | Add-ins for Outlook | 1 | October 8th 07 04:21 PM |
load CommandBarPopup | jim | Add-ins for Outlook | 0 | February 15th 06 06:13 PM |
Adding CommandBarPopup into the a specific Inspctor | Michael Reukauff | Add-ins for Outlook | 7 | January 26th 06 08:07 AM |