繁体   English   中英

如何在 VB.net 中从另一个表单更改表单的不透明度

[英]How to Change the Opacity of a form from another form in VB.net

一种简单的方法来改变一个窗体的不透明度另一个窗体

在要更改其不透明度的主窗体中(我将其命名为 MainForm)创建一个文本框,将其命名为 ChangeSettingsTextBox,并在要使用它来更改其他窗体不透明度的窗体中创建一个 TrackBar 并将其命名为 OpacityTrackBar(您可以使用文本框或其他东西...)并将此代码添加到 MainForm

Private Sub TextBox1_TextChanged(sender As Object, e As EventArgs) Handles ChangeSettingsTextBox.TextChanged
    Me.Opacity = ChangeSettingsTextBox.Text
End Sub

当您要打开将更改主表单不透明度的表单(我将其命名为设置)时

设置.Show()

在更换表单中添加以下代码:

Private Sub OpacityTrackBar_Scroll(sender As Object, e As EventArgs) Handles OpacityTrackBar.Scroll
    MainForm.ChangeSettingsTextBox.Text = OpacityTrackBar.Value / 100
End Sub

我认为您不能从另一个表单更改表单的不透明度,因为它就像一个内部属性,必须从 class 内部更改,但仍然可以从表单外部更改文本框的值,因为它不是表单 object 特殊属性...当您更改该文本框值时...您正在从主窗体内部更改它,因此您现在可以更改窗体属性,因为程序现在正在主结构内部工作形式

首先, Opacity是双重的。 Doing Me.Opacity = ChangeSettingsTextBox.Text正在设置一个等于字符串的双重属性。 您应该转换为双倍即

Me.Opacity = Double.Parse(ChangeSettingsTextBox.Text)

Option Strict On放在代码填充的顶部将帮助您查看所有类型不匹配的情况。


假设您有两个 forms:Form1 和 Form2。 Form 2 将有一个 Form1 (MainForm) 的实例,并将在 OpacityTrackBar.Scroll 处理程序中设置不透明度

Public Class Form2
    Private MainForm As New Form1()
    Private Sub Form2_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        MainForm.Show()
        OpacityTrackBar.Minimum = 0
        OpacityTrackBar.Maximum = 100
    End Sub
    Private Sub OpacityTrackBar_Scroll(sender As Object, e As EventArgs) Handles OpacityTrackBar.Scroll
        MainForm.Opacity = OpacityTrackBar.Value / 100
    End Sub
End Class

将其放入 TextBox 并处理 TextBox.TextChanged 事件似乎过于复杂。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM