c# 对话框交换数据
本例是一个管理联系人信息的小程序,程序有两个窗体,一个主窗体,在listview控件中显示联系人信息列表,一个对话框窗体,用来显示和修改 某个联系人的信息。通过主窗体的菜单命令,可以打开对话框,并把主窗体listview中的当前选中的联系人数据传递给对话框,在对话框中可以对联系人信 息进行修改,修改完毕后,单击确定按钮,主窗体根据用户在对话框中的输入更新listview空间
1.创建一个windows应用程序
2.在项目中添加联系人类。如下
- public class conntactpeople
- {
- private String _name;
- public String name
- {
- get { return _name; }
- set { _name = value; }
- }
- private bool _isFemale=false;
- public bool isFemale
- {
- get { return _isFemale; }
- set { _isFemale = value; }
- }
- private DateTime _dateOfBirth;
- public DateTime dateOfBirth
- {
- get { return _dateOfBirth;}
- set { _dateOfBirth = value;}
- }
- private String _company;
- public String company
- {
- get { return _company; }
- set { _company = value; }
- }
- private String _telephone;
- public String telephone
- {
- get { return _telephone; }
- set { _telephone = value; }
- }
3.添加一个窗体对话框

- button1.DialogResult = DialogResult.OK;
- button2.DialogResult = DialogResult.Cancel;
- private conntactpeople _contact;
- public conntactpeople contact
- {
- get
- {
- conntactpeople c = new conntactpeople();
- c.name = textBox1.Text;
- c.company = textBox2.Text;
- c.dateOfBirth = dateTimePicker1.Value;
- c.telephone = maskedTextBox2.Text;
- c.isFemale = radioButton2.Checked;
- return c;
- }
- set
- {
- textBox1.Text = value.name;
- radioButton2.Checked = value.isFemale;
- radioButton1.Checked = !value.isFemale;
- dateTimePicker1.Value = value.dateOfBirth;
- textBox2.Text = value.company;
- maskedTextBox2.Text = value.telephone;
- }
- }
- listView1.View = View.Details;
- listView1.GridLines=true;
- listView1.Columns.Add("姓名", 80);
- //listView1.co
- listView1.Columns.Add("性别", 40);
- listView1.Columns.Add("出生日期", 100);
- listView1.Columns.Add("工作单位",160);
- listView1.Columns.Add("联系电话", 100);
- listView1.HideSelection = true;
- listView1.FullRowSelect = true;
- ContactDialog dialog = new ContactDialog();
- dialog.Owner = this;
- private void 添加ToolStripMenuItem_Click(object sender, EventArgs e)
- {
- ContactDialog dialog = new ContactDialog();
- // dialog.contact = null;
- if (dialog.ShowDialog()==DialogResult.OK)
- {
- addContact(dialog.contact);
- }
- }
- //添加函数
- private void addContact(conntactpeople c)
- {
- ListViewItem item = listView1.Items.Add(c.name);
- updateContact(item, c);
- }
- //更新函数
- private void updateContact(ListViewItem item,conntactpeople c)
- {
- item.SubItems.Clear();
- //item.SubItems.c
- item.Text = c.name;
- if (c.isFemale)
- {
- item.SubItems.Add("女");
- }
- else
- {
- item.SubItems.Add("男");
- }
- item.SubItems.Add(c.dateOfBirth.ToString("yyyy-MM-dd"));
- item.SubItems.Add(c.company);
- item.SubItems.Add(c.telephone);
- }
- private void 删除ToolStripMenuItem_Click(object sender, EventArgs e)
- {
- if (listView1.SelectedIndices.Count>0)
- {
- if (MessageBox.Show("ni"+listView1.Items[listView1.SelectedIndices[0]].Text+"ma?","dd",MessageBoxButtons.YesNoCancel)==DialogResult.Yes)
- {
- listView1.Items.RemoveAt(listView1.SelectedIndices[0]);
- // listView1.Items.RemoveAt(listView1.SelectedIndices[])
- }
- }
- }
- private void 修改ToolStripMenuItem_Click(object sender, EventArgs e)
- {
- if (listView1.SelectedIndices.Count==0)
- {
- MessageBox.Show("请选择要修改的人");
- return;
- }
- conntactpeople c = new conntactpeople();
- ListViewItem item = listView1.SelectedItems[0];
- c.name = item.Text;
- //item.SubItems[];
- c.isFemale=(item.SubItems[1].Text=="女");
- try
- {
- c.dateOfBirth = DateTime.Parse(item.SubItems[2].Text.ToString());
- }
- catch
- {
- System.Diagnostics.Trace.Write(c.dateOfBirth);
- MessageBox.Show(item.SubItems[2].Text);
- //System.Diagnostics.Trace(item.SubItems[1].Text);
- }
- c.company = item.SubItems[3].Text;
- c.telephone = item.SubItems[4].Text;
- ContactDialog dialog = new ContactDialog();
- dialog.contact = c;
- if (dialog.ShowDialog()==DialogResult.OK)
- {
- updateContact(item, dialog.contact);
- }
- }
c# 对话框交换数据的更多相关文章
- HTML5 postMessage 跨域交换数据
前言 之前简单讲解了利用script标签(jsonp)以及iframe标签(window.name.location.hash)来跨域交换数据,今天我们来学习一下HTML5的api,利用postMes ...
- Java多线程之~~~使用Exchanger在线程之间交换数据[这个结合多线程并行会有解决很多问题]生产者消费者模型
http://blog.csdn.net/a352193394/article/details/39503857 Java多线程之~~~使用Exchanger在线程之间交换数据[这个结合多线程并行会 ...
- 建立、配置和使用Activity——使用Bundle在Activity之间交换数据
当一个Activity启动另一个Activity时,常常会有一些数据需要传过去——这就像Web应用从一个Servlet跳到另一个Serlvet时,Web应用习惯把需要交换的数据放入requestSco ...
- 使用 Bundle 在 Activity 之间交换数据
[toc] 使用 Bundle 在 Activity 之间交换数据 场景 当一个 Activity 启动另一个 Activity 时,常常会有一些数据需要传过去.因为两个 Activity 之间本来就 ...
- 客户端通过HTTP协议与服务端交换数据
客户端(包括浏览器)通过HTTP协议与服务端交换数据的描述 发起请求 header 键值对中的key大小写不敏感 Accept: application/json Content-Type: ...
- 并发工具类(四)线程间的交换数据 Exchanger
前言 JDK中为了处理线程之间的同步问题,除了提供锁机制之外,还提供了几个非常有用的并发工具类:CountDownLatch.CyclicBarrier.Semphore.Exchanger.Ph ...
- Java并发编程--6.Exchanger线程间交换数据
在两个线程之间定义同步点,当两个线程都到达同步点时,他们交换数据结构,因此第一个线程的数据结构进入到第二个线程中,第二个线程的数据结构进入到第一个线程中 在生产者-消费者情境模式中它包含了一个数缓冲区 ...
- Java并发工具类(四):线程间交换数据的Exchanger
简介 Exchanger(交换者)是一个用于线程间协作的工具类.Exchanger用于进行线程间的数据交换.它提供一个同步点,在这个同步点两个线程可以交换彼此的数据.这两个线程通过exchange方法 ...
- JSP Servlet之间交换数据
摘自:<轻量级Java EE企业应用实战>第三版 对于每次客户端请求而言,web服务器大致需要完成以下步骤: 1.启动单独线程 2.使用I/O流读取用户的请求参数 3.从请求数据中解析参数 ...
随机推荐
- 关押罪犯(2010年NOIP全国联赛提高组)
题目描述 Description S 城现有两座监狱,一共关押着N 名罪犯,编号分别为1~N.他们之间的关系自然也极 不和谐.很多罪犯之间甚至积怨已久,如果客观条件具备则随时可能爆发冲突.我们用&qu ...
- spark新能优化之广播共享数据
如果你的算子函数中,使用到了特别大的数据,那么,这个时候,推荐将该数据进行广播.这样的话,就不至于将一个大数据拷贝到每一个task上去.而是给每个节点拷贝一份,然后节点上的task共享该数据. 这样的 ...
- php 代码大全
1.子类访问父类静态方法 <?php class A{ static function loadById(){ $class_name = get_called_class(); $model ...
- Python-属性(property)
在2.6版本中,添加了一种新的类成员函数的访问方式--property. 原型 class property([fget[, fset[, fdel[, doc]]]]) fget:获取属性 fset ...
- [C# 基础知识梳理系列]专题六:泛型基础篇——为什么引入泛型
引言: 前面专题主要介绍了C#1中的2个核心特性——委托和事件,然而在C# 2.0中又引入一个很重要的特性,它就是泛型,大家在平常的操作中肯定会经常碰到并使用它,如果你对于它的一些相关特性还不是很了解 ...
- 怎么用ABBYY打开PDF文档
我们日常工作中接触的文档大多都是PDF格式的,这种格式的文件需要借助工具才能打开,大家最熟悉的无非就是Adobe了,但你知道吗?除了Adobe,OCR文字识别软件也可以打开PDF文档,比如ABBYY ...
- ASP.NET会话(Session)保存模式--终于知道session为什么丢失了
[原创]ASP.NET会话(Session)保存模式 作者:寒羽枫(cityhunter172) 大家好,已有四个多月没写东东啦.今日抽空就说一下 Session 在 .Net v1.0/v1.1 中 ...
- 使用Ef时,对一个或多个实体的验证失败。有关详细信息,请参见“EntityValidationErrors”属性。
EntityValidationErrors 关于如何查看 EntityValidationErrors 详细信息的解决方法 我们在 EF 的编程中,有时候会遇到这样一个错误: 但是,按照他的提示 ...
- PowerDesigner的图形工具栏被我关了 怎么才能恢复?就是那个快捷工具栏 图形那个里面有什么放大镜 表 视图什么的
PowerDesigner的图形工具栏被我关了 怎么才能恢复?就是那个快捷工具栏 图形那个里面有什么放大镜 表 视图什么的 工具-->自定义工具栏-->palette选中
- HTML5之Canvas绘图——使用Canvas绘制图形的基本教程
原文转自:http://www.cnblogs.com/picaso/archive/2012/11/26/2789077.html HTML5火的正热,最近有个想法也是要用到HTML的相关功能,所以 ...