我有这些Groupbox
我想打开一个特定的文件夹位置,具体取决于在组框中检查哪些单选按钮。
因此,让我们说选项1和选项B打开桌面和选项2,选项A打开桌面上的一些文件夹。
我知道如何使用单个radiobutton运行它,但在如何使它与2个Groupbox一起工作方面遇到一些困难。
答案 0 :(得分:0)
如果您显示代码会更好地理解您的术语。对于您的情况,您可以使用嵌套的for
和if
之类的
//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;
}
但这是一种非常低效的做事方式。我仍然更喜欢第一种选择。