동그라미 ,사각형 일땐 빨간색 파란색 선택가능

 

직선을 선택하면 색선택이 통제된다.

어떻게 하는 것일까?

 

 

먼저 메뉴를 선택뒤 MenuActivate 이벤트를 선택해준다.

소스는 아래와같다.

        private void menuStrip1_MenuActivate(object sender, EventArgs e)//메뉴 툭떨어질때 발생
        {
           
            동그라미ToolStripMenuItem.Checked = (shape == 1); 

/*shape==1이면 true값이 반환되여 동그라미ToolStripMenuItem.Checked =true

이면 동그라미에 체크된다.

ToolStripMenuItem.Checked =false이면 non체크*/
            사각형ToolStripMenuItem.Checked = (shape == 2);//shape==2이면 true로 동그라미에 체크된다.
            직선ToolStripMenuItem.Checked = (shape == 3);//shape==3이면 true로 동그라미에 체크된다.

            빨간색ToolStripMenuItem.Checked = (color == Color.Red);
            파란색ToolStripMenuItem.Checked = (color == Color.Blue);

            빨간색ToolStripMenuItem.Enabled = (shape != 3);

/* shape 가 3 (직선)이 아니면 true값 반환으로

 빨간색ToolStripMenuItem.Enabled =true가되어 통제

shape 가 3 (직선)이 이면 false값 반환으로

빨간색ToolStripMenuItem.Enabled =false가되어 통제가 안된다

*/

 

 

            파란색ToolStripMenuItem.Enabled = (shape != 3);
        
        }

 

 

위 프로젝트의 전체소스는 파일로 첨부해 두겠다.

MenuItemState (2).zip

 

 

 

실제시간->현재 리얼타임 시간을 받아와서 뿌림

타이머시간->처음에만 리얼타임시간을 받고 1초마다 초를 증가시켜줌

 

컴퓨터성능에따라, 멀티프로그래밍갯수(시스템이 바쁨에따라)에 따라 타이머시간이 누락될수도있다.

처음엔 실제시간과 타이머시간이 같지만 시간의 지남에 따라

실제시간과 타이머시간이 차이나게된다.

 

 

시스템이 굉장히 바쁠 때는 타이머가 정확한 주기대로 발생하지 않으므로 이렇게 만들면 시계가 금방 느려진다.

타이머 이벤트는 작업을 해야 할 적당한 시점을 대충 알려줄 뿐이다.

 

 

--소스--

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace MyTimer
{
 public partial class Form1 : Form
 {
  private string Time;
        private string Time2;
        private int hour;
        private int min;
        private int sec;

  public Form1()
  {
            DateTime dt = DateTime.Now;
            hour = dt.Hour;
            min = dt.Minute;
            sec = dt.Second;
   InitializeComponent();
  }

  private void Form1_Load(object sender, EventArgs e)
  {
   Timer T = new Timer();
   T.Interval = 1000;//정확하게 1초가아닐수도있다. p647
        
          
   T.Tick += new EventHandler(Form1_Timer);
            T.Tick += new EventHandler(Form1_Timer2);
   T.Start();
  }

  private void Form1_Paint(object sender, PaintEventArgs e)
  {
   e.Graphics.DrawString(Time, this.Font, Brushes.Black, 10, 10);
            e.Graphics.DrawString(Time2, this.Font, Brushes.Black, 10, 30);
  }

  private void Form1_Timer(object sender, System.EventArgs e)
  {
   DateTime dt = DateTime.Now;
   Time = "리얼타임"+dt.Hour + "시 " + dt.Minute + "분 " + dt.Second + "초";
   Invalidate();
  }
        private void Form1_Timer2(object sender, System.EventArgs e)
        {

          
            sec++;
            min += sec / 60;
            sec %= 60;
            hour += min / 60;
            min %= 60;


            Time2 ="타이머타임"+ hour + "시 " + min+ "분 " + sec + "초";
            Invalidate();

           

        }

 }
}

비쥬얼 스튜디오 보기-서버탐색기를 여신후

 

데이터연결 -새SQLServer 데이터베이스만들기를 클릭

 

 서버이름을 알아야하는데 서버이름을 알기위해선 제어판-시스템보안-시스템으로 들어가줍니다.

 여기서 컴퓨터이름 DCS-PC가 서버이름이됩니다.

 서버이름에 컴퓨터이름\SQLEXPRESS를 적어주고 window인증사용클릭 데이터베이스 이름을 적어줍니다.

 그럼 DB가 만들어지는데 여기서 테이블 오른쪽클릭으로 새테이블 추가를 해줍니다.

테이블을 만들어준후

오른쪽클릭 테이블 데이터 표시로 데이터를 넣어줍니다(쿼리로도 가능)

 

헤더에 using System.Data.SqlClient; 추가후 

DB연동은 위처럼 적어주시면 됩니다.

ConnectionString아는법

 

바탕화면으로 가신뒤 텍스트 문서를 만들어줍니다.

 

 

 텍스트문서를 열어준후 다른이름으로저장 이름.UDL로 저장하여줍니다.

 파일을 연후 Microsoft OLE DB Provider for SQL Server클릭

 연결에들어가 서버이름 입력 데이터베이스 선택후 연결테스트를 눌러줍니다.

 

성공하면 확인을 눌러준뒤 저장을 시킵니다.

메모장에 .UDL파일을 열어주면 위에처럼나오는데 세번째줄이 connetion string 입니다.

이상으로 DB연동 끝!!!!!!!!!!!

 

 

1.텍스트 박스 속성에서 PasswordChar 를 찾은뒤 원하는 암호 입력

 

 

 

 

 

 

 

 버튼 1 을 더블클릭후


        private void button1_Click(object sender, EventArgs e)
        {
            Form form = new Form2();
            form.Show();
           
             
        }

소스를 적어준다.

응용도가능하다.

 Form form = new Form1();
form.Show();

을하면 폼1이 하나더뜨고

 Form form = new Form();
form.Show();

하면 아무것도 없는 폼이 하나더 뜬다.

+ Recent posts