我创建了具有Control属性的类。这个想法是这个类将位于列表中,并且控件与该类的实例相关联。然而,我不能为我的生活弄清楚为什么财产不会接受任何价值观。以下是我构建属性的方法:
public Control LinkedControl
{
get
{
return aControl;
}
set
{
aControl = value;
}
}
这只会导致属性在我尝试分配控件时收到值“”。
我尝试分配控件如下:
aClass.LinkedControl = txtTextBox;
以及
aClass.LinkedControl.Equals(txtTextBox);
这不会导致错误,但是没有任何内容可以传达给班级。
我做错了什么?
编辑:基本上我在这里想要实现的是,不是存储文本框的属性,比如textbox.text,我想在类中存储文本框本身的实例。这是一个列表<>基于程序和文本框实例的存储是参考工具。
答案 0 :(得分:1)
也许你的传递空值?您可以通过属性设置器中的set breakpoint检查以检查传递的值。
您也可以看看控件的tag属性。这是另一种方式 - >您将对象分配给控件。它适用于列表(例如组合框,列表视图等)。
http://msdn.microsoft.com/en-us/library/system.windows.forms.control.tag(v=vs.110).aspx
通过绑定源进行数据绑定也可以帮助您进行一般设计: https://www.google.com/search?q=tag+c%23+property&sourceid=ie7&rls=com.microsoft:de-at:IE-SearchBox&ie=&oe=&safe=vss#q=windows+forms+bindingsource+tutorial&rls=com.microsoft:de-at:IE-SearchBox&safe=vss
答案 1 :(得分:0)
一些事情:
答案 2 :(得分:0)
如果你得到一个“”这意味着你的代码工作得很好。由于Control是引用类型,因此接收“”表示控件txtTextBox当前为空。
尝试在txtTextBox中键入内容并尝试访问aClass.LinkedControl.Text并查看是否获得与txtTextBox中键入的字符串相同的字符串。
顺便说一句,你必须从txtTextBox.Text而不是txtTextBox接收“”。 txtTextBox.Text是一个字符串,而txtTextBox是一个控件。