问题描述
本人小白,初学vb,求大虾指点,谢谢以下是某年某月某日某时提示某事件的源代码PrivateSubButton2_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton2.Clicklistwork.Items.Remove(listwork.SelectedItem)EndSubPrivateSubTimer1_Tick(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesTimer1.TickDimiAsIntegerDimsAsDateDims1AsStringDims2AsStringDims4AsStringDims5AsStringDimpAsIntegerDimjAsIntegerDimmAsIntegerDims3AsStringDims6AsStrings1=Date.Now.ToShortDateStrings4=Date.Now.ToShortTimeStringp=Len(s1)m=Len(s4)+pForEachs2Inlistwork.Items()s3=s2.Substring(i,p)Ifs1=s3ThenForEachs5Inlistwork.Items()s6=s5.Substring(p+1,m)Ifs4=s6ThenMsgBox(s2)EndIfNextEndIfNextEndSubPrivateSubButton1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton1.Clicklistwork.Items.Add(txtday.Text&txttime.Text&txtwork.Text)EndSubEndClass
解决方案
解决方案二:
转到.NET区吧
解决方案三:
lz的结贴率0.00%啊!PrivateSubButton2_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton2.Clicklistwork.Items.Remove(listwork.SelectedItem)'listbox移除选择的项EndSubPrivateSubTimer1_Tick(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesTimer1.TickDimiAsIntegerDimsAsDateDims1AsStringDims2AsStringDims4AsStringDims5AsStringDimpAsIntegerDimjAsIntegerDimmAsIntegerDims3AsStringDims6AsStrings1=Date.Now.ToShortDateString'当前日期,例如2011-12-13s4=Date.Now.ToShortTimeString'当前时间,例如10:25p=Len(s1)'日期字符串的长度m=Len(s4)+p'日期+时间字符串的长度ForEachs2Inlistwork.Items()'遍历listbox,看来listbox都是类似"2011-12-1310:25"这种格式s3=s2.Substring(i,p)'S3取每一条list的前p个字符,也就是"2011-12-13"Ifs1=s3Then'如果是今天日期ForEachs5Inlistwork.Items()'然后再次遍历listbox,s6=s5.Substring(p+1,m)'取p+1开始的m个长度,即时间"10:25"Ifs4=s6Then'如果是当前的时间MsgBox(s2)'提示listbox中这一条EndIfNextEndIfNextEndSubPrivateSubButton1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton1.Clicklistwork.Items.Add(txtday.Text&txttime.Text&txtwork.Text)'添加listEndSubEndClass
不过,上面判断的有点问题啊,进行了两次循环这导致一个严重的比对bug例如当前时间"2011-12-1310:35"列表里面有1"2011-12-1210:12"2"2011-12-1210:35"3"2011-12-1310:12"4"2011-12-1310:35"外层循环首先会先找到3的记录,然后进行内层循环找到2的记录,提示3,再找到4的记录,提示3然后回到外层循环找到4的记录,然后进行内层循环找到2的记录,提示4,再找到4的记录,提示4这明显是错误的..应该只提示4才对吧.
解决方案四:
时间类型就用时间类型,用个字符串拆来拆去,弄的算法也不清晰,错误也多。