다음을 통해 공유


연습: Outlook 양식 영역 디자인

업데이트: 2007년 11월

적용 대상

이 항목의 정보는 지정된 Visual Studio Tools for Office 프로젝트 및 Microsoft Office 버전에만 적용됩니다.

프로젝트 형식

  • 응용 프로그램 수준 프로젝트

Microsoft Office 버전

  • Outlook 2007

자세한 내용은 응용 프로그램 및 프로젝트 형식에 따라 사용 가능한 기능을 참조하십시오.

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

양식 영역에 대한 내용은 Outlook 양식 영역 만들기를 참조하십시오.

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

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

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

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

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

  • Outlook 양식 영역 테스트

참고:

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

사전 요구 사항

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

  • Visual Studio Tools for Office(Visual Studio 2008 Professional 및 Visual Studio Team System의 선택적 구성 요소)

  • Microsoft Office Outlook 2007

  • 지역 검색 서비스를 사용하기 위한 인터넷 연결

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

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

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

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

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

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

    자세한 내용은 방법: Visual Studio Tools for 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 양식 영역 테스트

프로젝트를 실행하면 Visual Studio Tools for Office에서 추가 기능을 실행하고 Outlook을 엽니다. 연락처 항목을 열어 Map It 양식 영역을 봅니다. Map It 양식 영역은 주소가 들어 있는 모든 연락처 항목의 양식에 페이지로 나타납니다.

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

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

    Outlook이 열립니다.

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

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

    주소 형식

    주소

    근무처

    4567 Main St. Buffalo, NY

    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 양식 영역의 사용자 지정 작업