2016-06-16 19 views
1

動的な名前で新しいボタン/キャンバスを作成するにはどうすればよいですか?c#、wpf、動的に名前を付けるコントロール

Button {buttonname read from text file} = new Button; 

これはしばらくの間Google検索しましたが、解決策が見つかりませんでした。

ありがとうございました!

+0

リスト名はありますか? –

+0

どのようなリスト名を意味しますか?私がリストを作成すると、それは私の問題を解決するでしょうか? – zadrian

+0

コントロールの名前を設定したい、同じ:var button = new Button(); button.Name = "テスト"右? –

答えて

2

私が正しく理解しているかどうかはわかりませんが、例の名前はボタン名ではなく、ボタンにアクセスするコードで使用されている参照名です。あなたがすることができます...ループ内で動的に生成された名前、ファイルから読み込む名など

を:

buttonRefName.Name = "ButtonName1"; 

だから、あなたが好きに名前を設定することができます:ボタンの名前は次のように設定されます

var buttonList = new List<Button>(); 
var buttonRef = new Button { Name = "YourButtonName" }; 
buttonList.Add(buttonRef); 
buttonRef = new Button { Name = "YourButtonName2" }; 
buttonList.Add(buttonRef); 
+0

問題は、ボタンがいくつあるのかわからないので、後でそれらを指し示すことができません。 ClickイベントのCantが「YourbuttonName」+ i(通常のカウンター)をポイントするようにできますか? – zadrian

+0

あなたが何を意味しているか分かりませんが、後でそれらを指すことができます。ボタン名を使用してリストを検索し、必要なボタンへの参照を取得することができます。または、新しいイベントを作成する前に、同じクリックイベントをボタンにアタッチして、イベントの送信者を取得します。ボタンにキャストして名前を確認できます。 –

1

それができないあなたがやりたい方法:ちょうど新しいものを作成する前に...それはリストやなどWPFウィンドウ、パネルにして追加してください、複数のボタンに同じ参照名を使用しますそれ。テキストファイルから読み込む方がリストやそれ以上のディクショナリを使用している方が良いでしょう。使用例は次のとおりです:

var buttons = new Dictionary<string, Button>(); 
buttons["yourName"] = new Button(); 
// logic goes here 
+0

どうすればそのボタンに後でアクセスできますか?可変ボタンをグローバル変数にするだけで – zadrian

+0

... –

関連する問題