none
請教一下該如何變更其他表單中元件的內容? RRS feed

  • 問題

  • 請教一下各位前輩,小弟有A B 2個form

    A form有一個textbox

    該如何於B form上指定A form 的textbox.text屬性呢??

    2007年10月25日 上午 08:09

解答

  • HI  K SIR:

     

    下面的程式碼 給你 參考  ︿︿

     

    程式碼區塊

     private void FormB_Click(object sender, EventArgs e)
            {
                foreach (Form A in Application.OpenForms)
                {
                    if (A is FormA)
                    {
                        foreach (Control i in A.Controls)
                        {
                            if ((i is TextBox) && (i.Name=="textBox1"))
                            {
                                TextBox t= i as  TextBox;
                                t.Text="YA! 我找到你了  ^^";
                                break;
                            }
                        }
                    }

                }
            }

     

     

    2007年10月25日 上午 08:25
  • Demo 用 Form1 去控制 Form2 的 Title

     

    public class Form2:WindowForm{

        public string TitleString{

          get{

                 retrun this.Title.Text;

              }  

          set{

                 this.Title.Text=value;

              }

    }

    }

     

     

    public class Form1:WindowForm{

        private void SendMessageToForm2(string message){

         Form2 form2=new Form2();

         form2.TitleString="This is Form Two";

         form2.Show();

    }

    }

    2007年10月26日 上午 03:18
  • HI   K Sir:

     

    下面程式碼給你參考 ︿︿

     

    程式碼區塊

     
      static TextBox ErrMsgBox;

     

            public Form1()
            {
                InitializeComponent();


                ErrMsgBox = this.textBox1;
                     
            }


            public static void GettkConnstr_SMTP()
            {
                try
              {        
      
             }
             catch (Exception )
             {
                 if (ErrMsgBox != null)
                 {
                   ErrMsgBox.Text = "如果程式發生錯誤時,希望可以在FORM中的textBox上留下訊息!";
                 }
             
              }

            }

     

     

    2007年10月26日 上午 06:21

所有回覆

  • HI  K SIR:

     

    下面的程式碼 給你 參考  ︿︿

     

    程式碼區塊

     private void FormB_Click(object sender, EventArgs e)
            {
                foreach (Form A in Application.OpenForms)
                {
                    if (A is FormA)
                    {
                        foreach (Control i in A.Controls)
                        {
                            if ((i is TextBox) && (i.Name=="textBox1"))
                            {
                                TextBox t= i as  TextBox;
                                t.Text="YA! 我找到你了  ^^";
                                break;
                            }
                        }
                    }

                }
            }

     

     

    2007年10月25日 上午 08:25
  • 如果A Form是MDI FORM的主表單呢??

    2007年10月25日 上午 08:33
  • HI  K SIR:

     

    B Form  是 MDI 子表單嗎  ?

     

    2007年10月25日 上午 08:41
  • HI  K  Sir:

     

    我剛剛試了 MDI FORM  也是可以的  請看下圖

     

    2007年10月25日 上午 08:59
  • 多謝大哥的幫忙喔!

    2007年10月25日 上午 09:01
  • Demo 用 Form1 去控制 Form2 的 Title

     

    public class Form2:WindowForm{

        public string TitleString{

          get{

                 retrun this.Title.Text;

              }  

          set{

                 this.Title.Text=value;

              }

    }

    }

     

     

    public class Form1:WindowForm{

        private void SendMessageToForm2(string message){

         Form2 form2=new Form2();

         form2.TitleString="This is Form Two";

         form2.Show();

    }

    }

    2007年10月26日 上午 03:18
  • 您好,若是在同一個FORM中宣告了一個副程式

    public static void GettkConnstr_SMTP()

    {

    }

     

    在這個副程式中該如何修改同一個FORM中元件的屬性呢??

    2007年10月26日 上午 05:24
  • 暈倒!!,怎麼會有這種問題! 還是Demo一下,我做一張銷售訂單,上面放Lable,我們稱 lbSalesOrderNo

     

    public class SalesOrderForm:WindowForm{

              private void SetInitialVaule(){

              this.lbSalesOrderNo.Text="SO20071026001";  //這裡就可以設了.

              }

    }

     

    而你那一題我會這樣解

    public static class SMTP{

            private static string connection="xxxxxxxx";

            public static string Connection{

            retrun connection;      

    }

     

     

    public class SalesOrderForm:WindowForm{

              private void SetInitialVaule(){

              this.lbSalesOrderNo.Text=SMTP.Connection; 

              }

    }

    }

    2007年10月26日 上午 05:36
  •  

    您好,其實小弟的這個副程式,在其他的FORM中也會叫用到,所以才宣告成public static void GettkConnstr_SMTP()

    在這之中有用到try{ }catch (Exception ex){ } 的方法,如果程式發生錯誤時,希望可以在FORM中的textBox上留下訊息!

    所以才會有這個問題!

    2007年10月26日 上午 05:45
  • HI   K Sir:

     

    下面程式碼給你參考 ︿︿

     

    程式碼區塊

     
      static TextBox ErrMsgBox;

     

            public Form1()
            {
                InitializeComponent();


                ErrMsgBox = this.textBox1;
                     
            }


            public static void GettkConnstr_SMTP()
            {
                try
              {        
      
             }
             catch (Exception )
             {
                 if (ErrMsgBox != null)
                 {
                   ErrMsgBox.Text = "如果程式發生錯誤時,希望可以在FORM中的textBox上留下訊息!";
                 }
             
              }

            }

     

     

    2007年10月26日 上午 06:21
  • 你越來越過份,越來越過火了!,越來越難符合你的需求了,其實你的問題只是一般的需求,但要在這討論區裡這樣一問一答不知要寫到何年何月,我這邊給你一個方案,我以前用過的(我現在用的是WPF),你照裡面的學,你就能做出專家的的Windows程式,還有一些OO,跟Interface的應用.

    http://msdn2.microsoft.com/en-us/library/aa480450.aspx

     

    2007年10月26日 上午 06:23
  • 多謝您的解答了!我會再研究的!

    謝謝!

    2007年10月26日 上午 06:39