Nicht statische Felder von statischen Funktionen referenzieren und umgekehrt unmöglich?

Ich möchte programmgesteuert den Platz bestimmen, den ich für einige Steuerelemente habe, die ich dynamisch erstellen möchte. Ich möchte also die Höhe des Containers ermitteln und durch die Anzahl der Zeilen (eine Konstante) dividieren.

Ich habe diese Funktion (dieser Code ist Teil des Formulars, in dem sich das Panel namens dynamicPanel befindet):

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

... was mir den Fehler zur Kompilierungszeit anzeigt: "* Für das nicht statische Feld, die nicht statische Methode oder die nicht statische Eigenschaft ist eine Objektreferenz erforderlich. RememberNextGen_CRLogins.CRLoginsMainForm.dynamicPanel '*"

Ich verstehe nicht, was es mir zu sagen versucht / was es will.

Wenn ich die "statische" entferne:

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

... Ich erhalte dann den Fehler "* Ein Feldinitialisierer kann nicht auf das nicht statische Feld, die nicht statische Methode oder die nicht statische Eigenschaft 'TitanNextGen_CRLogins.CRLoginsMainForm.getControlHeightToUse ()' * verweisen."

... in der angezeigten Zeile unten:

<code>public partial class CRLoginsMainForm : Form {

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

Antworten auf die Frage(2)

Ihre Antwort auf die Frage