나 Form1을 어떤 rectangle을 생성하는 버튼과 같은 Form1에 다른 사각형들을 삭제하는 버튼이있다. (이것은 아래의 코드로 동작한다.)
canvas.Parent = Nothing
이제 Form1에서 다른 값, 체크 박스 및 텍스트 상자를 사용하여 새 Form2를 여는 Button이 생겼습니다.
이 Form2에는 Checkbox가 있습니다. OK를 선택하면 "FORM1"에 몇 개의 직사각형이 생깁니다.
이제는 값과 직사각형을 다시 설정하기 위해 Form2의 Checkbox / Button이 필요합니다. 그래서 기본적으로이 확인란을 선택하면 Form1의 백그라운드에있는 모든 사각형이 아닌이 양식을 통해 만들어진 사각형 만 삭제됩니다.
전의. Form1에 5 개의 사각형이 이미 있고 Form2를 열었을 때 몇 개의 값을 입력하면 2 개의 사각형이 생겼습니다. 이제 Form1에 7 개의 사각형이 생겼습니다. Form2에서 1 상자를 체크하고 마지막 2 개의 사각형을 지워서 결국 Form1에 5 개의 직사각형이 남아 있도록 사각형의 크기 나 방향이 줄어들게합니다. 내가 충분히 명확하다라고하는 희망!
많은 옵션을 시도했지만 아무도 작동하지 않습니다 (예 : "Block"또는 RectangleRhape라는 이름의 RectangleShape를 삭제하려고합니다.
Block.Dispose()
Block.Invalidate()
Form1.Controls.Find("Block", True)
Block.Dispose()
DirectCast(Controls(dummy), RectangleShape).Dispose()
다음 "Shapecontainer1"오류가있는 선언하지 않는주는 문제가있는 이러한 코드 아래에 발견 한 어떻게 Form2에서 선언 할 수 있습니까? 수업을 만드시겠습니까? 일단 내가 어떻게 "모양"을 정의하는 별도의 클래스를 만들 수 있습니까?
For Each shp As RectangleShape In ShapeContainer1.Shapes
DirectCast(shp, RectangleShape).Dispose()
Next
또는
For Each shp As Shape In ShapeContainer1.Shapes
If shp Is RectangleShape Then
ShapeContainer1.Shapes.Remove(shp)
End If
Next`
미안, 나는 초보자이다. 매우 쉬운 대답이 될 수 있지만 대답을 찾을 수없고 대답을 찾을 수 없다.
의견의 코드 :
Dim shapesList1 As New List(Of PowerPacks.Shape)
For Each shp As PowerPacks.Shape In ShapeContainer1.Shapes
shapesList1.Add(shp)
Next
Dim shapesList2 As New List(Of PowerPacks.Shape)
For index As Integer = 0 To shapesList1.Count - 1
If Not (TypeOf shapesList1.Item(index) Is PowerPacks.OvalShape) Then
shapesList2.Add(shapesList1.Item(index))
End If
Next
ShapeContainer1.Shapes.Clear()
ShapeContainer1.Shapes.AddRange(shapesList2.ToArray)
For i as Integer = ShapContainer1.Shapes.Count - 1 To 0 Step -1
- LarsTechDim shapesList1 As New List(Of PowerPacks.Shape) For Each shp As PowerPacks.Shape In ShapeContainer1.Shapes shapesList1.Add(shp) Next Dim shapesList2 As New List(Of PowerPacks.Shape) For index As Integer = 0 To shapesList1.Count - 1 If Not (TypeOf shapesList1.Item(index) Is PowerPacks.OvalShape) Then shapesList2.Add(shapesList1.Item(index)) End If Next ShapeContainer1.Shapes.Clear() ShapeContainer1.Shapes.AddRange(shapesList2.ToArray)
- Mak