Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

shinoob

Que tal um grupo pra criar um componente em C#

Recommended Posts

Ola galera do Plataforma .NET ...O pessoal do delphi montaram um grupo pra desenvolver um projeto em grupoque tal a gente montar um também pra desenvolver algo pra Windows ApplicationsEu pensei em componentes , tipo vamos fazer um botao, ou coisa assim, ai depois a gente expandeo que acham???

Compartilhar este post


Link para o post
Compartilhar em outros sites

isso ai, com codigo fronte aberto tipo, seria mais pra gente estudar e aprender juntos

Compartilhar este post


Link para o post
Compartilhar em outros sites

Já tenho um botao que desenvolvi para ao associar uma imagem a ele, ele gerar mais 3 imagens automaticamente, uma com brilho para quando o mouse passar sobre ele, outra em tons de vermelho para quando clicar e outra preto e branco para quando desabilitar. tudo isso a partir de uma única imagem, tenho ainda o botao transparente, tocando som ao clicar,etc.tenho tmb outros componentes como Textbox/Richtext transparente, label com sombra, label com texto justificado, etc, a maioria está em vb, mas posso converter para C#.eles foram desenvolvidos por min e um amigo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tem como você me mandar???eu peguei um da net, e to modificando ele, so pra aprender ...mas a gente podia nos reunir e criar um projeto pra criar + componentes ....

Compartilhar este post


Link para o post
Compartilhar em outros sites

Progresso !!!depois de mto fuçar na net, baixar componentes com fontes, e a propria documentacao do VS, consegui desenvolver alguns componentes com um visual bem arrojado ..se alguem se interessar a participar e ajudar a modificar e criar + ..posta ae q eu disponibilizo os fontes ..o q eu ja criei é o seguinte ..Um Edit com bordas redondas e com uma cor + legal ..Um Combobox com bordas redondas e com uma cor + legal ..um radioButon = ao do XP, so q + flat, eu CheckBox tb bem Flat ...e um panel diferente ...ele ficou quase = ao GroupBox, so q ele "oculta" e "mostra" o conteudo dele ...como se fosse as "abas" do PageControl, so q neste caso é um abaixo do outro ..minha ideia era nos reunir e criar uma palheta de componentes pra VS

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa, vamos sim!Vou dar uma olhada como funciona la a parte do delphi e volto com idéias novas rsrsrs

Compartilhar este post


Link para o post
Compartilhar em outros sites

Há um conjunto de componentes tanto para Delphi quanto para C# conhecido como DevExpress.Acho muito interessante a quantidade de opções. Eu gostaria de participar da criação de um conjunto de componentes assim.Poderíamos criar um projeto no www.codeplex.com e compartilhar o código-fonte com controle de versão e etc.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa pessoal!

Sou novo aki no forum...andei procurando por esse equema de criação de componentes para vs c# e axei interessant essa ideia d criação d grupo p desenvolver components open source aki no forum...

se o pessoal ai ainda tive afim disso...pod conta cmgo...

beleza...

vlw

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu também achei muito interessante, inclusive tenho pesquisado muito na net sobre isso infelizmente as informações vêm muito truncadas, intao to tentando achar o fio da meada.

Eu já num penso tanto em botões assim, assado ou gridviews diferentes mas algo mais dinâmico que possa realmente agilizar nos projetos tipo:

 

um componente para cadastro por exemplo, pois a maioria dos sites dinâmicos exigem um cadastro de usuários e na maioria das vezes os campos são sempre os mesmos, intao porque nao criar um componente que já faça tudo, tipo o que temos no login do aspx....

 

Eu já vi na net componentes para carrinho de compras que fazem tudo, inclusão exclusão, mostra imagens etc e tal... porém são componentes pagos e provavelmente nao irão fornecer os fontes ne...

 

Dessa forma, ao puxarmos um componente tipo cadastro por exempo, nao seria preciso ficar procurando scripts para validação de dados e formatação de campos pois tudo isso estaria embutido no proprio componente.

 

Desculpem de fui além das expectativas mas prefiro mais os componentes do lado dinâmico que do lado visual, claro que as duas coisas podem ser criadas juntas.

 

Estou nessa se realmente o pessoal mostrar interesse.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom galera depois de muito garimpar achei esse pequeno exemplo aqui e já testei e dá pra se ter uma idéia sobre componentes:

 

No meu caso aqui eu num achei o template que o post pedia acho que minha versao do VS é diferente mas acabou dando tudo certo.

 

O post original é: Criando seu Web Control

 

(textos original do post de Cleydson Silva retirado do link informado acima)

 

Web user controls: Os user controls combinam html e Server controls, então empacotam tudo isso em unidades funcionais que encapsulam a interface do usuário ou parte dela. São gerados em arquivos com extensão “ascx”.

 

 

 

Rendered custom controls: Para criarmos estes componentes temos que escrever tudo que for necessário para o seu desenho na página, tag por tag. Um custom control é compilado anteriormente dentro de um Assembly(dll), depois esta dll pode ser usada em qualquer outro projeto. Para usa-lo basta inseri-lo na ToolBox do Visual Studio .NET.

 

 

 

Composite custom controls: Tem a mesma idéia do user controls porém, em vez de ser criado visualmente como o user control ele é criado atravez de código. Digo que tem a mesma idéia pois, são criados à partir de outros controles(botão, DataGrid, ListBox, etc).

 

 

 

Vamos lá! Vamos fazer um componente bem simples, sem firúlas, fiquem responsáveis por infirular ok? Vamos fazer um botão que ao ser clicado mostra uma mensagem que se for aceita é dado o PostBack, se for cancelada o PostBack não é dado.

 

Bom se vamos fazer um botão, então não precisamos começar do zero. Vamos herdar do Botão que já existe e depois inserir uma propriedade do tipo string para que a mensagem que aparecer quando clicarmos no botão não seja fixa.

 

 

 

Então “New Project”, como gosto do C# escolhi “Visual C# Projects”, dei o nome “MeuBotao” escolhi o diretório:

 

 

E abaixo o C#

 

using System;

using System.ComponentModel;

using System.Web.UI;

using System.Web.UI.WebControls;

 

namespace MeusComponentes.BotaoAlerta

{

[DefaultProperty("Text"), ToolboxData("<{0}:BotaoConfirmar runat=server Text=MeuBotao></{0}:BotaoConfirmar>")]

public class botaoConfirmar: System.Web.UI.WebControls.Button

{

private string strMensagem;

[bindable(true), Category("Raptors"), DefaultValue("Mensagem")]

 

public string Mensagem

{

get { return strMensagem; }

set { strMensagem = value; }

}

 

protected override void OnPreRender(EventArgs e)

{

Page.RegisterClientScriptBlock("btnAlerta" + this.ID,

"<script language=\"javascript\"> \n" +

"<!-- \n" +

"function Confirma" + this.ID + "(btnAlert) { \n" +

"if (confirm(\"" + strMensagem + "\")) { \n" +

" btnAlert.setAttribute(\"value\",\"Aguarde...\"); \n" +

" document.body.style.cursor=\"wait\"; \n" +

" return true; \n" +

"} return false; } \n" +

"--> \n" +

"</script> \n");

this.Attributes.Add("onclick", "return Confirma" + this.ID + "(this);");

base.OnPreRender(e);

}

}

}

Esse método registra um script na página, ou seja apesar de estar escrito ai no meio do código ele vai estár lá no html depois dele ser renderizado. Ou seja junto com as tags que serão renderizadas no nosso arquivo aspx esse script também será renderizado. A renderização acontece no método Render() que está na classe base.

 

Depois insiro o atributo “onclick” no botão para que o mesmo tenha esse comportamento (chamar a função javascript), no lado do cliente.

 

Pra finalizar chamo o método OnPreRender da minha classe base.

 

Agora é só dar um Build Solution é pronto já temos o nosso controle.

 

 

 

Agora vamos usá-lo pra ver se isso é verdade!

 

 

 

Vá em new project e abra um projeto Web qualquer ou crie um novo para testar o componente.

 

 

 

Então clique com o botão direito na ToolBox e escolha “Customize ToolBox” aparecerá a janela abaixo, então escolha “.NET FrameWork Components” e clique em “Browse...” e vá até a pasta bin\debug do nosso projeto de componente escolha a dll que está lá e você verá que aparecerá um novo componente na ToolBox:

 

Testando o componente:

 

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

 

<%@ Register Assembly="botao" Namespace="MeusComponentes.BotaoAlerta" TagPrefix="cc2" %>

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

 

<html xmlns="http://www.w3.org/1999/xhtml" >

<head runat="server">

<title>Untitled Page</title>

</head>

<body>

<form id="form1" runat="server">

<div>

<cc2:botaoConfirmar ID="BotaoConfirmar1" runat="server" Text="MeuBotao" Mensagem="Isto é um teste!!!"/>

</div>

</form>

</body>

</html>

 

essa linha <%@ Register Assembly="botao" Namespace="MeusComponentes.BotaoAlerta" TagPrefix="cc1" %>

é colocada automaticamente no form assim que arrastar o componente para o form.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Progresso !!!

depois de mto fuçar na net, baixar componentes com fontes, e a propria documentacao do VS, consegui desenvolver alguns componentes com um visual bem arrojado ..

se alguem se interessar a participar e ajudar a modificar e criar + ..

posta ae q eu disponibilizo os fontes ..

o q eu ja criei é o seguinte ..

Um Edit com bordas redondas e com uma cor + legal ..

Um Combobox com bordas redondas e com uma cor + legal ..

um radioButon = ao do XP, so q + flat, eu CheckBox tb bem Flat ...

e um panel diferente ...

ele ficou quase = ao GroupBox, so q ele "oculta" e "mostra" o conteudo dele ...

como se fosse as "abas" do PageControl, so q neste caso é um abaixo do outro ..

minha ideia era nos reunir e criar uma palheta de componentes pra VS

 

 

Opa, se puder me mandar os fontes whisky.rafael@gmail.com

q ajuda a modificar.....alem do q, tbm estou mto interessado em criar diversos componentes...

vlw

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá pessoal, achei muito interessante a iniciativa e estou interessado em participar.

Tenho uma certa intimidade já com o C# e digo que é uma de minhas paixões.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oi, eu de novo, eu ainda estou iniciando em criação de componentes e seguindo as dicas deste camarada: http://blog.progbr.com/raphael/?p=7 eu criei um textbox com mudança de cor quando ele ganha foco e também coloquei em um combobox utilizando a mesma lógica. segue o código:

 

TextBoxCustom

 

using System.Drawing;

namespace System.Windows.Forms
{
    [ToolboxBitmap(@"C:\Images\TxtBxC.bmp")] //Permite colocar uma imagem do componente na toolbox para diferenciá-lo
    public class TextBoxCustom : TextBox
    {
        private Color gotFocusColor;

        private Color oldBackColor; 

        private bool gotFocusColorChange = true;

        public Color GotFocusColor
        {
            get { return gotFocusColor; }
            set { this.gotFocusColor = value; }
        }

        public Color FocusColor
        {
            get { return this.gotFocusColor; }
            set { this.gotFocusColor = value; }
        }

        public bool FocusColorChange
        {
            get { return this.gotFocusColorChange; }
            set { this.gotFocusColorChange = value; }
        }

        protected override void OnGotFocus(EventArgs e)
        {
            // verifica se a propriedade
            // GotFocusColorChange está ativa
            if (gotFocusColorChange)
            {
                // salva a cor atual do CustomTextBox
                oldBackColor = this.BackColor;

                // altera a cor
                this.BackColor = gotFocusColor;
            }

            // executa as ações da classe base
            base.OnGotFocus(e);
        }

        protected override void OnLostFocus(EventArgs e)
        {
            // verifica se a propriedade
            // GotFocusColorChange está ativa
            if (gotFocusColorChange)
            {
                // restaura a cor anterior
                this.BackColor = oldBackColor;
            }

            // executa as ações da classe base
            base.OnLostFocus(e);
        }


    }
}

Para o combobox o mesmo! Qualquer bug comentem.

Meu e-mail davidpsjunior@gmail.com.

Valeu!

Compartilhar este post


Link para o post
Compartilhar em outros sites

DPSJ, este tópico é antigo e acredito que ninguém esteja movimentando nada.

Eu aconselho a postar seu código aqui: http://forum.imasters.com.br/index.php?/forum/223-artigos-tutoriais-e-materias-plataforma-net/

 

Será melhor aproveitado.

 

Abraços...

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.