[英]Accessing custom properties of extended control
我很难找到合适的资源来解决这个问题,并认为也许StackOverflow上的某个人会知道这一点。 我延长在Windows PictureBox控件窗体应用程序,我在过去做这同样的事情,但遗憾的是,我不记得我是如何得到它的工作,我希望它的方式。
我的控制代码是:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace SomeApplication
{
public class Picture : PictureBox
{
public static Bitmap Thumbnail { get; set; }
public static Bitmap OriginalPhoto { get; set; }
public static string Name { get; set; }
public static Int64 Order { get; set; }
}
}
我[过去已经做过,并且现在想做的是一旦创建了Picture控件并将其添加到窗体中,便可以访问这些属性。
private void Main_Load(object sender, EventArgs e)
{
this.Controls.Add(new Picture() { Order = 7, Location = new Point(0, 0) });
}
但这不起作用。 我无法从picture1访问任何这些自定义属性。 我只能从实际类型本身访问它们,如下所示:
Picture.Order = 8;
这是没有用的。
我该如何实现?
您应该从属性定义中删除static
变量。 这将使属性位于类而不是实例上。
public class Picture : PictureBox
{
public Bitmap Thumbnail { get; set; }
public Bitmap OriginalPhoto { get; set; }
public string Name { get; set; }
public Int64 Order { get; set; }
}
问题:您宣布财产为staic
。 静态memener属于类级别,但不属于实例级别,因此您无法从oject初始化程序对其进行初始化。
解决方案:您需要通过删除属性前面的static
关键字来使属性变为non-static
。
尝试这个:
public Bitmap Thumbnail { get; set; }
public Bitmap OriginalPhoto { get; set; }
public string Name { get; set; }
public Int64 Order { get; set; }
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.