Я пробовал перемещать стоимость одного array string другой array string в секунде form. То, что он перемещает, состоит, в том, что во время скроллирования программы, стоимость string не появляется во втором form, только появляется... совсем не и уже не, к которому больше относиться.
Adicionalmente, есть array объектов (Кхугадор Хугадор), которые я не могу использовать во втором form, из-за Вашего уровня доступа. Но это, попробовав помещать публично, он говорит, что превосходит уровень доступа form 2. Я не понимаю на самом деле, что то, что он перемещает. Уже мы пробуем всего с моей парой и невозможно способствовать тому, чтобы у labels в form 3 был текст array string в form, 2
namespace Gambit
{
public partial class Form2 : Form
{
//Atributos (Se crea el array para los nombres)
public string[] listaJugadores = new string[6];
Label[] listaLabels = new Label[6];
CJugador[] jugador = new CJugador[4];
public string[] listaFinalJugadores = new string[6];
public int contador = 0;
public Form2()
{
InitializeComponent();
listaLabels[0] = this.label1;
listaLabels[1] = this.label2;
listaLabels[2] = this.label3;
listaLabels[3] = this.label4;
listaLabels[4] = this.label5;
listaLabels[5] = this.label6;
}
//Se activa el boton para mostrar los nombres registrados
private void button1_Click(object sender, EventArgs e)
{
//Esto hara que se agureguen los nombres a la lista de jugadores
jugador[contador] = new CJugador();
jugador[contador].nombre = txtNombres.Text;
listaJugadores[contador]= txtNombres.Text;
listaLabels[contador].Text= txtNombres.Text;
if (contador <= 4)
{
contador++;
}
else
{
contador = 0;
}
Random rnd = new Random();
int value = rnd.Next(0, 10);
textBox1.Text = value.ToString();
}
private void button2_Click(object sender, EventArgs e)
{
if (contador == 4)
{
//Esto va a crear un orden aleatorio en el array que se creo con anterioridad
Random rnd = new Random();
string[] jugadoresRandom4 = listaJugadores.OrderBy(x => rnd.Next()).ToArray();
jugadoresRandom4.CopyTo(listaFinalJugadores, 0);
//Abriremos el forms que nos servira para jugar con 4 personas
Form3 TableroPara2 = new Form3();
this.Hide();
TableroPara2.Show();
}
else if (contador == 5)
{
//Esto va a crear un orden aleatorio en el array que se creo con anterioridad
Random rnd = new Random();
string[] jugadoresRandom6 = listaJugadores.OrderBy(x => rnd.Next()).ToArray();
//Abriremos el forms que nos servira para jugar con 6 personas
Form4 TableroPara6 = new Form4();
this.Visible = false;
TableroPara6.Show();
}
else
{
label1.Text = " ";
label2.Text = " ";
label3.Text = " ";
label4.Text = " ";
label5.Text = " ";
label6.Text = " ";
string mensaje = "Tienes que ingresar 4 o 6 jugadores. Intentalo de nuevo.";
MessageBox.Show(mensaje);
contador=0;
}
}
}
}
//Creamos un array de objetos que tendran nuestras propiedades
CJugador[] jugador = new CJugador[4];
//Creamos un ciclo for para crear jugadores en su respectivo array con los atributos "nombre" ranzomizados.
for (int i = 0; i < 4; i++)
{
jugador[i] = new CJugador();
jugador[i].nombre = arrayJugadores[i];
}
label1.Text = FormRegistro.listaFinalJugadores[0];
label2.Text = jugador[1].nombre;
label3.Text = jugador[2].nombre;
label4.Text = jugador[3].nombre;
}
private void button1_Click(object sender, EventArgs e)
{
Form2 FormRegistro = new Form2();
Random rnd = new Random();
int value = rnd.Next(0, 10);
if (Enumerable.Range(0,15).Contains(value))
{
}
}
}
}
Уже мы пробуем всего с моей парой и невозможно способствовать тому, чтобы у labels в form 3 был текст array string в form 2
, Чтобы этого добиваться, строитель Form3
должен быть parametrizado, а именно, нуждается в том, чтобы иметь один parГЎmetro типа Label[]
где recibirГЎ ссылку объекта.
ImagГ-nate, что наш Form2
estГЎ построенный, таким образом:
class Form2 : Form
{
Label[] listaLabels = new Label[6];
public Form2()
{
}
private void button2_Click(object sender, EventArgs e)
{
//Pasamos la referencia que tenga guardada listaLabels al parámetro del constructor.
Form3 form3 = new Form3(listaLabels);
}
}
Потом, наш Form3
deberГ, - чтобы быть расположенным в порядке таким образом:
class Form3 : Form
{
Label[] listaLabels;
public Form3(Label[] p_listaLabels)
{
//Le pasamos la referencia que tenga guardada p_listaLabels a listaLabels
listaLabels = p_listaLabels;
}
}
Есть другой способ это делать, но deberГЎs объявлять признак listaLabels
как estГЎtico в Form2
и чтобы мочь использовать это в другом формуляре, deberГЎs создавать один getter
, чтобы иметь доступ к признаку.
Например:
class Form2 : Form
{
private static Label[] listaLabels = new Label[6];
public static Label[] ListaLabels
{
get
{
return listaLabels;
}
}
public Form2()
{
}
private void button2_Click(object sender, EventArgs e)
{
Form3 form3 = new Form3();
}
}
Сейчас, способ использовать getter
(его один mГ©todo, что стоит нам для того, чтобы иметь доступ к признаку, лишенному класса) в Form3
serГ - в таким образом:
class Form3 : Form
{
public Form3()
{
//Dará como resultado el primer label que tenga guardado el arreglo de objeto
MessageBox.Show(Form2.ListaLabels[0].Text);
}
}
Из этой формы не necesitarГ-хозяева создавать строитель parametrizado.