EventArgs e) { Application.AddMessageFilter(this); } #region 无焦点窗体
c#窗体构造函数比窗体加载函数Form1_Load()还要早,构造窗体最先运行的函数 一般里面有这样的一句代码 InitializeComponent(); 大概是初始化的意思吧 如果我们在InitializeComponent...();之前引用窗体控件,肯定会报错 因为还没创建这些控件
先来一个加载窗体代码 1 public partial class FrmLoading : Form 2 { 3 public BackgroundWorker updateDBWorker
本身窗体在设计器显示没有问题,但运行时窗口却被缩放失真, 呈现锯齿。...选择加入此设置的 Windows 窗体应用程序(面向 .NET Framework 4.6)还应 在其 app.config 中将 "EnableWindowsFormsHighDpiAutoResizing...重启应用,窗体显示正常。
/// /// 嵌入子窗体,判断子窗体是否打开了 /// public static Form1 f;
这里此窗体为lvlv_CauseForm 窗体,new一个窗体对象cf后,进行填充,代码如下: lvlv_CauseForm cf = new lvlv_CauseForm(); cf.TopLevel...= false; //设置子窗体为非顶级窗体 cf.Dock = System.Windows.Forms.DockStyle.Fill;//设置样式是否填充整个
常用的处理窗体的API函数如下(注意:API函数必须放在窗体中...): 使用C#语言,要引用DllImport,必须要添加using System.Runtime.InteropServices命名空间...IntPtr GetForegroundWindow(); 返回值类型是IntPtr,即为当前获得焦点窗口的句柄 使用方法 : IntPtr myPtr=GetForegroundWindow();...- [les_03_使用_rman [兼容模式]]") // Console.WriteLine(hwnd.ToString()); //回调函数有返回值...返回值:如果函数成功,返回值为具有指定类名和窗口名的窗口句柄。如果函数失败,返回值为NULL。总之,这个函数查找子窗口,从排在给定的子窗口后面的下一个子窗口开始。在查找时不区分大小写。...: BOOL,如果返回值非零表示成功,返回零表示失败。
这里简单介绍一下,两个方案的共同目的都是在执行耗时任务时向用户显示一个模式窗体(我称等待窗体),通过该窗体,任务可以向用户报告执行进度,用户也可以通过它干预任务的执行(也就是取消~如果任务允许被终止的话...Form activeForm;//等待窗体显示前的活动窗体 bool formClosed;//指示等待窗体是否已被关闭 #region 一组操作等候窗体...就算是现在这样,调用者不小心传入一个已经Close/Dispose的等待窗体也没办法,这个问题WaitUI方案也同样存在,也许后面我会改为仅允许传入等待窗体的Type,完了在方案中全权负责等待窗体的从生到死...这个在源码里也有说明,就是要让等待窗体Hide后,base.OnRunWorkerCompleted执行前,让原先那个活动窗体立即获得焦点,activeForm就是用来记录原先那个活动窗体用的。...总之根本问题就是,当某个窗体在非活动状态下弹出模式窗体,那个模式窗体就会不正常,要问如何才能在非活动状态弹出模式窗体,这个可以自己用timer实现。
线程中是不允许直接操作窗体空间的 怎么解决呢?...试试看 主窗体代码: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data...主窗体: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data;...主窗体代码不变 class1代码: using System; using System.Collections.Generic; using System.Linq; using System.Text
C# 子窗体中调用父窗体中的方法(或多窗体之间方法调用) 看似一个简单的功能需求,其实很多初学者处理不好的,很多朋友会这么写: C# Code: //父窗体是是frmParent,子窗体是frmChildA...假设我们的项目不断在扩展,需要将父窗体与子窗体分开在不同的模块,这段代码就完了!因为父窗体模块必须引用子窗体模块,而子窗体需要用到frmParent的类,又要引用父窗体的模块!...我们把程序改下: C# Code: /// /// 主窗体接口 /// public interface IMdiParent { void ParentFoo...: C# Code: /// /// 主窗体,实现IMdiParent接口 /// public partial class frmParent : Form...; } #endregion } //来源:C/S框架网(www.csframework.com) QQ:1980854898 子窗体的代码: C# Code: ///<summary
弹出的子窗体精确定位在父窗体的某个位置,需要有目标坐标(这里将子窗体的位置设置为父窗体中一个panel的位置,需要将panel的坐标转换成屏幕坐标) lvlv_CauseForm cf = new lvlv_CauseForm...(); cf.Left = this.PointToScreen(new Point(panel2.Left, panel2.Top)).X;(这里将panel的位置装换成相对于屏幕的坐标再赋给子窗体)
在平时开发过程中常常需要取一个方法的返回值,BOSS写了一个返回值类,做个练习以备不时之需: 返回值支持泛型和非泛型 先贴上代码: 非泛型返回值类: 1 using System; 2...15 public class ReturnValues : ReturnValue 16 { 17 /// 18 /// 返回值...this.Value = value; 36 this.SuccessMessage = message; 37 } 38 } 39 } 实例: 1.演示窗体...通过2个文本框输入信息 第一个开始返回文本验证信息 第二个开始按钮测试 2.关键代码: 非泛型: #region 返回值(非泛型) /// /...rv.Success("值非空"); } return rv; } /// /// 返回值输出
01 — 前言 在winform中打开一个新的子窗体很简单,直接实例化窗体并show一下就可以: Form2 f2 = new Form2(); f2.Show(); 或者 Form2...所以正常是通过调用框架下得WindowManager接口,在window后台代码中通过WindowManager注册需要弹出的窗体类型,在ViewModel通过WindowManager的Show或ShowDialog...02 — ShowDialog用法实现 首先实例化新的子窗体SubShowWindowViewModel ,然后通过CM框架的ioc容器获取IWindowManager接口,通过接口的ShowDialog...调出子窗体,ControlTestStr 用来显示子窗体的赋值并在界面显示。...ControlTestStr = subShowWindowViewModel.SubShowWindowStr; } } } 03 — 结果演示 ControlTestStr 获取到了新窗体的赋值并显示到了界面
可拖拽的地方包括不限于: 窗体、Panel、GroupBox、TabControl等容器控件的空白区; 菜单栏、工具栏、状态栏等bar的空白区,以及无效项目; Label、PictureBox、ProgressBar...EventHandler EnabledChanged; 使用挺简单,随时随地FormDragger.Enabled = true/false就能开闭拖拽功能,比如在Main函数中就可以开好,完了程序内的所有自建窗体就可以愉快的拖拽了...,但是,像消息框MessageBox、各种对话框(如打开文件对话框)等由系统提供的窗体不能拖,原因是这些窗口的消息不进入程序,需要勾子才能捕获到,犯不着(其实方案里已经实现了一个DialogDragger.cs...原理: 利用Application.AddMessageFilter向程序加入消息过滤器,拦截并处理发往程序窗体的鼠标左键单击消息,若满足逻辑,则拦下该消息,并往控件所在的窗体发送点击标题栏的消息,达到点击该控件时系统认为是点到窗体标题栏的效果
C#的在主窗体中实现多个子窗体相互切换的效果主要依托于panel容器和Controls函数。 Hello,大家好!我是灰小猿!...今天来和大家分享一下在C#的winform开发中如何实现借助一个主窗体来实现内部多个子窗体的切换效果。 首先来看一下主窗体中多个小窗体切换的效果: ?...2、新建用于在主窗体中显示的子窗体,子窗体的新建其实是一个用户控件(Windows窗体),在这里我们可以在状态栏中右击选择—>添加—>用户控件(Windows窗体) ?...3、设置子窗体的尺寸和panel容器的尺寸相等,目的是为了在panel容器中显示时不会溢出。在这里我们为了便于区分三个不同的子窗体,设置窗体的不同颜色,并在窗体中进行提示。 ?...4、以同样的方式建立子窗体二和子窗体三, ? 窗体三 ?
主窗体程序: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data...解决办法: 将窗体作为参数传入类,然后可以根据属性来对其进行相应的操作 实例修改如下: 主窗体程序: using System; using System.Collections.Generic;
我们知道,当我们需要对Control进行截图时,我们可以使用Control.DrawToBitmap()进行截图, 那么问题来了,当我们的窗体最小化了,我们还怎么截图呢?...当窗体最小化的时候,我们知道Control的size为(0,0),那么你截图的话也就没有或者一片漆黑,嘿嘿 其实我们可以这么搞来曲线救国,请往下看!
所以再次尝试了编写以窗体应用程序作为WCF服务宿主的方式,并取得了成功。而下文则记录整个程序的建立过程。...项目名称为WCFServerHost,程序类型为Windows窗体应用程序。 ? 在程序的窗口上放置一个按钮,并将按钮的标题改为“开启服务”,修改后的窗口如下: ?...三、编写客户端程序 在解决方案中再添加一个新的Windows窗体应用程序,程序名称为WCFClient。 ? 然后,在关闭窗口事件中添加如下代码:在程序项目上按右键,选择“添加服务引用……”。...MessageBox.Show(sc.GetData(10)); sc.Close(); } } 四、测试执行 首先确保Host程序已经运行、然后执行客户端程序,并点击“执行”按钮,检查是否有一个正确的返回值
我在网上搜索过,给窗体使用皮肤的方法有很多,不过C#中这种方法最简单。 利用 IrisSkin2.dll 所提供的控件 SkinEngine 来为窗体添加皮肤。...2.将 SkinEngine 控件添加到窗体上。 3.把皮肤文件(以ssk为后缀名)放在"~\bin\debug"文件夹里。...4.在窗体Load事件或是构造函数中添加代码:this.SkinEngine.SkinFile = "**.ssk"; IrisSkin2.dll下载地址http://files.cnblogs.com
1.自定义控件, 和接口 interface IModify { bool IsModified { get; } } ...