(지정한Enum명)Enum.ToObject(typeof(지정한Enum명), Index);



블로그 이미지

SherryBirkin

,

컬럼헤더에 체크박스를 추가하고, 이벤트를 추가했다면

체크박스 이벤트에

foreach (DataGridViewRow dgvRow in 그리드뷰네임.Rows)

{

         dgvRow.Cells["헤더네임"].Value = ((CheckBox)sender).Checked;

}



하게되면 선택한 경우 SelectAll또는 DeSelectAll이 된다


하지만, 체크박스에 EditBegin상태가 유지되고있다면

체크값이 변하지 않는다.


그리드뷰네임.EndEdit();


EndEdit를 해서 Edit모드를 종료 한 후 위 코드를 사용하면 정상적으로

모든 체크박스가 바뀐다.

블로그 이미지

SherryBirkin

,

DataGridView의 이벤트중 CellPainting 나 Load이벤트에


if (e.ColumnIndex == 0 && e.RowIndex == -1)

                {

                    e.PaintBackground(e.ClipBounds, false);


                    Point pt = e.CellBounds.Location;the cell


                    int nChkBoxWidth = 15;

                    int nChkBoxHeight = 15;

                    int offsetx = (e.CellBounds.Width - nChkBoxWidth) / 2;

                    int offsety = (e.CellBounds.Height - nChkBoxHeight) / 2;


                    pt.X += offsetx;

                    pt.Y += offsety;


                    CheckBox cb = new CheckBox();

                    cb.Size = new Size(nChkBoxWidth, nChkBoxHeight);

                    cb.Location = pt;

                    cb.Checked = true;

                    cb.CheckedChanged += new EventHandler(dgvCheckBox_CheckedChanged);


                    ((DataGridView)sender).Controls.Add(cb);


                    e.Handled = true;

                }


해당코드 입력

넣고자 하는 컬럼헤더에 Check박스위치를 계산해서 새로 그려주는 코드와 체크박스 이벤트 추가하는 코드임



블로그 이미지

SherryBirkin

,

DataGridVeiw이벤트에 EditingControlShowing추가

e.Control.KeyPress이벤트 연결


KeyPress와 연결한 함수에서


if (((DataGridViewTextBoxEditingControl)sender).Text.Length >= 제한할 길이 수 

  && ((DataGridViewTextBoxEditingControl)sender).SelectedText.Length <= 0)

      e.Handled = true;


SelectedTextLength는 블록 지정했을때 수정이 가능하게끔 하기 위함



블로그 이미지

SherryBirkin

,

bool배열이름= Enumerable.Repeat(true or false, 배열 수).ToArray();

블로그 이미지

SherryBirkin

,

이해하기 쉽게 말하면

DataTable은 리스트뷰 (Detail) 이라고 생각하면 이해가 쉽다.


DataTable tb  = new DataTable();


리스트뷰(Detail)에서 필요한 부분을 생각해보면


ColumnHeader, Rows, Columns가 필요할거고 각 항목별 값이 필요할것이다.


이해하기 쉽도록 풀어서 설명하는것..



 컬럼헤더1

 컬럼헤더2

 일

 1 

 이

 2 

 삼

 3 


위와 같은 형태로 만들고 싶다라고 한다면


row중 첫번째는 string이고, 그 다음은 int이므로 지정한다.

tb.Columns.Add("컬럼헤더1" , typeof(string));

tb.Columns.Add("컬럼헤더2", typeof(int));



DataRow dr = dt.NewRow();

dt에서 새로울 열을 만들것이기 때문에 dt로 만들어 주고


dr["컬럼헤더1"] = "일";

dr["컬럼헤더2"] = 1;

위와같이 지정하면


dr에 두개의 값이 저장된다

dr에 필요한것이 아니고 dt에 필요하므로


dt.Rows.Add(dr);

열을 추가해주면, DataTable에 저장된것이다.


저장된 DataTable(tb)를 ComboBox나 DataSource를 사용하는 곳에 쓸 수 있다.

블로그 이미지

SherryBirkin

,

ComboBox에서 각 항목별로 Tag를 등록해서 보여지는 값이 아닌

특정된 값을 가지고 오고 싶을때 사용 하는 방법


Ex) 일

     이

     삼

     사

     오


위와같이 

콤보박스에 보여지는데

선택했을때 1,2,3,4,5를 가지고 오는 방법..


Items.Add로 추가하지말고


DataTable을 이용해서 DataBinding시켜야 한다.


DataTable은 이해하기 쉽게 말하면 엑셀이나, 리스트라고 생각하면 쉽다


DataTable dt = new DataTable();


//

//    DataTable에 추가될 내용

//


필요한 데이터를 추가 한 후에


아래와 같이 코드를 작성하면


comboBox1.DataSource = dt;

comboBox1.ValueMember = "숨겨놓을 DataTable의 값";

comboBox1.DisplayMember = "보여질 DataTable의 컬럼헤더명";


보여질 값만 콤보박스에 보이고


선택한 항목에서 값을 가지고 오려면


comboBox1.SelectedItem.value로 가지고 오면 1,2,3,4,5를 가지고 올 수 있다.

'Programming > C#' 카테고리의 다른 글

bool 배열 한번에 초기화 하기  (0) 2016.11.23
DataTable 사용방법  (0) 2016.08.14
xml Element  (0) 2016.08.02
TrayIcon 좌클릭, 우클릭 메뉴 가능하게 하기  (0) 2016.04.25
메시지박스 자동 종료하기  (0) 2016.04.24
블로그 이미지

SherryBirkin

,

xml Element

Programming/C# 2016. 8. 2. 16:50

xml 내가사용했던것만.. 더 있지만 간단한것부터..


<1>                           <----------   Element

<2></2>               <----------- Element 1의  Child

</1>


// 소스는 아니니 참고하여 파일에서 가져오는지 아닌지 확인하고 만들것.


Element 객체를 만들고 CreateElement 1(<1>을 사용했기때문)

elementName.AppendChild(CreateNode 2)

하면 위와 같은 형태로 저장 할 수 있다.


elementName.AppendChild(CreateNode 3)을 하나 더 썻다면.

<1>                           <----------   Element

<2></2>               <----------- Element 1의  Child

<3></3>

</1>

위와 같은 형태가 된다.


<1>

<2>

<3>

</3>

</2>

</1>


위와 같은 형태로 만들고 싶다면


Element 객체를 3개를 만들어야 하며,  InnerText 를 이용하여

하위 Element를 포함해주어야 한다.

블로그 이미지

SherryBirkin

,

"일반적으로 String은 다 똑같다." 라고 알고있었는데


C++으로 코딩을 해보니 같은 String이지만


std::String과 닷넷String은 다르다


그래서 std::string으로 변수사용을 했다면 컨트롤에 있는 Text를


해당 변수에 넣어주기 위해서는 변환해주어야 한다.



std::string -> System::String 변환방법


#include <msclr\marshal_cppstd.h> // 헤더 추가하고


std::string 변수명 = mslr::interop::marshal_as<std::string>(System::String의 TEXT);



System::String -> std::string 변환방법


String^ temp = gcnew String(System::String변수명.c_str());



위와 같은 방법을 쓰면 변환이 가능하다.



블로그 이미지

SherryBirkin

,

숫자야구 할 때 

경우의 수를 추려 주는 프로그램


Html + JavaScript

Number_BaseBall.html

src.js



C#

NumberBaseball.exe


C++

NumberBaseBall_C .exe



블로그 이미지

SherryBirkin

,