해당 이벤트 처리하기 :적절한 데이터 바인딩은 콤보와 내가 같이 보입니다 SQL 서버의 테이블이
ID Code Name Surname
1 MS Mike Smith
2 JD John Doe
3 UP Unknown Person
등등을 ...
지금 나는이에서 데이터를 바인딩 할을 표를 ComboBox에 ComboBox에서 Code 열의 값을 표시하는 방식으로 변환합니다.SqlDataAdapter sqlAdapter = new SqlDataAdapter("SELECT * FROM dbo.Users ORDER BY Code", MainConnection);
sqlAdapter.Fill(dsUsers, "Users");
cbxUsers.DataSource = dsUsers.Tables["Users"];
cmUsers = (CurrencyManager)cbxUsers.BindingContext[dsUsers.Tables["Users"]];
cbxUsers.DisplayMember = "Code";
을 그리고이 코드가 작동하는 것 같다 :
것은 나는이 방법으로 바인딩을하고있는 중이 야. 코드 목록을 스크롤 할 수 있습니다. 또한 손으로 코드를 작성하고 ComboBox가 코드를 자동 완성합니다.
그러나 현재 선택된 사용자 코드의 이름과 성을 표시하기 위해 콤보 상자의 맨 위에 레이블을 붙이고 싶습니다.
하지만 그런 식이었다 내 라인 : "그래서, 콤보와 나는 현재의 DataRow를 얻을 것이다 해당 이벤트의 코드 변경 후 불 것이다 이벤트를 찾을 필요가 ..."
나는 콤보 상자의 사건을 탐색하고 있었지만, 성공했지만 성공하지 못했습니다. 예를 들어
는 :
private void cbxUsers_SelectionChangeCommitted(object sender, EventArgs e)
{
if (cmUsers != null)
{
DataRowView drvCurrentRowView = (DataRowView)cmUsers.Current;
DataRow drCurrentRow = drvCurrentRowView.Row;
lblNameSurname.Text = Convert.ToString(drCurrentRow["Name"]) + " " + Convert.ToString(drCurrentRow["Surname"]);
}
}
이 나에게 이상한 결과를 제공합니다. 첫째로 마우스 스크롤을 통해 스크롤 할 때 얻을 것으로 예상되는 행을 반환하지 않습니다. 예를 들어 JD에서 "Mike Smith"라고 나에게 보여줍니다. MS에서 "John Doe"를 보여 주며 UP에서 "Mike Smith"를 다시 보여줍니다! 다른 문제는 ComboBox에 입력을 시작하고 Enter 키를 누르면 이벤트가 트리거되지 않는다는 것입니다. 여기
lblNameSurname.DataBindings.Add("Text", dsusers.Tables["Users"], "Name");
문제는 내가 단 하나의 열을 결합 할 수 있다는 것입니다 나는이 갖고 싶어 :
그러나, 모든 것이 내가 이런 식으로 lblNameSurname.Text에 데이터를 바인딩 할 때 예상대로 작동합니다. 나는 그것을 위해 두 개의 레이블을 사용하고 싶지 않습니다 (하나는 이름을 표시하고 다른 하나는 성을 표시하는 것입니다).
그래서 내 문제에 대한 해결책은 무엇입니까?
또한 ComboBox에서 데이터 선택과 관련된 한 가지 질문이 있습니다. 자, 콤보 상자에 뭔가를 입력하면 목록에없는 글자를 입력 할 수 있습니다. 예를 들어, "J"를 입력하고 "D"로 끝내기보다는 "JD"를 입력하고 "Jsomerandomtexthere"를 입력하십시오. 콤보 박스 (combobox)는 그것을 허락 할 것이지만 그러한 아이템은리스트에 존재하지 않습니다. 즉, 사용자가 코드 목록에없는 코드를 입력하는 것을 막기 위해 콤보 박스를 원합니다. 두 번째 질문에 대한
관심을 가져 주셔서 감사 드리며,이 문제를 다시 한번 살펴 보겠습니다. – Wodzu
당신은 옳았습니다. 여러분은 저에게 이것을 다시 한번 생각하게하고 bindingSource (CurrencyManager를 노출하는) 이벤트를 추가했습니다. 그들을 통해 나는 그 일을 성취 할 수 있었다. – Wodzu