考虑一个包含TextBox
和Button
的表单。单击该按钮时,应在运行时获取Font
属性对话框。
在设计师中,您可以单击PropertyGrid
中属性右侧的按钮,然后进入编辑器窗口以操作此TextBox
的字体。在运行时,如果您向表单添加PropertyGrid
并将其指向TextBox
,您还可以获得编辑器窗口。
如何通过单击按钮而不在表单上显示PropertyGrid
来在运行时获取此编辑器窗口?
虽然我已从此描述符中获得PropertyDescriptor
和UITypeEditor
,但我不知道在调用ITypeDescriptorContext
和IServiceProvider
的实例时应该调用什么致电UITypeEditor.EditValue
。
编辑 - 由于我问这个控件的问题有一个简单的解决方案,我提出了另一个与此主题相关的问题:How to open the properties dialog for a Complex Property without a PropertyGrid at runtime
答案 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;
}