C# 为什么我会得到';System.Windows.Forms.Control';不包含';选中'&引用;在这里

C# 为什么我会得到';System.Windows.Forms.Control';不包含';选中'&引用;在这里,c#,.net,C#,.net,我在这个主题中发现了很多问题,但不是这个问题:我正在使用c#applications设置,但是将每个设置保存在一个新行中变得非常难看。我试图用以下代码保存此文件: for (int j = 0; j < settingsTabControl.SelectedTab.Controls.Count; j++) { string currItemName = settingsTabControl.SelectedTab.Controls[j].Name; if (currItem

我在这个主题中发现了很多问题,但不是这个问题:我正在使用c#applications设置,但是将每个设置保存在一个新行中变得非常难看。我试图用以下代码保存此文件:

for (int j = 0; j < settingsTabControl.SelectedTab.Controls.Count; j++)
{
    string currItemName = settingsTabControl.SelectedTab.Controls[j].Name;
    if (currItemName.Substring(0, 7) == "savable" && currItemName == currOptionName)
    {
        if (savableRunAsAdmin.HasProperty("Text"))
        {
            settingsTabControl.SelectedTab.Controls[j].Text = currOptionValue;
        }
        else if (savableRunAsAdmin.HasProperty("Checked"))
        {
            settingsTabControl.SelectedTab.Controls[j].Checked = Convert.ToBoolean(currOptionValue);
        }
    }
}

public static bool HasProperty(this object objectToCheck, string methodName)
{
    var type = objectToCheck.GetType();
    return type.GetProperty(methodName) != null;
}

我可以动态保存设置,还是必须逐个保存每个设置?

SelectedTab。控件返回a,因此索引器返回a。你需要投下它:

((CheckBox)settingsTabControl.SelectedTab.Controls[j]).Checked ...
或者如果它是一个
单选按钮
,您的目标是:

((RadioButton)settingsTabControl.SelectedTab.Controls[j]).Checked ...

SelectedTab.Controls
返回一个,因此索引器返回一个。你需要投下它:

((CheckBox)settingsTabControl.SelectedTab.Controls[j]).Checked ...
或者如果它是一个
单选按钮
,您的目标是:

((RadioButton)settingsTabControl.SelectedTab.Controls[j]).Checked ...

在设置
选中之前,强制转换为
复选框
单选按钮
。在设置
选中之前,强制转换为
复选框
单选按钮