title: A cleaner way to automatically call one method after another?
body: <p>Is it possible to design a method in such a fashion, that it knows it must automatically call a next method in succession upon exiting?</p>
  
  <p>In the following example, I must call <code>Refresh()</code> to cause my form to repaint after this event takes place.  The problem is that, it's ugly to call <code>Refresh()</code> after, for example, 20 different events which must make the form refresh. e.g</p>
  
  <pre><code>private void PriorityLine_Click(object sender, EventArgs e)
  {
     _showPriorityLine = (_showPriorityLine) ? false : true;
    Refresh(); // Must call refresh for changes to take effect.
  }
  </code></pre>
  
  <p>I suppose what I'm looking for is some kind of signature I can apply to the method to cause it to automatically chain to the next method, regardless from where its called. e.g </p>
  
  <p>(I know this isn't syntactically correct.)</p>
  
  <pre><code>private void PriorityLine_Click(object sender, EventArgs e).Refresh()
  {
     _showPriorityLine = (_showPriorityLine) ? false : true;
  }
  </code></pre>
  
  <p>I want to seperate the interface of the method, from the logic contained within the method.  I understand it would be the exact amount of effort, if not more.  For example, if I were to edit the method and <em>accidently</em> removed Refresh, it would cause my application to break.  Whereas, if the Refresh method was outside of the actual logic of the method, I could do anything within the method without worrying about removing the next chain of logic.</p>