→ jskshan:感謝你的意見 05/15 00:08
※ 引述《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