簡體   English   中英

在已經運行的form中無法獲得結果。為什么? 它打開另一個帶有結果的表格。

[英]Could not get result in already running form.why? It opens up another form with result.

我有A和B表格。

當我運行A表單時,通過單擊開始按鈕將在datagridview中顯示所有值。在同一表單中,存在一個labellink。一次,單擊labelink B表單將顯示帶有組合框和一個按鈕。

現在我選擇一個選項,然后單擊要在A Form的datagridview中查看值的按鈕。

我的問題是當我選擇B表單中的選項時,結果應該出現在已經打開的A表單中,但是在我的情況下它將打開另一個新的A表單並顯示結果。我不想再次打開A表單並處理結果。

我怎樣才能做到這一點? 簡單的解決方法能達到目的嗎?

將FormA的實例傳遞給FormB

public class FormB{

   public FormB(FormA formA){
    this.FormA=formA;
  }

  private void UpdateFormA(){
    formA.SetResult(...);
  }
}

使用MVC架構,其中控制器“知道”哪些表格是打開的。 這樣,表單B告訴控制器顯示表單A,控制器確定一個表單A已經打開,並建議表單A更新自身。

根據AISki的建議,請使用MVC,否則請使用事件和委托。 觸發來自FORM B的事件並在FORM A中進行訂閱。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM