Problema en C#.Net

Solo se programar en Java pero estoy intentando por mi cuenta hacer algunos ejemplos en C#.Net. Resulta que intenté hacer un programa pero hay cosas que no se hacer en C# y que en Java si y estoy teniendo problemas al resolver el siguiente enunciado ya que no tengo idea de como hacerlo
"Ingrese un nmero natural de 9 dgitos como máximo para obtener el nmero mayor y menor que se pueden realizar con sus cifras".
PD. En Java usaría un método para dividir el numero en cifras (hallando sus residuos también) y otro, con sobrecarga, para determinar cual cifra seria la mayor y así organizar, concatenando las cifras, de mayor a menor o de menor a mayor en un label el numero que se pueda generar.
Por otro lado, en Java me salio algo parecido pero en C# tengo problemas ya que no tengo idea como implementarlo ya que por ejemplo, en mi programa de java, usé 2 frames uno donde ingresabas el numero y otro donde (en otra ventana) te mostraba el numero ingresado y todo lo demás.
Sin embargo, para hacer esto es necesario declarar "public" los elementos del frame1 para capturar lo que se ingreso en dicho textbox y mostrarlo en otro frame (esa es otra cosa que no se hacer el C#)
Espero me puedas ayudar dándome algún método o código que pueda usar ya que no tengo la más mínima idea. Perdón si no fui muy claro pero ando algo apurado, espero también me expliques lo de llamar a un objeto desde otro frame.
Respuesta
1
Ok, mmm... podría ser algo sencillo por ejemplo yo lo haría así
Todo en el clic de un botón
Por pasos Declara una lista genérica del tipo int:
List<int> Numeros = new List<int>();
Después agregar a esta lista genérica los números escritos en un textbox de la siguiente manera:
foreach (char C in textBox1.Text.ToCharArray())
{
        Numeros.Add(int.Parse(C.ToString()));
}
Después llamar a la función Sort() de la lista genérica la cual nos ordena de manera ascendente los valores int de la Lista Genérica.
Numeros.Sort();
y despues agregar a un string los int de la lista generica de esta manera:
string Ascendente = "";
foreach (int I in Numeros)
{
    Ascendente += I.ToString();
}
y asignarlo a un label:
this.label1.Text = Ascendente;
De forma descendente primero hacer una llamada a la función Reverse() de la lista genérica de esta manera si ya estaba ordenado de forma ascendente tenemos lo contrario
Numeros.Reverse();
y concatenamos de la forma anterior;
string Descendente = "";
foreach (int I in Numeros)
{
Descendente += I.ToString();
}
this.label2.Text = Descendente;
Y ya.. con eso queda, ahora lo de pasar los valores de un Form a otro (en c# son formularios no frames) puedes hacerlo por el constructor del formulario... es la forma más fácil.
Gracias por la solución, funciona muy bien.. el único inconveniente es que aun no me sale eso de pasar los valores deun form a otro, espero me puedas dar un ejemplo si no es molestia.. por lo demás gracias!
Con mucho gusto te sigo ayudando.
Mira en C# pasar valores de un form a otro es más talacha.
La opción que te di es pasar el valor por medio del constructor (espero que tengas bien definidas estos conceptos) del Form es decir
Suponiendo que tienes Form1 y Form2 y necesitas pasar una variable de Form1 a Form2 para hacer algo con ella, en el codigo siempre veras algo asi
public Form1()
{
         InitializeComponent();
}
ese es el constructor del Form1.
ahora veamos un ejemplo.
Suponiendo que en Form 1 hay una variable del tipo String que contiene una cadena de Texto
string MiVariable="Mi Texto de Prueba";
Ahora si quieres enviar esta variable a tu Form2 debes modificar tu constructor, éste esperará un parámetro del tipo string y deberá ser asignado a una variable a nivel Form que guarde su valor:
string VariableQueRecibo="";
public Form2(string Variable)
{
         InitializeComponent();
         VariableQueRecibo=Variable;
}
ahora para que funcione se hace lo siguiente:
en tu Form1 es donde se llama a Form2 por lo tanto se instancia de la siguiente manera:
Form2 MiFormulario2= new Form2(MiVariable);
asi envias el valor de MiVariable, recordando que MiVariable esta en el Form1.
y en Form2 ya la puedes ocupar para por ejemplo asignarla a un Label mediante un boton
private void button1_Click(object sender, EventArgs e)
{
         Label1.Text=VariableQueRecibo;
}
Y de esta manera el texto enviado desde Form1 se puede ocupar en Form2.
Espero haberme explicado, de no ser así... pues seguiré tratando de transmitirte mis pocos conocimientos

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas