私はc#を数日しか学んでいないと言って、この前置きをさせてください。私は基本的なJavaScript以外にプログラミングの経験がないので、正しい用語についてはまだよくわかりません。質問に...
10個のラベルがあるとしましょう。myLabel1、myLabel2、myLabel3などで、iという変数があります。
では、変数iの終了番号を切り替えることで、myLabelの.Textを変更するにはどうすればよいですか?新しい文字列を作成してみました:
string labelNumber = "myLable" + Convert.ToString(i);
その後:
lableNumber.Text = "some text";
.TextはlableNumberの既知のメソッドではないため、明らかにこれは機能しません。
C#は、他のほとんどのコンパイル言語と同様に、多くのスクリプト言語ほど簡単には実行できません。
文字列でコントロールにアクセスする場合は、Dictionay<string, Control>
またはに収集する必要があります。気になる場合Labels
は、Dictionay<string, Label>
:
Dictionary<string, Label> labels = new Dictionary<string, Label>();
// you can do this in a loop over i:
Label newLabel = new Label();
newLabel.Name = "myLabel" + Convert.ToString(i);
// maybe set more properties..
labels.Add(newLabel.Name, newLabel ); // <-- here you need the real Label, though!
flowLayoutPanel1.Controls.Add(newLabel ) // <-- or wherever you want to put them
これで、文字列として名前でそれぞれにアクセスできます。
labels["myLabel3"].Text = "hi there";
それらをに追加するにはDictionary
(またはList<T>
、インデックスによるアクセスに満足している場合)、後でアクセスできないため、ループで作成するときに追加する必要があることに注意してください。少なくとも反省なしではありませんが、どのimoは状況に対してやり過ぎです。
また、注意して、変数名ではありませんが、文字列の違いコンパイラのトークンとそのName
財産、ある文字列が、ではない、それはする必要はないとして、変数を識別するためのものでユニークとすることができます変更はいつでもを...
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加