C# 从哈希表填充文本框
我正在使用windows窗体应用程序创建一个议程程序,我正在尝试将文件中的数据加载到哈希表中,并将这些数据显示到文本框中。文本框上的标签是日期,但这些日期的格式为(C# 从哈希表填充文本框,c#,winforms,hashtable,C#,Winforms,Hashtable,我正在使用windows窗体应用程序创建一个议程程序,我正在尝试将文件中的数据加载到哈希表中,并将这些数据显示到文本框中。文本框上的标签是日期,但这些日期的格式为(dd MMMM dddd例如11月30日星期五),并用作哈希表的键值。文件中的日期格式为(dd-MM-yyyy)。显示了文件中的数据示例 2012年7月10日10时30分开始游泳* 2012年11月30日将于15:30开始游泳* 当我加载表单时,数据应该显示在相应的文本框中。例如,必须在文本框下显示“11月30日星期五”(因为它对应于
dd MMMM dddd
例如11月30日星期五),并用作哈希表的键值。文件中的日期格式为(dd-MM-yyyy
)。显示了文件中的数据示例
2012年7月10日10时30分开始游泳*
2012年11月30日将于15:30开始游泳*
当我加载表单时,数据应该显示在相应的文本框中。例如,必须在文本框下显示“11月30日星期五”(因为它对应于2012年11月30日)下的15:30*去游泳。我能够将数据拆分为键值对,如下代码所示:
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);
}
如何将数据添加到相应的文本框中?使用Convert.toDateTime(请参见msdn:)将日期转换为所需格式 然后,循环遍历哈希表中的每个条目
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
}
理想情况下,您希望将表单和数据文件中的数据都转换为DateTime实例并进行比较。但是,鉴于表单(标签中)中的日期缺少年份组件,最好将数据文件中的数据转换为DateTime对象,然后提取该日期的字符串格式(格式与表单数据相同)。此时,字符串比较将允许匹配日期。例如:
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;
}
}
主题是否应该是:从哈希表填充文本框?您是否只处理2012年的日期?我问你是因为在文本框中没有提到日期格式的年份组件。@chamila_c文本框中的日期格式不显示年份,它的格式是(dd-MMMM-dddddd),但文件中的日期显示的年份与dd-MM-yyyy相同。那么你是否有权访问基础日期(即包括年份组件)这是用来填充文本框的,还是您只能访问文本本身(即dd MMMM dddd格式)?@chamila_c我只能访问文本本身,即dd MMMM dddd格式的文本没有基础年份组件。我在
DateTime keyAsDate=Convert.ToDateTime(dataEntry.Key)一行中得到一个错误
说“object不包含key的定义”我不明白为什么.hmmm-可能显式键入哈希表项就可以了-请参阅最新编辑:foreach(DictionaryEntry dataEntry in hT)
。它仍然会给出类似的错误消息“System.Collections.DictionaryEntry不包含key的定义”…我重新启动了程序,前面的修改foreach(DictionaryEntry数据项在hT中)
成功了。谢谢。:))哦,错误已经消失了,但是数据根本没有填充。文本框是空的。它应该会起作用,但我不知道为什么它不起作用。还尝试单步执行代码,但无法放置错误。。