【问题标题】:C# - hide form, only show label?C# - 隐藏表单,只显示标签?
【发布时间】:2015-07-20 15:43:29
【问题描述】:

如何隐藏所有的表单,只显示一个标签?

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

我尝试将 FormBorderStyle 设置为 none,并将其调整为尽可能小。但似乎有表格的最小尺寸。它回到大约 3 厘米宽和 1 厘米高。

有什么办法可以彻底摆脱除我的标签之外的一切吗? 我还希望能够在按住鼠标时移动此标签。

我没有找到任何代码,所以很遗憾我现在什么都没有。

感谢任何帮助!

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

一种方法是在表单上将不透明度设置为完全。但这也影响了我的标签。有什么办法不让标签透明?

【问题讨论】:

  • 尝试通过WindowsAPI设置窗口大小SetWindowPos我相信它被调用了。如果它在框架中,这可以克服最小尺寸限制。还有一个提示——不要试图让它透明。作为 WinForms 中的透明表单,您的案例听起来远非易事。
  • 请考虑使用工具提示。您可以通过将 this.Bounds = label1.DisplayRectangle; 放入 Load 事件处理程序来修复它。
  • 记得选择一个接受的答案

标签: c# forms winforms label hide


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:

    如果您按照我的教程进行操作,您将获得以下内容:

    好吧,我相信我明白你想要什么。

    按照以下方式进行:

    首先,使用FormBorderStyle = none 创建一个表单,然后转到表单的最后一个属性并设置一个透明度键,我推荐石灰,因为绿色是一种非常强烈的颜色。

    获得透明度键后,您必须将表单背景颜色更改为与透明度键相同。

    如果你运行你的代码,你会发现它只是你的标签,但你不能移动它......但是。

    移动它的代码取自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 等。 如果你做的一切都正确,你现在应该有一个浮动的可移动文本! :)

    【讨论】:

      【解决方案3】:

      我有一个简单的方法:

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

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

      希望对你有所帮助!

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2023-03-09
        • 1970-01-01
        • 2016-05-14
        • 1970-01-01
        • 2018-01-03
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多