从哈希表中填充文本框

时间:2012-11-30 20:13:20

标签: c# winforms hashtable

我正在使用Windows窗体应用程序创建议程程序,我正在尝试将文件中的数据加载到哈希表中并将此数据显示到文本框中。文本框上的标签是日期,但这些日期的格式为(dd MMMM dddd,例如11月30日星期五),并用作哈希表的键值。文件中的日期格式为(dd MM yyyy)。显示文件中的数据样本。

10/07/2012将于10.30 *

游泳

30/11/2012将于15.30 *

游泳

加载表单时,数据应显示在相应的文本框中。例如,将在15.30 *去游泳*必须在带有标签“11月30日星期五”的文本框下显示(因为它对应于日期30/11/2012)。我能够将数据拆分为键值对,如下面的代码所示:

StreamReader sr=new StreamReader("Path/ajand.txt");

   string line;

    while ((line = sr.ReadLine()) != null)
    {
      key = line.Substring(0, 10);//gets date
      value = line.Substring(10);//gets string
      hT.Add(key, value);
    }

如何将数据添加到相应的文本框?

2 个答案:

答案 0 :(得分:0)

使用Convert.toDateTime(请参阅msdn:http://msdn.microsoft.com/en-us/library/cc165448.aspx)将日期转换为您想要的格式。

然后,遍历哈希表中的每个条目

foreach(var entry in hashTable)
{
    //todo: convert entry.key (which is the date) to your format
    //      then set the label to the formatted date.
    //      lastly, set the text for the textBox
}

答案 1 :(得分:0)

理想情况下,您希望将表单和数据文件中的数据转换为DateTime实例并进行比较。但是,鉴于表单中的日期(在标签中)缺少一年组件,最好的办法是将数据从数据文件转换为DateTime对象,然后提取该日期的字符串格式(在格式与表格数据相同)。此时,字符串比较将允许日期匹配。 E.g:

foreach(DictionaryEntry dataEntry in hT)
{
   //Will throw a FormatException if 'dataEntry.Key' doesn't represent a valid date format
   DateTime keyAsDate = Convert.ToDateTime(dataEntry.Key);

   //This overload of 'ToString' uses CurrentCulture
   string comparisonKey = keyAsDate.ToString("dd MMMM dddd");

   if(formLabel.Text.Equals(comparisonKey, StringComparison.OrdinalIgnoreCase))
   {
       formTextBox.Text = dataEntry.Value;
   }
}