2013-07-01 43 views
0

好吧我是編程新手,請耐心等待。我創建了一個類,其中包含以下方法。在Windows窗體上顯示變量的值

public LastPrice() 
{ 
WebClient wclient = new WebClient(); 
string rawprices = wclient.DownloadString("https://www.bitstamp.net/api/ticker/"); 
string lastprice = rawprices.Substring(27, 5); 
} 

我的問題是我可以使用哪種表單控件來顯示錶單上lastprice變量的值。我希望每分鐘左右的價值不斷更新。任何幫助,將不勝感激。

在此先感謝

回答

1

標籤或文本框是正常的(取決於它是否只讀或不)。只有當您希望用戶能夠複製該值時,您纔可以使文本框成爲只讀。您可能想要使用計時器控件來處理每分鐘的更新。

0

由於您使用的是JSON數據,而不是嘗試使用字符串匹配來查找要查找的值(例如,.Substring()),因此將您從服務器獲取的數據解析爲目的。當/如果您需要處理更復雜的數據時,字符串匹配會很快崩潰。

這裏是你會怎麼做:

第1步:參照JSON.Net庫在項目中。 (右鍵單擊Visual Studio中的項目,然後單擊「管理NuGet包」。搜索「json.net」,然後將其安裝到您的項目中。

第2步:製作一個代表JSON數據結構的類你會從服務器獲得(如果這是JSON中非常複雜和龐大的數據結構,那麼爲它創建一個類將是不實際的,並且有辦法解決這個問題,但是現在你應該得到基礎知識。下)對於JSON,一類是這樣的:

public class Prices 
{ 
    public decimal high { get; set; } 
    public decimal last { get; set; } 
    public double timestamp { get; set; } 
    public decimal bid { get; set; } 
    public decimal volume { get; set; } 
    public decimal low { get; set; } 
    public decimal ask { get; set; } 
} 

第3步:現在你有一個類,你可以很容易的JSON數據轉換成一種格式,很容易一起工作:

var client = new WebClient 
{ 
    Encoding = Encoding.UTF8 //It's good practice to specify UTF-8 encoding, because if you don't, then you can get garbled text back from the server 
}; 

var rawData = client.DownloadString("https://www.bitstamp.net/api/ticker/"); 
var btcInfo = JsonConvert.DeserializeObject<Prices>(rawData); 

//Now, btcInfo.last.ToString() will contain the value you're looking for. 
+0

儘管這並不直接回答我的問題,但非常感謝您提供這些信息。 – ech0