TRANSFORMAR UM FORM É POSSÍVEL ?

MARCOS 15/09/2016 10:26:04
#466954
Bom dia,Pessoal !
Sei que pode não parecer algo comum.Mas,
me deparei com uma necessidade um pouco diferente:

Tenho um Formulário no meu projeto (VB.NET).Preciso
enviar automáticamente por e-mail ,o Formulário em anexo para meu usuário.Este arquivo
que pretendo enviar em anexo por e-mail para o usuário pode ser
em qualquer destes formatos : Html,PDF, Imagem ( PNG ou Jpj ).
Infelizmente, no meu caso, não posso criar manualmente um arquivo equivalente ao Form.
Preciso mesmo,é transformar o Form, num arquivo em qualquer um destes formatos que citei, depois anexar ao E-mail e enviar.

Isto é possivel?

KURTGU 15/09/2016 10:27:51
#466955
Você quer enviar os dados do form?
MARCOS 15/09/2016 11:50:31
#466964
Olá,Kurtgu !
Eu não quero enviar os dados.
O que resolveria meu problema seria qualquer uma destas alternativas:

1. Capturar a imagem do meu Form que esta na tela e salvar em um formato qualquer (Png,Jpg,etc...)

2. Transformar o layout do Form (Com seus ,Botoes,Casixas de texto,etc...), em um arquivo Html equivalente

Algum colega, sabe dizer se é possível?

ASHKATCHUP 15/09/2016 12:56:28
#466965
Da uma olhada nisso: http://www.macoratti.net/09/06/vb_cpt1.htm
KERPLUNK 15/09/2016 19:54:48
#466985
O que você quer é enviar somente um form para que a pessoa preencha e você receba esses dados, correto? Se for, lamento informar, mas da maneira que você quer somente com um HTML + CSS + Javascript comunicando com uma WebAPI. Nesse caso é muito mais fácil fazer o form em uma página que você simplesmente envia o link e o cara acessa para preencher os dados. Não que seja impossível, mas você estará enviando muita coisa por e-mail.
MARCOS 19/09/2016 15:13:58
#467121
Pessoal,
Na verdade eu não preciso que o usuário preencha nada.
Trata-se de um simples relatório que o usuário poderá
consultar.O motivo de eu não criar este relatório na mão. é que
preciso que ele seja idêntico ao Layout do meu Formulário na tela.
Fazer isto em Html, é bem trabalhoso,pois meu form tem vários
controles na tela.Por isto pensei na possibilidade de que houvesse algo que pudesse
converter meu Formulário em um arquivo Html para que eu envie por e-mail para o usuário.
MARCELO.TREZE 19/09/2016 15:47:18
#467123
Resposta escolhida
o ASHKATSCHUP ja respondeu, capture a tela com o exemplo posta do link dele e envie a imagem.
ICHIHARA 19/09/2016 15:51:04
#467124
Boa Tarde Marcos,

Pensei na seguinte solução:
Utilize alguma API que de o comando [Ô]print screen[Ô].
Outra para ler a [Ô]área de transferência[Ô] e salvar em um arquivo [Ô].jpg[Ô]
depois é só usar o componente do outlook para enviar o anexo.

Não entendi o por que quer transformar os botões em html...
MARCOS 19/09/2016 17:29:04
#467131
Pessoal,
Vocês tem razão. O meio mais simples é capturar a imagem ( Do meu formulário) e enviar em anexo para
o usuário! Eu tentei usar o exemplo sugerido por vocês, do Macoratti. Funciona muito bem.Mas....

http://www.macoratti.net/09/06/vb_cpt1.htm

O problema deste exemplo, do Macoratti, é que o este exemplo captura [Ô]toda[Ô] tela. E eu preciso capturar somente
o meu Formulário que esta no meio da tela. Eu tentei modificar o exemplo do Macoratti para capturar somente uma
área da tela, mas não tenho conhecimento suficiente.

Algum colega,tem conhecimento suficiente para modificar este exemplo do Macoratti, para que se capture somente uma determinada área da tela.???????
MARCELO.TREZE 19/09/2016 17:54:12
#467134
eu fiz uma pequena mudança e funcionou veja

 Public Shared Function CapturaTela() As Bitmap
Try
Dim BMP As New Bitmap(Form1.Bounds.Width, Form1.Bounds.Height, System.Drawing.Imaging.PixelFormat.Format32bppArgb)
Dim GFX As Graphics = FromImage(BMP)
GFX.CopyFromScreen(Form1.Bounds.X, Form1.Bounds.Y, 0, 0, System.Windows.Forms.Screen.PrimaryScreen.Bounds.Size, System.Drawing.CopyPixelOperation.SourceCopy)
Return BMP
Catch ex As Exception
MsgBox([Ô]Erro : [Ô] & ex.Message)
End Try
End Function


no caso mude form1 para o nome do formulario a ser copiado
MARCOS 20/09/2016 11:01:24
#467163
Sou grato a todos.A opinião de cada um foi
importante.Vou pontuar, o colega Treze, pois a modificação feita por ele
na função funcionou perfeitamente.

Obrigado.
Tópico encerrado , respostas não são mais permitidas