0

これは非常に奇妙ですが、.NET CF で特定の textBox(i) または checkBox(i) が見つからないようです。.NET 3.5 では、次の関数を作成できます。

void checking(int input)
{
    CheckBox checkbox = (CheckBox)this.Controls["checkBox" + input.toString()];
    if(checkbox.isChecked)
      //do something here
}

この例では、checkBox の名前 (checkBox1、checkBox2 など) を取得します。

ただし、WINCE6 の .NET CF 3.5 では、文字列を int に変換できないため、Controls[] 内にインデックスが必要であると通知され続けます。その foreach ステートメントを使用せずに特定のオブジェクトを見つける方法を知っている人はいますか? その foreach は便利ですが、すべてのチェックボックスをループするため、これには適していません。私は ARM ベースで開発しているので、速度がすべてです。VS2008 C# を使用して、デスクトップおよびモバイル アプリを開発しています。

読んでくれてありがとう!

4

4 に答える 4

1

それは動作するはずですが、代わりに使用することができます

CheckBox checkbox = (CheckBox)this.Controls.Find("checkBox" + input.toString())[0];
于 2012-06-11T18:38:25.877 に答える
1

un integer インデクサーを使用しており、オブジェクトを取得するには un integer を渡す必要があります。次のようなことを試してください:

void checking(int input) 
{ 
    CheckBox checkbox = (CheckBox)this.FindControl("checkBox" + input.toString()); 
    if(checkbox.isChecked) 
      //do something here 
} 

このようにして、IDによる制御を見つけることができます

于 2012-06-11T18:36:07.640 に答える