[英]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.