簡體   English   中英

在C#窗體中共享字典

[英]Share a dictionary within a C# windows form

我有一個帶有一系列按鈕的表格。 button4必須從Excel加載一些數據並將信息存儲到名為dataMap的字典中

    private void button4_Click(object sender, EventArgs e) 
    {
        loadXL myMap = new loadXL();
        Dictionary<string, marketdata> dataMap = myMap.myDataLoader(Convert.ToDateTime(AsOfDate.Text),Convert.ToDouble(Underlying.Text));
    }

此代碼正確生成字典,我需要的所有數據都存儲在dataMap中 現在的問題是,當我點擊另一個按鈕時,我需要可以訪問字典中的信息。 為了做到這一點,我嘗試了以下內容:

    public Dictionary<string, marketdata> button4_Click(object sender, EventArgs e) 
    {
        loadXL myMap = new loadXL();
        Dictionary<string, marketdata> dataMap = myMap.myDataLoader(Convert.ToDateTime(AsOfDate.Text),Convert.ToDouble(Underlying.Text));

        return dataMap;
    }

所以click按鈕事件現在應該返回字典dataMap 如果我運行這個我收到以下錯誤:

'System.Collections.Generic.Dictionary Project2.myInputForm.button4_Click(object,System.EventArgs)'返回類型錯誤

它指的是表單設計器中的以下行:

    this.button4.Click += new System.EventHandler(this.button4_Click);

我怎么處理這個? 點擊按鈕4可以通過其他按鈕點擊訪問時,有一種快速的方法來構建字典嗎?

謝謝。

Dictionary<string, marketdata> dataMap;
private void button4_Click(object sender, EventArgs e) 
{
    loadXL myMap = new loadXL();
    dataMap = myMap.myDataLoader(Convert.ToDateTime(AsOfDate.Text),Convert.ToDouble(Underlying.Text));
}

private void function()
{

    dataMap.//
}

在外部聲明它,然后只要確保在實例化之前不使用它就使用它

按鈕單擊事件不能返回任何內容,返回類型應為void

您應該在表單級別創建一個屬性,並在按鈕的單擊事件中訪問它

例如

Dictionary<string, marketdata> dataMap;
private void button4_Click(object sender, EventArgs e) 
{
    loadXL myMap = new loadXL();
    dataMap = myMap.myDataLoader(Convert.ToDateTime(AsOfDate.Text),Convert.ToDouble(Underlying.Text));
}

private void anotherButton_Click(object sender, EventArgs e) 
{
    if (dataMap != null)
    {
        // here you can access dataMap
    }
}

編輯

如果要從多個表單訪問字典變量,則應創建另一個類,該類應包含可從多個位置訪問的公共屬性。

public class MyStaticProperties
{
    public static Dictionary<string, marketdata> DataMap { get; set; };
}

// then you can access this in your button click events like htis
MyStaticProperties.DataMap

暫無
暫無

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

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