如何让我的winforms c#app位于屏幕左侧?
我想要一个小标签显示,当我将鼠标光标移动到屏幕的那个区域时,它会显示在屏幕上。但当我最小化时,它会回到那个位置。
答案 0 :(得分:2)
所以听起来你想让你的表格贴在电脑屏幕的一侧,然后当鼠标悬停发生时,它会扩展或做某事。
这是基于Microsoft here记录的形状窗口。
以下使用粘贴在屏幕侧面的矩形。对于我的MouseHover,我只是重新制作表单。您可能会显示第二个表单或执行一些动画。
将这些链接到表单的Load和MouseHover事件。 MouseEnter可能也会服务。
private void Form1_Load(object sender, EventArgs e)
{
System.Drawing.Drawing2D.GraphicsPath shape = new System.Drawing.Drawing2D.GraphicsPath();
shape.AddRectangle(new Rectangle(8, 40, 200, 200));
// I just picked a shape. The user will see whatever exists in these pixels of the form.
// After you get it going, make sure that things not on the visible area are disabled.
// A user can't click on them but they could tab to them and hit ENTER.
// Give the user a way to close it other than Alt-F4, stuff like that.
this.Region = new System.Drawing.Region(shape);
this.Top = (Screen.PrimaryScreen.WorkingArea.Height - 160) / 2;
this.Left = Screen.PrimaryScreen.WorkingArea.Left;
}
private void Form1_MouseHover(object sender, EventArgs e)
{
this.Region = new Region(new Rectangle(0, 0, this.Width, this.Height));
}
答案 1 :(得分:2)
或者,如果您不想受形状限制,可以使用位图创建非标准窗口形状。但是使用这种技术,你的窗口仍然是正方形,这意味着如果人们点击不可见的部分,它就不会落到下面的窗口。为了照顾你,你必须制作一个自定义的形状...... borrow this guy's code。
我对这项技术的成功是一个看起来像咖啡杯的程序。你甚至可以点击手柄上的孔来获取它下面的东西。
private void Form1_Load(object sender, EventArgs e)
{
this.TransparencyKey = new Bitmap(this.BackgroundImage).GetPixel(1, 1);
this.Width = this.BackgroundImage.Width;
this.Height = this.BackgroundImage.Height;
this.Region = GetRegion(new Bitmap(this.BackgroundImage), this.TransparencyKey);
// GetRegion fetched from referenced blog post
}