1

ラベルを動的に呼び出そうとしていますが、その方法がわかりません。

整数に応じてラベルを見えるようにしたい。

したがって、int i = 1label1表示されるようになり、 が表示されるようi = 2label2なる必要があります。

どうすればいいですか?

int i = word.indexOf("t");
//This is where I need the label to be dynamically called

私は("label" + i.ToString()).Visible = true;"怠惰な試みで試しました。

4

2 に答える 2

3

動的ソリューションは次のとおりです。

foreach (var label in Controls.OfType<Label>())
    label.Visible = (label.Name == "label" + i);

ご了承ください:

  1. これにより、名前のないすべてのラベルが非表示になります"label" + i。フォーム/コンテナに他のラベルがある場合は、追加のフィルタリング ロジックが必要になる場合があります

  2. 上記のコードは、ラベルがフォームの直接の子孫である場合に機能します。そうでない場合 (たとえば、ラベルが というパネルの子である場合)、次のように置き換える必要がpanel1あります。Controlspanel1.Controls

于 2013-07-25T16:17:01.220 に答える
0

Label1.Visible = (i == 1); // i が 1 でない場合、label1 は表示されません

于 2013-07-25T16:17:22.540 に答える