私はここで少し問題があります。C# - 動的なデータ入力を伴う動的ボタン
私は可変データを持つ動的clickeventsを作成しようとしています。
for(int i = 0; i < data.Devices.Length; i++)
{
Button _button = new Button();
_button.Size = new Size(100, 15);
_button.Text = data.Devices[i].Alias;
_button.Name = "textbox" + i.ToString();
_button.Location = new Point(x,y);
x += 110;
if(x > 1850)
{
y += 50;
x = 10;
}
if (data.Devices[i].OnlineState == "Online")
{
_button.BackColor = Color.Green;
}
else
{
_button.BackColor = Color.Red;
}
_button.Click += (Sender, args) =>
{
MessageBox.Show(data.Devices[i].Alias);
};
Controls.Add(_button);
}
ここでの考え方は、リストの長さは、(これらのオブジェクトのリストと位置が異なる場合)に行われるまで、私は、ボタンを作成しますということです。
私が探しているのは、たくさんのボタンを作ることです。ボタンをクリックすると、そのオブジェクトにいくつかの統計情報が添付された別の画面が開きます。
データはさまざまなので、各シナリオをハードコードする方法はありませんが、代わりに私はAndroidでできることと同じことを探しています。下記を参照してください。
for (int i = 1; i <= 20; i++) {
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.MATCH_PARENT,
LinearLayout.LayoutParams.WRAP_CONTENT);
Button btn = new Button(this);
btn.setId(i);
final int id_ = btn.getId();
btn.setText("button " + id_);
btn.setBackgroundColor(Color.rgb(70, 80, 90));
linear.addView(btn, params);
btn1 = ((Button) findViewById(id_));
btn1.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
Toast.makeText(view.getContext(), "Button clicked index = " + id_, Toast.LENGTH_SHORT).show();
}
});
私はこれを達成する方法はありますか?
親切にしてください。
遭遇している問題は何ですか? – PeteGO