2010-03-07 3 views

답변

4

System.Windows.Forms.GroupBox을 보았습니까?

This page이 유용 할 수 있습니다. VB6 Frame 컨트롤에서 최신 .NET 컨트롤로의 전환을 설명합니다.

+0

그래,하지만 위에서 말했듯이 .Net에서 그룹 상자를 사용하지 않도록 설정하면 그 안에있는 모든 색상 컨트롤이 회색으로 바뀝니다. 이것은 우리가 vb6.0에서 똑같이했을 때 정확히 같지 않습니다. – odiseh

+0

유용한 링크로 답변을 업데이트했습니다. :-) – CesarGon

+0

고맙습니다.하지만 둘 다 정확히 틀이 아닌 것 같습니다. 내가 그 (것)들을 무능하게 할 때 그 (것)들의 모든 통제 (상표, textboxes, ...)는 회색으로 그들의 전경을 변화시키기 때문에. – odiseh

1

컨트롤을 사용하지 않도록 설정하지 않도록 설정하지 않는 것이 유용성에 위배되는 범죄로 간주됩니다. 사용자가 마우스 버튼을 두드려서 프로그램이 그녀가 생각하는 것을 할 수있게하려는 광경이 전혀 없습니다.

Windows Forms는 지원하지 않지만 위조 할 수 있습니다. 활성화 된 컨트롤의 이미지를 사용할 수없는 컨트롤과 겹치게 표시 할 수 있습니다. 프로젝트에 새 클래스를 추가하고 아래 표시된 코드를 붙여 넣습니다. 엮다. 도구 상자의 위쪽에서 컨트롤을 폼에 놓고 컨트롤을 추가하십시오. Enabled 속성을 토글하는 버튼을 사용해보십시오.

Public Class MyPanel 
    Inherits Panel 

    Private mFakeIt As PictureBox 

    Public Shadows Property Enabled() As Boolean 
    Get 
     Return MyBase.Enabled 
    End Get 
    Set(ByVal value As Boolean) 
     If value Then 
     If mFakeIt IsNot Nothing Then mFakeIt.Dispose() 
     mFakeIt = Nothing 
     Else 
     mFakeIt = new PictureBox() 
     mFakeIt.Size = Size 
     mFakeIt.Location = Location 
     Dim bmp = new Bitmap(Width, Height) 
     Me.DrawToBitmap(bmp, new Rectangle(0, 0, bmp.Width, bmp.Height)) 
     mFakeIt.Image = bmp 
     Me.Parent.Controls.Add(mFakeIt) 
     Me.Parent.Controls.SetChildIndex(mFakeIt, 0) 
     End If 
     MyBase.Enabled = value 
    End Set 
    End Property 
End Class 

사용하지 마십시오.

+0

+1 독창적 인! 양식의 크기를 조정할 수 있다면 좀 더 많은 작업을해야 할 수도 있습니다 ... – MarkJ

관련 문제