Pergunta

Eu estou projetando um WinForms CRUD "como" app para um grande grupo de enfermeiros e assistentes sociais para interagir com as informações do cliente.

Existem muitas formas diferentes (cerca de 30 ish) que eles precisam "possiblly" interagem com para qualquer cliente e que "pode ??ser" obrigado a saltar de um para outro para uma pessoa específica .

Estou strugghling com o design da interface do usuário. Eu só tenho projetado CRUDs Webform linear muito simples em que você faz o que você precisa em uma página e clique em Avançar.

O que faz sentido mont por um aplicativo não-linear WinForm CRUD?

Eu tinha começado o caminho de guias com formulários incorporados nessas guias, mas, possivelmente devido a minha falta de capacidade, o programa se sente muito volumoso. Não tenho a certeza reta MDI é o caminho a percorrer como eu tenho usuários muito simples que podem ser confundidos facilmente se as janelas estão "escondidos".

Eu gostaria muito aprecio qualquer conselho, introspecção, ou exemplos alguém pode ter. Espeacially se alguém já teve de fazer um aplicativo WinForm CRUD si.

O UI de layout funcionou (ou não) para você?

Um exemplo do que o meu momento parece é aqui ->

http://lh6.ggpht.com/_DqVwi_JXyS0/Sf8EI0ETYrI/AAAAAAAABhI/pmAhozErubo/s288 /MATRIXUIExample.JPG De DevFiles
Foi útil?

Solução

Existem alguns padrões aceitos aqui, e às vezes você pode combiná-los de forma produtiva:

  1. TabPages
  2. TreeView (Win pastas do Explorador, Ferramentas do Visual do Studio | Options)
  3. Painéis Colapso (Outlook Correio / Calendário / Contactos)

Os painéis em colapso não é um controle padrão, mas existem várias implementações disponíveis (aqui está apenas um )

E o seu não está sozinho, por alguma inspiração ver esta resposta SO href="https://stackoverflow.com/questions/84556/whats-your-favorite-programmer-cartoon/109884#109884"> .

Outras dicas

Uma das coisas mais importantes que eu aprendi através de aplicativos do tipo CRUD, é certificar-se de que existem teclas de atalho para quase todos os botões e que a ordem de tabulação está configurado corretamente.

Na maioria das vezes, quando você está fazendo a entrada de dados / modificação, você não quer deixar cair as mãos do teclado para mover o mouse para o / botão Enviar Update, especialmente com grandes volumes de dados para trabalhar com . Tendo estes dois itens em ordem vai aumentar muito a produtividade do aplicativo.

Disclaimer:. Eu tenho feito CRUDs para eu não sei quanto tempo, mas eu estou apenas começando agora com o meu primeiro aplicativo winforms

Então, algumas idéias mistas:

Em nosso sistema atual (escrito utilizando Centura / Gupta) usamos um MDI-como abordagem. Eu acho que é importante para permitir que o usuário começar a trabalhar em um novo disco, sem forçá-lo a fechar o seu trabalho atual, para uma lista de janelas abertas é sempre apresentado para permitir a comutação rápida entre as diferentes formas. Exemplo:

text alt
(fonte: pingmbh.de )
Lista de janelas abertas no canto inferior esquerdo. Além disso, este sistema faz com que seja possível abrir uma ficha de dentro de outro, por exemplo abrir um cliente, mostrar as ordens deste cliente, clique duas vezes em uma de suas ordens para abri-lo e assim por diante.

Agora sobre winforms: Depois de fazer algumas pesquisas eu deceided contra MDI e passar a usar um formulário contendo alguns SplitContainers. Um destes painéis recipiente mostra uma lista de janelas abertas, outra mostra a forma atual. Desde que eu não encontrar uma maneira de mostrar um formulário em um painel, os formulários são realizados como controles de usuário. O formulário principal controla as janelas abertas e exibe-os na lista de janela. Se o usuário clica em uma janela na lista, ou abre o mesmo registro de algum outro lugar no Programa, o painel apropriado é trazido para a frente. Imagem de um trabalho em andamento: text alt
(fonte: pingmbh.de )
Considere para separar a seleção de registros existentes da edição desses registros, ou seja, mostrar os registros existentes em algum tipo de mesa (como um gridview) com filtro e capacidades de pesquisa e permitir que o usuário clique duas vezes esses registros para editá-los.

Notei em sua imagem que você tem botões de "Inserir" e "Update". É este para a criação de novos registros e salvar registros existentes? Eu acho que a melhor abordagem é dar ao usuário um botão "Novo", em seguida, abrir um formulário que tem "salvar" e "cancelar" botões. O usuário não pode allways lembrar se ele começou a editar um novo ou um registro existente.

A tela de seleção btw é um bom lugar para o botão "novo recorde".

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top