• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

mrmanson

C# e DataGridView

4 mensagens neste tópico

Viva!

Antes de mais referir que estou muito verdinho no que diz respeito a C# e nesse sentido venho procurar alguma ajuda para o desenvolvimento de uma pequena aplicação nesta linguagem.

Passo a referir em que consiste a aplicação e onde reside a minha dificuldade ou o que se tornou um obstaculo para mim neste momento.

Estou a trabalhar com um windows form que inclui:

- uma datagridview

- uma combo box

- uma textebox

- um botão

Este datagridview é preenchido com dados de um ficheiro excel que importo, do qual filtro apenas uma "row" ou linha e cujo filtro é um valor escolhido no combo box.

Na datagridview é mostrada então esta linha que contem valores. Estes valores eu pretendo que sejam actualizados através de uma função matematica, regra 3 simples que eu a chamo no evento cliclar do botão.

...

private double Regra3Simples(double valor1, double valor2)
{
double x = (valor2*valor1)/100;

return x;
}

...

private void btnCalcula_Click(object sender, EventArgs e)
{


for (int i = 3; i < valorCal.Table.Columns.Count - 3; i++)
{


//variavel que recebe valor digitado na caixa de texto Calcular
int valor_3 = int.Parse(txtEnergia.Text);

string valor_2 = valorCal[i].ToString();

double valor_21 = double.Parse(valor_2);

double resultado = Regra3Simples(valor_21, valor_3);

this.dgExcel.Rows[0].Cells[i].Value = resultado;
}

...

Até aqui tudo bem e a funcionar conforme queria, ou seja, ao colocar 200 na caixa de texto todos os valores alteram para o dobro mas...

o meu problema reside no caso de eu voltar a colocar 100 na caixa de texto e clicar no botão, o valor não se alterar para metade e isto porque, na regra ou função 3 simples defino um valor divisivel fixo de 100 e por exemplo x= (60*100)/100 sera sempre 60..

Venho então pedir ajuda aqui ao pessoal para tentar achar uma forma mais correcta de solucionar esta situação.

No meu entender o problema estara na função e poder-se-a resolver com uma outra função mais completa ou mesmo com o tentar "resetar" ou chamar os valores iniciais da datagridview no momento em que clico no botão para a actualizar mas confesso que mesmo após investigar a respeito ainda não descobri como o fazer.

Desde ja agradeço a paciencia para ler todo este texto e agradecerei ainda mais caso tenham algumas sugestão ou dica de como ultrapassar este bloqueio.

Um abraço a todos

__________________

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não consigo perceber o q tens e o teu objectivo.

Podes explicar melhor?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Tenho uma datagridview que importa dados de um excel em que estes dados são todos valores numericos referentes a produtos com 1 peso de 100gr.

Eu faço uma filtragem do ficheiro excel com uma combobox que apenas integra o nome dos produtos. Ao seleccionares determinado produto na combobox, a respectiva linha ou row é mostrada no datagridview.

Neste momento consigo que ao digitar 200 no textbox os valores da datagridview se alterem através da regra 3 simples.

Vejamos:

Se tenho um produto no excel com um peso predifinido de 100gr( como todos os outros pois este é um peso referencia), tem determinados valores associados a ele tal como dimensão por exemplo.  Ao digitar 200 na textbox e ao clicar no botão os valores como a dimensãos serao alterados para o dobro pois baseando-me na função regra 3 simples ficaria deste modo:

  100g ---------------- 20cm dimensão

  200g ---------------- X dimensão

X= (200 * 20) /100 isto daria 40

O problema reside em que, se eu digito 100 ou qualquer outro valor na textbox apos ter digitado 200 e alterado os valores inicias da dgview ele vai aplicar a regra 3 simples aos valores actuais e não aos iniciais como pretendo.

Terei tornado as coisas mais perceptiveis?  :D

Obrigado desde ja pela atenção prestada.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Se precisares de usar os valores iniciais mais que uma vez, não deves guarda-los só na gridview se depois são alterados.

Guarda-os tb como variaveis globais, por exemplo.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora