mj8*_*j82 5 c# visual-studio-2010 windows-forms-designer winforms
我(我想)我的Visual Studio 2010 Express环境有问题:当我设计自己的UserControl时,在属性网格中我看不到该控件的公共属性.但是,它们在项目中可见,引用此控件.
因为它是Express Edition,我创建了新的空项目,然后添加新的UserControl.
然后,为了测试,我输入以下代码:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace Project1
{
public partial class UserControl1 : UserControl
{
private int myNumber;
[Browsable(true)]
public int MyNumber
{
get
{
return myNumber;
}
set
{
myNumber = value;
}
}
public UserControl1()
{
InitializeComponent();
}
}
}
Run Code Online (Sandbox Code Playgroud)
在VS 2008中,我记得,即使没有[Browsable(true)]属性,也应该在属性网格中显示MyNumber 属性.但是,在VS 2010中,当我在解决方案资源管理器中双击UserControl1.cs并查看属性时,我看不到MyNumber.
当我在另一个项目中引用和使用此控件时,可以访问它的属性.
我试图竞争重新安装VS 2010环境,包括SP1,但没有成功.你知道什么是错的吗?
顺便说一下:这些属性都不起作用:
[Browsable(true)]
[EditorBrowsable(EditorBrowsableState.Always)]
[DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
[Bindable(true)]
Run Code Online (Sandbox Code Playgroud)
最好的问候,
Marcin
我相信这是VS2010的正常行为,并假设它是设计的.在2010年的Ultimate中,它的表现与我相同.放置UserControl1在表单上时,您将看到其自定义属性.
我的猜测是因为当你设计控件时,你的控件还没有实例(它甚至可能没有被编译).你正在看的是一个实例UserControl.编译控件然后将其添加到表单时,设计器会创建控件的实例,因此可以查看和操作其属性.