您的位置:程序门 -> .net技术 -> c#



hashtable问题,产生异常是什么原因呢?


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


hashtable问题,产生异常是什么原因呢?[已结贴,结贴人:zhangchen124]
发表于:2007-01-10 08:35:23 楼主
using   system;
using   system.drawing;
using   system.collections;
using   system.componentmodel;
using   system.windows.forms;
using   system.data;

namespace   hashtable
{
///   <summary>
///   form1   的摘要说明。
///   </summary>
public   class   form1   :   system.windows.forms.form
{
private   hashtable   _hashtable=new   hashtable();
private   system.windows.forms.groupbox   groupbox1;
private   system.windows.forms.label   label1;
private   system.windows.forms.label   label2;
private   system.windows.forms.label   label3;
private   system.windows.forms.label   label4;
private   system.windows.forms.textbox   txtkey;
private   system.windows.forms.textbox   txtvalue;
private   system.windows.forms.button   btnadd;
private   system.windows.forms.listbox   lstaddedkey;
private   system.windows.forms.textbox   txtselectedvalue;
///   <summary>
///   必需的设计器变量。
///   </summary>
private   system.componentmodel.container   components   =   null;

public   form1()
{
//
//   windows   窗体设计器支持所必需的
//
initializecomponent();

//
//   todo:   在   initializecomponent   调用后添加任何构造函数代码
//
}

///   <summary>
///   清理所有正在使用的资源。
///   </summary>
protected   override   void   dispose(   bool   disposing   )
{
if(   disposing   )
{
if   (components   !=   null)  
{
components.dispose();
}
}
base.dispose(   disposing   );
}

#region   windows   窗体设计器生成的代码
///   <summary>
///   设计器支持所需的方法   -   不要使用代码编辑器修改
///   此方法的内容。
///   </summary>
private   void   initializecomponent()
{
this.groupbox1   =   new   system.windows.forms.groupbox();
this.btnadd   =   new   system.windows.forms.button();
this.txtvalue   =   new   system.windows.forms.textbox();
this.txtkey   =   new   system.windows.forms.textbox();
this.label2   =   new   system.windows.forms.label();
this.label1   =   new   system.windows.forms.label();
this.label3   =   new   system.windows.forms.label();
this.lstaddedkey   =   new   system.windows.forms.listbox();
this.label4   =   new   system.windows.forms.label();
this.txtselectedvalue   =   new   system.windows.forms.textbox();
this.groupbox1.suspendlayout();
this.suspendlayout();
//  
//   groupbox1
//  
this.groupbox1.controls.add(this.btnadd);
this.groupbox1.controls.add(this.txtvalue);
this.groupbox1.controls.add(this.txtkey);
this.groupbox1.controls.add(this.label2);
this.groupbox1.controls.add(this.label1);
this.groupbox1.location   =   new   system.drawing.point(8,   8);
this.groupbox1.name   =   "groupbox1 ";
this.groupbox1.size   =   new   system.drawing.size(280,   120);
this.groupbox1.tabindex   =   0;
this.groupbox1.tabstop   =   false;
this.groupbox1.text   =   "建立键值 ";
//  
//   btnadd
//  
this.btnadd.location   =   new   system.drawing.point(96,   88);
this.btnadd.name   =   "btnadd ";
this.btnadd.tabindex   =   4;
this.btnadd.text   =   "添加 ";
this.btnadd.click   +=   new   system.eventhandler(this.btnadd_click);
//  
//   txtvalue
//  
this.txtvalue.location   =   new   system.drawing.point(96,   56);
this.txtvalue.name   =   "txtvalue ";
this.txtvalue.size   =   new   system.drawing.size(176,   21);
this.txtvalue.tabindex   =   3;
this.txtvalue.text   =   " ";
//  
//   txtkey
//  
this.txtkey.location   =   new   system.drawing.point(96,   24);
this.txtkey.name   =   "txtkey ";
this.txtkey.size   =   new   system.drawing.size(176,   21);
this.txtkey.tabindex   =   2;
this.txtkey.text   =   " ";
//  
//   label2
//  
this.label2.autosize   =   true;
this.label2.location   =   new   system.drawing.point(16,   56);
this.label2.name   =   "label2 ";
this.label2.size   =   new   system.drawing.size(29,   17);
this.label2.tabindex   =   1;
this.label2.text   =   "值: ";
//  
//   label1
//  
this.label1.autosize   =   true;
this.label1.location   =   new   system.drawing.point(16,   24);
this.label1.name   =   "label1 ";
this.label1.size   =   new   system.drawing.size(29,   17);
this.label1.tabindex   =   0;
this.label1.text   =   "键: ";
//  
//   label3
//  
this.label3.autosize   =   true;
this.label3.location   =   new   system.drawing.point(8,   136);
this.label3.name   =   "label3 ";
this.label3.size   =   new   system.drawing.size(72,   17);
this.label3.tabindex   =   1;
this.label3.text   =   "已经添加值: ";
//  
//   lstaddedkey
//  
this.lstaddedkey.itemheight   =   12;
this.lstaddedkey.location   =   new   system.drawing.point(96,   136);
this.lstaddedkey.name   =   "lstaddedkey ";
this.lstaddedkey.size   =   new   system.drawing.size(192,   112);
this.lstaddedkey.tabindex   =   2;
this.lstaddedkey.selectedvaluechanged   +=   new   system.eventhandler(this.lstaddedkey_selectedvaluechanged);
this.lstaddedkey.selectedindexchanged   +=   new   system.eventhandler(this.lstaddedkey_selectedindexchanged);
//  
//   label4
//  
this.label4.autosize   =   true;
this.label4.location   =   new   system.drawing.point(16,   264);
this.label4.name   =   "label4 ";
this.label4.size   =   new   system.drawing.size(60,   17);
this.label4.tabindex   =   3;
this.label4.text   =   "选中的值: ";
//  
//   txtselectedvalue
//  
this.txtselectedvalue.location   =   new   system.drawing.point(96,   256);
this.txtselectedvalue.name   =   "txtselectedvalue ";
this.txtselectedvalue.size   =   new   system.drawing.size(192,   21);
this.txtselectedvalue.tabindex   =   4;
this.txtselectedvalue.text   =   " ";
//  
//   form1
//  
this.autoscalebasesize   =   new   system.drawing.size(6,   14);
this.clientsize   =   new   system.drawing.size(292,   293);
this.controls.add(this.txtselectedvalue);
this.controls.add(this.label4);
this.controls.add(this.lstaddedkey);
this.controls.add(this.label3);
this.controls.add(this.groupbox1);
this.name   =   "form1 ";
this.text   =   "hashtableexam ";
this.load   +=   new   system.eventhandler(this.form1_load);
this.groupbox1.resumelayout(false);
this.resumelayout(false);

}
#endregion

///   <summary>
///   应用程序的主入口点。
///   </summary>
[stathread]
static   void   main()  
{
application.run(new   form1());
}

private   void   form1_load(object   sender,   system.eventargs   e)
{

}

private   void   btnadd_click(object   sender,   system.eventargs   e)
{
try
{
_hashtable.add(txtkey.text,txtvalue.text);
}
catch(argumentexception)
{
messagebox.show( "不能添加重负的值 ", "错误 ",system.windows.forms.messageboxbuttons.ok,
system.windows.forms.messageboxicon.information);
//有重复的键值给用户提示,插入动作终止
return;
}
catch(exception)
{
messagebox.show( "产生系统错误 ");//产生未知错误
application.exit();//则关闭应用程序
}
lstaddedkey.items.add(txtkey.text);
//txtkey.text= " ";
//txtvalue.text= " ";
}

private   void   lstaddedkey_selectedindexchanged(object   sender,   system.eventargs   e)
{

}

private   void   lstaddedkey_selectedvaluechanged(object   sender,   system.eventargs   e)
{
string   selectedkey=lstaddedkey.selectedvalue.tostring();
string   selectedvalue=(string)_hashtable[selectedkey];
txtselectedvalue.text=selectedvalue;
}
}
}
发表于:2007-01-10 09:07:491楼 得分:8
private   void   lstaddedkey_selectedvaluechanged(object   sender,   system.eventargs   e)
{
string   selectedkey=lstaddedkey.selecteditem.tostring();     //修改的地方
string   selectedvalue=(string)_hashtable[selectedkey];
txtselectedvalue.text=selectedvalue;
}
发表于:2007-01-10 09:08:452楼 得分:2
报什么错误   哪行报错?
发表于:2007-01-10 09:09:223楼 得分:3
namespace   hashtable       ----------------------??????改一下看看
{
///   <summary>
///   form1   的摘要说明。
///   </summary>
public   class   form1   :   system.windows.forms.form
发表于:2007-01-10 09:21:494楼 得分:7
同一楼

string   selectedkey=lstaddedkey.selectedvalue.tostring();

改为

string   selectedkey=lstaddedkey.selecteditem.tostring();


快速检索

最新资讯
热门点击