2011-01-20 105 views
0

我有一個窗體,它將在離開前一窗體的控件時顯示。假設我的form1有一個文本框,我將在離開後立即輸入一個值爲2,然後我將顯示form2那裏我將有一些文本框從他們中我將有一個序列號,應該是自動增量,就像我有0001在初始負載點擊保存後,我會顯示相同的形式,直到它匹配以前的值我需要的是當用戶點擊保存我想自動增加文本框的值可以任何一個給我一個想法是否可以更改多次顯示的表單中的值

我的代碼如下

窗體2保存按鈕

private void btnSave_Click(object sender, EventArgs e) 
    { 
     if (filecontrolvariables.m_Addendaclick == true) 
     { 
      objCTXAddenda.Addenda_RecordTypeCode = txtRectypecode.Text; 
      objCTXAddenda.Addendatypecode = txtAddendaTypeCode.Text; 
      objCTXAddenda.PaymentRelatedInformation = txtPaymentRelInfo.Text; 
      objCTXAddenda.Addendasequencenumber = txtAddendaSeqNo.Text; 
      objCTXAddenda.EntryDetailSequenceNumber = txtEntryDetailSeqNumber.Text; 
      Append.addendawithentry++; 
      objCTXAddenda.saveAddenda(Append.FileName); 
      this.Close(); 
      frmMain.loadAddenda("Addenda", true); 
     } 
     else 
     { 
      timeBeforeClose--; 

      if (timeBeforeClose == 0) 
      { 
       txtAddendaSeqNo.Text = Append.AddendaSequenceno.ToString("0000"); 
       objCTXAddenda.Addenda_RecordTypeCode = txtRectypecode.Text; 
       objCTXAddenda.Addendatypecode = txtAddendaTypeCode.Text; 
       objCTXAddenda.PaymentRelatedInformation = txtPaymentRelInfo.Text; 
       objCTXAddenda.Addendasequencenumber = txtAddendaSeqNo.Text; 
       objCTXAddenda.EntryDetailSequenceNumber = txtEntryDetailSeqNumber.Text; 
       objCTXAddenda.saveAddenda(Append.FileName); 
       txtPaymentRelInfo.Text = string.Empty; 
       this.Close();// I will close the form when this matches 
       Append.addendawithentry++; 
      } 
      else 
      { 
       objCTXAddenda.Addenda_RecordTypeCode = txtRectypecode.Text; 
       objCTXAddenda.Addendatypecode = txtAddendaTypeCode.Text; 
       objCTXAddenda.PaymentRelatedInformation = txtPaymentRelInfo.Text; 
       objCTXAddenda.Addendasequencenumber = txtAddendaSeqNo.Text; 
       objCTXAddenda.EntryDetailSequenceNumber = txtEntryDetailSeqNumber.Text; 
       objCTXAddenda.saveAddenda(Append.FileName); 
       txtPaymentRelInfo.Text = string.Empty; 
       Append.addendawithentry++; 
       Append.AddendaSequenceno++; 

      } 
     } 
    } 

當形式負載,但在第二次,因爲我T沒有加載我不能增加

private void frmAddenda_Load(object sender, EventArgs e) 
    { 
     Append.addendawithentry = 0; 
     if (filecontrolvariables.m_Addendaclick == true) 
     { 
      btnCancel.Visible = true; 
      Append.AddendaSequenceno++; 
      StringBuilder sbEmpty = new StringBuilder(); 
      Append.sbEntryAddenda = sbEmpty; 
      txtRectypecode.Text = ((char)55).ToString(); 
      txtAddendaTypeCode.Text = "05"; 
      txtAddendaSeqNo.Text = Append.AddendaSequenceno.ToString("0000"); 
     } 
     else 
     { 
      btnCancel.Visible = false; 
      Append.AddendaSequenceno++; 
      StringBuilder sbEmpty = new StringBuilder(); 
      Append.sbEntryAddenda = sbEmpty; 
      txtRectypecode.Text = ((char)55).ToString(); 
      txtAddendaTypeCode.Text = "05"; 
      if (!(timeBeforeClose == 0)) 
       txtAddendaSeqNo.Text = Append.AddendaSequenceno.ToString("0000"); 
      else 
       txtAddendaSeqNo.Text = Append.AddendaSequenceno.ToString("0000"); 
     } 
    } 

上一個表單代碼

private void txtNoOfAddenda_Leave(object sender, EventArgs e) 
    { 
     filecontrolvariables.m_Addendaclick = false; 
     pass(); 
     if (Convert.ToInt16(txtNoOfAddenda.Text) == Convert.ToInt16(((char)48).ToString())) 
     { 
      txtAddendarecord.Text = ((char)48).ToString(); 
     } 
     else 
      txtAddendarecord.Text = ((char)49).ToString(); 
    } 

    private void pass() 
    { 
     string traceNo = string.Empty; 
     i = 0; 
     if (!int.TryParse(txtNoOfAddenda.Text, out i)) 
     { 
      MessageBox.Show("Enter numeric value betewwn(0-9999)"); 
      txtNoOfAddenda.Focus(); 
     } 
     else 
     { 
      if (i > 0) 
      { 
       traceNo = txtTraceNo.Text.Substring(8, 7); 
       frmAddenda frmAddenda = new frmAddenda(i, traceNo); 
       frmAddenda.ShowDialog(); 
       txtNoOfAddenda.Leave -= txtNoOfAddenda_Leave; 
      } 
     } 

    } 
+0

我讀的問題兩次不認爲我真正瞭解它,所以我就發表評論......你有沒有考慮,你每次增加一個`static`成員變量所示的形式?然後你可以在文本框中顯示這個值。 – 2011-01-20 12:38:33

+0

雅我做到了,但我不能在文本框中顯示,因爲窗體沒有被加載 – Dotnet 2011-01-20 12:39:34

回答

0

我不能夠完全理解你的問題,但要建議你對我的理解。

我不解的是,你要增加你的Form1的文本框的值Form2上的點擊的保存按鈕。 到這樣做遵循以下步驟:

使Form1的那個文本框公衆,你想從Form1中值。像窗口2 創建Form1的對象:

Form1 f1; 

現在當你顯示了從Form1的文本框引發LostFocus窗口2。顯示窗口2前做如下:

Form2 f2 = new Form2(); 
f2.f1 = this; 
f2.showdialog() or you can use f2.show(); 
現在

在保存下面的代碼按鈕寫的點擊窗口2:

f1.yourPublicTextBox.text = "any value which you wants on textbox"; 

或者你說你要自動增量它,然後

f1.yourPublicTextBox.text = (Convert.ToInt32(yourPublicTextBox.text) + 1).toString(); 

和其完成。

編輯:

不要讓form2關閉,因爲form2關閉時form2的對象將變爲null。所以只需隱藏它並再次顯示。

所以下面的代碼顯示,在關閉按鈕,我們不會讓用戶允許關閉的形式,我們只是隱藏它,當曾經需要它,你可以再次顯示它的點擊。

private void Form2_FormClosing(object sender, FormClosingEventArgs e) 
      { 
       e.Cancel = true; 
       this.Hide(); 
      } 
相關問題