Я новичок в C #, поэтому, пожалуйста, затуманивайте мой вопрос новичка.
Я создал словарь элементов управления из формы Windows под названием dictControls.Затем я заполнил его всеми элементами управления и значениями текстового поля и поля со списком:
Dictionary<Control, string> dictFormControls = new Dictionary<Control, string>();
foreach (Control c in Controls)
{
if (c is ComboBox)
{
dictFormControls.Add(c, ((ComboBox)c).SelectedValue.ToString());
}
if (c is TextBox)
{
dictFormControls.Add(c, ((TextBox)c).Text);
}
if (c is MaskedTextBox)
{
dictFormControls.Add(c, ((MaskedTextBox)c).Text);
}
}
if (discNumber <= Convert.ToInt32(numDiscs))
{
frmAddVideo frm = new frmAddVideo(numDiscs, discNumber, videoID, sequenceID, dictFormControls);
frm.Show();
this.Close();
}
Я хочу, чтобы словарь в основном выглядел примерно так:
Ключ ------------ значение
"txtName" ----- "Test"
"txtYear" ------ "1980"
Я передаю это обратно в ту же форму (frmAddVideo):
public frmAddVideo(string numDiscs, int discNumber, string videoID, string sequenceID, Dictionary<Control, string> dict)
{
this.numDiscs = numDiscs;
this.discNumber = discNumber;
this.videoID = videoID;
this.sequenceID = sequenceID;
InitializeComponent();
//This is where I want to parse out the Dictionary and populate the form values
foreach (KeyValuePair<Control, string> item in dict)
{
**Basically, I am looking for a way to take **
**item(Key)**
**and do something like item(Key).Value = item(Value);**
**so it would be the same as writing**
**txtName.Text= "1980";**
**cbxLocID.Value = 1;**
}
}
Я ищу способ взять ключ и превратить его в имя элемента управления, затем добавить «.Text» или «.Value "к нему, а затем установите значение элемента (значение), как я объяснил в коде выше.
Возможно ли это?Я пытался исследовать это, но мне еще предстоит собрать 2 и 2 вместе.