VB.NET - Onde esta o recurso SDI ?


Se você já usou as versões do Visual Basic anteriores a plataforma .NET talvez tenha percebido que um recurso que existia no VB5 e VB6 não está mais presente. Estou me referindo a utilização da interface SDI no ambiente de desenvolvimento do Visual Basic.

NO VB5/VB6 era muito simples trabalhar usando a interface SDI, bastava ir no menu Tools opção Options e na guia Advanced marcar a opção - SDI Development Environment;

No VB .NET , estou usando a versão VB 2008 Express, não temos mais esta opção. No menu Tools -> Options , selecionando Environment e a opção General temos em Window layout as opções Tabbed documents e Multiple Documents;

Sem querer entrar no mérito dos motivos que levaram a Microsoft a não oferecer mais a opção de trabalhar com a interface SDI parece que ela não faz muita falta mesmo pois poucos reclamaram e muitos nem notaram que o recurso sumiu...

Atualmente temos 3 padrões de interfaces com o usuário que parecem que têm atendido a grande maioria das necessidades dos softwares:

Eu ia encerrar o artigo aqui mas aproveitando o assunto vou mostrar uma das maneiras de você criar uma aplicação SDI no VB 2008 Express Edition.

Vou usar o exemplo clássico do editor de textos que abre cada documento em uma nova janela.

Criando um Editor de textos com interface SDI

Abra o VB 2008 Express e crie uma nova aplicação do tipo Windows Forms Application com o nome de EditorSDI;

A seguir no formulário padrão inclua a partir da ToolBox um controle OpenFileDialog - dlgAbrir e um componente MenuStrip e Defina no menu a opção de menu Arquivo e sub-opção Abrir;

Inclua também um TextBox - txtconteudo - com a propriedade Multiline igual a True e a propriedade Anchor igual a : Top, Bottom, Left, Right

Agora defina no formulário o namespace System.IO

Defina também a variável arquivoCarregado no formulário conforme abaixo:

Private arquivoCarregado As Boolean = False

Crie um método Main com o seguinte código:

 Shared Sub Main(ByVal args As String())

        Dim meuform As Form = New Form1()
        Application.Run(meuform)

 End Sub

A seguir inclua o seguinte código no evento Click da opção Abrir do menu;

    Private Sub mnuAbrir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuAbrir.Click

        If dlgAbrir.ShowDialog() = Windows.Forms.DialogResult.OK Then

            Dim frm As Form1

            If arquivoCarregado Then
                frm = New Form1
            Else
                frm = Me
            End If

            frm.txtConteudo.Text = File.ReadAllText(dlgAbrir.FileName)
            frm.Text = "# [" & New FileInfo(dlgAbrir.FileName).Name & "]"
            frm.arquivoCarregado = True
            frm.Show()

        End If
    End Sub

Executando o projeto e abrindo 3 documentos poderemos visualizar cada um em uma janela diferente numa típica interface SDI.

Pegue o projeto completo aqui: Editor-SDI.zip

Eu sei é apenas VB .NET , mas eu gosto...

referências:


José Carlos Macoratti