如何隐藏所有表单,但只显示标签?
我希望我的程序只显示标签。没有最小化,最大化按钮。没有标题栏。没有表格背景。只是一个标签。
我尝试将FormBorderStyle用于none,并尽可能小地调整它的大小。但似乎表格的最小尺寸。它可以回到约3厘米宽,1厘米高。
除了我的标签,还有什么方法可以完全摆脱一切吗? 我还希望能够在按住鼠标时移动这个标签。
我没有找到这方面的代码,所以不幸的是我现在没有任何东西。
感谢任何帮助!
编辑:我不是在谈论this.hide(),我希望表单几乎消失,而只显示标签。
一种方法是在表单上将opacity设置为full。但这也影响了我的标签。任何不使标签透明的方法?
答案 0 :(得分:1)
您需要使用的是Region属性。假设你
设置 FormBorderStyle ==>无(这很重要,否则您必须将表单的非客户区域考虑在内 - 标题等)和 ShowInTaskBar ==>假强>
private void Form4_Load(object sender, EventArgs e)
{
Region = new Region(label1.Bounds);
}
答案 1 :(得分:0)
如果你按照我的教程,这将是你得到的:
好吧,我相信我理解你想要的东西。
按照以下步骤进行:
首先,使用FormBorderStyle = none
创建一个表单,然后转到表单的最后一个属性并设置透明度键,我建议使用lime,因为绿色是非常强烈的颜色。
获得透明度密钥后,您必须将表单背景颜色更改为与透明度密钥相同。
如果您运行代码,您会发现它只是您的标签,但您无法移动它......
移动它的代码取自here:
private bool _dragging = false;
private Point _offset;
private Point _start_point = new Point(0, 0);
private void panel1_MouseDown(object sender, MouseEventArgs e)
{
_dragging = true; // _dragging is your variable flag
_start_point = new Point(e.X, e.Y);
}
private void panel1_MouseUp(object sender, MouseEventArgs e)
{
_dragging = false;
}
private void panel1_MouseMove(object sender, MouseEventArgs e)
{
if (_dragging)
{
Point p = PointToScreen(e.Location);
Location = new Point(p.X - this._start_point.X, p.Y - this._start_point.Y);
}
}
将其添加到您的表单代码中,然后将正确的操作设置为LABEL。
在你的标签上MouseDown应该是panel1_MouseDown
等等。
如果你做的一切正确,你现在应该有一个浮动的可移动文本! :)
答案 2 :(得分:0)
我有一个简单的方法:
http://s1.freeupload.ir/i/00082/oy06dqx4wuxx.jpg
我希望这能帮到你!