What conditions prevent PerformClick from working but allow InvokeOnClick to work?
<p>I am trying to debug a winforms application where a working form in a process has been reused in a second process.  The form will present buttons to the user after a specified time of waiting.  In its original process, these buttons work fine.  In the secondary process, these buttons do not.</p>

<p>In investigating this, I progressed backwards, first making sure I could explicitly call the event handler(which worked), and then tried a call to PerformClick. The event handler did not get called with PerformClick.  Further looking around led me to InvokeOnClick, which does trigger the event handler so clearly there is some condition I need to fix in the second process that is blocking access to the buttons.</p>

<p>The only definition I found as to why InvokeOnClick works when PerformClick does not is that 'PerformClick checks that the button is 'available' before raising the click event'.  I checked at breakpoints that the button is both visible and enabled, what other conditions should I look for?</p>

<p><strong>UPDATE:</strong> Well...back to baffled, three strikes on the things to check.  Confirmed there are no validation event handlers on the form, and CanSelect returns true.  From MSDN:</p>

<blockquote>
  <p>This property returns true if the Selectable value of System.Windows.Forms.ControlStyles is set to true, is contained in another control, the control itself is visible and enabled, and all its parent controls are visible and enabled.</p>
</blockquote>