[python-win32] Excel - accessing a control's properties in an event
Sriram Sundararajan
sriram.sundararajan at gmail.com
Tue May 13 19:49:47 CEST 2008
> Sriram Sundararajan wrote:
> >I have a question on the excelAddin.py sample in the win32com\demos folder.
> >
> > We create a Tool Bar, add a button to it,
> > btnMyButton = cbcMyBar.Controls.Add(Type=constants.msoControlButton,
> > Parameter="Greetings")
> >
> > 'register' the button with the ButtonEvent class,
> > btnMyButton=self.toolbarButton = DispatchWithEvents(btnMyButton,
> > ButtonEvent)
> >
> > and set a couple of properties.
> > btnMyButton.Caption = "&Python"
> > btnMyButton.TooltipText = "Python rules the World"
> >
> > In the OnClick event handler of the ButtonEvent class,
> > class ButtonEvent:
> > def OnClick(self, button, cancel):
> >
> > 1. How is the 'button' argument related to the actual button that was
> > clicked? It showed up as a PyIDispatch object when I tried printing
> > it.
> > 2. Assuming there is more than one button that can be clicked, how
> > would I access some of the properties of the button instance that was
> > actually clicked by the user?
> >
> > Thanks
> > Sriram
>
> You can use win32com.client.Dispatch(button) to get a wrapped
> object that exposes all the properties of the button.
> This will allow you to access the Caption, TooltipText, or any
> other property you need to identify the button.
>
> Roger
Roger,
Thanks for the answer. I could've sworn I tried that.. but it works
like a charm now!
Sriram
More information about the python-win32
mailing list