Tôi có một lớp (điều khiển), triển khai ICustomTypeDescriptor, được sử dụng cả lúc thiết kế và thời gian chạy bởi PropertyGrid để tùy chỉnh. Tôi cần để lộ các thuộc tính khác nhau tại thời điểm thiết kế (các thuộc tính điều khiển chuẩn như width
, height
và vân vân) và tại thời gian chạy, khi PropertyGrid được sử dụng trong chương trình của tôi để thay đổi các thuộc tính khác của điều khiển đó.Làm thế nào để biết liệu một điều khiển có ở thời gian thiết kế hay không?
Mã của tôi cũng giống như:
class MyControl : UserControl, ICustomTypeDescriptor
{
//Some code..
public PropertyDescriptorCollection GetProperties(Attribute[] attributes)
{
return GetProperties();
}
public PropertyDescriptorCollection GetProperties()
{
//I need to do something like this:
if (designTime)
{ //Expose standart controls properties
return TypeDescriptor.GetProperties(this, true);
}
else
{
//Forming a custom property descriptor collection
PropertyDescriptorCollection pdc = new PropertyDescriptorCollection(null);
//Some code..
return pdc;
}
}
}
Có một analog cho một lá cờ thiết kế thời gian trong C#? Có thể sử dụng trình biên dịch có điều kiện tốt hơn không?
Bạn đang nói về wpf hoặc winform? –
Bản sao có thể có của * [Cách để biết liệu mã .NET có đang được chạy bởi nhà thiết kế Visual Studio] hay không (http://stackoverflow.com/questions/73515/how-to-tell-if-net-code-is-being- run-by-visual-studio-designer) *. –