본문 바로가기

컴퓨터/언어,프로그래밍

[C# .NET] MSFlexGrid 컨트롤에 직접 입력 가능한 기능 만들기 (종목추가/종목삭제)

대충 개념정도만 설명함.


[사용법]


MSFlexGrid의 여러 셀 중에서 내가 입력을 원하는 셀에 마우스를 클릭하고,
마우스 오른쪽 버튼을 눌러서 "종목추가" 메뉴를 클릭하면 
해당 셀에 텍스트 박스가 뜨고 원하는 글자(종목)을 입력 받는다. 

(입력이 끝난 후) 포커스가 셀을 떠나면 텍스트박스에 입력한 내용을 해당 셀에 저장하게 되고,
텍스트박스의 내용은 지워지며 텍스트 박스는 보이지 않게 된다.

지우고 싶은 셀에 마우스로 클릭한 뒤 마우스 오른쪽 버튼을 눌러 "종목삭제"를 선택하며
해당 셀의 내용은 지워진다.



[적용컨트롤]
MSFlexGrid1
contextMenuStrip1
textBox1



[코드]

        //셀에서 커서가 떠날 때
        private void MSFlexGrid1_LeaveCell(object sender, EventArgs e)
        {
            if (textBox1.Text != "") MSFlexGrid1.Text = textBox1.Text;

            textBox1.Text = "";
            textBox1.Visible = false;
        }

        //종목추가
        private void mnuItemAdd_Click(object sender, EventArgs e)
        {
            textBox1.Visible = true;

            textBox1.Focus();

            int x = MSFlexGrid1.Left + ((MSFlexGrid1.Col) * 60);
            int y = MSFlexGrid1.Top + ((MSFlexGrid1.Row) * 15);

            this.textBox1.Location = new System.Drawing.Point(x, y);
        }

        //종목삭제
        private void mnuItemDel_Click(object sender, EventArgs e)
        {
            MSFlexGrid1.Text = "";
        }

빨간색 부분은 텍스트박스 위치를 이동시킬 때 쓰이는 값인데,
만약 저 내용을 그대로 쓸 경우에는 텍스트 박스 위치가 개개인의 설정에 따라 다르게 나타날 수 있다.
대충 예시를 알려둔 코드이기 때문에 저 부분은 더 좋은 방법을 찾아서 해야 할 것!
(본인이 초보이고, 글을 작성하는 지금은 늦은 시간이라 그냥 넘어감...;;ㅋㅋ)

 


제주삼다수, 2L,... 오뚜기 진라면 매운... 상하목장 유기농 흰... 남양 프렌치카페 카... 고려인삼유통 홍삼 ... 종근당건강 오메가3... 요이치 카링 유무선...