규칙적인 라벨 label1 ~ label9

반복문으로 값 넣기

 

for (int i = 1; i < 10; i++)  
            {
                Label lblZiNum = (Controls.Find("lblZiNum" + i.ToString(), true)[0] as Label);


                 blZiNum.Text = i.ToString();  
            }

 

 

※ 라벨뿐만 아니라 다른 컨트롤도 가능

 

public enum num
        {
            一 = 1,
            二 = 2,
            三 = 3,
            四 = 4,
            五 = 5,
            六 = 6,
            七 = 7,
            八 = 8,
            九 = 9,
            十 = 10
        }

int inputNum = 3;

string test = Enum.GetName(typeof(num), inputNum)

 

예) string test = Enum.GetName(typeof(num), 3)  

 - Console.WriteLine(test);    =>    "三";

 

텍스트 박스에 입력 시 숫자와 백스페이스만 입력되도록 하는 코드입니다.

 

if (!(char.IsDigit(e.KeyChar) || e.KeyChar == Convert.ToChar(Keys.Back)))
{
        e.Handled = true;
}

이벤트가 발생한 현재 컨트롤의 이름 가져오기

 

private void txtbox_KeyDown(object sender, KeyEventArgs e)
{
        string ctrlName = ((TextBox)sender).Name;
}

같은 테이블에 다중행을 삽입하려면 2가지 방법이 있다.

 

1. INSERT ALL

 

2. UNION ALL (추천)

 

 

1. INSERT ALL 을 사용하는 방법

INSERT ALL

        INTO [테이블]  (  [COLUMN1], [COLUMN2], . . . ) VALUES (  [VALUE1], [VALUE2], . . . )

        INTO [테이블]  (  [COLUMN1], [COLUMN2], . . . ) VALUES (  [VALUE1], [VALUE2], . . . )

 

        . . . 

        INTO [테이블]  (  [COLUMN1], [COLUMN2], . . . ) VALUES (  [VALUE1], [VALUE2], . . . )

SELECT * FROM DUAL ;

 

 

 

2. UNION ALL 을 사용하는 방법

INSERT INTO [테이블]  (  [COLUMN1], [COLUMN2], . . . )

                SELECT (  [VALUE1], [VALUE2], . . . ) FROM DUAL UNION ALL

                SELECT (  [VALUE1], [VALUE2], . . . ) FROM DUAL UNION ALL

                . . . 

                SELECT (  [VALUE1], [VALUE2], . . . ) FROM DUAL ;

 

'Programing > Oracle' 카테고리의 다른 글

Tibero 드라이버 설치와 OleDB연동  (0) 2022.02.21
상위 n개 데이터 출력  (0) 2022.02.21

Linux에서 tomcat 서버 끄기

cd 톰캣 설치경로/bin

./shutdown.sh 또는 service tomcat stop

 

 

Linux에서 tomcat 서버 켜키

cd 톰캣 설치경로/bin

./startup.sh 또는 service tomcat start

 

 

Linux에서 tomcat 서버 재기동

위 과정 shutdown -> start 하거나

service tomcat restart 

SendKeys.SendWait("ABCDE");

 

활성화된 다른 창이나 다른 어플리케이션 텍스트박스에 키 입력을 보내고 싶을때 Sendkeys를 사용한다.

 

키값 종류

 

백스페이스
{BACKSPACE} {BS} 또는 {BKSP}
BREAK {BREAK}
CAPS LOCK {CAPSLOCK}
DEL 또는 삭제 {DELETE} 또는 {DEL}
아래쪽 화살표 {DOWN}
END {END}
ENTER {ENTER} 또는 ~
Esc 키 {ESC}
도움말 {HELP}
홈 {HOME}
INS 또는 INSERT {INSERT} or {INS}
왼쪽 화살표 {LEFT}
NUM LOCK {NUMLOCK}
Page Down {PGDN}
Page Up {PGUP}
화면 인쇄 {PRTSC} (나중에 사용할 예약 됨).
오른쪽 화살표 {RIGHT}
스크롤 잠금 {SCROLLLOCK}
Tab 키 {탭}
위쪽 화살표 {UP}
F1 {F1}
F2 {F2}
F3 {F3}
F4 {F4}
F5 {F5}
F6 {F6}
F7 {F7}
F8 {F8}
F9 {F9}
F10 {F10}
F11 {F11}
F12 {F12}
F13 {F13}
F14 {F14}
F15 {F15}
F16 {F16}
키패드 추가 {ADD}
키패드 빼기 {SUBTRACT}
키패드 곱하기 {MULTIPLY}
키패드 나누기 {DIVIDE}
SHIFT, CTRL 및 ALT 키의 조합이와 결합 된 키를 지정 하려면 다음 코드 중 하나 이상과 키 코드를 앞에 있습니다.

Key 코드
SHIFT 키 +
CTRL ^
ALT 키 %

특문과 합쳐서 쓸때는
Ctrl + C = "^C"
Ctrl + V = "^V"
Ctrl + Alt + Enter = "^%{ENTER}"

 

X, Y 좌표값을 얻기 위해 만든 Form

 

타이머는 System.Windows.Forms.Timer 를 사용했습니다.

 

체크박스에 체크를 하면 timer가 동작되고 

스페이스바 키를 눌렀을때

체크박스의 체크가 해제되면서

timer가 정지됩니다.

 

체크를 하면 X, Y 좌표값을 실시간으로 가져온다.

 

public partial class Form1 : Form
    {
        [DllImport("user32.dll")]
        static extern void mouse_event(uint dwFlags, uint dx, uint dy, uint dwData, int dwExtraInfo);

        private const uint MOUSEEVENTF_LEFTDOWN = 0x0000; //= 0x0002;      // The left button is down.
        private const uint MOUSEEVENTF_LEFTUP = 0x0000;// = 0x0004;        // The left button is up.

        public Form1()
        {
            InitializeComponent();
        }

        private void timer1_Tick(object sender, EventArgs e)
        {
            lbX1.Text = Cursor.Position.X.ToString();
            lbY1.Text = Cursor.Position.Y.ToString();
        }

        private void btnStop1_Click(object sender, EventArgs e)
        {
            timer1.Stop();
        }

        private void Form1_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Space)
            {
                if (cbP1.Checked)
                {
                    btnStop1.PerformClick();
                    cbP1.Checked = false;
                }
            }
        }

        private void cbP1_CheckedChanged(object sender, EventArgs e)
        {
            if(cbP1.Checked)
            {
                timer1.Start();
                this.ActiveControl = null;

            }
        }

 

윈폼으로 개발하다가 간혹 Key_Down 이벤트가 작동하지 않을때가 있다.
키보드 메시지를 다른 컨트롤이 먼저 받아서 처리해버려서 
폼의 이벤트 핸들러는 해당 메시지를 받지 못하기 때문이다.
이런 경우 KeyPreview 속성을 true로 설정함으로써, 해당 폼의 이벤트 핸들러가 해당 메시지를 먼저 
처리하도록해서 해결할 수 있다.

 

this.KeyPreview = true;

 

 

 

CheckForIllegalCrossThreadCalls = false;

 

어디까지나 임시방편 


결국에는 invoke 또는  BackgroundWorker를 사용해서 수정해야함.

+ Recent posts