狠狠色丁香婷婷综合尤物/久久精品综合一区二区三区/中国有色金属学报/国产日韩欧美在线观看 - 国产一区二区三区四区五区tv

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發文檔 其他文檔  
 
網站管理員

從一個實際需求看C#的跨窗體操作

admin
2023年9月4日 9:46 本文熱度 556

很多人學習C#會遇到一個這樣的問題,很多知識點不知道在什么情況下使用,或者面對一些需求時,不知道用哪種方法來解決。在本文中,我們將結合一個實際需求來談談如何選擇合適的方法來更合理的實現需求。

在我們的批次報表中,有個功能就是我們可以根據用戶選擇的變量生成曲線并插入報表中。在報表界面上有一個按鈕,點擊可以彈出曲線窗體。在這個曲線窗體中我們可以選擇需要的變量并生成曲線。

圖1 選擇并生成曲線

當選擇變量后,點擊按鈕“添加”即生成曲線。預覽沒問題后再點擊按鈕“插入到報表”即可將生成的曲線插入到報表中。下圖展示了曲線插入到報表中的效果。

圖2 曲線插入報表

這種需求如何實現呢?我們可以在曲線窗口關閉時根據返回值判斷是否需要插入曲線。如果點擊了按鈕“插入到報表”就返回YES,代碼如下。

private void btninsert_Click(object sender, EventArgs e)
{
     this.Close();
     //曲線窗體返回YES
     this.DialogResult = DialogResult.Yes;
}

如果沒有點擊按鈕“插入到報表”而是直接關閉曲線窗體,則返回NO,代碼如下:

private void FrmChart_FormClosing(object sender, FormClosingEventArgs e)
{
    this.Close();
    //曲線窗體返回NO
    this.DialogResult = DialogResult.No;
}

我們可以在上一層窗口中根據曲線窗口的返回值判斷是否插入圖片。

private void btnChart_Click(object sender, EventArgs e)
{
    FrmChart frm = new FrmChart();
     //如果返回值是YES,則插入曲線
    if (frm.DialogResult==DialogResult.Yes)
    {
         ///插入曲線
         ///
     }
}

這種方法可以實現我們的需求。但是它有個缺點就是必須要在窗體關閉后才插入曲線。如果我們還要再添加或者刪除曲線,只能再次打開曲線窗口,選擇、添加變量生成曲線。在使用上稍微有點麻煩。那如何做到曲線窗體不關閉就可以在報表中同步插入曲線呢?這時委托就派上用場了。

  //聲明一個委托  public delegate void _GetChart();
 //聲明一個方法  public _GetChart GetChart;

我們在曲線窗體中聲明一個委托類型_GetChart,并聲明一個類型為_GetChart的方法。然后在上一層窗口中創建一個名為GetChart的方法。

private void getChart()
{
    try
    {
        ///插入曲線
     }
    catch (Exception ex)
    {
       MessageBox.Show(ex.Message);
   }
}

在調用曲線窗口時將該方法綁定到曲線窗口的GetChart方法上。

private void btnChart_Click(object sender, EventArgs e)
{
     FrmChart frm = new FrmChart();
     frm.GetChart += getChart;
     frm.ShowDialog();
}

最后在曲線窗體中點擊按鈕“插入到報表”事件中調用該委托方法即可。

private void btninsert_Click(object sender, EventArgs e)
{
     //其它代碼
     if (GetChart != null)
     {
          GetChart();
     }
}

運行程序。當我們在曲線窗口中點擊按鈕“插入到報表”時,上一層窗口中會同步展示新的曲線。如果需要更新曲線,也不用關閉窗口再重新打開,操作更加人性化。

圖3 上一層窗體和曲線窗體同步更新


該文章在 2023/9/4 9:46:25 編輯過
關鍵字查詢
相關文章
正在查詢...
點晴ERP是一款針對中小制造業的專業生產管理軟件系統,系統成熟度和易用性得到了國內大量中小企業的青睞。
點晴PMS碼頭管理系統主要針對港口碼頭集裝箱與散貨日常運作、調度、堆場、車隊、財務費用、相關報表等業務管理,結合碼頭的業務特點,圍繞調度、堆場作業而開發的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業的高效ERP管理信息系統。
點晴WMS倉儲管理系統提供了貨物產品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質期管理,貨位管理,庫位管理,生產管理,WMS管理系統,標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協同辦公管理系統。
Copyright 2010-2025 ClickSun All Rights Reserved