第一次崩溃:
做了一个ListBox,想通过回车键或鼠标双击把选中的项传递给变量,在MSDN上找了半天,没有找到ListBox有类似ItemSelected的事件,我还不会写控件事件,无奈只能加了个按钮,我崩溃。(dp2编目前端加拼音的多音字选择框,看似开始焦点在ListBox里面,但是想要按上下箭头选择相应的拼音就不行了,必须通过TAB才能把焦点放回ListBox,按回车能选中相应的选项,但是好像是通过控件的DoubleClick事件(双击控件任何位置都可以响应)实现的,老师在这里耍了个小花招,不太好用,再小小地嘲笑一下)
第二次崩溃
ListBox控件不好用,就想做个控制台程序吧,响应用户键盘输入来进行相应的选择,并判断用户输入是否在允许范围内,代码片断如下:
int a = Console.Read();
while (a-48< 1 || a-48> pyArr.Count) //汉字没有超过9个音的,所以pyArr.Count不会大于9
{
Console.WriteLine("超出范围,请重新选择");
a = Console.Read();
}
Console.Read()方法从输入流读入键,包括回车键,如果开始输入超出范围,while内的read会读取前一次输入后按下的回车键,并判断输入超出范围,晕,无奈又试了Readline()和ReadKey()方法,都不好用,我又一次崩溃了。这里应该有办法解决,感觉是我还不知道,小小地自嘲一下。
第三次崩溃
控制台程序不好用,没有办法,又回到窗体程序,拼音总算取出来了,想通过剪贴板和别的程序传递汉字和拼音,那么程序就要访问剪贴板,从剪贴板把字符串读出来没有问题,但是要把拼音写进去又出问题了,Clipboard.SetDataObject(pinyin, true),这个语句执行总是出错,把第二个参数改成false就没问题了,但这样程序退出后,在剪贴板里的内容也就没有了,上网搜了以下,一个外国网站上说Clipboard.SetDataObject()在2003系统上会出错,我现在用的就是2003系统,于是在XP上试了一下,没问题了,真的崩溃了!强烈地嘲笑微软一下。
这应该就是做程序要经历的吧,一会儿为自己精彩的解决办法沾沾自喜,一会儿为卡在什么小地方郁闷不已。