精华内容
下载资源
问答
  • winForm传值

    2016-12-26 17:52:37
    从父窗口向子窗口传值: 可以在子窗口定义需要传递值的属性,然后利用自定义的构造方法(或者就直接赋值的方法),将参数传递到子窗口中去。 //构造Form2同时传递参数 Form2 form2 = new Form2(text, listBox1, ...

    从父窗口向子窗口传值:

    可以在子窗口定义需要传递值的属性,然后利用自定义的构造方法(或者就直接赋值的方法),将参数传递到子窗口中去。

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


    从子窗口向父窗口传值:

    这里我们用到的是代理,先在子窗口中声明代理(类外面)和代理事件(类属性),然后选择代理事件调用的时机调用的时机。在父窗口定义子窗口之后,为子窗口的处理事件添加对应代理的响应方法,并实现这个方法

    //子窗口
    public delegete void MyDelegate(string o);
    
    public event MyDelegate MyEvent; 
    
    
        private void btnChange_Click(object sender, EventArgs e) 
        { 
           MyEvent(this.textBox1.Text); 
    	}	
    //父窗口:
    
          form2.MyEvent += new MyDelegate(form2_MyEvent); 
          form2.Show(); 
     
      
        //处理 
        void form2_MyEvent(string text) 
        { 
          this.listBox1.Items.RemoveAt(index); 
          this.listBox1.Items.Insert(index, text); 
        } 







    展开全文
  • winform传值

    2012-12-07 09:39:57
    特点:传值是单向的(不可以互相传值),实现简单 实现代码如下: 在窗体Form2中  int value1; string value2; public Form2 ( int value1 , string value2 ) {  InitializeComponent ( );  this.value...

    1.通过构造函数

    特点:传值是单向的(不可以互相传值),实现简单

    实现代码如下:

    在窗体Form2      

    int value1;

    string value2;

    public Form2 ( int value1 , string value2 )

    {

        InitializeComponent ( );

        this.value1 = value1;

        this.value2 = value2;

    }

    在窗体Form1中这样调用

    new Form2 ( 111 , "222" ).Show ( );  //这样就把111,"222",2个值传送给了Form2

     

    2.通过静态变量

    特点:传值是双向的,实现简单

    实现代码如下:

    在一个app类中定义一个静态成员value

    public class app

    {

      public static string value;

    }

    在窗体Form1中这样调用

    app.value = "f2";        //给静态成员赋值

    new Form2 ( ).Show ( );  //显示Form2

    在窗体Form2     

    this.Text = app.value;  //取回app.value的值

    app.value = "Form2";    //app.value赋值,以便其他窗体调用

     

    3.通过窗体的公有属性值

    特点:实现简单

    实现代码如下:

    在窗体Form2中定义一个公有属性Form2Value,获取和设置textBox1的文本值

    public string Form2Value

    {

        get

        {

            return this.textBox1.Text;

        }

        set

        {

            this.textBox1.Text = value;

        }

    }

    在窗体Form1中这样调用

    Form2 f2 = new Form2 ( );

    f2.Form2Value = "Ok";     //Form2textBox1赋值Ok

    f2.ShowDialog (  );

     

    4.通过窗体的公有属性值和Owner属性

    特点:实现简单,灵活

    实现代码如下:

    在窗体Form1

    public int Form1Value = 1;

    Form2 f2 = new Form2 ( );

    f2.ShowDialog ( this );       //Form1作为Form2的所有者传递给Form2

    在窗体Form2

    //Form2的所有者是Form1

    Form1 f1 = ( Form1 ) this.Owner;

    //取到Form1的值是1

    MessageBox.Show ( f1.Form1Value .ToString ( ) );

    //Form1Form1Value赋值222

    f1.Form1Value = 222;

     

    5.通过窗体的公有属性值和Application.OpenForms属性

    说明:Application.OpenForms属性:获取属于应用程序的打开窗体的集合。(此属性在 .NET Framework2.0版中)

    实现代码如下:

    在窗体Form1

    public int Form1Value = 1;

    Form2 f2 = new Form2 ( );

    f2.Show ( );

    在窗体Form2

    string formName = "Form1";

    Form fr = Application.OpenForms [ formName ];

    if ( fr != null )

    {

        Form1 f1 = ( Form1 ) fr;

        //取到Form1的值是1

        MessageBox.Show ( f1.Form1Value.ToString ( ) );

        //Form1Form1Value赋值222

        f1.Form1Value = 222;

    }

     

    6.通过事件

    实现代码如下:

    在窗体Form2中定义公有属性Form2Value,获取和设置textBox1的文本值

    并且还定义一个accept事件

    public string Form2Value

    {

        get

        {

            return this.textBox1.Text;

        }

        set

        {

            this.textBox1.Text = value;

        }

    }

    public event EventHandler accept;

         

    private void button1_Click ( object sender , EventArgs e )

    {

        if ( accept != null )

        {

            accept ( this , EventArgs.Empty );  //当窗体触发事件,传递自身引用

        }

    }

    在窗体Form1

    Form2 f2 = new Form2 ( );

    f2.accept += new EventHandler ( f2_accept );

    f2.Show ( );

    void f2_accept ( object sender , EventArgs e )

    {

     //事件的接收者通过一个简单的类型转换得到Form2的引用

        Form2 f2 = (Form2) sender;

     //接收到Form2textBox1.Text

        this.textBox1.Text = f2.Form2Value;

    }

    分类: C# WinForm
    展开全文
  • C# winform传值

    2016-03-10 17:05:35
    Winfrom窗体传值
    经常在论坛或者其他地方看见有人问:如何在winform之间传值。能够完成这个 的方式有很多,原理也比较简单。下面就通过一个简单的winform例子来说明这些方式。
    

    创建一个windows窗体应用程序,添加一个窗体命名为MainFrom.再添加另外一个窗体命名为A。实现在MainFrom与A窗体参数之间传递。

    第一种方式:构造函数传值
    1.在A窗体的代码视图中添加一个变量,用于保存传递过来的参数。同时为A添加带参数的构造函数:

    private string text = "";
            public A(string text)
            {
                InitializeComponent();
                this.text = text;
            }

    2.在A窗体上添加一个Label,用于显示接收到的值。同时在A的Load事件中编写代码:

       private void A_Load(object sender, EventArgs e)
            {
                label1.Text = text;//将Label的值设置为接收到的值
            } 

    3.在MainForm窗体上添加一个按钮A,为A添加点击事件:

     private void button1_Click(object sender, EventArgs e)
            {
                A a = new A("通过构造函数传递");
                a.Show();
            }

    点击A按钮。运行效果:
    这里写图片描述

    第二种 子窗体操作主窗体控件
    有时候在子窗体中做出某个动作,比如点击之类的,需要显示到主窗体上。

    1.在MainForm窗体上添加一个Label,将Label的Modifiers属性设置为public:
    这里写图片描述

    2.在MainForm上添加一个按钮“传递窗体”,并添加事件:

      private void button2_Click(object sender, EventArgs e)
            {
                A a = new A(this);
                a.Show();
            }

    3.在A中设置一个MainForm的对象,同时为A添加构造函数:

     private MainFrom mainForm;
            public A(MainFrom mainForm)
            {
                InitializeComponent();
                this.mainForm = mainForm;
            }
    

    4.在A窗体上添加按钮“主窗体”,添加事件:

    
            private void button1_Click(object sender, EventArgs e)
            {
                mainForm.label1.Text = "通过子窗体操作主窗体";
            } 

    点击A窗体上的按钮,运行效果:
    这里写图片描述

    其实两种方式都是一致的:通过构造函数传递参数,只不过是传递的参数类型不一样而已。传递的参数的类型需要自己视情况而设定。

    第三种方式 通过静态变量传递内容

    1.创建一个类Common,定义一个变量

    public class Common
        {
            public static string CommonValue { get; set; }
        }

    2.创建另外一个窗体B.在MainForm窗体上添加按钮B,为B添加事件:

     private void button3_Click(object sender, EventArgs e)
            {
                Common.CommonValue = "通过静态变量传递";
                B b = new B();
                b.Show();
            }

    3.在B窗体上添加一个Label,在B的load事件中编写代码:

      private void B_Load(object sender, EventArgs e)
            {
                label1.Text = Common.CommonValue;
            }

    点击按钮“B”,运行效果:
    这里写图片描述

    第四中方式 事件
    这种是比较好的一种方式。可以参见我的另外一篇博客:
    C#自定义事件

    其他方式:
    数据库、文件等等。这些就不详细编码了。前面几种方式已经完全足够达到想要实现的效果了。

    展开全文
  • C# WinForm传值

    千次阅读 2008-11-15 13:09:00
    WinForm之间传值有很多种方法,在这里我用的是delegate and event进行传值.新建一个WindowsApplication,创建两个WinForm.其实它们就是两个类.每个WinForm中各加入一个Button和一个TextBox.在WinForm2中写入代理和...
    在WinForm之间传值有很多种方法,在这里我用的是delegate and event进行传值.
    
    新建一个WindowsApplication,创建两个WinForm.其实它们就是两个类.
    每个WinForm中各加入一个Button和一个TextBox.
    在WinForm2中写入代理和事件(delegate and event)如下:
    //代理声明
    public delegate void SendMessage(string str);
    //事件声明
    public event SendMessage SendEvent;
    private void btnSend_Click(object sender, EventArgs e)
    {
           //调用事件
          SendEvent(textBox1.Text);
    }
    在WinForm1中写入如下代码:
    private void btnShow_Click(object sender, EventArgs e)
    {
            Form2 f2 = new Form2();
            //Form2事件注册
            f2.SendEvent+=new Form2.SendMessage(GetMessage);
            f2.Show();
    }
    //代理调用的方法
    public void GetMessage(string str)
    {
           textBox1.Text = str;
    }
    在点击WinForm1的Button弹出WinForm2后,在WinForm2中文本框输入文字,然后点击按钮,信息将会立刻发送到WinForm1,并显示出来.
     
    展开全文
  • c# winform传值到FLASH

    2010-03-08 11:17:48
    c#语言通过xml格式传值到flash,flash显示出值来
  • winform 传值问题

    2012-08-15 08:58:15
    逻辑是这样,很多窗体上都有“打印”按钮,点击之后调用一个公共的窗体选择打印机名,选择完成后返回原始窗体执行打印。 需要将原始窗体信息传递到公共窗体,然后将公共窗体的选择信息返回原始窗体,各位大虾如何做...
  • Webform调用Winform,通过QueryString给Winform传值 Dim args As String() = WebCommandLineHelper.GetCommandLineArgs(argsFromMain)  If args.Length > 0 Then  For j As Integer = 0 ...
  • 看了些窗体传值的例题都是用构造函数 可我觉得构造函数想实现即时传值好象不行 呵呵,我总是理解不了构造函数(菜吧) 我所以就想了这样个办法来实现传值 using System; using System.Collections.Generic; using ...
  • 同样可以通过构造函数传值来控制,在主窗体中创建一个list公共集合(利用便利集合来取值窗口,建立一个包含窗口的集合,再利用if,标记变量来判断) public partial class Form1 : Form { public Form1() ...
  • [C#] WinForm传值

    2007-09-09 20:26:00
    1. 使用构造函数 class Form1:Form { public Form1() { Form2 f = new Form2("我要传给你"); f.Show(); } } public Form2:Form { public Form2() {} public Form2(string title):this() { MessageBox.Show(title)...
  • public static void ShowOrActiveForm(ref bool status, string FormName ,Dictionary dic) where T : Form  {    Form fm;    if (!status)  {
  • WinForm窗体传值

    2012-04-09 11:16:32
    WinForm窗体传值各种方式!可以满足你的需要
  • winform之间传值实例

    2016-03-18 16:59:19
    winform之间传值实例
  • 以下程序演示MDI父窗体与子窗体传值和子窗体之间传值。时间仓促。请忽见怪。NND,找工作真难找!大家祝福我找个好工作吧。Qq:1325625MSN:CnBabyCrazy@HotMail.Com========================================
  •  this.label2.Text = "C#WinForm传值方法(一)";  //  // Form1  //  this.AutoScaleBaseSize = new System.Drawing.Size(6, 14);  this.ClientSize = new System.Drawing.Size(292, 273);  this.Controls....
  • 传值方式: // 赋值: Application.Current.Properties[ " bbb " ] = " dsfds " ; // 取值: string aa = Application.Current.Properties[ " bbb " ].ToString();     转载于:...
  • c# winform属性传值

    2014-05-30 08:57:34
    c#开发的窗体间的属性传值, 能够满足两个winform之间传递值

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,473
精华内容 989
关键字:

winform传值方式