© 2004 Microsoft Corporation. All rights reserved.

Figure 1 Sample of Recognized Cultures

Culture Name
Language
Country/Region
en
English
 
en-AU
English
Australia
en-CA
English
Canada
en-GB
English
United Kingdom
en-US
English
United States
fr
French
 
fr-FR
French
France
fr-CA
French
Canada
de
German
 
de-AT
German
Austria
de-DE
German
Germany

Figure 3 Populating the Culture Explorer TreeView

  private void Form1_Load(object sender, System.EventArgs e)
{
  TreeNode tempNode;
    
  foreach (CultureInfo CultureX in CultureInfo.GetCultures(Culture
           Types.NeutralCultures))
  {
    tempNode = new TreeNode(CultureX.EnglishName + " [" + 
    CultureX.Name + "]");
    tempNode.Tag = CultureX;
    treeView1.Nodes.Add(tempNode);
  }
    
  foreach (CultureInfo CultureX in CultureInfo.GetCultures(Culture
           Types.SpecificCultures))
  {
    foreach (TreeNode NodeX in treeView1.Nodes)
    {
      if (NodeX.Tag.Equals(CultureX.Parent))
      {
        tempNode = new TreeNode(CultureX.EnglishName + " [" + 
        CultureX.Name + "]");
        tempNode.Tag = CultureX;
        tempNode.ForeColor = Color.Gray;

        foreach (CultureInfo CultureY in 
            CultureInfo.GetCultures(CultureTypes.InstalledWin32Cultures))
        {
          if (CultureY.Equals(CultureX))
          {
            tempNode.ForeColor = Color.Black;
            break;
          }
        }

        NodeX.Nodes.Add(tempNode);
        break;
      }
    }
  }
}

Figure 5 Populating the List View

  private void treeView1_AfterSelect(object sender, System.Windows.Forms.
                                   TreeViewEventArgs e)
{
  CultureInfo selectedCulture;
  selectedCulture = (CultureInfo)treeView1.SelectedNode.Tag;
  
  if (selectedCulture.IsNeutralCulture == true)
  {
    listView1.Items[3].SubItems[1].Text = "Neutral";
    
    for (int x = 4; x <= 10; x++)
      listView1.Items[x].SubItems[1].Text = "Neutral Culture";
  }
  else
  {
    Thread.CurrentThread.CurrentCulture = selectedCulture;
    listView1.Items[3].SubItems[1].Text = "Specific";
    listView1.Items[4].SubItems[1].Text = (DateTime.Now).ToShort
        DateString();
    listView1.Items[5].SubItems[1].Text = (DateTime.Now).ToLong
        DateString();
    listView1.Items[6].SubItems[1].Text = (DateTime.Now).ToShort
        TimeString();
    listView1.Items[7].SubItems[1].Text = (DateTime.Now).ToLong
        TimeString();
    listView1.Items[8].SubItems[1].Text = (35500.75).ToString("n");
    listView1.Items[9].SubItems[1].Text = (1750.25).ToString("c");
    listView1.Items[10].SubItems[1].Text = (selectedCulture.Calendar.
        ToString()).Remove(0,21);
  }

  listView1.Items[0].SubItems[1].Text = selectedCulture.Name;
  listView1.Items[1].SubItems[1].Text = selectedCulture.EnglishName;
  listView1.Items[2].SubItems[1].Text = selectedCulture.NativeName;
}