首先在地图上

 #region 选择城市
/// <summary>
/// 点击字母事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
void item_Click(object sender, EventArgs e)
{
LinkLabel lbl = sender as LinkLabel;
lbl.Font = new Font(new FontFamily("宋体"), 10, FontStyle.Bold);
foreach (Control item in pan_CityTitle.Controls)
{
if (item is LinkLabel && item != lbl)
item.Font = new Font(new FontFamily("宋体"), 10, FontStyle.Regular);
}
flowLayoutPanel.Controls.Clear();
CreatCheckCityControl(lbl.Tag != null ? lbl.Tag.ToString() : string.Empty);
} /// <summary>
/// 绘制城市控件
/// </summary>
private void CreatCheckCityControl(string lettey)
{
if (lettey == string.Empty)
{
List<FlyCity> list = dicList["RM"];
CreatControl(list);
}
else
{
for (int i = 0; i < lettey.Length; i++)
{
string temp = lettey.Substring(i, 1);
if (!dicList.Keys.Contains(temp))
{
continue;
}
List<FlyCity> list = dicList[temp];
CreatControl(list);
}
}
}
private void CreatControl(List<FlyCity> list)
{
foreach (FlyCity fly in list)
{
Button button = new Button()
{
Text = fly.CityName,
Tag = fly,
Width = 76,
Height = 25,
ForeColor = Color.FromArgb(89, 89, 89),
FlatStyle = FlatStyle.Flat,
};
button.FlatAppearance.BorderColor = Color.White;
button.Click += new EventHandler(button_Click);
button.MouseHover += new EventHandler(button_MouseHover);
button.MouseLeave += new EventHandler(button_MouseLeave);
flowLayoutPanel.Controls.Add(button);
}
}
/// <summary>
/// 隐藏控件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
void FlyReserveForm_MouseUp(object sender, MouseEventArgs e)
{
if (!pan_City.Capture)
{
this.pan_City.Visible = false;
}
if (!calendar.Capture)
{
this.calendar.Hide();
}
}
/// <summary>
/// 点击选择目的地
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
void btnToCity_Click(object sender, EventArgs e)
{
sType = 1;
pan_City.Visible = true;
pan_City.Location = new Point(446, 100);
}
/// <summary>
/// 点击选择出发城市
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
void btnFromCity_Click(object sender, EventArgs e)
{
sType = 0;
pan_City.Visible = true;
pan_City.Location = new Point(133, 100);
}
/// <summary>
/// 从xml获取城市列表
/// </summary>
private void LoadCityArray()
{
List<FlyCity> list = new List<FlyCity>();
XmlHelper help = new XmlHelper(Environment.CurrentDirectory + "\\arrays.xml");
DataSet ds = help.GetData("resources");
foreach (DataRow item in ds.Tables[0].Rows)
{
FlyCity fly = new FlyCity();
string city = item[0].ToString().Substring(0, item[0].ToString().IndexOf(","));
string cityCode = item[0].ToString().Substring(item[0].ToString().IndexOf(",") + 1, item[0].ToString().Length - item[0].ToString().IndexOf(",") -1);
fly.CityName = city;
fly.CityCode = cityCode;
list.Add(fly);
}
dicList = ChineseConvert.InsertDic(list);
} void button_Click(object sender, EventArgs e)
{
if ((sender as Button).Tag == null)
return;
FlyCity fly = (sender as Button).Tag as FlyCity;
if (sType == 0)
{
lblFromCity.Text = fly.CityName;
lblFromCity.Tag = fly;
}
else
{
lblToCity.Text = fly.CityName;
lblToCity.Tag = fly;
}
pan_City.Visible = false;
} private void Pan_TitleClick()
{
foreach (Control item in pan_CityTitle.Controls)
{
if(item is LinkLabel)
item.Click += new EventHandler(item_Click);
}
} void button_MouseLeave(object sender, EventArgs e)
{
(sender as Button).BackColor = Color.White;
(sender as Button).ForeColor = Color.FromArgb(89, 89, 89);
} void button_MouseHover(object sender, EventArgs e)
{
(sender as Button).BackColor = Color.FromArgb(41, 100, 180);
(sender as Button).ForeColor = Color.White;
}
#endregion

版权声明:本文博主原创文章。博客,未经同意不得转载。

winform 实现选择的城市名单的更多相关文章

  1. (转)在WinForm中选择本地文件

    相信很多朋友在日常的编程中总会遇到各钟各样的问题,关于在WinForm中选择本地文件就是很多朋友们都认为很难的一个学习.net的难点, 在WebForm中提供了FileUpload控件来供我们选择本地 ...

  2. 【.Net】在WinForm中选择本地文件

    相信很多朋友在日常的编程中总会遇到各钟各样的问题,关于在WinForm中选择本地文件就是很多朋友们都认为很难的一个学习.net的难点, 在WebForm中提供了FileUpload控件来供我们选择本地 ...

  3. winform中选择文件获取路径

    private void button1_Click(object sender, EventArgs e) { //此时弹出一个可以选择文件的窗体 OpenFileDialog fileDialog ...

  4. WPF与Winform的选择

    最近公司计划对ERP系统全面升级,现有的ERP是简单的bs架构系统打算改版成cs.平时如自己写一些工具,小应用都是用winform就足够.但是界面总是很难看,据了解WPF在这一方面会强一些.因为之前对 ...

  5. winform 实现选择文件和选择文件夹对话框

    //选择文件,点击[浏览],选择文件 private void button1_Click(object sender, EventArgs e) { OpenFileDialog openFileD ...

  6. C# winform中 选择文件和保存文件

    转载自https://blog.csdn.net/qq_31788297/article/details/62047952 我们在使用桌面软件的时候经常会使用到选择文件并打开和另存为等的窗口,这样方便 ...

  7. C# WinForm TreeView选择父节点子节点全选

    //设置标志,防止死循环 bool check = false; public void TV_AfterCheck(object sender, TreeViewEventArgs e) { if ...

  8. 【代码笔记】iOS-先选择城市,然后,跳转Tabbar

    一,效果图. 二,工程图. 三,代码. ChooseCityViewController.h #import <UIKit/UIKit.h> @interface ChooseCityVi ...

  9. 仿51job.com城市选择框特效

    650) this.width=650;" border="0" alt="" src="http://img1.51cto.com/att ...

随机推荐

  1. TCP连接建立过程中为什么需要“三次握手”(转)

    传输控制协议(Transmission Control Protocol, TCP)是一种面向连接的.可靠的.基于字节流的运输层(Transport layer)通信协议.是专门为了在不可靠的互联网络 ...

  2. HDFS建筑与shell操作

    一个.hadoop1.1.0演示 hadoop它适合于大容量数据存储和分布式计算平台 hadoop核心由hdfs和mapreduce组成 hdfs这是一个主从结构,仅有一个.是namenode:从节点 ...

  3. Web APi之认证

    Web APi之认证(Authentication)两种实现方式后续[三](十五)   前言 之前一直在找工作中,过程也是令人着实的心塞,最后还是稳定了下来,博客也停止更新快一个月了,学如逆水行舟,不 ...

  4. js cookie设置最大过期时间 Infinity

    Note: 对于永久cookie我们用了Fri, 31 Dec 9999 23:59:59 GMT作为过期日.如果你不想使用这个日期,可使用世界末日Tue, 19 Jan 2038 03:14:07 ...

  5. nginx 1.4.2 安装笔记

    顺便吐槽一下,有道笔记的排版太难用了, 啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊 ========================================== ...

  6. cocos2dx 使得单麻将(三)

    cocos2dx 使得单麻将(三) 麻将逻辑4.得到手牌数据 我们已经保存了一个一维数组, 类似于一个表格,统计出全部牌相应的数量, 但我们如何得到当前手中是什么牌呢 //扑克转换 BYTE Swit ...

  7. 软测试综述——PV操作

     在操作系统中,进程之间常常会存在相互排斥(都须要共享独占性资源时)和同步(完毕异步的两个进程的协作)两种关系.而信号量和PV操作完美有效的处理了这两种情况.     相互排斥:就好比过独木桥,一 ...

  8. Android与服务器端数据交互(转)

    上一节中我们通过http协议,采用HttpClient向服务器端action请求数据.当然调用服务器端方法获取数据并不止这一种.WebService也可以为我们提供所需数据,那么什么是webServi ...

  9. SQL操作语句中的注意点

    一 查询语句 1 distinctkeyword消除反复行 当查询的结果数据中出现反复数据时.在查询条件中加上distinctkeyword消除反复行: 如:select distinct Sno f ...

  10. 【 Android官方文件读书笔记】连接网络

    一间连接应用网络的主要功能.Android系统对网络连接进行了封装,使得开发人员可以更快的给应用添加网络功能.大多数网络连接的Android应用使用HTTP发送和接受数据.Android包含两个HTT ...