作者clifflu ( 强运逃败 两次 !)
看板Visual_Basic
标题Re: [.NET] 要如何呼叫出另一个Form之值
时间Fri May 14 22:53:04 2010
※ 引述《clifflu ( 强运逃败 两次 !)》之铭言:
: 在两个 TextBox 的 OnChange 事件里,将产生事件的物件值,
: 给复制到另一个物件里。
: 为了达成这个目标,你需要在 MainForm 和 Form1 里,各自存有另一个 Form
: 实体的参考,再透过该参考去提取表单内的 TextBox 物件。
底下是自以为像 VB 的虚拟码,请自行修正
Class MainForm ' 启动表单
Public TB as TextBox
Private Form1 myForm1
Public Sub MainForm_OnLoad() handles Me.onLoad
myForm1 = new Form1()
myForm1.caller = Me
myForm1.Show()
End Sub
Public Sub TB_OnChange () handles TB.onChange
if not myForm1 is null then
myForm1.TB.text = TB.text
end if
End Sub
End class 'MainForm
Class Form1
Public TB as TextBox
Public caller as MainForm
Public Sub TB_OnChange() handles TB.onChange
if not caller is null then
caller.TB.text = TB.text
end if
End Sub
End Class
当然,像这样把自己的物件设为 Public 直接暴露出来不太好,
设为 Friend 稍微安全点,可是还是与物件导向的精神有点违背
实作出适当的属性 (Property) 去提取与设定内容会好一些
另外,上面也只有检查物件是否存在,
事实上还是有 Form 被建立,然後又被关掉的状况
可以在 Dispose 里面,去把对方指向自己的参考弄回 null
或者直接用 Try-Catch 处理可能的错误
---
然後 Databinding 啊,照 MSDN 说是可以直接和物件值连接啦,
不过我刚没试出来怎麽搞,自己照线上范例,弄个 DataTable 试试吧
--
鬼压床怎麽办
骑上去啊
Blog: http://clifflu.blogspot.com/ Since March, 2007
Photo Galelry: http://www.picasaweb.com/clifflu 没有了 T_T
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.112.230.190
1F:→ jskshan:感谢你的意见 05/15 00:08