title: How to invoke with action?
body: <p>I always set the modifiers on my form to <strong>private</strong>,I don't like internal nor public.</p>
  
  <p>Till now I used to Invoke like this:</p>
  
  <pre><code>public string Addtext
  {
      if(InvokeRequired)
      {
           Invoke((MethodInvoker)delegate
           {
               textbox.text = value;
           });
      }
      else
          textbox.text = value;
  }
  </code></pre>
  
  <p>But adding such property for every member on my form is just not Object Orientated at all.</p>
  
  <p>I want to create a function that will Invoke the parameter(action).I tried my best,but I failed - it requires the form members to be <strong>public</strong> or <strong>internal</strong> :(</p>
  
  <pre><code>    public void PerformActionOnForm(Action&lt;FormMain&gt; action)
      {
          var form = Form.ActiveForm as FormMain;
          object s = action.Clone();
          if (form != null)
          {
              form.PerformAction(action);
          }
      }
  
      public void PerformAction(Action&lt;FormMain&gt; action)
      {
          if (InvokeRequired)
              Invoke(action, this);
          else
              action(this);
      }
  </code></pre>
  
  <p>two problems in my code:</p>
  
  <p>It requires the property I'd like to change to be != private :(</p>
  
  <p>Doesn't work if the form is not on focus.</p>