Tag: winforms

在多屏幕环境中最大化窗口而不隐藏/阻止任务栏

这是一个post,每个人都曾问过自己“如何在不阻挡任务栏的情况下在多屏设置中最大化窗口”。 问题似乎是将MaximizeBox和MinimizeBox设置为false并且在多屏幕环境中以编程方式最大化的窗口覆盖整个屏幕,而不仅仅是Screen.WorkingArea 。 要最大化窗口到工作区域,需要使用MaximizeBox和MinimizeBox属性,如下所示: // This code should be placed in the Form’s ResizeEnd handler MaximizeBox = MinimizeBox = true; // Enable both boxes WindowState = FormWindowState.Maximized; // Set to maximized MaximizeBox = MinimizeBox = false; // Disable both boxes again 因此,窗口将在屏幕上很好地最大化并且尊重屏幕的工作区域(不阻挡任务栏)。

如何以编程方式将最小化的无模式WinForm引入其先前显示的位置?

要在单击事件时将无模式Windows窗体带到其先前位置,我尝试使用下面显示的代码,但它无法正常工作。 如果我遗失任何东西,请告诉我。 public void SetFocus() { this.Focus(); this.BringToFront(); if (this.WindowState==FormWindowState.Minimized) this.Select(); }

control.Show和BringToFront有什么区别?

Show / Hide和BringToFront / SendToBack有什么区别? 在哪种情况下我们应该使用一对而不是另一对?

游戏开发 – 避免闪烁

我在winforms(C#和.netframework 2.0)中开发了类似游戏的俄罗斯方块。 winform有一个背景图像和一个向下移动的图片框(新的位置被分配),间隔为500毫秒。 问题是图片框在图片框之前定位的位置向下移动窗体闪烁的背景图像。 如果我不使用任何背景图像,则没有闪烁。 是否有任何图形加速器或任何类型的解决方案,使用它可以解决闪烁问题。

为什么处理一个肯定会很快被处理掉的物体呢?

假设我有一个例如点击按钮的程序。 我创建了一个Graphics对象。 显然我应该处理它,例如 using(Graphics gr__=this.CreateGraphics()) { } 或者在try-catch-finally的finally中调用.Dispose() 。 但考虑到程序将很快结束。 假设我在程序的本地创建它(不是全局的,不是在使用中)。 但是当地的程序。 然后肯定像任何其他变量一样,它会在程序完成后自动处理掉,不是吗? 那么为什么我手动/明确地处理它很重要? 为什么我不能像任何其他变量一样自动垃圾收集? 当然它可能比’int’大一点,但它可能仍然很小,并且不会长时间记忆,因为程序结束如此之快。 甚至可能是在完成使用或调用Dispose() ,程序结束,因此我认为如果变量是程序的本地变量,它将被处理掉。 那么为什么要使用Dispose() / using的显式垃圾收集呢?

获取屏幕边缘和网页之间的距离

好的,请考虑这张图片。 I develop an IE extension in c# and I would : – the distance in red, between top of screen and top of `visible webpage` – the distance in red between left of screen and left of `visible webpage` – the width/heigth of the visible webpage 当然考虑到我有整个屏幕尺寸。 如果我有红色和黑色我可以计算绿色。 有什么意义? 我有一千个屏幕坐标(X,Y),我必须计算相对于网页的坐标。 Example : Considering Screen […]

Windows窗体设计器 – 在类前自动添加命名空间

我有Visual Studio Designer的问题。 当我显示表单的设计时,设计器会自动在类前面添加名称空间,用作数据源。 但是这个类与表单位于同一个名称空间中。 这很烦人。 例: namespace Editor { partial class AddSignalForm { … this.signalsBS.DataSource = typeof(Signal); } } 信号在命名空间Editor 。 但在我打开设计器后,代码更改为: namespace Editor { partial class AddSignalForm { … this.signalsBS.DataSource = typeof(Editor.Signal); } } 问题是编译器找不到类Editor.Editor.Signal 。

如何以编程方式更改表单c#上的背景图像

当我点击一个按钮时,我需要更改我的表单的背景图像,并在第二次单击时再次将其更改为null,我该怎么做?

提交更改后,DataGridView行仍然是脏的

在我提交对数据库的更改后, DataGridView.IsCurrentRowDirty仍然为true 。 我想将其设置为false因此当它失去焦点时它不会触发RowValidating 。 我有一个绑定到BindingList的DataGridView 。 我处理CellEndEdit事件并保存对数据库的更改。 保存这些更改后,我希望将DataGridView.IsCurrentRowDirty设置为true ,因为该行中的所有单元格都是最新的; 但是,它设置为false 。 这会给我带来问题,因为当行失去焦点时会触发RowValidating ,我会处理并validation所有三个单元格。所以即使所有单元格都有效且没有一个是脏的,它仍然会validation它们。 那是浪费。 这是我的一个例子: void dataGridView_CellValidating(object sender, DataGridViewCellValidatingEventArgs e) { // Ignore cell if it’s not dirty if (dataGridView.isCurrentCellDirty) return; // Validate current cell. } void dataGridView_RowValidating(object sender, DataGridViewCellCancelEventArgs e) { // Ignore Row if it’s not dirty if (!dataGridView.IsCurrentRowDirty) return; // Validate […]

当用户与DateTimePicker控件交互时引发了什么事件?

我是c#的新手,在我的程序中使用DateTimePicker Value更改了事件,但我发现当用户点击箭头时也会发生ValueChanged事件,或者如果以编程方式更改了值,我只想识别DateTimePicker的用户交互(不是以编程方式更改值时,有没有办法做到这一点?