As far as I understand your question you're saying as a user I would want to click some button for "Latin America" and then a series of checkboxes would become checked, so PortugueseCB, SpanishCB, etcCB... Also it sounds like you have 3 items: Languages, Language ID, LanguageGroupId.
What you could do is create a class that contains the id and the language
public class LanguageIdent
{
public int ID;
public string Language
}
Then create another class that contains a list of these
public class LanguageGroup
{
public List<LanguageIdent> LanguageID;
}
From there you can initialize and create methods as you see fit. Also you use the all the methods given to lists which is awesome. You could implement your check system perhaps like
private void SpanishCB_checkChanged(object sender, EventArgs e)
{
LanguageGroup LG = new LanguageGroup();
for(int i =0; i<LG.Count(); i++)
{
if(LG.LanguageID.ID == LatinAmericaID)
{
int index = checkedListBox1.IndexOf(nL.LanguageID[i].Language);
checkedListBox.SetItemsChecked(index, checked(CheckState.Checked));
}
}
}
So in your form you would have a checkedListBox which you could arrange any way you want, alphabetically, region, etc. Then when the user checked "Latin America" only places languages belonging to that id will be checked. Hope this helps.