728x90
728x170
▶ MainForm.cs
using System;
using System.Collections.Generic;
using System.Windows.Forms;
using DevExpress.Data.Camera;
using DevExpress.XtraEditors;
using DevExpress.XtraEditors.Camera;
using DevExpress.XtraEditors.Controls;
namespace TestProject
{
/// <summary>
/// 메인 폼
/// </summary>
public partial class MainForm : XtraForm
{
//////////////////////////////////////////////////////////////////////////////////////////////////// Field
////////////////////////////////////////////////////////////////////////////////////////// Private
#region Field
/// <summary>
/// 실행 여부
/// </summary>
private bool isRunning = false;
#endregion
//////////////////////////////////////////////////////////////////////////////////////////////////// Constructor
////////////////////////////////////////////////////////////////////////////////////////// Public
#region 생성자 - MainForm()
/// <summary>
/// 생성자
/// </summary>
public MainForm()
{
InitializeComponent();
#region 장치 이미지 콤보 박스 에디터를 설정한다.
List<CameraDeviceInfo> deviceInfoList = CameraControl.GetDevices();
if(deviceInfoList != null && deviceInfoList.Count > 0)
{
foreach(CameraDeviceInfo deviceInfo in deviceInfoList)
{
CameraDevice device = CameraControl.GetDevice(deviceInfo);
ImageComboBoxItem item = new ImageComboBoxItem();
item.Description = device.Name;
item.Value = device;
this.deviceComboBoxEdit.Properties.Items.Add(item);
}
this.deviceComboBoxEdit.SelectedIndex = 0;
}
#endregion
#region 선택 장치를 설정한다.
CameraDevice deviceSelected;
if(this.deviceComboBoxEdit.SelectedItem == null)
{
deviceSelected = null;
}
else
{
ImageComboBoxItem itemSelected = this.deviceComboBoxEdit.SelectedItem as ImageComboBoxItem;
if(itemSelected == null)
{
deviceSelected = null;
}
else
{
deviceSelected = itemSelected.Value as CameraDevice;
}
}
#endregion
#region 카메라 컨트롤을 설정한다.
this.cameraControl.AutoStartDefaultDevice = false;
this.cameraControl.ShowSettingsButton = false;
this.cameraControl.VideoStretchMode = VideoStretchMode.ZoomInside;
this.cameraControl.Device = deviceSelected;
#endregion
#region 이벤트를 설정한다.
this.deviceComboBoxEdit.SelectedIndexChanged += deviceComboBoxEdit_SelectedIndexChanged;
this.startButton.Click += startButton_Click;
#endregion
}
#endregion
//////////////////////////////////////////////////////////////////////////////////////////////////// Method
////////////////////////////////////////////////////////////////////////////////////////// Private
//////////////////////////////////////////////////////////////////////////////// Event
#region 장치 이미지 콤보 박스 에디터 선택 인덱스 변경시 처리하기 - deviceComboBoxEdit_SelectedIndexChanged(sender, e)
/// <summary>
/// 장치 이미지 콤보 박스 에디터 선택 인덱스 변경시 처리하기
/// </summary>
/// <param name="sender">이벤트 발생자</param>
/// <param name="e">이벤트 인자</param>
private void deviceComboBoxEdit_SelectedIndexChanged(object sender, EventArgs e)
{
#region 선택 장치를 설정한다.
CameraDevice deviceSelected;
if(this.deviceComboBoxEdit.SelectedItem == null)
{
deviceSelected = null;
}
else
{
ImageComboBoxItem itemSelected = this.deviceComboBoxEdit.SelectedItem as ImageComboBoxItem;
if(itemSelected == null)
{
deviceSelected = null;
}
else
{
deviceSelected = itemSelected.Value as CameraDevice;
}
}
#endregion
this.cameraControl.Device = deviceSelected;
}
#endregion
#region 시작 버튼 클릭시 처리하기 - startButton_Click(sender, e)
/// <summary>
/// 시작 버튼 클릭시 처리하기
/// </summary>
/// <param name="sender">이벤트 발생자</param>
/// <param name="e">이벤트 인자</param>
private void startButton_Click(object sender, EventArgs e)
{
if(this.isRunning)
{
this.isRunning = false;
this.deviceComboBoxEdit.Enabled = true;
this.startButton.Text = "시작";
this.cameraControl.Stop();
}
else
{
if(this.cameraControl.Device == null)
{
XtraMessageBox.Show
(
this,
"카메라 장치를 선택해 주시기 바랍니다.",
"INFORMATION",
MessageBoxButtons.OK,
MessageBoxIcon.Information
);
return;
}
this.isRunning = true;
this.deviceComboBoxEdit.Enabled = false;
this.startButton.Text = "중단";
this.cameraControl.Start();
}
}
#endregion
}
}
728x90
그리드형(광고전용)
'DevExpress > WinForm' 카테고리의 다른 글
[DEVEXPRESS/WINFORM] ComboBoxEdit 클래스 : 항목 높이 변경하기 (0) | 2020.02.22 |
---|---|
[DEVEXPRESS/WINFORM] Localizer 클래스 : CreateDefaultLocalizer 정적 메소드를 사용해 리소스 관리자의 현재 문화 정보 변경하기 (0) | 2020.02.22 |
[DEVEXPRESS/WINFORM] PopupContainerEdit 클래스 : 팝업 창 열고 닫을 때 사용하는 단축 키 할당하기 (0) | 2020.02.22 |
[DEVEXPRESS/WINFORM] LookUpEdit 클래스 : ProcessNewValue 이벤트를 사용해 데이터 소스에 사용자 입력 값 추가하기 (0) | 2020.02.22 |
[DEVEXPRESS/WINFORM] PictureEdit 클래스 : 스크롤바 추가하기 (0) | 2020.02.22 |
[DEVEXPRESS/WINFORM] TokenEdit 클래스 : 복합 객체를 토큰 값으로 사용하기 (0) | 2020.02.22 |
[DEVEXPRESS/WINFORM] TokenEdit 클래스 : 커스텀 드롭 다운 사용하기 (0) | 2020.02.22 |
[DEVEXPRESS/WINFORM] ImageSlider 클래스 : 가상 모드 사용하기 (0) | 2020.02.22 |
[DEVEXPRESS/WINFORM] RangeControl 클래스 : 숫자 범위 설정하기 (0) | 2020.02.22 |
[DEVEXPRESS/WINFORM] BreadCrumbEdit 클래스 : 버튼 추가하기 (0) | 2020.02.21 |