任何控制。但最好是所有这些(TextBox,Panel,Button,LinkLabel,TabControl等)。我想做的是:
public class Something
{
public String isBetterThan { get; set; }
public String Author { get; set; }
}
public void button1_Click(object sender, EventArgs e)
{
panelControl1.ClassObject = new Something()
{
isBetterThan = "nothing.",
Author = "Unknown"
};
}
因此,从上面的代码中,您可以看到它的行为类似于.Location属性,您可以在其中为其指定新值。我想存储这些信息,以便稍后,我可以这样做:
public void getClassDetailsButton_Click(object sender, EventArgs e)
{
Something something = (Something)panelControl1.ClassObject;
MessageBox.Show("Something is better than " + something.isBetterThan);
}
答案 0 :(得分:2)
您可以通过从尝试添加函数的控件继承来创建自定义控件。这样的事情应该有用(使用按钮作为例子)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
class SomethingButton : Button
{
public Something mySomething
{ get; set; }
}
public class Something
{
public String isBetterThan { get; set; }
public String Author { get; set; }
}
}
<强> Usuage
somethingButton1.mySomething = new Something() { isBetterThan = "nothing",
Author = "Unknown"
};
答案 1 :(得分:2)
我认为您正在寻找的答案是DefaultValue属性。您可以在类中设置一次,然后无论何时创建对象,都会为其分配值。使用此属性保存对象数据存在一些缺陷,因此请谨慎使用并进行回归测试。
http://msdn.microsoft.com/en-us/library/system.componentmodel.defaultvalueattribute(v=VS.71).aspx
[DefaultValue(“作者姓名”)]
答案 2 :(得分:1)
您始终可以创建一个从控件扩展的类,并覆盖您要添加功能的方法。
public class MyTextBox : TextBox {
public String isBetterThan { get; set;}
public String author {get; set;}
protected override void OnMouseLeave(MouseEventArgs e)
{
base.OnMouseLeave(e);
// do something
isBetterThan = this.Text;
}
}
然后,将控件添加到表单中。您可以将其视为常规TextBlock,但也可以将其视为isBetterThan和Author。