![]() |
How to delete the controls in a CommandBarPopup?
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 |
How to delete the controls in a CommandBarPopup?
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 |
All times are GMT +1. The time now is 12:35 PM. |
Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 2.4.0
Copyright ©2004-2006 OutlookBanter.com