다음을 통해 공유


연습: Outlook 양식 영역 디자인

사용자 지정 양식 영역은 표준 또는 사용자 지정 Microsoft Office Outlook 양식을 확장합니다. 이 연습에서는 연락처 항목의 검사기 창에 새 페이지로 표시되는 사용자 지정 양식 영역을 디자인해 봅니다. 이 양식 영역에서는 Windows Live 지역 검색 웹 사이트로 주소 정보를 보내 해당 연락처에 대해 나열되는 각 주소의 맵을 표시합니다. 양식 영역에 대한 내용은 Outlook 양식 영역 만들기를 참조하십시오.

적용 대상: 이 항목의 정보는 Outlook 2007 및 Outlook 2010의 응용 프로그램 수준 프로젝트에 적용됩니다. 자세한 내용은 Office 응용 프로그램 및 프로젝트 형식에 따라 사용 가능한 기능을 참조하십시오.

이 연습에서는 다음 작업을 수행합니다.

  • 새 Outlook 추가 기능 프로젝트 만들기

  • 추가 기능 프로젝트에 양식 영역 추가

  • 양식 영역의 레이아웃 디자인

  • 양식 영역의 동작 사용자 지정

  • Outlook 양식 영역 테스트

참고

일부 Visual Studio 사용자 인터페이스 요소의 경우 다음 지침에 설명된 것과 다른 이름 또는 위치가 시스템에 표시될 수 있습니다. 설치한 Visual Studio 버전과 사용하는 설정에 따라 이러한 요소가 결정됩니다. 자세한 내용은 설정에 대한 작업을 참조하십시오.

사전 요구 사항

이 연습을 완료하려면 다음 구성 요소가 필요합니다.

-

Microsoft Office 개발자 도구를 포함하는 Visual Studio 2010 버전입니다. 자세한 내용은 [Office 솔루션을 개발할 수 있도록 컴퓨터 구성](bb398242\(v=vs.100\).md)을 참조하십시오.
  • Microsoft Office Outlook 2007 또는 Outlook 2010

비디오에 링크 이 항목의 비디오 버전을 보려면 Video How to: Designing an Outlook Form Region을 참조하십시오.

새 Outlook 추가 기능 프로젝트 만들기

먼저 기본적인 추가 기능 프로젝트를 만듭니다.

새 Outlook 추가 기능 프로젝트를 만들려면

  1. Visual Studio에서 MapItAddIn이라는 Outlook 추가 기능 프로젝트를 만듭니다.

  2. 새 프로젝트 대화 상자에서 솔루션용 디렉터리 만들기를 선택합니다.

  3. 프로젝트를 원하는 디렉터리에 저장합니다.

    자세한 내용은 방법: Visual Studio에서 Office 프로젝트 만들기를 참조하십시오.

Outlook 추가 기능 프로젝트에 양식 영역 추가

Outlook 추가 기능 솔루션에는 Outlook 양식 영역 항목이 하나 이상 포함될 수 있습니다. 새 Outlook 양식 영역 마법사를 사용하여 프로젝트에 양식 영역 항목을 추가합니다.

Outlook 추가 기능 프로젝트에 양식 영역을 추가하려면

  1. 솔루션 탐색기에서 MapItAddIn 프로젝트를 선택합니다.

  2. 프로젝트 메뉴에서 새 항목 추가를 클릭합니다.

  3. 새 항목 추가 대화 상자에서 Outlook 양식 영역을 선택하고 파일 이름을 MapIt로 지정한 다음 추가를 클릭합니다.

    새 Outlook 양식 영역 마법사가 시작됩니다.

  4. 양식 영역을 만드는 방법 선택 페이지에서 새 양식 영역 디자인을 클릭하고 다음을 클릭합니다.

  5. 만들 양식 영역 형식 선택 페이지에서 별도를 클릭하고 다음을 클릭합니다.

    별도 양식 영역은 Outlook 양식에 새 페이지를 추가합니다. 양식 영역 형식에 대한 자세한 내용은 Outlook 양식 영역 만들기를 참조하십시오.

  6. 설명 텍스트를 입력하고 디스플레이 기본 설정을 선택하십시오. 페이지의 이름 상자에 Map It을 입력합니다.

    이 이름은 연락처 항목이 열릴 때 검사기 창의 리본 메뉴에 표시됩니다.

  7. 작성 모드의 검사기읽기 모드의 검사기를 선택하고 다음을 클릭합니다.

  8. 이 양식 영역을 표시할 메시지 클래스를 지정하십시오. 페이지에서 메일 메시지의 선택을 취소하고 연락처를 선택한 다음 마침을 클릭합니다.

    MapIt.cs 또는 MapIt.vb 파일이 프로젝트에 추가됩니다.

양식 영역의 레이아웃 디자인

양식 영역 디자이너를 사용하여 양식 영역을 시각적으로 개발할 수 있습니다. 관리되는 컨트롤을 양식 영역 디자이너 화면으로 끌어 놓으면 됩니다. 그런 다음 디자이너와 속성 창을 사용하여 컨트롤 레이아웃 및 모양을 조정합니다.

양식 영역의 레이아웃을 디자인하려면

  1. 솔루션 탐색기에서 MapItAddIn 프로젝트를 확장한 다음 MapIt.cs 또는 MapIt.vb를 두 번 클릭하여 양식 영역 디자이너를 엽니다.

  2. 디자이너를 마우스 오른쪽 단추로 클릭한 다음 속성을 클릭합니다.

  3. 속성 창에서 Size를 664, 469로 설정합니다.

    이렇게 하면 양식 영역이 맵을 표시하기에 충분하게 커집니다.

  4. 보기 메뉴에서 도구 상자를 클릭합니다.

  5. 도구 상자공용 컨트롤 탭에서 WebBrowser를 양식 영역에 추가합니다.

    WebBrowser에 해당 연락처에 대해 나열되는 각 주소의 맵이 표시됩니다.

양식 영역의 동작 사용자 지정

런타임에 양식 영역의 동작 방식을 사용자 지정하는 코드를 양식 영역 이벤트 처리기에 추가할 수 있습니다. 이 양식 영역의 경우 코드에서는 Outlook 항목의 속성을 검사하고 Map It 양식 영역을 표시할지 여부를 결정합니다. 양식 영역이 표시되면 코드에서는 Windows Live 지역 검색 페이지로 이동하고 Outlook 연락처 항목에 나열되는 각 주소의 맵을 로드합니다.

양식 영역의 동작을 사용자 지정하려면

  1. 솔루션 탐색기에서 MapIt.cs 또는 MapIt.vb를 마우스 오른쪽 단추로 클릭한 다음 코드 보기를 클릭합니다.

    MapIt.cs 또는 MapIt.vb가 코드 편집기에서 열립니다.

  2. 양식 영역 팩터리 코드 영역을 확장합니다.

    MapItFactory라는 양식 영역 팩터리 클래스가 노출됩니다.

  3. MapItFactory_FormRegionInitializing 이벤트 처리기에 다음 코드를 추가합니다. 이 이벤트 처리기는 연락처 항목을 열 때 호출됩니다. 다음 코드에서는 연락처 항목에 주소가 들어 있는지 여부를 확인합니다. 연락처 항목에 주소가 들어 있지 않으면 이 코드에서는 FormRegionInitializingEventArgs 클래스의 Cancel 속성을 true로 설정하며 양식 영역은 표시되지 않습니다. 그렇지 않으면 추가 기능에서 FormRegionShowing 이벤트를 발생시키고 양식 영역을 표시합니다.

    Private Sub MapItFactory_FormRegionInitializing(ByVal sender As Object, ByVal e As Microsoft.Office.Tools.Outlook.FormRegionInitializingEventArgs) Handles Me.FormRegionInitializing
    
        Dim myItem As Outlook.ContactItem = CType(e.OutlookItem, Outlook.ContactItem)
    
        If Not (myItem Is Nothing) Then
            If Not (myItem.BusinessAddress Is Nothing) AndAlso myItem.BusinessAddress.Trim().Length > 0 Or (Not (myItem.HomeAddress Is Nothing) AndAlso myItem.HomeAddress.Trim().Length > 0) Or (Not (myItem.OtherAddress Is Nothing) AndAlso myItem.OtherAddress.Trim().Length > 0) Then
                Return
            End If
        End If
    
        e.Cancel = True
    
    End Sub
    
    private void MapItFactory_FormRegionInitializing(object sender,
        Microsoft.Office.Tools.Outlook.FormRegionInitializingEventArgs e)
    {
        Outlook.ContactItem myItem = (Outlook.ContactItem)e.OutlookItem;
    
        if (myItem != null)
        {
            if ((myItem.BusinessAddress != null &&
                    myItem.BusinessAddress.Trim().Length > 0) ||
                (myItem.HomeAddress != null && 
                    myItem.HomeAddress.Trim().Length > 0) ||
                (myItem.OtherAddress != null && 
                    myItem.OtherAddress.Trim().Length > 0))
            {
                return;
            }
        }
    
        e.Cancel = true;
    }
    
  4. FormRegionShowing 이벤트 처리기에 다음 코드를 추가합니다. 이 코드는 다음 작업을 수행합니다.

    • 연락처 항목의 각 주소를 연결하고 URL 문자열을 만듭니다.

    • WebBrowser 개체의 Navigate 메서드를 호출하고 URL 문자열을 매개 변수로 전달합니다.

    Map It 양식 영역에 지역 검색 웹 사이트가 나타나서 스크래치 패드에 각 주소를 표시합니다.

    Private Sub MapIt_FormRegionShowing(ByVal sender As System.Object, _
        ByVal e As System.EventArgs) Handles MyBase.FormRegionShowing
        Dim tempLoc As String = ""
        Dim defaultAddress As String = ""
        Dim scratchPadAddress As String = ""
    
        Dim myItem As Outlook.ContactItem = _
            CType(Me.OutlookItem, Outlook.ContactItem)
    
        If Not (myItem Is Nothing) Then
            If Not (myItem.HomeAddress Is Nothing) And _
                myItem.HomeAddress.Trim().Length > 0 Then
                tempLoc = myItem.HomeAddressStreet.Trim() + " " _
                    + myItem.HomeAddressCity + " " + myItem.HomeAddressState + _
                        " " + myItem.HomeAddressPostalCode
                If myItem.HomeAddress = myItem.MailingAddress Then
                    defaultAddress = tempLoc + "_Home"
                Else
                    scratchPadAddress += "adr." + tempLoc + "_Home~"
                End If
            End If
            If Not (myItem.BusinessAddress Is Nothing) And _
                myItem.BusinessAddress.Trim().Length > 0 Then
                tempLoc = myItem.BusinessAddressStreet.Trim() + " " _
                    + myItem.BusinessAddressCity + " " + _
                        myItem.BusinessAddressState + " " + _
                            myItem.BusinessAddressPostalCode
                If myItem.BusinessAddress = myItem.MailingAddress Then
                    defaultAddress = tempLoc + "_Business"
                Else
                    scratchPadAddress += "adr." + tempLoc + "_Business~"
                End If
            End If
            If Not (myItem.OtherAddress Is Nothing) And _
                myItem.OtherAddress.Trim().Length > 0 Then
                tempLoc = myItem.OtherAddressStreet.Trim() + " " + _
                    myItem.OtherAddressCity + " " + myItem.OtherAddressState + _
                        " " + myItem.OtherAddressPostalCode
                If myItem.OtherAddress = myItem.MailingAddress Then
                    defaultAddress = tempLoc + "_Other"
                Else
                    scratchPadAddress += "adr." + tempLoc + "_Other~"
                End If
            End If
        End If
    
        WebBrowser1.Navigate(("http://local.live.com/default.aspx?style=r&where1=" _
            + defaultAddress + "&sp=" + scratchPadAddress))
    
    End Sub
    
    private void MapIt_FormRegionShowing(object sender, EventArgs e)
    {
        string tempLoc = "";
        string defaultAddress = "";
        string scratchPadAddress = "";
    
        Outlook.ContactItem myItem = (Outlook.ContactItem)this.OutlookItem;
    
        if (myItem != null)
        {
            if (myItem.HomeAddress != null && 
                    myItem.HomeAddress.Trim().Length > 0)
            {
                tempLoc = myItem.HomeAddressStreet.Trim() + " " + 
                    myItem.HomeAddressCity + " " + myItem.HomeAddressState + 
                        " " + myItem.HomeAddressPostalCode;
                if (myItem.HomeAddress == myItem.MailingAddress)
                {
                    defaultAddress = tempLoc + "_Home";
                }
                else
                {
                    scratchPadAddress += "adr." + tempLoc + "_Home~";
                }
            }
            if (myItem.BusinessAddress != null && 
                    myItem.BusinessAddress.Trim().Length > 0)
            {
                tempLoc = myItem.BusinessAddressStreet.Trim() + 
                    " " + myItem.BusinessAddressCity + " " + 
                        myItem.BusinessAddressState + " " + 
                            myItem.BusinessAddressPostalCode;
                if (myItem.BusinessAddress == myItem.MailingAddress)
                {
                    defaultAddress = tempLoc + "_Business";
                }
                else
                {
                    scratchPadAddress += "adr." + tempLoc + "_Business~";
                }
            }
            if (myItem.OtherAddress != null && myItem.OtherAddress.Trim().Length > 0)
            {
                tempLoc = myItem.OtherAddressStreet.Trim() + " " + 
                    myItem.OtherAddressCity + " " + myItem.OtherAddressState + 
                        " " + myItem.OtherAddressPostalCode;
                if (myItem.OtherAddress == myItem.MailingAddress)
                {
                    defaultAddress = tempLoc + "_Other";
                }
                else
                {
                    scratchPadAddress += "adr." + tempLoc + "_Other~";
                }
            }
        }
    
        webBrowser1.Navigate("http://local.live.com/default.aspx?style=r&where1=" 
            + defaultAddress + "&sp=" + scratchPadAddress);
    
    }
    

Outlook 양식 영역 테스트

프로젝트를 실행하면 Outlook이 열립니다. 연락처 항목을 열어 Map It 양식 영역을 봅니다. Map It 양식 영역은 주소가 들어 있는 모든 연락처 항목의 양식에 페이지로 나타납니다.

Map It 양식 영역을 테스트하려면

  1. F5 키를 눌러 프로젝트를 실행합니다.

    Outlook이 열립니다.

  2. Outlook에서 다음 작업 중 하나를 수행하여 연락처를 만듭니다.

    • Outlook 2010의 탭에서 새 항목을 클릭한 다음 연락처를 클릭합니다.

    • Outlook 2007의 파일 메뉴에서 새로 만들기를 가리킨 다음 연락처를 클릭합니다.

  3. 연락처 양식에서 연락처 이름으로 Ann Beebe를 입력하고 다음 세 개의 주소를 지정합니다.

    주소 형식

    Address

    근무처

    4567 Main St. Buffalo, NY

    Home

    1234 North St. Buffalo, NY

    기타

    3456 Main St. Seattle, WA

  4. 연락처 항목을 저장하고 닫습니다.

  5. Ann Beebe 연락처 항목을 다시 엽니다.

  6. 해당 항목의 리본 메뉴에 있는 표시 그룹에서 Map It을 클릭하여 Map It 양식 영역을 엽니다.

    Map It 양식 영역이 나타나고 지역 검색 웹 사이트가 표시됩니다. 스크래치 패드에는 근무처, 기타 주소가 나타납니다. 스크래치 패드에서 매핑할 주소를 선택합니다.

다음 단계

다음 항목에서는 Outlook 응용 프로그램의 UI를 사용자 지정하는 방법에 대해 더 자세히 설명합니다.

참고 항목

작업

연습: Outlook에서 디자인한 양식 영역 가져오기

방법: Outlook 추가 기능 프로젝트에 양식 영역 추가

방법: Outlook에서 양식 영역 표시하지 않기

방법: Outlook 항목 액세스 및 양식 영역 표시

개념

런타임에 양식 영역 액세스

Outlook 양식 영역 만들기 지침

Outlook 메시지 클래스에 양식 영역 연결

Outlook 양식 영역의 사용자 지정 작업

기타 리소스

Outlook 양식 영역 만들기