在Windows窗体上显示变量的值
本文关键字:变量 显示 Windows 窗体 | 更新日期: 2023-09-27 18:20:40
好吧,我是编程新手,所以请耐心等待。我已经用下面的方法创建了一个类。
public LastPrice ()
{
WebClient wclient = new WebClient();
string rawprices = wclient.DownloadString("https://www.bitstamp.net/api/ticker/");
string lastprice = rawprices.Substring(27, 5);
}
我的问题是,我可以使用哪个表单控件来显示表单上lastprice变量中的值。我希望该值每隔一分钟左右不断更新。如有任何帮助,将不胜感激。
提前感谢
标签或文本框是正常的(取决于它是否为只读)。如果您希望用户能够复制值,也可以使文本框为只读。您可能需要使用计时器控件来处理每分钟的更新。
由于您使用的是JSON数据,而不是试图使用字符串匹配(例如.Substring()
)来查找您要查找的值,因此将从服务器获得的数据解析为对象会更好。当/如果您需要处理更复杂的数据时,字符串匹配会很快崩溃。
以下是如何做到这一点:
步骤1:在项目中引用JSON.Net库。(在visualstudio中右键单击您的项目,然后单击"管理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.