如何使用组合框中的单选按钮更改Folderlocation?

时间:2016-08-29 08:25:44

标签: c#

我有这些Groupbox

enter image description here

我想打开一个特定的文件夹位置,具体取决于在组框中检查哪些单选按钮。

因此,让我们说选项1和选项B打开桌面和选项2,选项A打开桌面上的一些文件夹。

我知道如何使用单个radiobutton运行它,但在如何使它与2个Groupbox一起工作方面遇到一些困难。

1 个答案:

答案 0 :(得分:0)

如果您显示代码会更好地理解您的术语。对于您的情况,您可以使用嵌套的forif之类的

//Some path which ever you want
string[] paths = { Environment.GetFolderPath(Environment.SpecialFolder.Desktop), Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "C:\\"};
string[] Folders = { "SomeFolder", "AnyFolder", "YesThisFolder" };
string calcFolderPath="";

for(int i=0;i<=1;i++) //this is for group
{
    for(int j=0;j<=2;j++) //this is for option / radio button
    {
        //You have to check if the group option is checked or not
        if(group[i].option[j].checked) //This might not work
        {
            if(i==0)
            {
                calcFolderPath = path[j];
            }
            else
            {
                calcFolderPath = calcFolderPath + Folders[j];
            }
        }
    }
}

这只是一个想法。此程序可能不起作用因为它未经过测试。

该程序描述了第一个外循环将检查运行2次,即检查我们拥有的组数。内部循环是我们在组中的单选按钮的数量。然后我们检查是否选中了组的选项按钮。如果检查它,我们检查它是否是group1而不是它正在采用路径,如果是group2而不是它正在取文件夹名称。

希望这有帮助

修改

在您发表评论后,它会像

一样
string path = "";
string foldersName = "";
string completepath = "";
private void optionButton1_CheckedChanged(object sender, EventArgs e) 
{ 
    if (optionButtonA.Checked == true) 
    { 
        path = "C:\\Users\\z003cypv\\Desktop"; 
    } 
    completepath = CalcCompletePath();
}
private void optionButton2_CheckedChanged(object sender, EventArgs e) 
{ 
    if (optionButtonA.Checked == true) 
    { 
        path = "C:\\Users\\z003cypv\\Documents"; 
    } 
    completepath = CalcCompletePath();
}   
private void optionButton3_CheckedChanged(object sender, EventArgs e) 
{ 
    if (optionButtonA.Checked == true) 
    { 
        path = "C:\\Users\\z003cypv\\Pictures"; 
    } 
    completepath = CalcCompletePath();
}   

然后是文件夹

private void optionButtonA_CheckedChanged(object sender, EventArgs e) 
{ 
    if (optionButtonA.Checked == true) 
    { 
        foldersName = "SomeName"; 
    } 
    completepath = CalcCompletePath();
}
private void optionButtonB_CheckedChanged(object sender, EventArgs e) 
{ 
    if (optionButtonA.Checked == true) 
    { 
        foldersName = "NameFolder"; 
    } 
    completepath = CalcCompletePath();
}
private void optionButtonC_CheckedChanged(object sender, EventArgs e) 
{ 
    if (optionButtonA.Checked == true) 
    { 
        foldersName = "SomeFolderName"; 
    } 
    completepath = CalcCompletePath();
}   

public string CalcCompletePath();
{
    return path + foldersName;
}

但这是一种非常低效的做事方式。我仍然更喜欢第一种选择。