Показать форму в двух разных непрозрачности - PullRequest
0 голосов
/ 16 августа 2011

Моя ситуация примерно такая.

У меня есть форма в виде frmPopup, у которой есть панель в виде pnlCtrlHolder.Я буду использовать эту форму во всплывающем окне и отображать третью форму в качестве элемента управления на этой панели.

в форме X.

dim frm as frmPopup
''Set the properties for this frmPopup
frm.Opacity=60

Dim frmContent as frmContent
''Set the properties for this frmPopup
frm.Opacity=100

frm.SetForm(frmContent)
frm.ShowDialog(me.toplevelControl)

В frmPopup:

Public Sub SetForm(frm as Windows.Forms.Form)
pnlCtrlHolder.Controls.Clear()
pnlCtrlHolder.Controls.add(frm)
End Sub

Теперь моя проблема, это делает всю форму с frmContent с непрозрачностью = 60, но мне нужно это только на frmPopup, но не на frmContent.

Я работаю над приложением vb.net Winforms.Я понимаю, что добавляю форму в качестве элемента управления к форме с непрозрачностью 60. Но есть ли способ достичь желаемого результата.,Я что-то пропустил?

Ответы [ 3 ]

0 голосов
/ 16 августа 2011

Извините, я имел в виду, что OPACITY - это значение от нуля до единицы.

Я знаю, что это работает, поскольку я только что попробовал.: -)

Public Class Form1

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        Me.Opacity = 1
        Dim newForm As New Form
        newForm.Text = "NewForm"
        newForm.Opacity = 0.6
        newForm.Show()

    End Sub

End Class

Попробуйте что-то вроде этого: >>

dim frm as New frmPopup   
frm.Opacity=0.6
Dim frmContent as New frmContent
frmContent.Opacity=1
0 голосов
/ 16 августа 2011

Если вы пытаетесь установить непрозрачность формы, которую вы помещаете в Panel, тогда не похоже, что она будет отображаться, извините.

Добавьте 2 формы и одна панель к новому ПРОЕКТУ и попробуйте это: >>

Option Strict On
Option Explicit On
Option Infer Off

Public Class Form1

    Public Declare Auto Function SetParent Lib "user32.dll" (ByVal hWndChild As IntPtr, ByVal hWndNewParent As IntPtr) As IntPtr
    Friend WithEvents someForm As New Form2

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        someForm.Show()
        someForm.BackColor = Color.White
        someForm.Opacity = 1
        'System.Threading.Thread.Sleep(2000)
        SetParent(someForm.Handle, Panel1.Handle)

    End Sub

End Class

Я работаю над приложением vb.net Winforms. Я понимаю что я добавление формы в качестве элемента управления на форму с непрозрачностью 60. Но есть ли любой способ добиться желаемого результата. , Я что-то упустил?

Я даже пытался сделать это сам, без эффекта, который вам нужен.

Option Strict On
Option Explicit On
Option Infer Off

Public Class Form1

    Friend WithEvents frmPopUp As New Form

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        frmPopUp.Opacity = 0.6
        frmPopUp.TopLevel = False
        frmPopUp.Text = "frmPopUp"
        Me.Controls.Add(frmPopUp)
        frmPopUp.Show()

    End Sub

End Class
0 голосов
/ 16 августа 2011

Как насчет:

dim frm as New frmPopup   
frm.Opacity=60
Dim frmContent as New frmContent
frmContent.Opacity=100
...