title: How can I create an interface in VB.NET with implicit implementations
body: <p>In C# I can create an interface, and when I use the interface the compiler knows that certain interface requirements are fulfilled by the base class.  This is probably clearer with an example:</p>
  
  <pre><code>interface FormInterface
  {
      void Hide();
      void Show();
      void SetupForm();
  }
  
  public partial class Form1 : Form, FormInterface
  {
      public Form1()
      {
          InitializeComponent();
      }
  
      public void SetupForm()
      {
  
      }
  }
  </code></pre>
  
  <p>The compiler knows that Hide() and Show() are implemented in Form and the above code compiles just fine. I can't figure out how to do this in VB.NET. When I try:</p>
  
  <pre><code>Public Interface FormInterface
      Sub Hide()
      Sub Show()
      Sub SetupForm()
  End Interface
  
  
  Public Class Form1
      Inherits System.Windows.Forms.Form
      Implements FormInterface
  
      Public Sub SetupForm() Implements FormInterface.SetupForm
  
      End Sub
  
  End Class
  </code></pre>
  
  <p>But the Compiler complains that Form1 must implement 'Sub Hide()' for interface 'FormInterface'. Do I actually have to add the following?</p>
  
  <pre><code>Public Sub Hide1() Implements FormInterface.Hide
      Hide()
  End Sub
  </code></pre>
  
  <p>On all my forms, or is a better route creating an abstract base class that has SetupForm() (and how do you do that in VB.NET)?</p>