歡迎光臨 pure C# 技術社群. 登入註冊

pure C# 技術社群

- Microsoft .NET Framework 相關技術非官方討論社群 -

[請問] 如何將Form1的textbox1值傳到Form2的richTextBox1.Text @@?

  • 1
  • [第1/1頁 共3項]
#1

[請問] 如何將Form1的textbox1值傳到Form2的richTextBox1.Text @@?

  • a
 0.0 (0 人評價)

我現在想把Form1的textBox1的值
用button1傳到Form2的richTextBox1

private void button1_Click(object sender, EventArgs e)
{

            Form2 CTS = new Form2();

            if (CTS.ShowInTaskbar)
            {
                CTS.ShowDialog();
            }

            CTS.richTextBox1.Text = textBox1.Text;

}

結果:由於Form2的richTextBox1保護層級太高,無法讀取其值XD


如果是用Form2

請問有高手能幫我解決此問題嗎?
謝謝^^"


  • 回覆
  • |
  • 引用
  • |
  • 編輯
  • |
  • 私人訊息


贊助商連結

#2

Re: [請問] 如何將Form1的textbox1值傳到Form2的richTextBox1.Text @@?

  • a
 0.0 (0 人評價)

自問自答
1.解決保護層級到[屬性] 裡面找 [Modifiers] 改成  public
2.先傳值再顯示,先顯示會無法執行存取
private void button1_Click(object sender, EventArgs e)
{

            Form2 CTS = new Form2();

            CTS.richTextBox1.Text = textBox1.Text;
           
            if (CTS.ShowInTaskbar)
            {
                CTS.ShowDialog();
            }

}


  • 回覆
  • |
  • 引用
  • |
  • 編輯
  • |
  • 私人訊息

#3

Re: [請問] 如何將Form1的textbox1值傳到Form2的richTextBox1.Text @@?

  • a
 0.0 (0 人評價)
把Modifiers 改成 public其實是很不好的方法
想想看如果有人這樣寫會發生什麼事?
Form2 CTS = new Form2();
CTS.richTextBox1 = null;

或是這樣寫
Form2 CTS = new Form2();
CTS.richTextBox1.Enable = false;

甚至其它任何亂搞的方法
Form2 CTS = new Form2();
CTS.richTextBox1 = new TextBox();


比較好的做法是在Form2中加一個public 的Method讓外部修改TextBox的Text
public partial class Form2 : Form
{
    public Form2()
    {
        InitializeComponent();
    }

    public void ChangeText(string str)
    {
        if (string.IsNullOrEmpty(str) == false)
        {
            this.textBox1.Text = str;
        }
    }
}

然後在外部只是呼叫這個Method就能在安全受控制的情況下達成目的
Form2 CTS = new Form2();
CTS.ChangeText(textBox1.Text);



  • 回覆
  • |
  • 引用
  • |
  • 編輯
  • |
  • 私人訊息
  • 1
  • [第1/1頁 共3項]