火车时刻表源代码
这个应用的皮肤跟上一个手机归属地查询是同一皮肤。
手机归属地查询的博文地址:http://www.cnblogs.com/wildfeng/archive/2012/03/21/2409174.html
这里我用的是Panorama全景视图做的UI。
其实我一开始是将很多查询类的小应用集中在一个应用里面的,就像这样
不过后来打算分开做的,至于为什么,你懂的,5送一哦。可惜好事总是轮不上咱。通过再多也没用。
下载地址:
http://115.com/file/dp7nntwg#
PracticalSearch.xap
联系QQ:29992379
回到正题,这个应用用的是webxml的服务。
http://webservice.webxml.com.cn/WebServices/TrainTimeWebService.asmx
可以通过出发站和目的站来查询列车的车次。也可以通过车次查询列车的起始站和终点站。
之类应用都很简单,代码量也少,我在UI上花了不少功夫。效果的代码就不写了,只写功能代码吧。
通过起始站和终点站查询
1 2 3 4 5 6 7 8 9 | private void SearchByStationName_Click( object sender, RoutedEventArgs e) { if (CheckStartStation() && CheckArriveStation()) { l.Show( this , "查找中......" ); client.getStationAndTimeByStationNameAsync(StartStation.Text, ArriveStation.Text, "" ); client.getStationAndTimeByStationNameCompleted += new EventHandler<TrainService.getStationAndTimeByStationNameCompletedEventArgs>(client_getStationAndTimeByStationNameCompleted); } } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | void client_getStationAndTimeByStationNameCompleted( object sender, TrainService.getStationAndTimeByStationNameCompletedEventArgs e) { if (e.Error== null ) { var re=e.Result.Nodes[0]; var TimeTable = from zip in re.Descendants( "TimeTable" ) select new TrainInfo { TrainCode = zip.Element( "TrainCode" ).Value, FirstStation = zip.Element( "FirstStation" ).Value, LastStation = zip.Element( "LastStation" ).Value, StartStation = zip.Element( "StartStation" ).Value, StartTime = zip.Element( "StartTime" ).Value, ArriveStation = zip.Element( "ArriveStation" ).Value, ArriveTime = zip.Element( "ArriveTime" ).Value }; if (TimeTable.First().FirstStation== "数据没有被发现" ) { MessageBox.Show( "数据没有被发现" ); l.Hide( this , "" ); return ; } List<TrainInfo> trainlist = new List<TrainInfo>(); foreach ( var item in TimeTable) { trainlist.Add(item); } ListBoxTrainList.ItemsSource = trainlist; l.Hide( this , "" ); } } |
通过车次号查询
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | private void SearchByTrainCode_Click( object sender, RoutedEventArgs e) { if (CheckTrainCode()) { l.Show( this , "查找中......" ); client.getStationAndTimeByTrainCodeAsync(TrainCode.Text, "" ); client.getStationAndTimeByTrainCodeCompleted += new EventHandler<TrainService.getStationAndTimeByTrainCodeCompletedEventArgs>(client_getStationAndTimeByTrainCodeCompleted); } } void client_getStationAndTimeByTrainCodeCompleted( object sender, TrainService.getStationAndTimeByTrainCodeCompletedEventArgs e) { if (e.Error== null ) { string [] strinfo = e.Result; if (strinfo[1] != "数据没有被发现" ) { TextBlockTrainCode.Text = "车次:" + strinfo[0]; TextBlockTrainLiu.Text = strinfo[2]+ "(" +strinfo[4]+ ")-->" +strinfo[3]+ "(" +strinfo[6]+ ")" ; l.Hide( this , "查找中......" ); } else { MessageBox.Show( "数据没有被发现" ); } } } |
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· DeepSeek R1 简明指南:架构、训练、本地部署及硬件要求
· NetPad:一个.NET开源、跨平台的C#编辑器
· PowerShell开发游戏 · 打蜜蜂