C# PropertyGrid不更新选定对象
我想实现一个简单的功能,用户可以自定义标签的C# PropertyGrid不更新选定对象,c#,propertygrid,C#,Propertygrid,我想实现一个简单的功能,用户可以自定义标签的Font 因此,我有FontEditor表单,其中包含以下代码: public partial class FontEditor : Form { public Font myFont; public FontEditor(Font myFont) { InitializeComponent(); this.myFont = myFont; propertyGrid1.Sel
Font
因此,我有FontEditor
表单,其中包含以下代码:
public partial class FontEditor : Form
{
public Font myFont;
public FontEditor(Font myFont)
{
InitializeComponent();
this.myFont = myFont;
propertyGrid1.SelectedObject = this.myFont;
}
private void FontEditor_FormClosing(object sender, FormClosingEventArgs e)
{
DialogResult = DialogResult.OK;
}
}
我在图表控件上使用它,如下所示:
using (FontEditor fe = new FontEditor(chart1.Titles[0].Font))
{
if (DialogResult.OK == fe.ShowDialog())
{
chart1.Titles[0].Font = fe.myFont;
}
}
加载字体编辑器时,我可以看到以下内容:
如果我将大小
从18
更改为10
,并关闭窗口,则所选对象
(图表标题中的字体对象)似乎没有更改/更新:
编辑属性网格值是否应该更新所选对象。您对
PropertyGrid
所做的编辑实际上位于propertyGrid1中。SelectedObject
我就是这样修复的:
FontEditor.cs
用法
这现在起作用了
public partial class FontEditor : Form
{
public FontEditor(Font myFont)
{
InitializeComponent();
propertyGrid1.SelectedObject = myFont;
}
private void FontEditor_FormClosing(object sender, FormClosingEventArgs e)
{
DialogResult = DialogResult.OK;
}
public Font UpdatedFont
{
get { return propertyGrid1.SelectedObject as Font; }
}
}
using (FontEditor fe = new FontEditor(chart1.Titles[0].Font))
{
if (DialogResult.OK == fe.ShowDialog())
{
chart1.Titles[0].Font = fe.UpdatedFont;
}
}