C#中窗口间的相互访问

s198127 2005-04-08 03:36:32
请教一个问题!如何在一个窗口中访问另一个窗口的成员变量啊?
例如:在Form1 中 new 了一个Form2
我想在Form2中来访问Form1中的成员变量A

该如何写代码啊??

最关键的是如何获取Form1的实例.
...全文
391 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
lcj_abc 2005-04-09
  • 打赏
  • 举报
回复
顶一下
s198127 2005-04-09
  • 打赏
  • 举报
回复
感谢
zhgroup(机器不会错,错的是人!)
的解答,在这里我自己来补充一下:
如果是在两个无关的窗体间要实现上述的访问可以使用Form的Owenr属性
在Form1中添加:
Form2 form2 = new Form2();
this.AddOwnedForm(form2);

在Form2中添加:
Form1 form1 = (Form1)this.Owner; //直接将已经存在的Form1与form1关联起来
之后就可以适时的访问Form1中的Public变量了

如果是在MDI窗体间要实现上述的访问可以使用Form的ParentForm属性
在Form1中添加:
Form2 form2 = new Form2();
form2.MdiParent = this;

在Form2中添加:
Form1 form1 = (Form1)this.ParentForm; //直接将已经存在的Form1(MDI主窗口)与form1关联起来
之后就可以适时的访问Form1中的Public变量了
s198127 2005-04-09
  • 打赏
  • 举报
回复
首先先感激一下大家的踊跃解答
有不少的朋友都提出使用Public 类型的公共变量,但是我想强调一下这个问题的重点

Form2 是由 Form1 生成的!

也就是说!如果直接定义一个Public 类型的公共变量 P_A

Class Form1
{
Public string Ps_A
}

如果是在Form2 中直接生成Form1 ,要访问Ps_A是相当容易的事情!
直接在Form2中
Class Form2
{
string ls_form1_A;

Form1 form1 = new Form1();
ls_form1_A = form1.Ps_A;
}

就可以了!
但是我现在遇到的问题是Form1先生成,Form2是在Form1中生成的!
Class Form1
{
Form2 form2 = new Form2();
........
}
并且在程序的运行中Ps_A是在根据不同的条件在变的!
这样一来就不能直接在Form2中用
Form1 form1 = new Form1();
ls_form1_A = form1.Ps_A;
来访问了!


xiaomatian 2005-04-08
  • 打赏
  • 举报
回复
这种问题问的人挺多的嘛!

简单的方法就是设置成public
或者添加一个属性
private string vvv;
public string v
{
get{return vvv}
set{vvv=value}
}
然后在窗体中对v进行设值,然后在你要用的窗体中访问vvv就可以了
ZhQgigi 2005-04-08
  • 打赏
  • 举报
回复
把form1中的变量a定为public
cnming 2005-04-08
  • 打赏
  • 举报
回复
在你的Form2的构造函数中加入一个System.Windows.Forms.Form类型的参数

调用Form2的时候,把Form1作为参数传进来

另外,把Form1中你想访问的成员变量设置为public的,或者建立一个属性进行访问

zhgroup 2005-04-08
  • 打赏
  • 举报
回复
设置form2的owner为form1,然后在form2中 form1 frm = (form1)this.owner这样就可以引有用了.
Yamir2004 2005-04-08
  • 打赏
  • 举报
回复
或者把参数定义到class里
用form1和form2都用this调用
Yamir2004 2005-04-08
  • 打赏
  • 举报
回复
用参数传递
第12章 CSS样式与JavaScript脚本 应用 458 12.1 应用CSS样式美化网站 459 实例289 利用DIV+CSS布局网站后台主页面 459 实例290 为主题添加CSS样式使界面更加 人性化 461 实例291 利用CSS设计普通控件和数据控件 的外观 462 实例292 利用CSS样式设置链接控件样式 464 实例293 动态生成CSS设置下拉式菜单实现 页面跳转 465 实例294 利用CSS样式设置解释型菜单 467 实例295 利用主题CSS级联样式动态更换 网站皮肤 468 12.2 应用JavaScript脚本实现Web窗口 控制 470 实例296 利用JavaScript打开新窗口显示广告 信息 470 实例297 利用JavaScript实现自动关闭的广告 窗口 472 实例298 利用JavaScript居显示弹出的窗口 473 实例299 双击数据行打开新窗口显示详细信息 475 实例300 弹出窗口的Cookie控制 476 实例301 利用JavaScript为弹出的窗口加入 关闭按钮 477 实例302 利用JavaScript关闭弹出窗口刷新 父窗口 478 实例303 关闭IE主窗口时,不弹出询问对话框 480 实例304 利用JavaScript实现下降式窗口 481 实例305 利用JavaScript实现窗口自动滚动 482 12.3 JavaScript对时、XML文档和 多媒体的操作 483 实例306 利用JavaScript实现在线考试倒计时 483 实例307 在考试页的状态栏显示JavaScript 数字时钟 484 实例308 通过JavaScript操作XML文档并分页 显示 486 实例309 通过JavaScript控制循环不断播放 图片 487 实例310 利用javaScript控制Flash播放和停止 488 12.4 应用JavaScript实现Web打印 功能 490 实例311 调用IE自身打印功能实现打印 490 实例312 用WebBrowser组件的execWB方法 进行打印 491 实例313 利用JavaScript获取焦点并且打印 框架内容 492 实例314 智能放大或者缩小图片后进行打印 494 实例315 清空或恢复打印页面的页眉和页脚 495 实例316 利用JavaScript+CSS实现分页打印 496 12.5 JavaScript安全机制的应用 498 实例317 用JavaScript屏蔽部分键盘按键 498 实例318 利用JavaScript屏蔽鼠标右键 499 实例319 利用JavaScript禁止复制网页内容 500 12.6 其他常用JavaScript 501 实例320 让你的网站更具人气——收藏本站 501 实例321 将你喜欢的网站设为主页 502 实例322 智能显示输入的剩余字符 503 实例323 在Web页滚动显示公告信息 504 实例324 在刷新或提交页面后保持页面滚动条 的位置 505 实例325 Javascript和C#的互相调用与 访问 506 实例326 制作网站后管理页自动伸缩的菜单 507

110,535

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧