如何对Windows窗体单选按钮和文本框进行分组



我有10个文本框控件和10个radioButton控件,我有一个类似的代码,但我可以为文本框和radioButtons创建一个组吗?

代码:

if (chbx_Ext_tit1.Checked == true)
{
    FileStream fs1 = new FileStream(@"c:LigueStatsdataTXTNom_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:LigueStatsdataTXTNum_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:LigueStatsdataTXTNom_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:LigueStatsdataTXTNum_joueur.txt", FileMode.Create);
    StreamWriter fichier2 = new StreamWriter(fs2);
    fichier2.Write(txt_ext_tit_num2.Text);
    fichier2.Close();
}

您可以编写一个具有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:LigueStatsdataTXTNom_joueur.txt", FileMode.Create);
        StreamWriter fichier1 = new StreamWriter(fs1);
        fichier1.Write(textbox1.Text);
        fichier1.Close();
        //Numéro
        FileStream fs2 = new FileStream(@"c:LigueStatsdataTXTNum_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:LigueStatsdataTXTNom_joueur.txt", FileMode.Create);
        StreamWriter fichier1 = new StreamWriter(fs1);
        fichier1.Write(text1);
        fichier1.Close();
        //Numéro
        FileStream fs2 = new FileStream(@"c:LigueStatsdataTXTNum_joueur.txt", FileMode.Create);
        StreamWriter fichier2 = new StreamWriter(fs2);
        fichier2.Write(text2);
        fichier2.Close();
    }
}

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

同意Jegan的观点。但是不需要仅使用GroupBox进行分组。主要概念是,要对控件进行分组,可以使用任何容器控件。

最新更新