2014-02-21 1 views
0

У меня MDI >> Form1 >> Form2, а внутри form1 я использую компонент Таймер для проверки значения из формы2.Форма значения Showdialog не отображается в TextBox, но отображается в MessageBox.Show()?

Form1

namespace Purchasing 
{ 
    public partial class XtraForm1 : DevExpress.XtraEditors.XtraForm 
    { 
     private string find_code; 
     public string _code 
     { 
      set { find_code = value.ToUpper(); } 
     } 

     public XtraForm1() 
     { 
      InitializeComponent(); 
     } 

     private void button1_Click(object sender, EventArgs e) 
     { 
      XtraForm2 frm = new XtraForm2(); 
      frm.ShowDialog(); 
     } 

     private void timer1_Tick(object sender, EventArgs e) 
     { 
      if (find_code != null) 
      { 
       textBox1.Text = find_code; 
       find_code = null; 
      } 
     } 
    } 
} 

Form2

namespace Purchasing 
{ 
    public partial class XtraForm2 : DevExpress.XtraEditors.XtraForm 
    { 
     public XtraForm2() 
     { 
      InitializeComponent(); 
     } 

     private void XtraForm2_Click(object sender, EventArgs e) 
     { 
      XtraForm1 frm = new XtraForm1(); 
      frm._code = "123"; 
      Close(); 
     } 
    } 
} 

, но после того, как я запускаю это значение программы 123 не может показать на TextBox1, если я Messagebox.Show(find_code), появится значение. Что случилось с mycode?

+0

@ user336618, потому что ваш текстовое поле не знаете, что значение ' _code' изменяется – ElectricRouge

+0

@ElectricRouge Но если я заменю 'textBox1.Text = find_code' на' Messagebox.Show (find_code) 'появляется? дайте мне повод .. – AKCode

+0

@ user3336618 есть таймер, и он возвращает значение из этой переменной. – Shell

ответ

0
public partial class XtraForm1 : DevExpress.XtraEditors.XtraForm 
{   
    public XtraForm1() 
    { 
     InitializeComponent(); 
    } 

    private void button1_Click(object sender, EventArgs e) 
    { 
     XtraForm2 frm = new XtraForm2(); 
     frm.ShowDialog(); 
     textBox1.Text = frm.Code; 
    }  
} 

namespace Purchasing 
{ 
    public partial class XtraForm2 : DevExpress.XtraEditors.XtraForm 
    { 
     public string _code = string.Empty; 
     public string Code 
     { 
      get { 
       return _code; 
      } 
     } 

     public XtraForm2() 
     { 
      InitializeComponent(); 
     } 

     private void XtraForm2_Click(object sender, EventArgs e) 
     { 
      _code= "123"; 
      this.Close();    
     } 
    } 
} 
+0

Tq brow это работа ...: D – AKCode

0

Добавить XtraForm1 в качестве члена XtraForm2, как указано ниже:

public partial class XtraForm2 : DevExpress.XtraEditors.XtraForm 
{ 
    public XtraForm1 frm1; 
    public XtraForm2() 
    { 
     InitializeComponent(); 
    } 

    private void XtraForm2_Click(object sender, EventArgs e) 
    { 
     frm1._code = "123"; 
     Close(); 
    } 
} 

В классе XtraForm1 установите выше добавленный элемент, как:

private void button1_Click(object sender, EventArgs e) 
{ 
    XtraForm2 frm = new XtraForm2(); 
    frm.frm1 = this; 
    frm.ShowDialog(); 
} 
0

в ваш XtraForm2_Click вы создаете новую форму, тогда вы можете t соответствует стоимости из вашей старой формы.

вы можете проверить это (не проверял, но может работать)

Form2

namespace Purchasing 
{ 
    public partial class XtraForm2 : DevExpress.XtraEditors.XtraForm 
    { 
    public string Code { get; set; } 
    public XtraForm2() 
    { 
     InitializeComponent(); 
    } 

    private void XtraForm2_Click(object sender, EventArgs e) 
    { 
     Code = "123"; 
    } 
    } 
} 

Form1

namespace Purchasing 
{ 
    public partial class XtraForm1 : DevExpress.XtraEditors.XtraForm 
    { 
    private Form _frm; 
    public XtraForm1() 
    { 
     InitializeComponent(); 
    } 

    private void button1_Click(object sender, EventArgs e) 
    { 
     _frm = new XtraForm2(); 
     _frm.Show(); 
    } 

    private void timer1_Tick(object sender, EventArgs e) 
    { 
     if (!string.IsNullOrEmpty(((XtraForm2)_frm).Code)) 
     { 
      textBox1.Text = ((XtraForm2)_frm).Code; 
      ((XtraForm2)_frm).Code = null; 
     } 
    } 
    } 
} 
Смежные вопросы