¿Hacer referencia a campos no estáticos de funciones estáticas y viceversa es imposible?

Quiero determinar mediante programación el espacio que tengo para algunos controles que quiero crear dinámicamente. Por lo tanto, quiero obtener la altura del contenedor y dividirla por el número de filas (una constante).

Tengo esta función (este código es parte del formulario en el que vive el panel llamado dynamicPanel):

<code>private static int getControlHeightToUse() {
  return (dynamicPanel.Height / NUMBER_OF_ROWS);
}
</code>

... lo que me da el error de tiempo de compilación, "* Se requiere una referencia de objeto para el campo, método o propiedad no estática RememberNextGen_CRLogins.CRLoginsMainForm.dynamicPanel '*"

No entiendo lo que está tratando de decirme / lo que quiere.

Si elimino la "estática":

<code>private int getControlHeightToUse() {
  return (dynamicPanel.Height / NUMBER_OF_ROWS);
}
</code>

... luego obtengo el error en tiempo de compilación, "* Un inicializador de campo no puede hacer referencia al campo, método o propiedad no estática 'TitanNextGen_CRLogins.CRLoginsMainForm.getControlHeightToUse ()' *"

... en la línea indicada abajo:

<code>public partial class CRLoginsMainForm : Form {

  int controlHeight = getControlHeightToUse(); // <-- err
</code>

Respuestas a la pregunta(2)

Su respuesta a la pregunta