IMPOSSIVEL MUDAR VALOR DE TEXTBOX!

EMILIOEDUARDO 03/08/2012 11:26:46
#407133
Pessoal, estou tentando ler as linhas de um arquivo e colocar em um textbox. O que era pra ser muito simples não funciona:

  string[] Linhas;
Linhas = System.IO.File.ReadAllLines(Endereco);
textBox1.Text = [Ô][Ô];
for (int i = 0; i < Linhas.Length; i++)
{
textBox1.Text += [Ô]
[Ô] + Linhas[i];
}


O erro acontece quando tento concatenar o texto no textBox. A mensagem é:{Text = Cannot evaluate expression because a native frame is on top of the call stack.}

Parece que o problema está relacionado com threads (Segundo minha busca no google) mas não sei o que fazer.

Atenciosamente,
Emilio Eduardo
OCELOT 03/08/2012 11:59:47
#407136
Você está rodando isso em uma Thread? Se sim pode ser esse o problema já que não se deve usar controles fora da Thread em que foram criados, se for o caso eu diria para você tentar fazer isso sem usar uma Thread para testar ver se o erro ainda ocorre.

Outra detalhe ai é que se você não for tratar as linhas individualmente, for só para exibir todo o texto você pode usar o ReadAllText no lugar do ReadAllLines, já que ele retorna uma única string.
EMILIOEDUARDO 03/08/2012 12:42:36
#407138
OCELOT, muito obrigado pela ajuda,

Não, estou rodando esse código em um botão, que chama uma função onde este código está.
A função está declarada dentro da Classe do Formulário.

Vou tratar as linhas individualmente, assim fica mais fácil de processá-las.

Segue a parte que interessa do código:

  
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)
{
Le_Arquivo([Ô]C:/LOG00334.TXT[Ô]);
}
public void Le_Arquivo(String Endereco){
string[] Linhas;
Linhas = System.IO.File.ReadAllLines(Endereco);
textBox1.Text = [Ô][Ô];
for (int i = 0; i < Linhas.Length; i++)
{
textBox1.Text += [Ô]
[Ô] + Linhas[i];
}
}
}


Atenciosamente,
Emilio Eduardo
MMMX 03/08/2012 14:09:47
#407149
Posso estar completamente enganado, mas será que um toString() não resolveria?

for (int i = 0; i < Linhas.Length; i++)
{
textBox1.Text += [Ô]
[Ô] + Linhas[i].[txt-color=#0000f0]toString()[/txt-color];
}
EMILIOEDUARDO 03/08/2012 18:14:18
#407175
MMMX, o toString() não funcionou.

Continua dando o mesmo erro. Tenho certeza que as linhas estão sendo carregadas no Array, pois consigo ver os valores no debug.

O mais estranho é que quando faço sem o +=, só com = funciona, mas não com o comportamento que quero (de concatenar as strings).

Não vou utilizar esses dados no textbox, queria poder usá-los para debug (Para observar as informações sendo processadas), portanto não preciso tanto do problema resolvido, mas isso está me deixando perplexo!

Atenciosamente,
Emilio Eduardo
JABA 07/08/2012 14:57:37
#407424
Veja se isso resolve o seu problema:

http://thiagottss.com.br/2011/11/07/unable-to-evaluate-expression-because-the-code-is-optimized-or-a-native-frame-is-on-top-of-the-call-stack/

vlw
SABIDAOXD 29/08/2012 11:48:26
#408853
se a textbox ñ estiver com a propriedade multline em true você nunca irá conseguir, vá nas propriedades e colocar multiline no true
Tópico encerrado , respostas não são mais permitidas