如何方便的保存WinForm窗体控件的位置大小等等配置信息

由于分辨率、屏幕主题、字体大小的不同,窗体显示效果在不同机器上不尽相同。窗体的弹性设计并不能满足多样的需求。为保证在各种情况下,能有满意的效果。窗体的多样显示方式能改变,并且保存、载入配置,显得很重要。我试写了个C#下的类,来做这件事。宗旨是使用方便,并且尽量小巧,载入快速,和可以扩展。

先说使用:

本类针对最常用的需要,如窗体位置、大小。和表格的列宽。进行设计。如果需要,可自行扩展。

这样简单的载入配置信息:

private void FrmMain_Load(object sender, EventArgs e)
{
  SetupColumns();
  oConfig.Load_Columns_Width(dgv1, "huodan_frmlisthuo_dgv1");
  oConfig.SetSaveFlag("huodan_frmlisthuo_dgv1", false);
  oConfig.Load_Form_Size(this, "huodan_frmlisthuo_frm");
  oConfig.SetSaveFlag("huodan_frmlisthuo_frm", false);
}

  保存一般放在关闭窗体前:

private void FrmListHuo_FormClosing(object sender, FormClosingEventArgs e)
{
  oConfig.Save_Columns_Width(dgv1, "huodan_frmlisthuo_dgv1");
  oConfig.Save_Form_Size(this, "huodan_frmlisthuo_frm");
}

并不是每次关闭窗体都会保存,在必要的地方,设置保存请求:

private void dgv1_ColumnWidthChanged(object sender, DataGridViewColumnEventArgs e)
{
 oConfig.SetSaveFlag("huodan_frmlisthuo_dgv1",true);
}
private void FrmListHuo_ResizeEnd(object sender, EventArgs e)
{
 oConfig.SetSaveFlag("huodan_frmlisthuo_frm", true);
}

  

类的内容可以到本博空间下载(http://www.pudn.com/downloads768/sourcecode/windows/csharp/detail3046853.html),就不多讲了,明白的不用讲,不明白的讲也是累。

时间: 2024-12-08 09:31:36

如何方便的保存WinForm窗体控件的位置大小等等配置信息的相关文章

C# WinForm窗体控件Panel修改边框颜色以及边框宽度方法

C# WinForm窗体控件Panel修改边框颜色以及边框宽度方法 1.新建组件这里可以自定义一个Panel控件起名为PanelEx 2.增加一个BoderColor属性和BoderSize属性 1 private Color _BorderColor = Color.Black; 2 3 [Browsable(true), Description("边框颜色"), Category("自定义分组")] 4 public Color BorderColor 5 {

遍历winform 窗体控件

//遍历窗体控件并给控件赋值        private void Control_Load(object sender, EventArgs e)        {            foreach (Control Ctr in this.Controls)            {                if (Ctr is System.Windows.Forms.CheckBox)                {                    checkBox1

C#winform调整控件的位置

现在有三个控件并排放置 第二个控件有隐藏功能 隐藏后第一个控件和第三个控件的距离要缩小,于是就要改变第三个控件的位置 尝试用Location.X属性去设置,但是被告知此非变量 于是只能另外想办法 搜到如下解决方案: http://blog.csdn.net/daowzq/article/details/7488332 第一种方法: //控制一个控件的显示位置            button1.Top = 100;            button1.Left = 100; 第二种方法: /

Winform 窗体控件随窗体自动(等比例)调整大小

新建窗体程序了,添加窗体事件Load(加载窗体时).Resize(调整控件大小时).自定义方法setTag(获取控件的width.height.left.top.字体大小等信息的值).setControls(根据窗体大小调整控件大小). 1 float X, Y;//X表示窗体的宽度,Y表示窗体的高度 2 private void Form1_Load(object sender, EventArgs e) 3 { 4 //this.Resize += new EventHandler(Form

C# WinForm窗体 控件Control 的 Invalidate、Update、Refresh的区别

Control.Refresh - does an Control.Invalidate followed by Control.Update.Refresh: 强制控件使其工作区无效并立即重绘自己和任何子控件.== Invalidate Update Control.Invalidate - invalidates a specific region of the Control (defaults to entire client area) and causes a paint messa

在DevExpress程序中使用Winform分页控件直接录入数据并保存

一般情况下,我们都倾向于使用一个组织比较好的独立界面来录入或者展示相关的数据,这样处理比较规范,也方便显示比较复杂的数据.不过在一些情况下,我们也可能需要直接在GridView表格上直接录入或者修改数据,这种对于字段比较少,而且内容相对比较简单的情况下,效率是比较高的一种输入方式.本篇随笔主要介绍在DevExpress程序中使用GridView直接录入数据并保存的实现,以及使用Winform分页控件来进行数据直接录入的实现操作. 1.在GridView上展示数据 在GridView上展示数据,只

C# winform 跨线程更改窗体控件的属性

当winform程序中新开一个线程,是无法改变主线程中窗体控件的属性的,否则运行时会报错. 若想在其他线程中控制主线程中的窗体控件,则必须利用BeginInvoke方法. 例如:添加一个名为textbox1的TextBox控件,想将它的Visible设置为false,则执行下面的代码即可 textbox1.BeginInvoke(new Action(() => { textbox1.Visible= false; })); 另外WPF中,想达到winform同样的效果,利用Dispatcher

c#中跨线程调用windows窗体控件 .我们在做winform应用的时候,大部分情况下都会碰到使用多线程控制界面上控件信息的问题。然而我们并不能用传统方法来做这个问题,下面我将详细的介绍。

首先来看传统方法: public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { Thread thread = new Thread(ThreadFuntion); thread.IsBackground = true; thread.Start(); } private void Thread

C#编写第三方控件,实现窗体控件的一键赋值

. 事出有因 在写程序的时候,经常会写上面这样的代码,把查询的结果显示到窗体上,我们怎么做的呢? 一行一行的进行赋值,这样的代码写起来最枯燥,而且还容易出错.大家有没有发现,上面的代码都在做相同的事情-赋值.相类似的代码写了三遍以上,就要考虑是不是能对这个过程进行封装.封装出一个方法,帮我们自动完成这些重复性的操作. 思考过程 所接触项目中也有写好的类似方法.只是它涉及到了很多其它的方法,一个套一个,抽离出来特别不方便.而且还有几个令人不爽的地方: 第一是,控件在命名的时候必须和相对应实体属性相