首页 > 解决方案 > 我可以用字符串设置复选框名称吗?

问题描述

我正在settLoadBooleans根据加载的文本文件更改复选框状态。问题是我需要使用从该文本文件中获得的字符串来设置复选框的名称。

public partial class MainForm : Form

    public static string curDir = System.IO.Directory.GetCurrentDirectory();
    public static string settingsdnt = curDir + @"\settings.dnt";
    public static int settNo = 1;
    public static string[] readSettdnt = File.ReadAllLines(settingsdnt);

    public void MainForm_Load(object sender, EventArgs e)
        {
            Settings.VibeCheck();

            string getLineForBool = readSettdnt[settNo - 1].Substring(readSettdnt[settNo - 1].IndexOf(":") + 1);
            string getLineName = readSettdnt[settNo - 1].Substring(readSettdnt[settNo - 1].LastIndexOf(':') + 1);

            for (; settNo < 128; settNo++)
            {
                if (getLineForBool == "True" || getLineForBool == "False")
                {
                    settLoadBooleans(getLineName);
                }
            }
        }

    public static void settLoadBooleans(string settName)
        {
            string getLine = readSettdnt[settNo - 1].Substring(readSettdnt[settNo - 1].IndexOf(":") + 1);
            //thats where i need to change the string to checkbox
            if (getLine == "True")
            {
                settNameCb.Checked = true;
            }
            else
            {
                settNameCb.Checked = false;
            }
        }

in "class Settings"

    public static string curDir = System.IO.Directory.GetCurrentDirectory();
    
    public static void VibeCheck()
    {
        FileStream fs = File.Create(curDir + @"\settings.dnt");
        fs.Close();
        using (StreamWriter sw = File.AppendText(curDir + @"\settings.dnt"))
            {
            for (int i = 0; i < 128; i++)
                {
                    sw.WriteLine("");
                }
            sw.Close();
            }
    }

我要做的是:当settNo在“:”之后点击具有“True”或“False”字符串的行时,它应该将复选框名称更改为从我们之前点击的那一行创建的字符串,并在“ :"

标签: c#winformscheckbox

解决方案


首先你应该从

if (getLineForBool == "True" && getLineForBool == "False")

if (getLineForBool == "True" || getLineForBool == "False")

然后像下面这样改变

public static void settLoadBooleans(string settName)
{
     string getLine = readSettdnt[settNo - 1].Substring(readSettdnt[settNo - 1].IndexOf(":") + 1);

     //thats where i need to change the string to checkbox
     settNameCb.Text = settName;

     if (getLine == "True")
     {   
         settNameCb.Checked = true;
     }
     else
     {
        settNameCb.Checked = false;
     }
}

推荐阅读