Eu usei OpenFileDialog em PropertyGrid no .NET Framework. Funcionou bem:
public class FileSelectorTypeEditor : System.Drawing.Design.UITypeEditor
{
public override UITypeEditorEditStyle GetEditStyle(ITypeDescriptorContext context)
{
if (context == null || context.Instance == null)
return base.GetEditStyle(context);
return UITypeEditorEditStyle.Modal;
}
// etc
}
Agora no WinForms no .NET 9, não consigo encontrar o tipo System.Drawing.Design.UITypeEditor
.
O que estou fazendo errado?
Parece que você criou esta Biblioteca usando o
Class Library
modelo genérico de plataforma cruzada.Este modelo, é claro, não inclui o(s) assembly(ies) System.Windows.Forms.
Você poderia ter escolhido o
Windows Forms Class Library
em vez disso.De qualquer forma, você pode editar o arquivo de configuração do Projeto e adicioná-lo ao principal
<PropertyGroup>
:Neste ponto, ao tentar criar a Solução, você também será notificado de que, para incluir esses assemblies do Windows Desktop, você também precisará redirecionar a definição do framework, alterando-a para:
então o arquivo de configuração do Projeto ficará assim:
Claro, você também pode adicionar
<UseWPF>true</UseWPF>
, caso alguns assemblies do PresentationFramework sejam necessários neste Projeto.A Biblioteca agora é somente para Windows, e não pode ser de outra forma, já que os assemblies do Windows Forms/Windows Presentation Framework (WPF) estão incluídos.
Como consequência, a classe mudará para algo assim (pelo menos em relação à seção que foi postada aqui):