Я пытаюсь получить SelectedValue комбинированного списка без указания имени формы с помощью ActiveForm. Он используется в Query, который находится в файле класса и может использоваться в двух разных формах, поэтому он должен быть универсальным.
Dim AcctDetailsAdapter As New SQLiteDataAdapter("SELECT * FROM [Accounts] WHERE_
[AcctName] = '" & Form.ActiveForm.Controls("SelectAccount").SelectedValue & "'", db.connect)
В приведенном ниже разделе он явно ломается, и я не могу подойтидругим способом.
Form.ActiveForm.Controls("SelectAccount").SelectedValue
Я могу использовать это при ссылках на текстовые поля без проблем, но в моем запросе, где мне нужно использовать «selectedvalue», я не могу найти решение. Любые идеи или альтернативные направления, о которых я не думаю? Я чрезвычайно новичок в vb.net.
Я также пытался использовать переменную для захвата имени ActiveForm, чтобы передать его, но, похоже, это тоже не сработало.
UPDATE:Я смог заставить это работать правильно с помощью Jimi, используя код ниже:
Dim SelectedAccount = TryCast(Form.ActiveForm.Controls.Find("SelectAccount", True).FirstOrDefault, ComboBox).SelectedValue.ToString()
Dim AcctDetailsAdapter As New SQLiteDataAdapter($"SELECT * FROM [Accounts] WHERE [AcctName] = '{SelectedAccount}'", db.connect)
Надеюсь, это поможет с передачей параметров в запрос, на который ссылается @ jmcilhinney.
У меня есть последний вопрос, теперь использующий этот же принципал, он не работает для ToolStripStatusLabel, потому что технически это не элемент управления?
TryCast(Form.ActiveForm.Controls.Find("StatusLabel", True).FirstOrDefault, ToolStripStatusLabel).Text = "test"