저는 대개 웹 물건을 사용하고 있으므로이 항목에 대한 모든 무언가를 용서할 수 있습니다. 값으로 콤보 상자를 설정하는 가장 우아한 방법
는이 같은 코드 숨김에서로드에게 콤보를 할 노력하고있어 : ID가 int를입니다 using (var con = new SqlConnection(ConStr)) {
try {
var dt = new DataTable();
var cmd = new SqlCommand("usp_SelectContactDropDown", con) {
CommandType = CommandType.StoredProcedure };
var adapter = new SqlDataAdapter {SelectCommand = cmd};
adapter.Fill(dt);
((ComboBox) Controls.Find(ddContact, true)[0]).DataSource = dt;
((ComboBox) Controls.Find(ddContact, true)[0]).DisplayMember = "DisplayText";
((ComboBox) Controls.Find(ddContact, true)[0]).ValueMember = "ID";
((ComboBox) Controls.Find(ddContact, true)[0]).SelectedIndex = -1;
}
catch (Exception ex) { MessageBox.Show(ex.ToString()); }
finally { /* Handle the error*/ }
합니다. 이 후 값 멤버를 기반으로 콤보 상자의 선택한 값을 설정하려고합니다. 그러나 이것이 더 까다로워지면 나는 그것이 필요하다고 생각할 것입니다. 좀 다른 질문 디스플레이 멤버로 값을 설정을 참조 할 것 (Q1, Q2)를 체크 아웃 한
ddContact.SelectedValue = o.fk_ContactID.ToString();
ASP에서 이것은 매우 간단합니다. 이것에 대해 가장 우아한 방법은 무엇일까요? 미리 감사드립니다.
왜 당신이 컨트롤을 사용합니까 쿼리에서 적어도 하나 개의 기록을 발견했다고 가정
또한일을해야한다고 .발견? 직접 구문 (같은 클래스에있는 경우) 작동 – Steve
그냥 ToString()을 사용하지 마십시오. 문자열을 조작하는 ASP.NET과 달리 WinForms는 유형별 비교를 사용합니다. –
@Steve, 공평하게 그는 그 주제에 대해 무지하다고 말했다. 그래서 당신의 의견은 다소 논쟁 거리다. :) –