如何在运行时打开没有PropertyGrid的Font的属性对话框

时间:2012-11-29 13:21:43

标签: c# winforms propertygrid uitypeeditor

考虑一个包含TextBoxButton的表单。单击该按钮时,应在运行时获取Font属性对话框。

在设计师中,您可以单击PropertyGrid中属性右侧的按钮,然后进入编辑器窗口以操作此TextBox的字体。在运行时,如果您向表单添加PropertyGrid并将其指向TextBox,您还可以获得编辑器窗口。

如何通过单击按钮而不在表单上显示PropertyGrid来在运行时获取此编辑器窗口?

虽然我已从此描述符中获得PropertyDescriptorUITypeEditor,但我不知道在调用ITypeDescriptorContextIServiceProvider的实例时应该调用什么致电UITypeEditor.EditValue

编辑 - 由于我问这个控件的问题有一个简单的解决方案,我提出了另一个与此主题相关的问题:How to open the properties dialog for a Complex Property without a PropertyGrid at runtime

1 个答案:

答案 0 :(得分:1)

您可以使用FontDialog显示标准字体对话框:

new FontDialog().ShowDialog();

读/写字体:

var dlg = new FontDialog();
dlg.Font = textBox1.Font;
if (dlg.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
    textBox1.Font = dlg.Font;
}