방법: Windows Forms BindingNavigator 컨트롤에 로드, 저장 및 취소 단추 추가
BindingNavigator 컨트롤은 데이터에 바인딩된 양식의 컨트롤을 탐색하고 조작하기 위한 특수한 용도의 ToolStrip 컨트롤입니다.
ToolStrip 컨트롤이므로 BindingNavigator 구성 요소를 쉽게 수정하여 사용자에 대한 추가 또는 대체 명령을 포함할 수 있습니다.
다음 프로시저에서는 TextBox 컨트롤이 데이터에 바인딩되고 양식에 추가된 ToolStrip 컨트롤이 로드, 저장 및 취소 단추를 포함하도록 수정됩니다.
BindingNavigator 구성 요소에 로드, 저장 및 취소 단추 추가
Visual Studio에서 양식에 TextBox 컨트롤을 추가합니다.
이를 데이터 원본에 바인딩된 BindingSource에 바인딩합니다. 이 예제의 경우, BindingSource이 데이터베이스에 바인딩됩니다.
데이터 세트 및 테이블 어댑터가 생성된 후 BindingNavigator 컨트롤을 양식으로 끌어옵니다.
BindingNavigator 컨트롤의 BindingSource 속성을 컨트롤에 바인딩된 양식의 BindingSource으로 설정합니다.
BindingNavigator 컨트롤을 선택합니다.
디자이너 작업 문자 모양()을 클릭하여 BindingNavigator 작업 대화 상자가 나타나고 항목 편집을 선택합니다.
항목 컬렉션 편집기가 표시됩니다.
항목 컬렉션 편집기에서 다음을 완료합니다.
적절한 형식의 ToolStripSeparator을 선택하고 ToolStripButton 단추를 클릭하여 ToolStripItem 및 세 개의 항목을 추가합니다.
단추의 Name 속성을 LoadButton, SaveButton 및 CancelButton으로 각각 설정합니다.
단추의 Text 속성을 Load, Save 및 Cancel로 설정합니다.
각 단추의 DisplayStyle 속성을 Text로 설정합니다. 또는 이 속성을 Image 또는 ImageAndText로 설정하고 Image 속성에 표시되도록 이미지를 설정할 수 있습니다.
확인 을 클릭하여 대화 상자를 닫습니다. 단추는 ToolStrip에 추가됩니다.
양식을 마우스 오른쪽 단추로 클릭하고 코드 보기를 선택합니다.
코드 편집기에서 테이블 어댑터에 데이터를 로드하는 코드 줄을 찾습니다. 이 코드는 2단계에서 데이터 바인딩을 설정할 때 생성되었습니다. 코드는 다음과 비슷해야 합니다.
TableAdapterName.Fill(DataSetName.TableName)
. 양식의 Load 이벤트에 있을 가능성이 높습니다.이전에 만든 Click의 ToolStripButton 이벤트에 대한 이벤트 처리기를 만들고 이 데이터 로드 코드를 이동합니다.
그러면 코드가 다음과 같이 표시됩니다.
Private Sub LoadButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles LoadButton.Click TableAdapterName.Fill(DataSetName.TableName) End Sub
private void LoadButton_Click(System.Object sender, System.EventArgs e) { TableAdapterName.Fill(DataSetName.TableName); }
이전에 만든 Click의 ToolStripButton 이벤트에 대한 이벤트 처리기를 만들고 컨트롤이 바인딩된 테이블 내의 데이터를 업데이트하는 코드를 작성합니다.
Private Sub SaveButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SaveButton.Click TableAdapterName.Update(DataSetName.TableName) End Sub
private void SaveButton_Click(System.Object sender, System.EventArgs e) { TableAdapterName.Update(DataSetName.TableName); }
참고
일부 경우에는 BindingNavigator 구성 요소에 이미 저장 단추가 있지만 Windows Forms 디자이너에서 생성된 코드가 없는 경우도 있습니다. 이 경우 완전히 새로운 단추를 Click에 만드는 대신, 해당 단추에 대한 ToolStrip 이벤트 처리기에 앞선 코드를 배치할 수 있습니다. 그러나 단추는 기본적으로 사용하지 않도록 설정되므로 단추가 올바르게 작동하도록 단추의 Enabled 속성을
true
로 설정해야 합니다.이전에 만든 Click의 ToolStripButton 이벤트에 대한 이벤트 처리기를 만들고 표시되는 데이터 레코드에 대한 모든 변경 내용을 취소하는 코드를 작성합니다.
Private Sub CancelButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CancelButton.Click BindingSourceName.CancelEdit() End Sub
private void CancelButton_Click(System.Object sender, System.EventArgs e) { BindingSourceName.CancelEdit(); }
참고
CancelEdit 메서드의 범위는 데이터 행으로 지정됩니다. 다음 레코드로 이동하기 전에 해당 개별 레코드를 보는 동안 변경한 내용을 저장합니다.
참고 항목
.NET Desktop feedback