多窗体传递

问题描述

为了达到查询效果,在打开了FORM1以后在FORM1有一个查询按钮,能打开FORM2然后返回一个参数值,例如123,那么如果将返回的123更新到FORM1的TEXTBOX1呢

解决方案

解决方案二:
可以给窗体添加一个共有属性,或者共有方法,只要别个可以访问到的就行……比如,Form2代码:publicclassForm2:Form{publicstringValueText{get;set;}privateTextBoxtxt_Input;publicForm2(){txt_Input=newTextBox();txt_Input.Location=newPoint(10,10);txt_Input.Size=newSize(100,20);txt_Input.TextChanged+=newEventHandler(txt_Input_TextChanged);this.Controls.Add(txt_Input);this.ClientSize=newSize(120,40);}privatevoidtxt_Input_TextChanged(objectsender,EventArgse){this.ValueText=txt_Input.Text;}}

在Form1中的按钮事件这样写

解决方案三:
Form2frm=newForm2();frm.ShowDialog(this);MessageBox.Show(frm.ValueText);

解决方案四:
textBox.text=数据结果.ToString
解决方案五:
能否写清楚点
解决方案六:
在Form1窗体中//定义一个按钮事件打开Form2privatevoidbutton1_Click(objectsender,System.EventArgse){Form2f2=newForm2();f2.Tag=this;f2.Show();}//定义一个公共方法用于修改Form1上textBox1的值publicvoidSetTextBox(stringstrValue){this.textBox1.Text=strValue;}

在Form2窗体中//按钮事件调用Form1中的SetTextBox方法来设置Form1中textBox1的值privatevoidbutton1_Click(objectsender,System.EventArgse){Form1f1=(Form1)this.Tag;f1.SetTextBox("123");}

解决方案七:
请问如果我要返回10个值,那么应该如何处理?
解决方案八:
另一种方法用api消息传递usingSystem.Runtime.InteropServices;publicpartialclassForm1:Form{publicForm1(){InitializeComponent();}//声明API函数[DllImport("User32.dll",EntryPoint="SendMessage")]privatestaticexternintSendMessage(inthWnd,//handletodestinationwindowintMsg,//messageintwParam,//firstmessageparameterintlParam//secondmessageparameter);[DllImport("User32.dll",EntryPoint="FindWindow")]privatestaticexternintFindWindow(stringlpClassName,stringlpWindowName);//定义消息常数publicconstintUSER=0x500;publicconstintTEST=USER+1;//向窗体发送消息的函数[Page]privatevoidSendMsgToMainForm(intMSG){Form2frm=newForm2();frm.Show();intWINDOW_HANDLER=FindWindow(null,@"Form2");if(WINDOW_HANDLER==0){//thrownewException("CouldnotfindMainwindow!");}SendMessage(WINDOW_HANDLER,MSG,100,200);}privatevoidbutton1_Click(objectsender,EventArgse){SendMsgToMainForm(USER);}}publicpartialclassForm2:Form{publicForm2(){InitializeComponent();}protectedoverridevoidDefWndProc(refSystem.Windows.Forms.Messagem){switch(m.Msg){//接收自定义消息USER,并显示其参数caseForm1.USER:stringmessage=string.Format("Receivedmessage!parametersare:{0},{1}",m.WParam,m.LParam);textBox1.Text=message;break;default:base.DefWndProc(refm);break;}}}
解决方案九:
引用6楼tonny688的回复:

请问如果我要返回10个值,那么应该如何处理?

那传参数的时候就传数组或集合
解决方案十:
我同意2楼的看法
解决方案十一:
定义一个静态全局变量就可以了,如果是多个可以定义为数组或是结构体(类也可以)就可以搞定了,
解决方案十二:
静态公共变量吧,最省事
解决方案十三:
static定义个变量,方便,快捷

时间: 2024-10-23 18:13:02

多窗体传递的相关文章

子父窗体传递值-c#中tracbar控件调节图片亮度

问题描述 c#中tracbar控件调节图片亮度 子窗体有tracbar控件,父窗体有picturebox,怎么通过建图片亮度的一个类,通过子窗体的tracbar控件来改变父窗体图片亮度?求代码 解决方案 http://www.jb51.net/article/64773.htm

利用C#实现窗体间的数据传递

一个稍微复杂一点的程序一般都有二个或者更多的窗体.有时在程序设计中,数据不仅要在同一个窗体中传递,还要在窗体间传递,这种传递是主窗体与从窗体之间数据的互相传递.从本文开始,我们将列举不同窗体间数据传递的四种情况,和用Visual C#实现这四种情况的具体方法.下面先介绍用Visual C#实现窗体间传递数据中第一种情况--从主窗体向从窗体传递字符串.在阅读完本文后,你还尝试一下利用此方法在窗体间传送数值等数据. 本文中程序设计.调试.运行的软件环境: Windows2000 服务器版 Visua

父子窗体间传递JSON格式的数据的代码_json

如果某个一级评分项包含评分子项,则点击该评分项时,再弹出一个新窗口,新窗体中列出了当前评分项的所有评分子项列表,供用户进行操作.用户操作完成后,点击"确定"按钮,则返回到父窗体,在子窗体中所有的操作结果,同时要带到父窗体中.同时,如果用户再次点击该评分项,则在弹出子窗体的同时,要将上次操作的结果绑定到对应的操作项上. 上面描述的例子,就涉及到了一个父子窗体间的数据传递.如何实现这一数据传递,当然有很多方法.这里只是记录一下在这个例子中我使用的方法.我的方法是在子窗体点击"确定

ASP.NET 2.0 中的窗体身份验证

asp.net 概述 窗体身份验证使用用户登录到站点时创建的身份验证票,然后在整个站点内跟踪该用户.窗体身份验证票通常包含在一个 Cookie 中.然而,ASP.NET 2.0 版支持无 Cookie 窗体身份验证,结果是将票证传入查询字符串中. 如果用户请求一个需要经过身份验证的访问的页,且该用户以前没有登录过该站点,则该用户重定向到一个配置好的登录页.该登录页提示用户提供凭据(通常是用户名和密码).然后,将这些凭据传递给服务器并针对用户存储(如 SQL Server 数据库)进行验证.在 A

ASP.NET页面间数据传递小结

asp.net|数据|页面 ASP.NET较ASP最大的优点,也是其受到越来越多程序员的欢迎的主要原因就是,ASP.NET为开发者提供了事件驱动的开发模式,从此程序员可以像利用可视化编程工具开发Windows应用程序一样来开发ASP.NET的基于Web页面的应用程序了. 一般稍微庞大的ASP.NET程序至少拥有二个或以上的Web页面,程序员在开发类似ASP.NET应用程序时一般都需要处理在多个Web页面传递数据的问题.我们知道ASP.NET程序中的各个Web页面类似于Windows应用程序中的F

如何把对象传递到一个过程

在vb.net中,用户可以传递一个对象到过程中.下面的例子建立了一个窗体类的对象并且把它传递到一个过程中去.为了使用这个例子,用户可以把一个名为button1的按钮添加到窗体中去,并把下面这些代码复制到button1_click事件中去. Protected Sub Button1_click(Byval sender As system.Objec,_ Byval e AS System.EventArgs) Dim frmform AS New Form1() frmform.show()

C# 基础知识 (三).主子对话框数值传递

在C# winform编程中,我们经常会遇到不同窗口间需要传递数值的问题.比如数据库的应用,主窗口填写内容num1,点击按钮,在弹出的子窗口显示对应num1值;或者在子窗口填写新注册用户名信息,在主窗口的dataGridView动态变化显示着新添加\修改的值;或者在修改信息时,输入用户编号"000001"在对应textBox中它的相应数据.显示如下图所示: 以上应用都涉及到如何在两个不同窗口间传递数值,并实现动态的更新,下面就介绍我请教同学学到的一种主子对话框数值传递的知识,仅供大家学

asp.net子窗体与父窗体交互实战分享_实用技巧

今天在项目上遇到了这个问题,其实只是window.returnValue的简单应用,不是asp.net的专属内容.作为积累,记录一个简单的实现模型. 图1  用到的文件    从图1中我们可以看到,只用到了两个页面,其中Default.aspx作为父页面,Default2.aspx作为子页面被弹出.Default.aspx页面上有两个TextBox一个Button,代码如下: 复制代码 代码如下: <%@ Page Language="C#" AutoEventWireup=&q

weifenluo的子窗口传递问题

问题描述 加上weifenluo后..子窗体就不能向父级窗体传递值了,总是提示未将对象引用设置到对象的实例...跪求大神知道啊!! 解决方案 解决方案二:..这是提示的错误解决方案三:你自己封得有问题额...解决方案四:窗体之间传递,推荐使用事件