在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变量中的值。我希望该值每隔一分钟左右不断更新。如有任何帮助,将不胜感激。

提前感谢

在Windows窗体上显示变量的值

标签或文本框是正常的(取决于它是否为只读)。如果您希望用户能够复制值,也可以使文本框为只读。您可能需要使用计时器控件来处理每分钟的更新。

由于您使用的是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.