C# - 隐藏表单,只显示标签?

时间:2015-05-09 22:15:54

标签: c# forms winforms label hide

如何隐藏所有表单,但只显示标签?

我希望我的程序只显示标签。没有最小化,最大化按钮。没有标题栏。没有表格背景。只是一个标签。

我尝试将FormBorderStyle用于none,并尽可能小地调整它的大小。但似乎表格的最小尺寸。它可以回到约3厘米宽,1厘米高。

除了我的标签,还有什么方法可以完全摆脱一切吗? 我还希望能够在按住鼠标时移动这个标签。

我没有找到这方面的代码,所以不幸的是我现在没有任何东西。

感谢任何帮助!

编辑:我不是在谈论this.hide(),我希望表单几乎消失,而只显示标签。

一种方法是在表单上将opacity设置为full。但这也影响了我的标签。任何不使标签透明的方法?

3 个答案:

答案 0 :(得分:1)

您需要使用的是Region属性。假设你

  • 有表格
  • 表格上有标签
  • 设置 FormBorderStyle ==>无(这很重要,否则您必须将表单的非客户区域考虑在内 - 标题等)和 ShowInTaskBar ==>假

    private void Form4_Load(object sender, EventArgs e)
    {
        Region = new Region(label1.Bounds);
    }
    

答案 1 :(得分:0)

如果你按照我的教程,这将是你得到的:

Result

好吧,我相信我理解你想要的东西。

按照以下步骤进行:

首先,使用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)

我有一个简单的方法:

  1. 在表格
  2. 的属性中查看“TransparencyKey”
  3. 将透明度的颜色设置为表单背景颜色的颜色。
  4. 将“FormBorderStyle”更改为none。
  5. 为项目添加标签并撰写内容 http://s1.freeupload.ir/i/00082/vmi50rd5w8nd.jpg
  6. 测试你的项目应该是这样的:

  7. http://s1.freeupload.ir/i/00082/oy06dqx4wuxx.jpg

    我希望这能帮到你!