C# WinForm 实现全屏效果

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C# WinForm 实现全屏效果相关的知识,希望对你有一定的参考价值。

WinForm c#编写代码,假如有两个Form,例如:Form1,Form2,在Form1中建一个按钮,点击按钮时,显示Form2,并且是全屏幕显示,全屏时可以按键盘上的“Esc”按键退出全频,希望大神们给写一下实现上述功能的代码,好的加分!
就是说显示Form2时,铺满电脑的整个屏幕,不管之前的Form1是全屏还是默认大小

// Form1 事件

public static Form2 f2;

private void button1_Click(object sender, EventArgs e)

if (f2 == null)

f2 = new Form2();
f2.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; // 设置边框为 None
f2.WindowState = FormWindowState.Maximized; // 最大化
f2.TopMost = true; // 置顶
f2.KeyPreview = true; // 允许窗体先收到键盘事件
f2.KeyUp += new KeyEventHandler(Form2_KeyUp); // 指定键盘按下事件
f2.Show(); // 显示 Form 2


private void Form2_KeyUp(object sender, KeyEventArgs e)

if (e.KeyCode == Keys.Escape) //“Esc” 按键退出全频

f2.Close(); // 关闭 Form2 (或者还原窗口也行)
f2 = null;

参考技术A Form1的按钮里
Form2 f2 = new Form2();
f2.show();

Form2设置属性,可以使用设计器或用代码
topmost设为true;
showintaskbar设为false;
windowstate设为maximized;
formborderstyle设为none

在添加一个KeyDown事件响应
private void Form2_KeyDown(object sender, KeyEventArgs e)

if (e.KeyCode == Keys.Escape)

this.Close();



这样行不追问

你的代码我测试了一下,是可以实现全屏幕显示,但是没有实现按下“Esc”按键就退出的功能,麻烦您再看一下,非常感谢你的努力

参考技术B Form设置属性WindowState="Maximized"

C#在winform上画一张大于全屏的图片(至少3000*3000像素)。在窗口最大化下用鼠标拖动图片,必须画面流畅。

使用PictureBox的滚动条的方案(包括DX)就不要说了。
我现在已经不知道C#能不能实现上面的要求了,现在的关键麻烦在于移动图片时,都能看到绘制的过程(就像波浪一样),不流畅啊!(双缓冲不顶用)。
哪位高手有能实现上面要求的代码不(最好是能看到效果的)?
如果你没C#的代码,给我C++(我刚学,自己写还不熟练,看得话完全没问题)的也行。
再次声明一下,不一定只用鼠标拖的哈,我主要是想要在全屏下实现移动图片时必须流畅这个效果的代码。(图片,全屏,移动,流畅)
哪怕你没代码,知道哪有用C#的写的能实现这个效果的程序也行,告诉我,我去下来看看。

你要画这么大像素的图,内存都耗死你,得用一些技巧
给你个思路,没有代码,是我之前做过一个项目(web版)是浏览图片的,航拍图(像素1万*1万以上),做法是先把图片分割成小块(比如100*100),定义好每一张图的名称(用位置表示),显示的时候取相应的图片显示即可,就像很多电子地图就是这么做的

希望对你有用
参考技术A bool flag = false;
int x, y;
private void pictureBox1_MouseMove(object sender, MouseEventArgs e)

if (flag)

pictureBox1.Left = pictureBox1.Left + (e.X - x);
pictureBox1.Top += e.Y - y;//pictureBox1.Top=pictureBox1.Top+(e.Y-y);当鼠标按下时,图像跟着鼠标动

//Rectangle rect = new Rectangle();
//rect = Screen.GetWorkingArea(this);
Bitmap bmp = (Bitmap)pictureBox1.Image;
try

Color pointColor = bmp.GetPixel(e.X, e.Y);//获取图像像素
textBox2.Text = pointColor.R.ToString();
textBox3.Text = pointColor.G.ToString();
textBox4.Text = pointColor.B.ToString();

catch

private void pictureBox1_MouseDown(object sender, MouseEventArgs e)

flag = true;
x = e.X;
y = e.Y;

private void pictureBox1_MouseUp(object sender, MouseEventArgs e)

flag = false;

这个可以用鼠标来拖动图像移动你试试

以上是关于C# WinForm 实现全屏效果的主要内容,如果未能解决你的问题,请参考以下文章

在C#中如何实现winform窗体的全屏截图功能

C#在winform上画一张大于全屏的图片(至少3000*3000像素)。在窗口最大化下用鼠标拖动图片,必须画面流畅。

C#在winform上画一张大于全屏的图片(至少3000*3000像素)。在窗口最大化下用鼠标拖动图片,必须画面流畅。

C#在winform上画一张大于全屏的图片(至少3000*3000像素)。在窗口最大化下用鼠标拖动图片,必须画面流畅。

C# 实现Winform全屏后不遮挡任务栏,显示任务栏

C#把winform中的Panel控件部分全屏