2013년 10월 31일 목요일

[닷넷 C# 메뉴]C# Form에 MenuItem 및 Context 추가 예제(C# MENU, MDI 만들기)

[닷넷 C#  메뉴]C# Form에 MenuItem 및 Context 추가 예제(C# MENU, MDI 만들기)



Form에 MenuItem 및 Context 추가 예제

1. Visual Studio .Net을 실행하여 C#, 윈도우 응용 프로그램을 실행 한 후 프로젝트 제목을 menuandcontext라고 주자…
2. 폼이 나타나면 아래 화면 처럼 메뉴를 만들어 보자.

 
그림, 폼 만들기 Form1.cs[d25-1]



다음은 MDI.cs(MDI 폼) 하나 만들자. 만든 후 Form의 속성에서 isMdiContainer를 true로 하자. File 메뉴와 Window 메뉴는 아래 처럼 만들자. 특히 Window 메뉴의 Open Windows 메뉴는  MdiList 속성을 true로 해야 한다.(그래야 Open MDI 자식 창들의 목록을 볼 수 있다)

 

[그림, 메뉴만들기, d25-2]
 

마지막으로 MDI 폼안에 들어갈 임의의 폼을 하나 만들자.(MDI_In.cs)


[그림, MDI안의 폼만들기, d25-3]

3. 다음과 같이 소스 코딩을 하자.
……………

private int btnCount=1;
private void add_Click(object sender, System.EventArgs e)
{
//MessageBox.Show("y");
Button button1 = new Button();
btnCount++;
button1.Location = new System.Drawing.Point(10, 20*btnCount);
button1.Name = "button" + btnCount;
button1.Size = new System.Drawing.Size(50, 20);
button1.Text = "추가버튼"+btnCount;
Controls.Add(button1);
}

private void delete_Click(object sender, System.EventArgs e)
{
}

private void Form1_Load(object sender, System.EventArgs e)
{
//---- 마우스 오른쪽 버튼 클릭시 동작하게 하기 위해
ContextMenu contextMenu = new ContextMenu();

MenuItem add = new MenuItem("추가");
MenuItem delete = new MenuItem("삭제");
add.Click += new EventHandler(add_Click);
delete.Click += new EventHandler(delete_Click);

contextMenu.MenuItems.Add(add);
contextMenu.MenuItems.Add(delete);

button1.ContextMenu = contextMenu;
}

private void menuItem5_Click(object sender, System.EventArgs e)
{
Application.Exit();
}

//Red Click
private void menuItem2_Click(object sender, System.EventArgs e)
{
Graphics g = CreateGraphics();
g.Clear(System.Drawing.Color.Red);
g.Dispose();
}

//Blue
private void menuItem3_Click(object sender, System.EventArgs e)
{
Graphics g = CreateGraphics();
g.Clear(System.Drawing.Color.Blue);
g.Dispose();
}

다음은 MDI.cs 파일의 폼로드 이벤트 부분이다.

private void MDI_Load(object sender, System.EventArgs e)
{
MDI_in mdi = new MDI_in();
mdi.MdiParent = this;
mdi.Show();

}

//MDI Form에서 Close시 현재 활성 화된자식 윈도우를 닫는다.
private void menuItem3_Click(object sender, System.EventArgs e)
{
MDI_in child = (MDI_in)this.ActiveMdiChild;
if (child != null) 
{
child.Close();
}
}

//New Click
private void menuItem2_Click(object sender, System.EventArgs e)
{
MDI_in mdi = new MDI_in();
mdi.MdiParent = this;
mdi.Show();
}

//Window 메뉴의 Tile 클릭시
private void menuItemTile_Click(object sender, System.EventArgs e)
{
this.LayoutMdi(MdiLayout.TileHorizontal);
}

//Window 메뉴의 Cascade 클릭시
private void menuItem8_Click(object sender, System.EventArgs e)
{
this.LayoutMdi(MdiLayout.Cascade);
}
다음은 MDI_In.cs파일은 만들기만 하면 되며 본 예제에서는 별도의 코드가 없다.

4. 실행결과
 



 













 





C#,ASP.NET마스터 8일 56시간   11-06
C#,ASP.NET마스터 18일 54시간   11-01
ASP.NET4.0 MVC 프로그래밍 11일 33시간   11-04
ASP.NET4.0 MVC 프로그래밍 4일 32시간   11-09
C#,ASP.NET마스터 8일 56시간   11-09

댓글 없음:

댓글 쓰기