台灣最大程式設計社群網站
線上人數
1041
 
會員總數:243984
討論主題:188418
歡迎您免費加入會員
討論區列表 >> VB.NET >> Form1如何更改Form2裡面物件的屬性
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
Form1如何更改Form2裡面物件的屬性
價值 : 100 QP  點閱數:256 回應數:13

樓主

city
初學者
80 39
1269 214
發送站內信

各位前輩大大們好:

各位如果要在Form1更改Form2裡面的物件的屬性 通常會怎麼做呢?

例如:
Form1要更改Form2的標題文字
Form1要更改Form2.Button1的文字
Form1要清空Form2的ListBox1
...
...

範例(直接修改):


Form上面物件的Modifiers屬性預設是:Friend
理論上是可以直接更改

我目前是用類別裡的共用副程式來更改
不過有點想改回直接修改

不知道各位前輩及大大們都是如何處理的?

謝謝~~

搜尋相關Tags的文章: [ Form1 ] , [ 更改 ] , [ Form2 ] , [ 物件 ] , [ 屬性 ] ,
本篇文章發表於2019-01-28 19:19
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
1樓
回應

P陳
檢舉此回應
看沒
什麼狀況稱之為 直接修改?
本篇文章回覆於2019-01-28 19:55
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
作者回應

city
檢舉此回應
To:P陳

0樓的程式碼就是我所謂的[直接修改]

例如:Form1想改Form2.TextBox1的文字 讓Form2.TextBox1的文字等於現在時間
我所謂的[直接修改] 就像這樣:


本篇文章回覆於2019-01-28 20:03
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
回應

P陳
檢舉此回應
不過有點想改回直接修改 <--- 已經是直接修改了 還要改回直接修改
真的無法瞭解

本篇文章回覆於2019-01-28 22:54
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
作者回應

city
檢舉此回應
To:P陳

我以前是用[直接修改](像2樓那樣)
後來改成用[自訂類別.方法]修改

現在又在考慮改回[直接修改]

因此想看看版上大大們都是怎麼處理的
本篇文章回覆於2019-01-28 23:12
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
最有價值解答

P陳
檢舉此回應
瞭解了
個人二種方法都有用過,何時用那種方法則是看情況而定。

不過我較偏重用 自訂類別 的方法來作,
尤其是同一個物件會在多個地方重覆出現時,用自訂類別的方式,改一個地方就全部改過了。
如此當再增加一個FORM 時,不必所有程式皆要巡一遍。

而您當初改成 自訂類別 應該是有原因的。
能否請您將您 自訂類別.方方 的 程式PO出來一下。
(因為我們的寫法一定有落差)
本篇文章回覆於2019-01-29 11:46
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
6樓
作者回應

city
檢舉此回應
To:P陳

我記得當初是因為想要方便尋找
像是:"專案裡有幾個地方設定了Form的標題"
因此把程式碼包在副程式/函式裡面

一開始這些函式是寫在Form1裡面
後來改成寫在模組裡面
後來又改成寫在自訂類別裡面

其實這是我原本想另外再問的一個問題:"大家會將這樣的程式碼寫成副程式/函式嗎?"

我從大大5樓內容看來
大大可能是因為要方便管理(只要修改一個地方 就能將全部需要修改的地方全改好)
我猜想大大可能是將程式碼寫死在自訂類別方法裡面 像這樣:

上面的程式碼
Form2已經寫死了
"ABC"也寫死了
這樣修改這個自訂類別方法 就能將全部呼叫這個方法的地方全改好
不過這只是我的猜測...

我的程式碼跟大大的可能不同 程式碼如下:


我並沒有將程式碼寫死
也就是Form是可以變的
Form文字也是可以變的

之前是為了想知道有那些地方更改了Form的標題(呼叫此自訂類別方法)

不過任何方法總是有優點 有缺點

這個方法的缺點就是有點多此一舉
同樣要丟兩個變數(Form)(Form文字)
用:Form2.Text=Now這樣直接的寫法就可以了

因此 我最近再考慮要不要改回直接修改:Form2.Text=Now
而不是用自訂類別.方法來修改
本篇文章回覆於2019-01-29 12:33
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
7樓
作者回應

city
檢舉此回應
補充6樓:

[自訂類別.方法]還有個缺點:

專案裡會有大量的自訂類別

因為我習慣一個自訂類別裡面只會有1個方法
如果有10個方法 我會寫10個自訂類別
這只是個人習慣 因為我很怕看到一大堆程式碼(一個類別裡面有很多方法)

目前是嘗試用類別庫(.dll)來取代類別(.vb)
能解決專案裡面有一大堆的自訂類別
不過又產生一個新的問題:專案裡的類別庫太多...哈哈
本篇文章回覆於2019-01-29 12:45
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
8樓
回應

P陳
檢舉此回應
一個類別庫會放很多方法

應該加以分類將相同類型的方法放在同一個類別庫中
比如
DBIO 的放一個
計算的放一個
加解密的

而且都是可重覆引用的
本篇文章回覆於2019-01-29 14:35
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
9樓
作者回應

city
檢舉此回應
To:P陳 8樓

目前正嘗試把類別(.vb) 寫入類別庫(.dll)

感謝大大8樓所提供的方法 :)


我把函式寫法另外開一個問題來發問
其實那個問題跟這個問題是有關連的
原本是想分開問
現在決定還是放在一起問好了
這樣看能不能總結出一個結果...哈
本篇文章回覆於2019-01-29 17:15
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
10樓
回應

P陳
檢舉此回應
題目不明確是不會有結果的
建議您將問題再度思考釐清後,重新發問
才會讓其他高手看見
本篇文章回覆於2019-01-29 22:33
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
11樓
作者回應

city
檢舉此回應
To:P陳

哈哈...大大也是眾多高手之一阿
大大應該"至少"VB6.0就開始寫程式了(或許更早)
算一算也是資深工程師了


回到問題...
如果將問題最簡單化:
Form1的Button1按下後 要將Form2的ListBox1項目清空

大大會如何做?
本篇文章回覆於2019-01-29 23:29
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
12樓
回應

P陳
檢舉此回應
這個的話我就會直接作了
Form2.listbox1.items.clear
-------------------------------
還要再一些早 從 Dbase III 時代開始的

------------------------------
才會讓其他高手看見 <--意思是別的高手也會看見,會有不同的建議,我們才能會到眾人的精華
本篇文章回覆於2019-01-30 13:59
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
13樓
作者回應

city
檢舉此回應
To:P陳

Dbase III...大大不小心透漏年紀了(誤)

科技業進步的太快了 範圍又廣
寫了幾十年的程式人員 應該也不敢說所有的東西都會...

不過大大是從Dos時期學過來的
基礎應該打得比較穩...

我猜想應該是各位前輩們都不會這樣寫
(將一行指令寫成函式)
(例如:把Form2.Listbox1.items.clear寫成一個函式)(不管是量身訂做的寫法/或是由使用者輸入參數的寫法)

至少我在書上及網路上的範例都沒看過...
本篇文章回覆於2019-01-30 14:37
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.