C#中传值的方法共有几种?烦请举例

如题所述

第一种方法就是静态变量机制,C#公布静态变量就是将该类的已有的实例公开,和VC做法雷同,假设我们在一个窗体中这么写:

public static String str="";
void loadForms(object sender,EventArgs e)
{
   Form2 f=new Form2(); 
   textBox1.Text=str;
   f.ShowDialog();//一定不要用show
}

另一个窗体这么写:

private void listBox1_SelectItem(...)  //listView选择事件
{
    Form1.str=listBox1.SelectItem.Text;
}

意思就是打开Form2在Form2上选择listbox后form1不关闭会实时显示的。当然你也可以把str直接赋值,然后别的窗体show一下就可以了,直接使用他。这种方法就是静态传值。

第二种是封装属性,我把他固有的值当成属性封装起来 ,给属性赋值,如我在窗体Form2中写:

public string str
{
  get{return textBox2.Text;}
  set{textBox2.Text=value;}
}

那么Form中就可以这么写:

void loadforms(...)
{
   Form2 f=new Form2();
   f.str=dataGridView.Rows[0].Cells[0].Value.ToString(); //表格取值传给form2
   f.ShowDialog();//要模态窗体  
}

最后一种方法就是继承,当子类继承自主类时,就继承了他的成员变量,例如我在Form2中继承Form1,在Form2中就这么写:

namespace 命名空间.目录文件夹

   public partial class Form2 : 命名控件.目录文件夹.Form1
   {
     public Form2()
     {
       ... 
     }   
   
      //这里直接就可以使用Form1了     ....... 
   }
}

 在WEB中就多了楼上那位说到了一部分。其实还有remoting也可以传值,当你建立服务器的时候,remoting可以实时监控你的程序,实时传值响应客户端,下面太多写不下了,你自己找实例吧

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-04-18

    get提交方式传值,也就是url参数传值;

    post提交方式传值,即提交表单的方式传值;

    cookie传值;

    session传值;

    application域传值!

本回答被网友采纳
相似回答