C#----属性应用之窗体间的数值传递

    初学c#,误以为属性和变量没什么区别,后来才渐渐体会到属性在windows窗体程序中的重要性,可以说它是窗体的接口,窗体之间的联系就是通过窗体来建立的。下面我就一例子来说明窗体间是如何进行通信的(传递数据)。

C#----属性应用之窗体间的数值传递_第1张图片

 

 

 

 

 

 

1FrmSearch

1是我做通讯录时设计的一个界面,不难看出这个界面是用来实现查询功能的一部分.当选中Listbox中的某一项单击确定后会在图2所示的窗口中显示查询结果。

 

 

 

C#----属性应用之窗体间的数值传递_第2张图片

 

 

 

2(FrmSearchResult)

 

 

显然关于查询操作的代码应在图2(FrmSearchResult)的后台中实现,这就需要将图1FrmSearch)中选定的项传递到图2中去,也就是需要实现两个窗体间的传值。实现代码如下

//在图1FrmSearch)的后台写入代码

//selectedname用来保存选择的数据

string selectedname;

 

//双击图1FrmSearch)的“确定”按钮后添加事件处理程序
        private void btOk_Click(object sender, EventArgs e)
        {
           
            //
存储被选定的项(也就是要传递的数据),为启动另一个线程做准备,
            selectedname=(string)listBox.SelectedItem;

          

            //因为要启动另一个窗体所以启动一个新线程
            ThreadStart thread = new ThreadStart(runFrmSearchResult);
            Thread t = new Thread(thread);
            t.Start();

            //关闭当前窗体
            this.Close();
        }

 

//自定义函数,实现实例化窗体功能
        private void runFrmSearchResult()
        {
            FrmSearchResult fsr = new FrmSearchResult();

//哪来的name,带着疑问往下看,就是在这儿将窗体FrmSearch中的数据传递给了FrmSearchResult
            fsr.name = selectedname;
            fsr.ShowDialog();
        }

//

//FrmSearchResult  窗体后台写入代码:

//

public partial class FrmSearchResult : Form

{

./////////////省略部分////////////////////

 //

//定义属性name,也就是大家在上面看到的那个name

       private string _name;      

        public string name

        {

            get

            {

                return _name;

            }

            set

            {

                _name = value;

            }

        }

//

//下面你就可以根据name来写实现查询部分代码了,因为已经实现了从FrmSearchFrmSearchResult的数据传递。

//////////////////////省略部分/////////////////////

}

 

 

不知道大家明白了没有?有什么问题可以探讨一下哦!

   

你可能感兴趣的:(C#----属性应用之窗体间的数值传递)