私の問題はかなりシンプルですが、解決方法はわかりません。C# - インスタンスの作成
作成されたドロンズの数が既に決定されている場合、私のコードは動作します。
INICIO
public partial class Inicio : Form
{
private Drone d1,d2;
private Arena arena;
public Inicio()
{
InitializeComponent();
}
private void btnconetar_Click(object sender, EventArgs e)
{
d1 = new Drone("192.168.1.10");
d2 = new Drone("192.168.1.20");
arena = new Arena(d1,d2);
arena.Show();
this.Hide();
}
}
アリーナ:
public partial class Arena : Form
{
private Drone d1, d2;
public Arena(Drone d1,Drone d2)
{
InitializeComponent();
this.d1 = d1;
this.d2 = d2;
}
private void cb_drone_SelectedIndexChanged(object sender, EventArgs e)
{
if(cb_drone.SelectedIndex.ToString() == d1.ip_drone)
{
//do something
}
}
}
私の質問は:どのように私は、n無人偵察機のためにこれを行うことができますか?私はボタンをクリックするたびに新しい無人機(d3、d4、d5など)を追加し、ARENAにはどのコンボボックスが無人機であるかをチェックする必要があります。コードのこの部分で
private Drone d1, d2;
public Arena(Drone d1,Drone d2)
{
InitializeComponent();
this.d1 = d1;
this.d2 = d2;
}
:例えばドローンの10件のインスタンスが存在する場合、パブリックアリーナ(ドローンのD1、D2ドローン、ドローンD3、等...)どのように私はこれを簡素化することができますを作成しましたか?
EDIT:.............
List<Drone> lista_drones = new List<Drone>;
private Arena arena;
public Inicio()
{
InitializeComponent();
}
private void Inicio_Load(object sender, EventArgs e)
{
}
private void btnconetar_Click(object sender, EventArgs e)
{
lista_drones.Add(new Drone("192.168.1.10"));
lista_drones.Add(new Drone("192.168.1.20"));
arena = new Arena(lista_drones);
arena.Show();
this.Hide();
}
public partial class Arena : Form
{
public Arena(List<Drone> lista_drones)
{
InitializeComponent();
}
private void cb_drone_SelectedIndexChanged(object sender, EventArgs e)
{
if(cb_drone.SelectedIndex.ToString() ==)
{
//do something
}
}
}
別の 'dN'フィールドの代わりに' List'を使用してください。 –
@DStanleyあなたは恐らくそれを働かせるかもしれない答え – cubrr
hmに書きたいと思うでしょう。 Uは少し良く説明できますか? d1、d2などを作成するのではなく、それらをすべてリストに入れ、公開アリーナ(List <> drones) –