Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/258.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# PropertyGrid不更新选定对象_C#_Propertygrid - Fatal编程技术网

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;
    }
}