[ad_1]
你好,我需要制作一个用于隐藏标签对象或使其再次出现的按钮。
所以我需要按钮在按下时像开关一样下沉并使标签消失,当再次按下时,按钮会升起并使标签出现。
知道如何创建切换按钮吗?
解决方案2
您可以使用复选框来达到此目的。
您还可以使用普通(推送)按钮,在单击事件处理程序中只需切换 Visible
标签的属性:
myLabel.Visible = Not myLabel.Visible
解决方案3
切换按钮只不过是一个简单的按钮
要求一个值(例如这个布尔值是否为真)
之后是一个简单的 if(boolean == true) 执行此操作,否则执行此操作
boolean boo = false; buttonPressed() { if(boo == true) { boo = false; doSomething.Visible = true; } else { boo = true; doSomething.Visible = false; } }
解决方案4
只需使用此代码
checkBox.Appearance = System.Windows.Forms.Appearance.Button
解决方案5
我从某个地方得到这个,它很有魅力!
1. 右键单击 VS 中的项目并选择“添加”,然后选择“用户控制…”
2. 将新文件命名为“Toggle.vb”
3. 粘贴以下代码(请注意步骤4):
网络
导入系统.绘图
导入系统.绘图
导入 System.Drawing.Drawing2D
导入 System.Windows.Forms
公开课切换
继承System.Windows.Forms.UserControl
私人 _checked 作为布尔值
公共属性检查为布尔值
得到
返回_checked
结束获取
Set(ByVal 值作为布尔值)
如果不是 _checked.Equals(value) 那么
_checked = 值
Me.OnCheckedChanged()
万一
结束组
结束财产
受保护的可重写子 OnCheckedChanged()
RaiseEvent CheckedChanged(我,EventArgs.Empty)
结束子
公共事件 CheckedChanged(ByVal 发送者作为对象,ByVal e 作为 EventArgs)
受保护的覆盖 Sub OnMouseClick(e As MouseEventArgs)
我已检查 = 不是我已检查
Me.Invalidate()
MyBase.OnMouseClick(e)
结束子
受保护的覆盖 Sub OnPaint(ByVal e As PaintEventArgs)
Me.OnPaintBackground(e)
e.Graphics.SmoothingMode = SmoothingMode.AntiAlias
使用路径 = New GraphicsPath()
暗淡 d = Padding.All
Dim r = Me.Height – 2 * d
路径.AddArc(d, d, r, r, 90, 180)
路径.AddArc(Me.Width – r – d, d, r, r, -90, 180)
路径.CloseFigure()
e.Graphics.FillPath(If(选中, Brushes.DarkGray, Brushes.LightGray), 路径)
r = 高度 – 1
暗淡矩形 = If(选中, New System.Drawing.Rectangle(Width – r – 1, 0, r, r), New System.Drawing.Rectangle(0, 0, r, r))
e.Graphics.FillEllipse(If(选中,Brushes.Green,Brushes.LightSlateGray),矩形)
结束使用
结束子
结束课程
4.切换到您的窗体并将“切换”控件从工具箱拖动到窗体(在某些情况下,切换按钮不会立即出现在工具箱上。在这种情况下,请执行以下操作:
去 工具 > 选项 > Windows 窗体设计器 > 常规
在列表底部,您将找到“工具箱”>“AutoToolboxPopulate”,在全新安装时默认为“False”。 将其设置为 true,然后重建您的解决方案。 您的解决方案中的用户控件应自动添加到工具箱中。 您可能还需要重新加载解决方案。
如果您的用户控件位于库中,您可以使用以下命令将其添加到您的工具箱中
工具箱 -> 右键单击 -> 选择项目 -> 浏览
使用用户控件选择您的程序集。
5. 尺寸和设置可以像标准控件一样更改
6.可以在Toggle类的OnPaint方法中更改颜色
C# 代码:
使用系统绘图;
使用 System.Drawing.Drawing2D;
使用 System.Windows.Forms;
命名空间 Your_Project_Name
{
类切换:复选框
{
公共切换()
{
SetStyle(ControlStyles.UserPaint | ControlStyles.AllPaintingInWmPaint, true);
填充=新填充(6);
}
protected override void OnPaint(PaintEventArgs e)
{
this.OnPaintBackground(e);
e.Graphics.SmoothingMode = SmoothingMode.AntiAlias;
使用 (var 路径 = new GraphicsPath())
{
var d = Padding.All;
var r = this.Height – 2 * d;
路径.AddArc(d, d, r, r, 90, 180);
path.AddArc(this.Width – r – d, d, r, r, -90, 180);
路径.CloseFigure();
e.Graphics.FillPath(选中? Brushes.DarkGray : Brushes.LightGray, 路径);
r = 高度 – 1;
var rect = 检查? new System.Drawing.Rectangle(宽度 – r – 1, 0, r, r)
: 新的 System.Drawing.矩形(0, 0, r, r);
e.Graphics.FillEllipse(选中?Brushes.Green:Brushes.LightSlateGray,矩形);
}
}
}
}
以下是原始来源的链接:
解决方案1
看到这个链接你会得到想法
[ad_2]
コメント