//
// Copyright (c) PlaceholderCompany. All rights reserved.
//
using System;
using System.Reflection;
using System.Windows.Forms;
//using StyleLibManager;
namespace UCDraw
{
//public delegate void SymbolSigma(GeoSigmaDrawLib.GeoSigmaXY geoSigma);
///
/// 属性面板
///
public partial class WellPolePanelProperty : UserControl
{
///
/// 图元属性发生了变化
///
public event EventHandler ElementChanged;
///
/// Initializes a new instance of the class.
///
public WellPolePanelProperty()
{
InitializeComponent();
propertyGrid1.PropertyValueChanged += (s, e) => ElementChanged?.Invoke(this, e);
}
public object SelectedObject
{
get => propertyGrid1.SelectedObject;
set => propertyGrid1.SelectedObject = value;
}
public void ExpandPropertyGridValueColumn()
{
if (propertyGrid1 == null) return;
// 获取内部 PropertyGridView
var gridViewField = typeof(PropertyGrid).GetField("gridView",
BindingFlags.Instance | BindingFlags.NonPublic);
if (gridViewField?.GetValue(propertyGrid1) is Control gridView)
{
// 方法 A:启用 LargeButtons 模式(值列变宽)
var largeButtonsProp = gridView.GetType().GetProperty("LargeButtons");
largeButtonsProp?.SetValue(gridView, true);
// 方法 B(更直接):设置固定值列宽度
// 注意:不同 .NET 版本字段名可能不同
var valueCellWidthField = gridView.GetType().GetField("valueCellWidth",
BindingFlags.Instance | BindingFlags.NonPublic);
if (valueCellWidthField != null)
{
valueCellWidthField.SetValue(gridView, 200); // 设置为 200 像素
}
// 触发重绘
propertyGrid1.Refresh();
}
}
}
}