当前位置:  编程技术>.net/c#/asp.net

C#传值方式实现不同程序窗体间通信实例

    来源: 互联网  发布时间:2014-10-25

    本文导语:  当Form2的AcceptChange按钮按下,需要修改Form1中ListBox中相应列的值,因此可以考虑同时将Form1中的ListBox控件当参数也传入Form2,所有修改工作都在Form2中完成,根据这个思路,Form2代码如下: 代码如下:publicpartial class Form2 : Form   ...

当Form2的AcceptChange按钮按下,需要修改Form1中ListBox中相应列的值,因此可以考虑同时将Form1中的ListBox控件当参数也传入Form2,所有修改工作都在Form2中完成,根据这个思路,Form2代码如下:

代码如下:

publicpartial class Form2 : Form    
    {    
        private string text;    
        private ListBox lb;    
        private int index;    

       //构造函数接收三个参数:选中行文本,ListBox控件,选中行索引    
        public Form2(string text,ListBox lb,int index)    
        {    
            this.text = text;    
            this.lb = lb;    
            this.index = index;    
            InitializeComponent();    
            this.textBox1.Text = text;    
        }    

        private void btnChange_Click(object sender, EventArgs e)    
        {               
            string text = this.textBox1.Text;    
            this.lb.Items.RemoveAt(index);    
            this.lb.Items.Insert(index, text);    
            this.Close();    
        }    
    }

Form1中new窗体2时这么写:

代码如下:

public partial class Form1 :Form    
    {    
        int index = 0;    
        string text = null;    
        public Form1()    
        {    
            InitializeComponent();    
        }    

        private void listBox1_SelectedIndexChanged(object sender, EventArgse)    
        {                
            if (this.listBox1.SelectedItem != null)    
            {    
                text = this.listBox1.SelectedItem.ToString();    
                index = this.listBox1.SelectedIndex;    

               //构造Form2同时传递参数    
                Form2 form2 = new Form2(text, listBox1, index);    
                form2.ShowDialog();    
            }    
       }

OK,这样做的好处是直观,需要什么就传什么,缺点也是显而易见的,如果窗体1中需要修改的是一百个控件,难道构造的时候还传100个参数进去?况且如果其他窗体仍然需要弹Form2,那Form2就废了,只能供窗体1使用,除非写重载的构造函数,不利于代码的复用


    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • PHP创建桌面快捷方式的实例代码
  • Linux操作系统下Oracle数据库多实例启动方式及修改内存
  • 用模板的方式创建守护进程代码实例
  • spring实例化javabean的三种方式分享
  • Java中用户向系统传递参数的三种基本方式实例分享
  • PHP+Mysql树型结构(无限分类)数据库设计的2种方式实例
  • android 网络编程之网络通信几种方式实例分享
  • 使用异步方式调用同步方法(实例详解)
  • PHP以mysqli方式连接类完整代码实例
  • Docker支持的安装方式
  • 图形方式到文本方式的切换
  • 申请Android Map 的API Key(v2)的最新申请方式(SHA1密钥)
  • 有做过基于snmp方式的入侵检测系统的哥们吗?请留下联系方式,以后多交流交流!
  • 设置sharepoint 2010文档库中的 pdf文件在浏览器中访问的打开方式
  • redhat as 3 如何将图形登录方式改为文字登录方式?
  • c++类对象数组初始化方式
  • 请问redhat9.0下怎么在启动的时候直接进入命令行方式而不是xwindows方式??谢谢
  • Linux/centos/redhat下各种压缩解压缩方式详解
  • 怎么使linux启动重原来的图形方式切换到命令行方式?
  • Oracle 数据库(oracle Database)Select 多表关联查询方式
  • Red Hat Linux7.2的GNOME图形方式下如何切换到文本方式?
  • php中内置的mysql数据库连接驱动mysqlnd简介及mysqlnd的配置安装方式
  • 假如已经以UDP方式监听8000端口,还能以TCP方式监听8000吗?
  • c++类对象初始化方式
  • 新手问题:怎么从从命令行方式进入窗口方式?
  • Linux内存文件系统(ramdisk)的三种实现方式
  • 怎么将linux的图形登陆方式改为文本方式?
  • 标准c++四种强制类型转换方式介绍
  • 如何从图形引导方式转换到文本引导方式?
  • windows堆栈溢出利用的七种方式
  • 安装RedHat9 疑问: 不能图形方式,如何用文本方式快速完成安装.


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3