MacroSustitución

02/06/2005 - 11:25 por JuanilloFox | Informe spam
Hola grupo,

Tengo el siguiente problema a la hora de implementar lo que en Visual Foxpro
se llama MacroSustitución y la verdad no se como implementarlo en C#.

En principio tengo una serie de TexBox que forman una matriz.

txtC1T1 , txtC1T2, ... , txtC2T1, txtC2T2, ..., txtCnTm.

la idea es crear un bucle para hacer referencia a cada uno de ellos.

string cTexBox = "";
string ci = "";
string cj = "";
for (int i = 1 ; i <= n; i++)
{
for (int j = 1; j <= m; j++)
{
ci = Convert.ToString(i);
cj = Convert.ToString(j);
cTexBox = "txtC" + ci + "T" + cj;
&cTexBox = "Este es el TexBox" + ci + "," + cj; // Esto sería en
FoxPro
(&cTexBox.Text. ¿Cómo se realizaría
en C#?
}
}

Gracias
Un saludo

juanillofox@andujar.com
 

Leer las respuestas

#1 Braulio Diez
02/06/2005 - 12:43 | Informe spam
Hola Juanillo,

Lo que he visto con los controles, es que tu puedes acceder al array de
controles de la ventana y ver el nombre de cada control, una opción es
recorrer los controles y ir cogiendo cada control, he encontrado está función
que hace un "FindControl" (es Vb pero se podría pasar facilmente a C#):

Private Function FindControl(ByVal name_ctrl As String, ByVal control As
Control)
Dim
ctrl
As

control
For Each ctrl In control.Controls
If (StrComp(ctrl.Name, name_ctrl, vbTextCompare) = 0) Then
Return ctrl
Exit Function
ElseIf ctrl.HasChildren Then
Return FindControl(name_ctrl, ctrl)
End If
Next
End Function

Así tu función quedaría como:

for (int j = 1; j <= m; j++)
{
ci = Convert.ToString(i);
cj = Convert.ToString(j);
cTexBox = "txtC" + ci + "T" + cj;


TextBox ControlActual;
FindControl(cTextBox, (Control) ControlActual);

Se podría optimizar para no dar pasadas de más, pero creo que no es tan
grave como está ya que en una ventana no suelen haber más de 30 controles, es
más, no se yo si FoxPro internamente funcionará así :-).

Saludos
Braulio

"JuanilloFox" escribió:

Hola grupo,

Tengo el siguiente problema a la hora de implementar lo que en Visual Foxpro
se llama MacroSustitución y la verdad no se como implementarlo en C#.

En principio tengo una serie de TexBox que forman una matriz.

txtC1T1 , txtC1T2, ... , txtC2T1, txtC2T2, ..., txtCnTm.

la idea es crear un bucle para hacer referencia a cada uno de ellos.

string cTexBox = "";
string ci = "";
string cj = "";
for (int i = 1 ; i <= n; i++)
{
for (int j = 1; j <= m; j++)
{
ci = Convert.ToString(i);
cj = Convert.ToString(j);
cTexBox = "txtC" + ci + "T" + cj;
&cTexBox = "Este es el TexBox" + ci + "," + cj; // Esto sería en
FoxPro
(&cTexBox.Text. ¿Cómo se realizaría
en C#?
}
}

Gracias
Un saludo





Preguntas similares