Knitter Posted May 26, 2008 at 06:44 PM Report Share #187648 Posted May 26, 2008 at 06:44 PM Boas, Precisava de criar uma interface em que na esquerda existe uma árvore com alguns nós e na direita deveria ser escolhido um painel diferente a cada nó que o utilizador escolha. Estava a usar um TabControl para mostrar os painéis dado que seria mais simples mudar a página visível com todas as funcionalidades que esse controlo oferece, agora deparo-me com um problema, como esconder as abas do controlo. Não quero que apareçam os títulos de cada página. Existe alguma forma de atingir o objectivo que pretendo com o controlo que estou a usar ou uma forma melhor para o atingir? www.sergiolopes.eu Link to comment Share on other sites More sharing options...
Triton Posted May 26, 2008 at 06:50 PM Report Share #187650 Posted May 26, 2008 at 06:50 PM Boas, Precisava de criar uma interface em que na esquerda existe uma árvore com alguns nós e na direita deveria ser escolhido um painel diferente a cada nó que o utilizador escolha. Estava a usar um TabControl para mostrar os painéis dado que seria mais simples mudar a página visível com todas as funcionalidades que esse controlo oferece, agora deparo-me com um problema, como esconder as abas do controlo. Não quero que apareçam os títulos de cada página. Existe alguma forma de atingir o objectivo que pretendo com o controlo que estou a usar ou uma forma melhor para o atingir? Já andei a pesquisar sobre isso e cheguei à conclusão que não era possível ou que dava muito trabalho (override ao Draw do controlo e não sei o quê). A solução que utilizei foi criar várias forms e adicionar esse control via código. Também podes criar várias frames e utilizar o Visible. <3 life Link to comment Share on other sites More sharing options...
Knitter Posted May 26, 2008 at 07:02 PM Author Report Share #187656 Posted May 26, 2008 at 07:02 PM Hum... não acredito que uma coisa tão comum seja assim tão complicada, é que o que estou a tentar fazer não é mais que um wizard, quero mostrar um conjunto de passos definidos em vários painéis. Não mais ideias? www.sergiolopes.eu Link to comment Share on other sites More sharing options...
TheDark Posted May 29, 2008 at 05:13 PM Report Share #188377 Posted May 29, 2008 at 05:13 PM Usa containers. Desaparecido. Link to comment Share on other sites More sharing options...
Knitter Posted May 30, 2008 at 01:21 PM Author Report Share #188561 Posted May 30, 2008 at 01:21 PM Não quererás elaborar mais nesse assunto? www.sergiolopes.eu Link to comment Share on other sites More sharing options...
Guest id194 Posted May 30, 2008 at 02:28 PM Report Share #188578 Posted May 30, 2008 at 02:28 PM Vê se isto resolve o problema: http://devcenter.infragistics.com/Support/KnowledgeBaseArticle.aspx?ArticleID=10001 Link to comment Share on other sites More sharing options...
Knitter Posted May 30, 2008 at 03:02 PM Author Report Share #188595 Posted May 30, 2008 at 03:02 PM Bem, esse artigo é referente a um componente específico, neste caso ao UltraWinToolbars, que não estou a usar. Resolvi o problema de outra forma, através de um componente específico para criar wizards, que neste momento está adaptado às necessidades do projecto. Mais tarde irei investigar essas soluções, nomeadamente a de usar containers que não percebi bem. www.sergiolopes.eu Link to comment Share on other sites More sharing options...
Solution Guest id194 Posted May 30, 2008 at 03:55 PM Solution Report Share #188613 Posted May 30, 2008 at 03:55 PM Eu por acaso estou a fazer um controlo (apesar de nunca mais ter pegado nele desde há uns meses) que faz mais ou menos a mesma coisa que um TabControl, mas com um aspecto mais à-lá-thunderbird (janela de preferências), talvez depois lhe adicione uns métodos/propriedades para esconder os botões de troca de páginas e mudar a página por código, acho que é o que tu queres. Se tiveres interessado: http://www.portugal-a-programar.pt/index.php?showtopic=11386 (bem que esta precisar de mais uns comentários para eu voltar a carga lol 😉) Quanto ao link que te dei, tens razão, vi mal, sorry... Mas eu sei que há maneiras de o fazer isto porque quando comecei a desenvolver o controlo que falei acima, comecei por fazer um derivado do TabControl (depois larguei a ideia e comecei a fazer uma cena diferente) e fiz isso que queres, só não me lembro como. Vou investigar mais um pouco ou achas que não vale a pena? 😛 EDIT: Acho que encontrei o que querias, crias uma subclasse do TabControl com o seguinte código: public class MyTabControl : TabControl { private const TCM_ADJUSTRECT = 0x1328; protected override void WndProc(ref Message m) { if (m.Msg == TCM_ADJUSTRECT && !DesignMode) { m.Result = (IntPtr)1; } else { base.WndProc(ref m); } } } Depois acho que sabes fazer o resto... Durante o tempo de execução as tabs vão estar escondidas, durante o tempo de desenho vais vê-las. Podes facilmente alterar este comportamento como podes ver pelo código do if. Link to comment Share on other sites More sharing options...
TheDark Posted May 30, 2008 at 07:34 PM Report Share #188644 Posted May 30, 2008 at 07:34 PM Não quererás elaborar mais nesse assunto? Tenho andado pouco por cá. Quando disse containers, estava a referir-me ao controlo Panel. Toma lá um exemplo meio tosco: public partial class Form1 : Form { Panel myPanel; public Form1() { InitializeComponent(); myPanel = new Panel(); TextBox tb = new TextBox(); myPanel.Controls.Add(tb); Controls.Add(myPanel); tb.Click += new EventHandler(tb_Click); } void tb_Click(object sender, EventArgs e) { myPanel.Visible = !myPanel.Visible; } } As coordenadas da TextBox passam a ser relativas à origem do Panel. Quando a propriedade Visible do Panel é colocada a false, todos os controlos que o têm como Parent desaparecem também. Desaparecido. Link to comment Share on other sites More sharing options...
Knitter Posted May 31, 2008 at 12:45 PM Author Report Share #188710 Posted May 31, 2008 at 12:45 PM A ideia de usar os painéis foi a primeira depois de ver que não conseguia esconder as abas, mas isso significa que teria de reinventar a roda, neste caso teria de implementar quase todas as funcionalidades que o componente TabControl contém, algo que não me apetece fazer. A necessidade não é tanta que me obrigue a isso e parece-me trabalho desnecessário. Para já vou estar a usar o componente que encontrei, é a solução mais simples para o objectivo. Sinceramente pensava que fosse mais simples fazer o que quero, e até estava à espera que me mandassem olhar melhor para as propriedades 😄 , parece que o Java me deixa mal habituado, e como a única vez que usei outra tecnologia para isto foi em Delphi e foi bastante simples assumi que fosse igual. Esse código é interessante, já tinha visto algumas alternativas em código mas envolviam muito mais alterações ao componente, tantas que resolvi mudar de ideia 😄 . Bem, acho que tenho as soluções que queria, obrigado. www.sergiolopes.eu Link to comment Share on other sites More sharing options...
Guest id194 Posted May 31, 2008 at 01:09 PM Report Share #188717 Posted May 31, 2008 at 01:09 PM Mas tu não lês-te a minha última resposta? Achas aquilo trabalho desnecessário? É bué simples e faz exactamente o que queres... E para trocares de tabs em design time é porreiro, porque assim consegues facilmente trabalhar em cada "painel" diferente. Link to comment Share on other sites More sharing options...
Knitter Posted May 31, 2008 at 02:32 PM Author Report Share #188750 Posted May 31, 2008 at 02:32 PM Tu é que não leste o que eu escrevi, e se voltares a ler com atenção verificas que escrevi que achava desnecessário implementar com painéis o toda a funcionalidade de um TabControl. Em nada me referi ao teu código, que, como também escrevi mais abaixo e na única linha em resposta a ti, é mais o simples do que os que tinha visto até este momento. www.sergiolopes.eu Link to comment Share on other sites More sharing options...
Guest id194 Posted May 31, 2008 at 04:46 PM Report Share #188799 Posted May 31, 2008 at 04:46 PM Eu li, mas não reparei bem nessa linha e não vi que era dirigida a mim 😄 Link to comment Share on other sites More sharing options...
caetano Posted February 11, 2009 at 02:11 PM Report Share #243736 Posted February 11, 2009 at 02:11 PM Sei que estou desenterrando um tópico, mas encontrei uma solução simples para esse problema Criei as abaspelo modo design normal e em tempo de execução uso os códigos abaixo. Ocultar: tabCentral.Controls.Remove(tab); Mostrar tabCentral.Controls.Add(tab); Estou fazendo exatamente a mesma coisa, uma árvore que chama as abas. Link to comment Share on other sites More sharing options...
darcybuss Posted February 20, 2009 at 06:05 PM Report Share #245837 Posted February 20, 2009 at 06:05 PM Ae pessoal... Como disse o colega acima vamos ressuscitar o topico. hehehe, Bom estava eu e meu colega de desenvolvimento discutindo isto e chegamos a conclusão de por um Panel na frente das abas ou na propriedade Locaction -> Y acrescentar o numero -22 (isso mesmo -22). Isto resolve nossos problemas em partes pois o Control + Tab ainda funciona. Para resolver isto, ponha um flag para bloquear. Conclusão: A POG FUNCIONA! ( PROGRAMAÇÃO ORIENTADA A GAMBIARRA) Att., Darcy Buss Neto Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now