Is Explorer.FolderSwitch the best event for hiding commandbarbutton?

T

tneslony

Greetings all,

I recently developed an outlook addin that adds a button to the
command bar. I need to hide this when not viewing emails. I took the
following strategy to do so:

Private Sub m_olExplorer_FolderSwitch()
Select Case m_olExplorer.CurrentFolder.Name
Case "Inbox"
objCommandBarButton.Visible = True
Case Else
objCommandBarButton.Visible = False
End Select
End Sub

The problem is that there is quite a bit of flicker (looks horrible).
The commandbar appears, then the Folderswitch event fires, then the
button is (re)enabled. It appears that everything else is occuring at
an earlier event... Any ideas?

-Tim
 
T

tneslony

Hi Ken,

Thank you for your quick reply. I tried using the BeforeFolderSwitch
event, however I can't seem to figure out which folder will be
selected next. The m_olExplorer.CurrentFolder.Name returns (as one
would expect) the current folder.

Just to give you some background, I'm trying to hide or disable a
commandbarbutton when not viewing email (i.e. hide for calendar,
tasks, journal, etc...). Sorry if this a backwards method for
accomplishing this task. Can you suggest a better strategy?

PS: Thank you very much for sharing your VB6 template... It has made
learning Outlook programming a much more pleasant experience.

-Tim


Use Explorer.BeforeFolderSwitch().

--
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


Greetings all,
I recently developed an outlook addin that adds a button to the
command bar.  I need to hide this when not viewing emails.  I took the
following strategy to do so:
Private Sub m_olExplorer_FolderSwitch()
   Select Case m_olExplorer.CurrentFolder.Name
       Case "Inbox"
           objCommandBarButton.Visible = True
       Case Else
           objCommandBarButton.Visible = False
   End Select
End Sub
The problem is that there is quite a bit of flicker (looks horrible).
The commandbar appears, then the Folderswitcheventfires, then the
button is (re)enabled. It appears that everything else is occuring at
an earlierevent...  Any ideas?
 
T

tneslony

And sorry for the double post... Didn't realize that I'd already done
so. I appreciate your support.

-Tim

Use Explorer.BeforeFolderSwitch().

--
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




Greetings all,
I recently developed an outlook addin that adds a button to the
command bar.  I need to hide this when not viewing emails.  I took the
following strategy to do so:
Private Sub m_olExplorer_FolderSwitch()
   Select Case m_olExplorer.CurrentFolder.Name
       Case "Inbox"
           objCommandBarButton.Visible = True
       Case Else
           objCommandBarButton.Visible = False
   End Select
End Sub
The problem is that there is quite a bit of flicker (looks horrible).
The commandbar appears, then the Folderswitch event fires, then the
button is (re)enabled. It appears that everything else is occuring at
an earlier event...  Any ideas?
-Tim- Hide quoted text -

- Show quoted text -
 
K

Ken Slovak - [MVP - Outlook]

The VB6 signature of that event is:

BeforeFolderSwitch(NewFolder As Object, Cancel As Boolean)

NewFolder is the MAPIFolder that will be switched to, so just use that.
NewFolder.Name will return the name of the new folder.

If you set Cancel = True that will prevent the switch from occurring. If you
set it False or don't touch it at all the switch will occur.




Hi Ken,

Thank you for your quick reply. I tried using the BeforeFolderSwitch
event, however I can't seem to figure out which folder will be
selected next. The m_olExplorer.CurrentFolder.Name returns (as one
would expect) the current folder.

Just to give you some background, I'm trying to hide or disable a
commandbarbutton when not viewing email (i.e. hide for calendar,
tasks, journal, etc...). Sorry if this a backwards method for
accomplishing this task. Can you suggest a better strategy?

PS: Thank you very much for sharing your VB6 template... It has made
learning Outlook programming a much more pleasant experience.

-Tim
 
T

tneslony

Thank you so much Ken! Worked exactly as you described. Have a great
week.

-Tim
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top