MDIPARENT NO C#

TUNUSAT 04/09/2014 11:26:04
#440934
Por favor PessoALL,

Estou tentando converter código VB.Net para C#.Net:

==============================================
Meu código VB.Net que funciona normalmente:
==============================================

[ô][ô][ô] <summary>
[ô][ô][ô] Função para atrelar o mdiChild em um MDI
[ô][ô][ô] </summary>
[ô][ô][ô] <param name=[Ô]formMDI[Ô]>Nome do Formulário MDI</param>
[ô][ô][ô] <param name=[Ô]formAbrir[Ô]>Nome do Formulário mdi Child</param>
[ô][ô][ô] <param name=[Ô]pFormWindowState[Ô]>Abrir em que estado?</param>
[ô][ô][ô] <param name=[Ô]Parent[Ô]>Define se é Parent ou Não.</param>
[ô][ô][ô] <remarks></remarks>
Public Shared Sub AbrirFormulario(ByVal formMDI As Form, ByVal formAbrir As Form, ByVal pFormWindowState As FormWindowState, ByVal pFormStartPosition As FormStartPosition, ByVal Parent As Boolean)

If Parent Then formAbrir.MdiParent = formMDI

formAbrir.StartPosition = pFormStartPosition
formAbrir.WindowState = FormWindowState.Minimized [ô]Não sei pq, mas precisa passar antes pelo estado de minimizado ou normal caso queira maximizar corretamente.
formAbrir.WindowState = pFormWindowState
formAbrir.Show()
formAbrir.Activate()
End Sub

==============================================
Conversão para C#:
==============================================

/// <summary>
/// Função para atrelar o mdiChild em um MDI
/// </summary>
/// <param name=[Ô]formMDI[Ô]>Nome do Formulário MDI</param>
/// <param name=[Ô]formAbrir[Ô]>Nome do Formulário mdi Child</param>
/// <param name=[Ô]pFormWindowState[Ô]>Abrir em que estado?</param>
/// <param name=[Ô]Parent[Ô]>Define se é Parent ou Não.</param>
public static void AbrirFormulario(Form formMDI, Form formAbrir, FormWindowState pFormWindowState, FormStartPosition pFormStartPosition, bool Parent)
{
if (Parent) { formAbrir.MdiParent = formMDI; }

formAbrir.StartPosition = pFormStartPosition;
formAbrir.WindowState = FormWindowState.Minimized;
// Não sei pq, mas precisa passar antes pelo estado de minimizado ou normal caso queira maximizar corretamente.
formAbrir.WindowState = pFormWindowState;
formAbrir.Show();
formAbrir.Activate();
}

==============================================

O problema é que quando passa por esta linha: [Ô]formAbrir.MdiParent = formMDI;[Ô] dá o seguinte erro:
- [Ô]Form cannot be both an MDI child and MDI parent. Parameter name: value[Ô]

Eu só quero criar uma função que ficará na camada BLL para que o [Ô]formAbrir[Ô] abra dentro do [Ô]formMDI[Ô].

Obrigado,
Tunusat.
ESLEYSANCHES 16/09/2014 22:42:45
#441279
Resposta escolhida
Não parece estar tão dificil ...
Você verificou se o form pai (o tal do formMDI) está com a propriedade IsMdiContainer como true ??

Com essa propriedade true basicamente você está dizendo ao formulário que ele pode atuar como pai de forms filhos dentro dele.


Abraços
Esley
Tópico encerrado , respostas não são mais permitidas