none
傳送Form1的控制項資料至Form2變數 RRS feed

  • 問題

  • 請問各位大大

    我想將Form1的控制項的資料傳送至Form2宣告的變數

    但是他錯誤顯示說你控制項是Private的

    我自己改成Public也不行,請問有甚麼方法可以解決嗎?

    2010年10月24日 上午 09:28

解答

  • 先在Form2 宣告一個Public 的屬性, 其型別與你的Form1控制項相同

    比如 Form1是個TextBox (名為TextBox1)

    你可以在Form2 中宣告一個 Public Property TopTextBox as TextBox

    Form1 要開啟Form2前將其傳過去, 如: Form2.TopTextBox = Me.TextBox1

    PS: 這是傳整個控制項參考, 你也可以只傳值, 但Fomr2宣告和Form1傳遞的型別就要正確


    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。
    • 已標示為解答 努力學習 2010年10月25日 上午 01:53
    2010年10月24日 上午 11:17
  • 我直接把

    Private Sub a123456700_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles a123456700.Click
              Form2.Show()

            Me.Hide()
        End Sub

    Private 改成Public

    我是想把a123456700這個picturebox的控制項名稱傳到form2的一個string變數

    但他都會顯示"無法在此內容中存取'test.form2.x',因為它是Private"

    Hi!

    您下載此專案跑跑看

    http://cid-101d8ba47227b414.office.live.com/self.aspx/.Public/SmartDeviceProjectF2F.zip


    歡迎參觀我的Blog.NET菜鳥自救會
    • 已標示為解答 努力學習 2010年10月25日 上午 01:53
    2010年10月24日 下午 05:57
    版主

所有回覆

  • Hi!

    1. 這句話 [我自己改成Public也不行] 不行是指什麼?

    2. 參考此文 [.NET Concept][C#][VB.NET].NET兩個表單間的資料互通


    歡迎參觀我的Blog.NET菜鳥自救會
    2010年10月24日 上午 09:39
    版主
  • 先在Form2 宣告一個Public 的屬性, 其型別與你的Form1控制項相同

    比如 Form1是個TextBox (名為TextBox1)

    你可以在Form2 中宣告一個 Public Property TopTextBox as TextBox

    Form1 要開啟Form2前將其傳過去, 如: Form2.TopTextBox = Me.TextBox1

    PS: 這是傳整個控制項參考, 你也可以只傳值, 但Fomr2宣告和Form1傳遞的型別就要正確


    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。
    • 已標示為解答 努力學習 2010年10月25日 上午 01:53
    2010年10月24日 上午 11:17
  • 例如我是要經Form1的picturebox1.name傳送Form2用一個string變數存起來

    我在form2宣告 如下面

    Public Property d() As String
            Get
                d = Form1.a123456700.Name
            End Get
            Set(ByVal value As String)

            End Set

        End Property

    這樣d變數就是form1的picturebox1.name嗎?

    2010年10月24日 下午 03:09
  • 我直接把

    Private Sub a123456700_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles a123456700.Click
              Form2.Show()

            Me.Hide()
        End Sub

    Private 改成Public

    我是想把a123456700這個picturebox的控制項名稱傳到form2的一個string變數

    但他都會顯示"無法在此內容中存取'test.form2.x',因為它是Private"

    2010年10月24日 下午 03:33
  • 我直接把

    Private Sub a123456700_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles a123456700.Click
              Form2.Show()

            Me.Hide()
        End Sub

    Private 改成Public

    我是想把a123456700這個picturebox的控制項名稱傳到form2的一個string變數

    但他都會顯示"無法在此內容中存取'test.form2.x',因為它是Private"

    Hi!

    您下載此專案跑跑看

    http://cid-101d8ba47227b414.office.live.com/self.aspx/.Public/SmartDeviceProjectF2F.zip


    歡迎參觀我的Blog.NET菜鳥自救會
    • 已標示為解答 努力學習 2010年10月25日 上午 01:53
    2010年10月24日 下午 05:57
    版主
  • 感謝大大的指導!!

    小弟還懂得太少瞜!!

    要繼續加強^^

    2010年10月25日 上午 02:06
  • 請問小歐大大,我傳值發現了一個問題!!

    我在Form1設定多個picturebox

    第一次點過去form2顯示出strName 是對的

     

    但是載回去Form1在點下一個picturebox進入倒Form2時候 

    strName的值還是在前一個picturebox的name呢!

    我把d=""也沒辦法

    請問大大問題是在哪邊呢?

    2010年10月29日 上午 05:30
  • 你點第二個的動作怎麼寫的 ?

    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。
    2010年10月29日 上午 06:01
  • 我點第二個picturebox ㄍ第一個是依樣的程式碼!! 

     

    Form2.d = DirectCast(sender, System.Windows.Forms.PictureBox).Tag

    2010年10月29日 上午 08:47
  • 我又不是小歐, 我哪知道那個程式碼怎麼寫的 ?

    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。
    2010年10月29日 上午 08:55
  • Bill Chung大大,我發現哪邊出問題了!

    已經解決摟,因為我是在form2_load下顯示d的值,但是我再跳回去是用hide保單

    在點下一個picturebox他也不會再load一次,所以都不變!

    我改另外一個寫法,已經OK瞜! 

    還是很感謝你願意指導我^^讓我更去檢查控制項傳送之間的關係!

    2010年10月29日 下午 12:44