develop

Devexpress 관련 모듬 C# Winform

파드파드 2017. 9. 21. 09:31
반응형

데브익스프레스 컨트롤 사용하면서 깜박 혹은 이런게 있었나 그런가 ㅎㅎ~

 

### 그리드 컨트롤에서 Row_Style 이벤트에서 컬러가 적용 안될 경우

아래 속성 확인

HighPriority = true;

 

### 컬럼편집기(Column Chooser) 안나오는 이유. True면 나옴.

grvMain4.OptionsCustomization.AllowColumnMoving = false

-- 컬럼편집기에서 숨김컬럼 안나오는거

gridColumn403.OptionsColumn.ShowInCustomizationForm = false;

 

 

### 그리드 숫자 컬럼

1. 컬럼에디트에 repositoryItemTextEdit1 으로 지정함. 스핀에디터 보다는 텍스트 박스가 좋음.

 

1-1. 텍스트 에디터 마스크에 Edtimask에 n1 지정. 소수점 자릿수에 따라 n2, n3... 이러면 됨. MaskType = Numeric

 

1-2. display시에도 포맷 보여줄지 여부를 true로.

 

2. DisplayFormat에 FormatString = "#,#.#", FormatType = Numeric 으로 지정

 

2-1. UnboundType에 Decimal. 항상 디스플레이 포맷과 언바운드 타입은 짝궁임.

 

 

### 그리드 저장시 입력상태 마무리.

gridView1.CloseEditor();

gridView1.UpdateCurrentRow();

 

 

### 그리드 헤더클릭

private void grvOrderFileList_Click(object sender, EventArgs e)

{

Point hitPoint = grdOrderFileList.PointToClient(MousePosition);

 

DevExpress.XtraGrid.Views.Grid.ViewInfo.GridHitInfo hi

= (grdOrderFileList.MainView as DevExpress.XtraGrid.Views.Grid.GridView).CalcHitInfo(hitPoint);

 

if (hi.InRow) // 행클릭

{

}

else if (hi.InColumn) // 헤더클릭

{

if (hi.Column == gridColumn2)

{}

 

 }

}

 

### 그리드 밴드 소팅

private void advBandedGridView1_MouseDown(object sender, MouseEventArgs e)

{

BandedGridHitInfo hi = advBandedGridView1.CalcHitInfo(e.Location);

if (hi.InBandPanel)

{

if (hi.Band == gridBandAttach) return; //첨부 컬럼은 소팅할게 없어.

 

//선택 컬럼이외엔 소팅 초기화.

foreach (DevExpress.XtraGrid.Views.BandedGrid.GridBand band in advBandedGridView1.Bands)

{

if (band == gridBandNom1) { }

 

if (band.HasChildren == false)

{

if (hi.Band.Columns[0] != band.Columns[0])

band.Columns[0].SortOrder = ColumnSortOrder.None;

}

else

{

foreach (DevExpress.XtraGrid.Views.BandedGrid.GridBand child_band in band.Children)

{

if (hi.Band.Columns[0] != child_band.Columns[0])

child_band.Columns[0].SortOrder = ColumnSortOrder.None;

}

}

}

 

//소오팅~

if (hi.Band.Columns[0].SortOrder == ColumnSortOrder.Ascending)

hi.Band.Columns[0].SortOrder = ColumnSortOrder.Descending;

else

hi.Band.Columns[0].SortOrder = ColumnSortOrder.Ascending;

}

 

}

 

 

### 달력 컨트롤 월만 선택되게

-- 뷰 스타일을 YearView 로 하면 됨. 그러면 월만 나옴

RIT_BDATE.VistaCalendarViewStyle = DevExpress.XtraEditors.VistaCalendarViewStyle.YearView;

 

-- display type을

FormatString = y

FormatType = DateTime

 

Mask는 

EditMask = y

 

이렇게 3곳을 설정하면 됨.

 

 

### 리본 콤보박스 초기화

cboDELREASON.EditValue = RIC_DELREASON.Items[0].Value;

 

cboDELREASON : Bar Edit Item. 리본에서 사용하는 에디터 컨트롤.

 

RIC_DELREASON : repository image Combo Box.

 

리본에 있는 콤보박스에는 인덱스 설정 정보가 없어. Value 첫번째 값을 넣는 방식으로 초기값 설정함.

 

다른곳에서는 selectedindex =0 혹은 defaultindex = -1 등의 정보가 있다.

 

 

### 리본 콤보박스 텍스트값 가져오기

string term = RIC_TERM.GetDisplayText(cboTerm.EditValue);

 

 

### 클립보드to그리드

private void btnPaste_Click(object sender, EventArgs e)

{

string[] data = Clipboard.GetText().Split('\n');

if (data.Length < 1) return;

foreach (string row in data)

{

AddRow(row);

}

}

 

void AddRow(string data)

{

if (data == string.Empty) return;

string[] rowData = data.Split(new char[] { '\r', '\x09' });

DataRow newRow = _dtProj.NewRow();

for (int i = 0; i < rowData.Length; i++)

{

if (i >= _dtProj.Columns.Count) break;

newRow[i] = rowData[i];

}

_dtProj.Rows.Add(newRow);

}

반응형