ShapeContainer 클래스
업데이트: 2007년 11월
LineShape, OvalShape, RectangleShape 컨트롤 및 Shape에서 파생되는 다른 컨트롤에 대한 컨테이너를 제공합니다.
네임스페이스: Microsoft.VisualBasic.PowerPacks
어셈블리: Microsoft.VisualBasic.PowerPacks.Vs(Microsoft.VisualBasic.PowerPacks.Vs.dll)
구문
<BrowsableAttribute(False)> _
Public NotInheritable Class ShapeContainer _
Inherits UserControl
Dim instance As ShapeContainer
[BrowsableAttribute(false)]
public sealed class ShapeContainer : UserControl
[BrowsableAttribute(false)]
public ref class ShapeContainer sealed : public UserControl
public final class ShapeContainer extends UserControl
설명
LineShape, OvalShape 또는 RectangleShape 컨트롤은 선 및 도형 컨트롤에 대한 캔버스로 사용되는 ShapeContainer 개체에만 포함될 수 있습니다.
디자인 타임에 선 또는 도형을 폼 또는 컨테이너에 추가할 때 ShapeContainer가 없는 경우 자동으로 만들어집니다. 선 또는 도형의 Parent 속성은 해당 ShapeContainer로 설정됩니다. ShapeContainer의 Parent 속성은 선 또는 도형이 추가된 폼 또는 컨테이너 컨트롤로 설정됩니다.
New 메서드를 사용하여 런타임에 선 또는 도형을 만들 때 컨트롤의 Parent 속성을 ShapeContainer로 설정해야 합니다. 폼 또는 컨테이너의 ShapeContainer가 이미 있으면 Parent 속성을 해당 ShapeContainer로 설정해야 합니다. ShapeContainer가 없으면 New 메서드를 사용하여 ShapeContainer를 만들고 Parent 속성을 폼 또는 컨테이너로 설정할 수 있습니다.
참고: |
---|
각 폼 또는 컨테이너에 대해 두 개 이상의 ShapeContainer를 만들지 마십시오. 이 경우 예기치 못한 동작이 발생할 수 있습니다. 이 컨테이너를 하나 만드는 코드를 프로그래밍 방식으로 작성한 후 폼 또는 컨테이너에 디자인 타임 선 또는 도형 컨트롤을 추가하는 경우 디자이너에서 만든 ShapeContainer를 사용하도록 해당 코드를 수정해야 합니다. |
예제
다음 예제에서는 기존 ShapeContainer를 검사하고 New 메서드를 사용하여 런타임에 만든 OvalShape 컨트롤의 Parent 속성을 설정합니다.
Private Sub Form1_Load(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles MyBase.Load
Dim NewOval As New OvalShape
Dim i As Integer
Dim found As Boolean
' Loop through the Controls collection.
For i = 0 To Me.Controls.Count - 1
' If a ShapeContainer is found, make it the parent.
If TypeOf Controls.Item(i) Is ShapeContainer Then
NewOval.Parent = Controls.Item(i)
found = True
Exit For
End If
Next
' If no ShapeContainer is found, create one and set the parents.
If found = False Then
Dim sc As New ShapeContainer
sc.Parent = Me
NewOval.Parent = sc
End If
NewOval.Size = New Size(200, 300)
End Sub
private void form1_Load(System.Object sender, System.EventArgs e)
{
OvalShape NewOval = new OvalShape();
int i;
bool found = false;
// Loop through the Controls collection.
for (i = 0; i < this.Controls.Count; i++)
{
// If a ShapeContainer is found, make it the parent.
if (this.Controls[i] is ShapeContainer)
{
NewOval.Parent = ((ShapeContainer)this.Controls[i]);
found = true;
break;
}
}
// If no ShapeContainer is found, create one and set the parents.
if (found == false)
{
ShapeContainer sc = new ShapeContainer();
sc.Parent = this;
NewOval.Parent = sc;
}
NewOval.Size = new Size(200, 300);
}
상속 계층 구조
System.Object
System.MarshalByRefObject
System.ComponentModel.Component
System.Windows.Forms.Control
System.Windows.Forms.ScrollableControl
System.Windows.Forms.ContainerControl
System.Windows.Forms.UserControl
Microsoft.VisualBasic.PowerPacks.ShapeContainer
스레드로부터의 안전성
이 형식의 모든 공용 static(Visual Basic의 경우 Shared) 멤버는 스레드로부터 안전합니다. 인터페이스 멤버는 스레드로부터 안전하지 않습니다.
참고 항목
참조
Microsoft.VisualBasic.PowerPacks 네임스페이스
기타 리소스
Line 및 Shape 컨트롤 소개(Visual Studio)
방법: LineShape 컨트롤로 선 그리기(Visual Studio)
방법: OvalShape 및 RectangleShape 컨트롤을 사용하여 도형 그리기(Visual Studio)