>>  Winform查找根目录

 1) AppDomain.CurrentDomain.BaseDirectory 地址为: d:\MyProject\Bin\

    Application.StartupPath的地址为:d:\MyProject\Bin

  2)Application.StartupPath只可以用于Winform窗体中

   AppDomain.CurrentDomain.BaseDirectory可用于Winform窗体中和Dll文件中

>> 如何使Winform实现全屏显示

1)设置窗体的WindowState=Maxinized

2)获取窗体中个控件的状态、窗体的初始尺寸、窗体中各控件的初始尺寸

    #region 窗体大小控制
private ArrayList InitialCrl = new ArrayList();//用以存储窗体中所有的控件名称
private ArrayList CrlLocationX = new ArrayList();//用以存储窗体中所有的控件原始位置
private ArrayList CrlLocationY = new ArrayList();//用以存储窗体中所有的控件原始位置
private ArrayList CrlSizeWidth = new ArrayList();//用以存储窗体中所有的控件原始的水平尺寸
private ArrayList CrlSizeHeight = new ArrayList();//用以存储窗体中所有的控件原始的垂直尺寸
private int FormSizeWidth;//用以存储窗体原始的水平尺寸
private int FormSizeHeight;//用以存储窗体原始的垂直尺寸
private double FormSizeChangedX;//用以存储相关父窗体/容器的水平变化量
private double FormSizeChangedY;//用以存储相关父窗体/容器的垂直变化量
private int Wcounter = ;//为防止递归遍历控件时产生混乱,故专门设定一个全局计数器 public void ResetAllCrlState(Control CrlContainer)
//重新设定窗体中各控件的状态(在与原状态的对比中计算而来)
{
FormSizeChangedX = (double)this.Size.Width / (double)FormSizeWidth;
FormSizeChangedY = (double)this.Size.Height / (double)FormSizeHeight;
foreach (Control kCrl in CrlContainer.Controls)
{
if (kCrl.Controls.Count > )
{
ResetAllCrlState(kCrl);
}
Point point = new Point();
point.X = (int)((int)CrlLocationX[Wcounter] * FormSizeChangedX);
point.Y = (int)((int)CrlLocationY[Wcounter] * FormSizeChangedY);
kCrl.Width = (int)((int)CrlSizeWidth[Wcounter] * FormSizeChangedX);
kCrl.Height = (int)((int)CrlSizeHeight[Wcounter] * FormSizeChangedY);
kCrl.Bounds = new Rectangle(point, kCrl.Size);
Wcounter++;
}
}
public void GetInitialFormSize()
//获得并存储窗体的初始尺寸
{
FormSizeWidth = this.Size.Width;
FormSizeHeight = this.Size.Height;
}
public void GetAllCrlLocation(Control CrlContainer)
//获得并存储窗体中各控件的初始位置
{
foreach (Control iCrl in CrlContainer.Controls)
{
if (iCrl.Controls.Count > )
GetAllCrlLocation(iCrl);
InitialCrl.Add(iCrl);
CrlLocationX.Add(iCrl.Location.X);
CrlLocationY.Add(iCrl.Location.Y);
}
}
public void GetAllCrlSize(Control CrlContainer)
//获得并存储窗体中各控件的初始尺寸
{
foreach (Control iCrl in CrlContainer.Controls)
{
if (iCrl.Controls.Count > )
GetAllCrlSize(iCrl);
CrlSizeWidth.Add(iCrl.Width);
CrlSizeHeight.Add(iCrl.Height);
}
} #endregion

3) 在窗体的SizeChanged事件中存储窗体中各控件的初始尺寸

 private void WinLoading_SizeChanged(object sender, EventArgs e)
{
Wcounter = ;
int counter = ;
if (this.Size.Width < FormSizeWidth || this.Size.Height < FormSizeHeight)
//如果窗体的大小在改变过程中小于窗体尺寸的初始值,
//则窗体中的各个控件自动重置为初始尺寸,且窗体自动添加滚动条
{
foreach (Control iniCrl in InitialCrl)
{
iniCrl.Width = (int)CrlSizeWidth[counter];
iniCrl.Height = (int)CrlSizeHeight[counter];
Point point = new Point();
point.X = (int)CrlLocationX[counter];
point.Y = (int)CrlLocationY[counter];
iniCrl.Bounds = new Rectangle(point, iniCrl.Size);
counter++;
}
this.AutoScroll = true;
}
else
//否则,重新设定窗体中所有控件的大小(窗体内所有控件的大小随窗体大小的变化而变化)
{
this.AutoScroll = false;
ResetAllCrlState(this);
}
}

4) 在窗体的构造函数显示空间大小和位置的重绘

 public WinLoading()
{
InitializeComponent();
GetInitialFormSize();
GetAllCrlLocation(this);
GetAllCrlSize(this);
}

>> 实现Winform窗体颜色渐变,在窗体的Paint事件中重绘窗体

private void Form1_Paint(object sender, PaintEventArgs e)
{
System.Drawing.Drawing2D.LinearGradientBrush b = new System.Drawing.Drawing2D.LinearGradientBrush(new Point(, ), new Point(, this.Height), Color.Blue, Color.Green);
this.ResizeRedraw = true;//在窗体调整大小时候重绘自己
e.Graphics.FillRectangle(b, new Rectangle(, , this.Width, this.Height));
}

>> Winform 实现按钮长按效果

利用定时器或线程实现

按钮的MouseDown事件 设备定时器启用

按钮的MouseUp事件 设备定时器禁用

具体操作在定时器的Click事件中实现

>> DataGridView奇奇怪怪属性

DataGridView 本来WInform在现在已经是很过时的东西了,在弄这个DataGridView,各处不明觉厉的设置,真心烂到家的一个控件,在WInform里又想不到其他的东东好呈现数据,还选了这个,记录下各种他的各种怪脾气吧!

1).DataGridIView 去除第一列的空白列,设置RowHeadsVisible=false

2).去除无意义的最后一行 设置AllowUserToAddRow=false

3). DataGridView 控制每一列的显示顺序 设置DisplayIndex

       memberdataDisp.Columns["col0"].DisplayIndex=2效果是 Name='col0'的这一列最终在表格中显示在第三列

特别注意前提是你的数据库查询的select语句的 每个字段的出现顺序要和表格中显示的顺序一致,不然的话DisplayIndex设置的顺序无效,至于为什么这样,也许他就是为了坑爹的吧。

4). 禁止列排序 gvSys.Columns["c1"].SortMode=DataGridViewColumnSortMode.NotSortable;

5)    标题行属性设置: RowHeaderDefaultCellStyle

      内容行属性设置: RowDefaultCellStyle

    奇数行属性设置: AlternatingRowDefaultCellStyle

>> 其他窗体属性

都是些常用属性,但是不常用的话,再去找的话就费时费力了,记录下先。

1). Winfrom设置窗体不能改变大小   设置FormBorderStyle,设置成属性前缀是Fixed的就行了。

2). Winform窗体如何去除头部的关闭等按钮   ControlBox设置为fasle

3).设置窗体在屏幕中的现实位置

a. 窗体的StartPosition属性是确定窗体位置的

b. 获取屏幕右下角的坐标,然后减去窗体宽度和高度,就能获取窗体显示在右下角的坐标了。如:   this.Location=new Point(Screen.PrimaryScreen.WorkingArea.Width-this.Width, Screen.PrimaryScreen.WorkingArea.Height-this.Height);

4).在窗体背景颜色改变时如何消除label的背景色

lblPstart.BackColor=Color.Transparent;

>> Winform加入.wav声音文件

step 1:把需要播放的声音文件加入的项目中(wav声音文件)

step 2:引入命名空间   System.Media.SoundPlayer

step 3: code实现

SoundPlayer player = new SoundPlayer();//生命.wav文件的操作类      
player.Stream = Properties.Resources.放松;//加载指定的声音文件 
 
player.PlayLooping();//使用新线程循环播放
player.Play();//使用新线程播放
player.Stop();//若声音文件正在播放,则停止

>> 获取winform控件上字符串的实际长度

Graphics gSize = this.p_DiseaseType.CreateGraphics();
SizeF size = gSize.MeasureString(strtext, f);

Winform设置相关的更多相关文章

  1. winform设置button的边框颜色,或取消边框颜色,不显示边框

    // winform设置边框颜色不像webform那么简单,可以通过设置FlatAppearance,也可以通过重绘实现. 一.设置按钮本身属性 buttonBubufx.FlatStyle = Fl ...

  2. c# winform 设置winform进入窗口后在文本框里的默认焦点

    c# winform 设置winform进入窗口后在文本框里的默认焦点 进入窗口后默认聚焦到某个文本框,两种方法: ①设置tabindex 把该文本框属性里的tabIndex设为0,焦点就默认在这个文 ...

  3. WinForm 设置窗体启动位置在活动屏幕右下角

    WinForm 设置窗体启动位置在活动屏幕右下角 在多屏幕环境下, 默认使用鼠标所在的屏幕 1. 设置窗体的 StartPosition 为 FormStartPosition.Manual. 2. ...

  4. 【Matlab开发】matlab中norm范数以及向量点积、绘图设置相关

    [Matlab开发]matlab中norm范数以及向量点积.绘图设置相关 标签(空格分隔): [Matlab开发] 声明:引用请注明出处http://blog.csdn.net/lg125915677 ...

  5. WinForm设置控件焦点focus

    winform窗口打开后文本框的默认焦点设置,进入窗口后默认聚焦到某个文本框,两种方法: ①设置tabindex 把该文本框属性里的tabIndex设为0,焦点就默认在这个文本框里了. ②Winfor ...

  6. php http头设置相关信息

    HTTP 状态码 状态码用来告诉HTTP客户端,HTTP服务器是否产生了预期的Response. HTTP/1.1中定义了5类状态码, 状态码由三位数字组成,第一个数字定义了响应的类别 1XX 提示信 ...

  7. 【Unity】13.2 通过Lighting Window设置相关参数

    分类:Unity.C#.VS2015 创建日期:2016-05-19 一.简介 Unity 5.3.4的Lighting Window有3个选项卡:Object.Scene.Lightmaps. 二. ...

  8. magento email模板设置相关

    magento后台 可以设置各种各样的邮件,当客户注册.下单.修改密码.邀请好友等等一系列行为时,会有相关信息邮件发出. 进入magento后台,System > Transactional E ...

  9. WinForm设置窗体默认控件焦点

    winform窗口打开后文本框的默认焦点设置,进入窗口后默认聚焦到某个文本框,两种方法: ①设置tabindex 把该文本框属性里的tabIndex设为0,焦点就默认在这个文本框里了. ②Winfor ...

随机推荐

  1. django-url调度器-初级篇

    Django 遵从 MVC 模型,并将其特色化为 MTV 模型.模型的核心是通过用户访问的 url 来指向处理的函数,而函数处理后返回相应的结果.所以url决定了用户访问的入口,另外表单处理的提交地址 ...

  2. C 的 一些写法格式 交流

    好久以前刚开始学习前辈们的代码的时候,发现好多代码感到好奇怪. 1)代码看不懂 2)代码格式看不懂 网上也没见同学们分享.当自己代码写多了,也渐渐的理解为什么要这样写了. 说主题之前 还是 说一些 题 ...

  3. Linux下如何将数据库脚本文件从sh格式变为sql格式

    在从事软件开发的过程中,经常会涉及到在Linux下将数据库脚本文件从sh格式变为sql格式的问题.本文以一个实际的脚本文件为例,说明格式转换的过程.        1. sh文件内容 本文中的文件名为 ...

  4. 【TOP10 APP】这些应用成了AppCan千人大会的焦点

    如何评价一款APP的好坏?首先,实用性.一款好的APP,首先要能为用户所用.然后是稳定流畅.闪退.卡顿,这样的APP用起来让人抓狂.再一个,界面美观.视觉主观性,在很大程度上会影响使用情况,毕竟没有人 ...

  5. bzoj 1269 [AHOI2006]文本编辑器editor

    原题链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1269 伸展树的运用,如下: #include<cstdio> #include ...

  6. 【iOS】iOS消息推送机制的实现

    iOS消息推送的工作机制可以简单的用下图来概括: Provider是指某个iPhone软件的Push服务器,APNS是Apple Push Notification Service的缩写,是苹果的服务 ...

  7. Learning note for Binding and validation

    Summary of my learning note for WPF Binding Binding to DataSet. when we want to add new record, we s ...

  8. 014--VS2013 C++ c++定时动画

    资源图片 //全局变量HBITMAP girl[7];HDC mdc, hdc;int num; //--------------------------------------------InitI ...

  9. 一个Option请求引发的深度解析

    在当前项目中,前端通过POST方式访问后端的REST接口时,发现两条请求记录,一条请求的Request Method为Options,另一条请求的Reuest Method为Post.想要解决这个疑惑 ...

  10. iptables的recent模块

    看到文章中用recent模块控制对主机的访问. 配置方法如下: iptables -A INPUT -p icmp --icmp-type 8 -m length --length 78 -j LOG ...