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

 更新时间:2013年12月04日 09:37:58   作者:  
Form2构造函数中接收一个string类型参数,即Form1中选中行的文本,将Form2的TextBox控件的Text设置为该string,即完成了Form1向Form2的传值

当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使用,除非写重载的构造函数,不利于代码的复用

相关文章

  • c# 编写的简单飞行棋游戏

    c# 编写的简单飞行棋游戏

    这个简单的飞行棋游戏主要是讲的方法怎么应用,充分的去理解方法和方法的调用。整体收获还是很大的。感兴趣的朋友可以参考下
    2021-06-06
  • C#数据结构之堆栈(Stack)实例详解

    C#数据结构之堆栈(Stack)实例详解

    这篇文章主要介绍了C#数据结构之堆栈(Stack),结合实例形式较为详细的分析了堆栈的原理与C#实现堆栈功能的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-11-11
  • C# 屏蔽关键字的实现方法

    C# 屏蔽关键字的实现方法

    前段时间在公司做了一个论坛屏蔽关键字的功能,我做的比较简单、实用~ 现在拿出来给博友们分享下..也希望大家能顶顶我~
    2013-05-05
  • C#实现线程安全的简易日志记录方法

    C#实现线程安全的简易日志记录方法

    这篇文章主要介绍了C#实现线程安全的简易日志记录方法,比较实用的功能,需要的朋友可以参考下
    2014-08-08
  • C#实现 Server-sent Events的步骤

    C#实现 Server-sent Events的步骤

    这篇文章主要介绍了C#实现 Server-sent Events的步骤,帮助大家更好的理解和使用c#,感兴趣的朋友可以了解下
    2021-01-01
  • C#使用HtmlAgilityPack组件解析html文档

    C#使用HtmlAgilityPack组件解析html文档

    这篇文章介绍了C#使用HtmlAgilityPack组件解析html文档的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-06-06
  • C# websocket及时通信协议的实现方法示例

    C# websocket及时通信协议的实现方法示例

    说到websocket大家一定不会陌生,WebSocket是HTML5一种新的协议。下面这篇文章主要给大家介绍了关于C# websocket及时通信协议的实现方法,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-11-11
  • WinForm自定义函数FindControl实现按名称查找控件

    WinForm自定义函数FindControl实现按名称查找控件

    这篇文章主要介绍了WinForm自定义函数FindControl实现按名称查找控件,需要的朋友可以参考下
    2014-08-08
  • C#实现3D效果完整实例

    C#实现3D效果完整实例

    这篇文章主要介绍了C#实现3D效果的方法,结合完整实例形式分析了C#实现文字3D显示效果的具体步骤与相关操作技巧,需要的朋友可以参考下
    2016-08-08
  • 浅谈C#索引器

    浅谈C#索引器

    这篇文章主要简单介绍C#索引器,索引器使你可从语法上方便地创建类、结构或接口,以便客户端应用程序可以像访问数组一样访问它们。编译器将生成一个 Item 属性和适当的访问器方法,在主要目标是封装内部集合或数组的类型中,常常要实现索引器,下面我们一起来看看具体内容吧
    2021-11-11

最新评论