C_Sharp 板


LINE

※ 引述《flyskycat (猫爪~抓抓抓)》之铭言: : 各位先进好 : 我目前在 Windows Form 程式撰写过程中遇到的问题及架构描述如下: : 架构 : 1.程式具备两个两个视窗 Form1 主视窗及 Form2 辅助按钮视窗。 : 2.Form2 已写程类别库供 Form1 使用。 : 3.当点击 Form1 的 TextBox 後,会建立 Form2 实体并将视窗显示出来供使用者点选按 : 纽,未选到任何 TextBox 则 Form2 消失。点击 Form1 其他 TextBox 则再次显示 : Form2。 : 4.Form1 具备多个 TextBox,用来接收 Form2 按钮所按下的值,当 Form2 按一下 "1", : 则 Form1 的 TextBox 就显示 1;当 Form2 按下 "2",则 Form1 的 TextBox 就显示 : 12,依此类推。当 Form2 按下按钮,Form1 的 TextBox 就更新其内容。 : 问题 : 1.因为我采用的是 Form1 的 TextBox 被 Click 之後,才将 Form2 视窗建立出来。所以 : 我应该如何让 Form2 知道 Form1 是哪一个 TextBox 被选择到? : 2.因为每输入一个值,Form1 的 TextBox 就需要马上更新数值,所以我应该怎麽传值比 : 较好呢? : 因为测试了几天还是写不出来,希望各位先进能给我一些概念提示,我再自行找资料测试 : 真的再写不好,再将程式码放上来请各位指导。 花点时间回文好了,希望原PO无论有无看懂都回应一下 几个方法 1. Form1有几个TextBox就写几个function 例 private void TextBox1Input(String input) { TextBox1.Text+=input; } private void TextBox1_Click(object sender, EventArgs e) { Form2 fm2 = new Form2() fm2.textinput+=TextBox1Input; } 然後在Form2上面宣告一个Action叫作textinput public Action<string> textinput 当Form2的按键按下後 textinput.Invoke("text"); 2. 第二种方法可能会比较适合原po 非常简单 在Form2的建构子上加一个TextBox 然後Form1要建立Form2的时候将那个TextBox传给Form2 Form2就可以直接对那个TextBox作存取 --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 125.227.239.229
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_Sharp/M.1445844289.A.05C.html
1F:→ TameFoxx: 不过既然你只是一个辅助按钮视窗 那直接用panel会更好 10/26 15:26
2F:推 flyskycat: 感谢指导,因为视窗板面有限,所以才想说要用的时候再 10/26 15:47
3F:→ flyskycat: 叫出来... 10/26 15:47
4F:推 YahooTaiwan: 第二种方法不会有 memory leak 的隐忧吗 10/26 18:35
5F:→ sosokill: 用ref就不会了吧? 10/26 18:48
6F:推 totte: 可查一下AllenKuo 控制项传值的相关文章 尽量用OO做 10/26 19:50
7F:→ totte: 啊 对不起眼残 没注意到是WinForm sorry 10/26 19:51
8F:推 YahooTaiwan: 用 WeakReference 才不会吧? 10/27 00:05
9F:推 Litfal: 做个model class让两个form使用会比较好 10/27 02:44
10F:→ Litfal: 另外可以考虑重复使用form2,就不可能memory leak了 10/27 02:46
11F:→ Litfal: 其实form有个container会做dispose,所以应该不会mem leak 10/27 02:50
12F:推 YahooTaiwan: 没记错的话,只要有人参考你,你就不会被回收 10/27 06:41
13F:推 YahooTaiwan: 跟谁实不实做 dispose 无关 10/27 06:42
是这样没错
14F:→ YahooTaiwan: GC 不就是建构在 "当有东西没人要用时,我就自动帮你 10/27 06:44
15F:→ YahooTaiwan: 回收" 这个前提上吗? 10/27 06:44
16F:推 YahooTaiwan: 反之,你不会预期某个元件在你用到一半时突然被回收 10/27 06:45
17F:→ YahooTaiwan: 吧? GC 可没聪明到他能自己理解当 Form2 被回收时代 10/27 06:45
18F:→ YahooTaiwan: 表 Form1 也不需要用到这个参数了 10/27 06:45
我不太清楚哪里会有问题耶 你可以举个例子吗?
19F:→ Litfal: 这跟GC...先不讨论Form1如何回收他的子控制项,你提memory 10/27 23:21
20F:→ Litfal: leak是误导。 在讨论Form2参考Form1的TextBox造成该物件不 10/27 23:22
21F:→ Litfal: 能被回收之前,为什麽不先想想参考的Form2为什麽没被回收? 10/27 23:23
22F:→ Litfal: 而且Form2比那个TextBox更占资源,又,以这边的父子关系, 10/27 23:24
23F:→ Litfal: Form2没道理会比Form1有更长的生命。 10/27 23:24
※ 编辑: TameFoxx (125.227.239.229), 10/28/2015 09:56:06







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:e-shopping站内搜寻

TOP