Как изменить содержимое динамически создаваемого текстового поля? [С#]
уважаемый друг,
У меня есть вопрос по поводу упомянутой проблемы в названии.
У меня есть главное окно, где у меня есть много меток, которые я использую в качестве кнопок. Каждая этикетка имеет свое собственное название, как яблоко, апельсин, камень, карандаш...что угодно. Каждая метка имеет множество значений, присвоенных ей.
Итак, когда я нажимаю на один из них, создается новое текстовое поле. Имя текстового поля будет именем слоя +"txtbox1". Так, например: appletxtbox1. Допустим, я одновременно создаю второе текстовое поле с именем appletxtbox2. Кроме того, предположим, что textbox1 содержит вес яблока в кг, а textbox2-в фунтах. Затем, я хочу, чтобы вручную обновить значение в поле textbox2, которая содержит вес в фунтах и исходя из этого я хочу, чтобы обновить значение в текстовое поле textbox1, с помощью TextBoxChanged обработчик событий. Я стараюсь описать его лучше, показывая фактическую часть кода.
Что я уже пробовал:
TextBox txtbxAt; Label labi = sender as Label; private void setLabelClick(object sender, EventArgs e) { txtbxAt = new TextBox(); txtbxAt.Name = labi.Text+"AtBox"; //labi is the name of the clicked label and I add the "atBox" to it, so I create an ID that I can follow later. txtbxAt.Text = element.SomeValue.ToString(); //I put some value in the textbox; element is from a class I created txtbxAt.TextChanged += new EventHandler(txtbxAt_TextChanged); //create eventhandler groupBox3.Controls.Add(txtbxAt); //add textbox to the form }
Таким образом, основываясь на приведенном выше коде, я могу динамически создавать текстовое поле и писать в нем. Но тогда, если есть подобное текстовое поле, я не могу сделать их "перекрестными помехами". Поэтому, когда я нахожусь в eventhandler, я не могу обновить другое текстовое поле, написав в нем. Я протестировал eventhandler, просто создав всплывающее окно сообщений и напечатав некоторые из используемых мной значений. Это было успешно, так что eventhandler может видеть значения, с которыми я хочу работать.
В текстовом поле textchanged eventhandler я хочу сделать что-то вроде
(f.Symbol+"AtBox").Text = f.SomeValue.ToString();, где f-это просто элемент, который я знаю по меткам, которые я нажимаю. Поэтому, когда я набираю box1, я хочу обновить box2 и наоборот.
Но, конечно, компилятор будет смотреть на меня забавно, когда я попытаюсь заставить вышеупомянутый-очевидно - неправильный код работать.
Не могли бы вы подсказать мне, как добраться до динамически создаваемого текстового поля и обновить его значение на основе значения другого динамически создаваемого текстового поля?
Заранее благодарю вас!