📄 trainuil.cs
字号:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using TrainSystem.Business;
using System.Drawing.Printing;
using System.IO;
namespace TrainSystem.UIL
{
public partial class TrainUIL : Form
{
TrainBusiness tbusiness = new TrainBusiness();
DataSet ds = new DataSet();
DataSet ds1 = new DataSet();
private string sort;// 种类
private string speed;//速度
private int Km;//列表车次公里
private int KmEnd;//详细列表车次公里
PrintDocument pd;
public TrainUIL()
{
InitializeComponent();
pd = new PrintDocument();
pd.PrintPage += new PrintPageEventHandler(pd_PrintPage);
pd.DefaultPageSettings.Landscape = true;
}
void pd_PrintPage(object sender, PrintPageEventArgs e)
{
Font f = new Font("tahoma", 14,FontStyle.Regular);
Brush objBrush=Brushes.Black;
Pen objpen = new Pen(objBrush);
objpen.Width = 2;
int h = (int)f.GetHeight(e.Graphics);
//向打印预览窗口添加内容
int nTop = e.MarginBounds.Top;
int nWidth = e.MarginBounds.Width;
int nHeight = e.MarginBounds.Height;
int nleft = e.MarginBounds.Left;
//画出页面有效区域
e.Graphics.DrawLine(objpen, nleft, nTop, nleft + nWidth, nTop);
e.Graphics.DrawLine(objpen, nleft, nTop + nHeight, nleft + nWidth, nTop + nHeight);
e.Graphics.DrawLine(objpen, nleft, nTop, nleft, nleft + nHeight);
e.Graphics.DrawLine(objpen, nleft + nWidth, nTop, nleft + nWidth, nTop + nHeight);
//打印出表头
e.Graphics.DrawString("列车详细信息", new Font("Garamond", 25, FontStyle.Bold), Brushes.Blue, nleft + 370, nTop + 10);
e.Graphics.DrawString("车次", f, objBrush, nleft + 50, nTop + 110);
e.Graphics.DrawString("城市", f, objBrush, nleft + 150, nTop + 110);
e.Graphics.DrawString("到达时间", f, objBrush, nleft + 280, nTop + 110);
e.Graphics.DrawString("离开时间", f, objBrush, nleft + 400, nTop + 110);
e.Graphics.DrawString("途经站序号", f, objBrush, nleft + 530, nTop + 110);
e.Graphics.DrawString("里程", f, objBrush, nleft + 680, nTop + 110);
e.Graphics.DrawString("票价", f, objBrush, nleft + 760, nTop + 110);
e.Graphics.DrawString("行程时间", f, objBrush, nleft + 840, nTop + 110);
//打印具体数据
for (int i = 0; i < lstTrainCodeInfo.Items.Count-1; i++)
{
e.Graphics.DrawString(lstTrainCodeInfo.Items[i].SubItems[0].Text, f, objBrush, nleft + 50, nTop + 150+h * i);
e.Graphics.DrawString(lstTrainCodeInfo.Items[i].SubItems[1].Text, f, objBrush, nleft + 150, nTop + 150 + h * i);
e.Graphics.DrawString(lstTrainCodeInfo.Items[i].SubItems[2].Text, f, objBrush, nleft + 280, nTop + 150 + h * i);
e.Graphics.DrawString(lstTrainCodeInfo.Items[i].SubItems[3].Text, f, objBrush, nleft + 400, nTop + 150 + h * i);
e.Graphics.DrawString(lstTrainCodeInfo.Items[i].SubItems[4].Text, f, objBrush, nleft + 530, nTop + 150 + h * i);
e.Graphics.DrawString(lstTrainCodeInfo.Items[i].SubItems[5].Text, f, objBrush, nleft + 680, nTop + 150 + h * i);
e.Graphics.DrawString(lstTrainCodeInfo.Items[i].SubItems[6].Text, f, objBrush, nleft + 760, nTop + 150 + h * i);
e.Graphics.DrawString(lstTrainCodeInfo.Items[i].SubItems[7].Text, f, objBrush, nleft + 840, nTop + 150 + h * i);
}
e.Graphics.DrawString(lblDataTime.Text, f, objBrush, nleft + 700, nTop + 450);
}
private void lblWuLuMuQi_Click(object sender, EventArgs e)
{
if (ActiveControl != txtStartStation && ActiveControl != txtEndStation)
{ return; }
this.ActiveControl.Text = ((Label)sender).Text;
foreach (Label l in tbpPhoto.Controls)
{
l.ForeColor = Color.Black;
}
((Label)sender).ForeColor = Color.Blue;
if (txtStartStation.Focused)
{
txtEndStation.Focus();
}
else
{
txtStartStation.Focus();
}
}
private void btnInfoSearch_Click(object sender, EventArgs e)
{
//判断文本是否为空
if (txtStartStation.Text == "" || txtEndStation.Text == "")
{
MessageBox.Show("请输入有效信息!");
return;
}
if (cboChangeTrains.Text == "")
{
lstTrainInfo.Items.Clear();
ds = tbusiness.SelectNonstop(txtStartStation.Text, txtEndStation.Text);
//判断是否有直达车
if (ds.Tables[0].Rows.Count == 0)
{
ds = tbusiness.SelectChangeTrains(txtStartStation.Text, txtEndStation.Text);
int k = ds.Tables[0].Rows.Count;
if (k ==0)
{
MessageBox.Show("没有可达列车,请选取择其它路线!");
return;
}
MessageBox.Show("没有找到直达车,请选择中转站!");
cboChangeTrains.DataSource = ds.Tables[0].DefaultView;
cboChangeTrains.DisplayMember = "cityname";
//cboChangeTrains.DroppedDown = true;
}
else
{
foreach (DataRow dr in ds.Tables[0].Rows)
{
ListViewItem item = this.lstTrainInfo.Items.Add(dr[0].ToString());
item.SubItems.Add(dr[5].ToString());
item.SubItems.Add(dr[6].ToString());
item.SubItems.Add(dr[1].ToString());
item.SubItems.Add(dr[2].ToString());
item.SubItems.Add(dr[8].ToString());
item.SubItems.Add(dr[7].ToString());
//计算票价
sort=dr[5].ToString();
speed=dr[6].ToString();
Km = int.Parse(dr[7].ToString());
float Price= Ticket();
item.SubItems.Add(Price.ToString());
}
//显示列车信息选项卡
tbpOptionCard.SelectedIndex = 1;
}
}
else if(cboChangeTrains.Text != "")
{
ds = tbusiness.SelectNonstop(txtStartStation.Text, cboChangeTrains.Text);
ds1 = tbusiness.SelectNonstop(cboChangeTrains.Text, txtEndStation.Text);
foreach (DataRow dr in ds.Tables[0].Rows)
{
ListViewItem item = this.lstTrainInfo.Items.Add(dr[0].ToString());
item.SubItems.Add(dr[5].ToString());
item.SubItems.Add(dr[6].ToString());
item.SubItems.Add(dr[1].ToString());
item.SubItems.Add(dr[2].ToString());
item.SubItems.Add(dr[8].ToString());
item.SubItems.Add(dr[7].ToString());
//计算票价
sort = dr[5].ToString();
speed = dr[6].ToString();
Km = int.Parse(dr[7].ToString());
float Price = Ticket();
item.SubItems.Add(Price.ToString());
}
foreach (DataRow dr in ds1.Tables[0].Rows)
{
ListViewItem item = this.lstTrainInfo.Items.Add(dr[0].ToString());
item.SubItems.Add(dr[5].ToString());
item.SubItems.Add(dr[6].ToString());
item.SubItems.Add(dr[1].ToString());
item.SubItems.Add(dr[2].ToString());
item.SubItems.Add(dr[8].ToString());
item.SubItems.Add(dr[7].ToString());
//计算票价
sort = dr[5].ToString();
speed = dr[6].ToString();
Km = int.Parse(dr[7].ToString());
float Price = Ticket();
item.SubItems.Add(Price.ToString());
}
//显示列车信息选项卡
tbpOptionCard.SelectedIndex = 1;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -