如何将 Windows 表单单选按钮和文本框分组?

How do I group Windows Form radio buttons and textboxes?

我有 10 个文本框控件和 10 个单选按钮控件,我有类似的代码,但是我可以为文本框和单选按钮创建一个组吗?

代码:

if (chbx_Ext_tit1.Checked == true)
{
    FileStream fs1 = new FileStream(@"c:\LigueStats\data\TXT\Nom_joueur.txt", FileMode.Create);
    StreamWriter fichier1 = new StreamWriter(fs1);

    fichier1.Write(txt_ext_tit_nom1.Text);
    fichier1.Close();

    //Numéro

    FileStream fs2 = new FileStream(@"c:\LigueStats\data\TXT\Num_joueur.txt", FileMode.Create);
    StreamWriter fichier2 = new StreamWriter(fs2);

    fichier2.Write(txt_ext_tit_num1.Text);
    fichier2.Close();
}

//exporter joueur 2 Titulaire
if (chbx_Ext_tit2.Checked == true)
{
    FileStream fs1 = new FileStream(@"c:\LigueStats\data\TXT\Nom_joueur.txt", FileMode.Create);
    StreamWriter fichier1 = new StreamWriter(fs1);

    fichier1.Write(txt_ext_tit_nom2.Text);
    fichier1.Close();

    //Numéro

    FileStream fs2 = new FileStream(@"c:\LigueStats\data\TXT\Num_joueur.txt", FileMode.Create);
    StreamWriter fichier2 = new StreamWriter(fs2);

    fichier2.Write(txt_ext_tit_num2.Text);
    fichier2.Close();
}

您可以使用 "GroupBox" 控件并将所有控件放在那里。或者,您可以创建自定义控件来对控件进行分组。

你可以写一个有3个(或更多)参数的方法,并且只传递控件。

public void Foo()
{
    DoWork(chbx_Ext_tit1, txt_ext_tit_nom1, txt_ext_tit_num1);
    DoWork(chbx_Ext_tit2, txt_ext_tit_nom2, txt_ext_tit_num2);
}

public void DoWork(CheckBox checkbox, TextBox textbox1, TextBox textbox2)
{
    if (checkbox.Checked == true)
    {
        FileStream fs1 = new FileStream(@"c:\LigueStats\data\TXT\Nom_joueur.txt", FileMode.Create);
        StreamWriter fichier1 = new StreamWriter(fs1);

        fichier1.Write(textbox1.Text);
        fichier1.Close();

        //Numéro

        FileStream fs2 = new FileStream(@"c:\LigueStats\data\TXT\Num_joueur.txt", FileMode.Create);
        StreamWriter fichier2 = new StreamWriter(fs2);

        fichier2.Write(textbox2.Text);
        fichier2.Close();
    }
}

或者更好,只需传递您需要的值:

public void Foo()
{
    DoWork(chbx_Ext_tit1.Checked, txt_ext_tit_nom1.Text, txt_ext_tit_num1.Text);
    DoWork(chbx_Ext_tit2.Checked, txt_ext_tit_nom2.Text, txt_ext_tit_num2.Text);
}

public void DoWork(bool isChecked, string text1, string text2)
{
    if (isChecked)
    {
        FileStream fs1 = new FileStream(@"c:\LigueStats\data\TXT\Nom_joueur.txt", FileMode.Create);
        StreamWriter fichier1 = new StreamWriter(fs1);

        fichier1.Write(text1);
        fichier1.Close();

        //Numéro

        FileStream fs2 = new FileStream(@"c:\LigueStats\data\TXT\Num_joueur.txt", FileMode.Create);
        StreamWriter fichier2 = new StreamWriter(fs2);

        fichier2.Write(text2);
        fichier2.Close();
    }
}

同意杰根的观点。但不必只使用 GroupBox 进行分组。 主要概念是要对几个控件进行分组,您可以使用任何容器控件。