# SubForm

### BaseForm.CreateSubForm

* Parameters
  * `T`, `Type type` : BaseForm을 상속받은 클래스의 타입
  * `params object[] args` : 타입\<T>의 생성자 전달 변수
* Returns
  * 전달 받은 타입의 GSTBrowser에 종속된 폼 객체

{% tabs %}
{% tab title="C#" %}
```csharp
public T CreateSubForm<T>(params object[] args) where T : BaseForm, new();

public object CreateSubForm(Type type, params object[] args);
```
{% endtab %}

{% tab title="Example" %}
```csharp
private void GroupControlEx_CustomButtonClick(object sender, DevExpress.XtraBars.Docking2010.BaseButtonEventArgs e)
{
    (sender as Control).Focus();
    string tagValue = e.Button.Properties?.Tag?.ToString() ?? string.Empty;

    if (sender.Equals(grpList))
    {
        if (tagValue.Equals("popup"))
        {
            SY_TEST01_Sub1 popup = CreateSubForm<SY_TEST01_Sub1>();

            //// 전달 변수 처리
            //popup.ParentParameter = "";

            if (popup.ShowDialog() == DialogResult.OK)
            {
                //// 반환 결과 처리
                //DataTable resultData = popup.FormResult as DataTable;
            }
        }
    }
}

```
{% endtab %}
{% endtabs %}

###

### SubForm 개념

* 한 프로젝트(어셈블리) 내에서 BaseMenu 클래스를 상속받은 폼을 만들고 해당 폼을 팝업 형태로 참조하기 위해 사용
* 팝업으로 사용할 **서브 폼은 해당 어셈블리 내에서만 사용하기 위한 목적**이어야 함



### 사용 방법

* Visual Studio 상단 메뉴의 \[프로젝트] - \[새 항목 추가] 클릭
* Windows Form 선택
* 이름은 현재 프로젝트 이름(=폼ID)에 **"\_Sub1"과 같이 접미어를 붙여 정의**
  * ex) 프로젝트 이름이 "SA\_A0001"일 경우 서브폼의 이름은 "SA\_A0001\_Sub1"

![](https://3723764299-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M-IDnDQ8xPzEIgiFeXT%2F-M8A6JJWucgmYhqdBKWe%2F-M8AA_ZLGwUaIZ5A0RrX%2Fimage.png?alt=media\&token=81a8cd3d-35a1-4bbf-b5f2-3e3d8d45a3a5)

* 서브폼은 **BaseMenu를 상속**받고 기존 메뉴 폼이나 팝업 폼을 만들때와 같은 방식으로 개발

![](https://3723764299-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M-IDnDQ8xPzEIgiFeXT%2F-M3yf8eeOBijjT9F2zjB%2F-M3z-U90LkZKMDZaSH_e%2Fimage.png?alt=media\&token=cda5a546-fb5a-4c18-96aa-276834b3dda2)

* **UI Builder 1.6 버전 이상**부터 "Project Item" 선택 변경을 통해 \[디자인 적용], \[용어 정보], \[기본값 설정], \[컬럼 설정] 메뉴 이용 가능

![](https://3723764299-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M-IDnDQ8xPzEIgiFeXT%2F-M8A6JJWucgmYhqdBKWe%2F-M8ADkdV8Orfmn7D5Kmx%2Fimage.png?alt=media\&token=e842be3a-2cb1-4370-995c-28fd7e79c844)



