【问题标题】:How do I group Windows Form radio buttons and textboxes? [closed]如何对 Windows 窗体单选按钮和文本框进行分组? [关闭]
【发布时间】:2017-09-15 11:08:22
【问题描述】:

我有 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();
}

【问题讨论】:

    标签: c# textbox radio-button grouping


    【解决方案1】:

    您可以编写一个带有 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();
        }
    }
    

    【讨论】:

    • 非常感谢凯末尔,这正是我所需要的
    【解决方案2】:

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

    【讨论】:

    • 我把它放到面板里,你能帮我写代码吗?
    • 是的,我可以,首先,到目前为止你做了什么?它是一个winForm 应用程序吗?你用的是什么版本的VS?
    【解决方案3】:

    同意杰根。但不必只使用 GroupBox 进行分组。 主要概念是将几个控件组合在一起,您可以使用任何容器控件。

    【讨论】:

      猜你喜欢
      • 2011-01-11
      • 2012-06-12
      • 2017-07-13
      • 1970-01-01
      • 2013-06-05
      • 1970-01-01
      • 2014-05-28
      • 2011-06-05
      • 1970-01-01
      相关资源
      最近更新 更多