Jump to content

C# e DataGridView


mrmanson

Recommended Posts

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

__________________

Link to comment
Share on other 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?  😄

Obrigado desde ja pela atenção prestada.

Link to comment
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.