Ich konnte den Titel meiner Frage nicht am besten beschreiben, tut mir leid. Derzeit verwende ich Invoke, um auf die Eigenschaften in meinem Formular zuzugreifen. Es funktioniert perfekt, aber ich habe eine Funktion für jede Eigenschaft, die ziemlich unkomfortabel ist.Wie greife ich auf Formulareigenschaften mit Invoke, aber mit Objektparameter in C#?
public static void EnableLogin(int enabled)
{
var form = Form.ActiveForm as FormMain;
if (form != null)
form.EnableLogin = enabled;
}
public static void EnableConfirm(int enabled)
{
var form = Form.ActiveForm as FormMain;
if (form != null)
form.EnableConfirm = enabled;
}
public static void EnableRetry(int enabled)
{
var form = Form.ActiveForm as FormMain;
if (form != null)
form.EnableRetry = enabled;
}
public static void EnableTABLogin(int enabled)
{
var form = Form.ActiveForm as FormMain;
if (form != null)
form.EnableTABLogin = enabled;
}
sieht Jede dieser Funktionen wie die
public int EnableLogin
{
set
{
if (this.InvokeRequired)
{
this.Invoke((MethodInvoker)delegate
{
if (value == 0)
this.btnLogin.Enabled = false;
else
this.btnLogin.Enabled = true;
});
}
else
{
if (value == 0)
this.btnLogin.Enabled = false;
else
this.btnLogin.Enabled = true;
}
}
}
Meine Frage ist, kann ich es nicht tun, wie die
public static void EnableObject(object name)
{
var form = Form.ActiveForm as FormMain;
if (form != null)
form.Enable + name = enabled;
}
Es ist definitiv nicht so, könnte ich nicht Denken Sie an etwas mehr OO, aber anstatt Tonnen von Funktionen mit demselben Code zu schreiben, kann ich nicht einen verwenden, indem ich das Objekt übergebe, das ich gerne ändern würde?
ich sehr interessiert bin, tun Sie dies bitte. –
Sehr schön, aber es funktioniert nicht.Es gibt mir einen Fehler in dieser Zeile "Misc.PerformActionOnMainForm (FormMain => FormMain.groupMain.Enabled = true); "Fehler" FormMain.groupMain "ist aufgrund seiner Schutzstufe nicht erreichbar." Ich möchte die Änderung nicht in public ändern, aber ich habe es versucht - Ausnahme, nicht funktioniert –
Eigentlich funktioniert es, wenn alles "geschützt intern" ist. Toll, danke! –