def METHOD_NAME(self, evt):
    if getattr(evt, 'empty', False):
        self.statusbar.SetLabel("Missing value for %s." % evt.control.GetName())
    else:
        self.statusbar.SetLabel("Invalid value for %s." % evt.control.GetName())
    # Currently, some controls have the same name/label (e.g. the exposure time
    # and bleach compensation for a wavelength have the same name, because the
    # controls are generated by the same utility function, so highlight the
    # problem by colouring it red, then reset the colour with a one-shot event
    # handler when the control receives focus.
    evt.control.SetBackgroundColour('red')
    evt.control.Refresh()
    # Need to create a ref to the control, because wx will delete the C object for
    # evt after we return fro, this call.
    ctrl = evt.control
    ctrl.Bind(wx.EVT_SET_FOCUS, lambda null: [ctrl.SetBackgroundColour(''),
                                              ctrl.Unbind(wx.EVT_SET_FOCUS)])