Winform设置相关
>> 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设置相关的更多相关文章
- winform设置button的边框颜色,或取消边框颜色,不显示边框
// winform设置边框颜色不像webform那么简单,可以通过设置FlatAppearance,也可以通过重绘实现. 一.设置按钮本身属性 buttonBubufx.FlatStyle = Fl ...
- c# winform 设置winform进入窗口后在文本框里的默认焦点
c# winform 设置winform进入窗口后在文本框里的默认焦点 进入窗口后默认聚焦到某个文本框,两种方法: ①设置tabindex 把该文本框属性里的tabIndex设为0,焦点就默认在这个文 ...
- WinForm 设置窗体启动位置在活动屏幕右下角
WinForm 设置窗体启动位置在活动屏幕右下角 在多屏幕环境下, 默认使用鼠标所在的屏幕 1. 设置窗体的 StartPosition 为 FormStartPosition.Manual. 2. ...
- 【Matlab开发】matlab中norm范数以及向量点积、绘图设置相关
[Matlab开发]matlab中norm范数以及向量点积.绘图设置相关 标签(空格分隔): [Matlab开发] 声明:引用请注明出处http://blog.csdn.net/lg125915677 ...
- WinForm设置控件焦点focus
winform窗口打开后文本框的默认焦点设置,进入窗口后默认聚焦到某个文本框,两种方法: ①设置tabindex 把该文本框属性里的tabIndex设为0,焦点就默认在这个文本框里了. ②Winfor ...
- php http头设置相关信息
HTTP 状态码 状态码用来告诉HTTP客户端,HTTP服务器是否产生了预期的Response. HTTP/1.1中定义了5类状态码, 状态码由三位数字组成,第一个数字定义了响应的类别 1XX 提示信 ...
- 【Unity】13.2 通过Lighting Window设置相关参数
分类:Unity.C#.VS2015 创建日期:2016-05-19 一.简介 Unity 5.3.4的Lighting Window有3个选项卡:Object.Scene.Lightmaps. 二. ...
- magento email模板设置相关
magento后台 可以设置各种各样的邮件,当客户注册.下单.修改密码.邀请好友等等一系列行为时,会有相关信息邮件发出. 进入magento后台,System > Transactional E ...
- WinForm设置窗体默认控件焦点
winform窗口打开后文本框的默认焦点设置,进入窗口后默认聚焦到某个文本框,两种方法: ①设置tabindex 把该文本框属性里的tabIndex设为0,焦点就默认在这个文本框里了. ②Winfor ...
随机推荐
- 8.python中的数字
python中数字对象的创建如下, a = 123 b = 1.23 c = 1+1j 可以直接输入数字,然后赋值给变量. 同样也可是使用类的方式: a = int(123) b = float(1. ...
- openerp 经典收藏 记录规则 – 销售只能看到自己的客户,经理可以看到全部(转载)
记录规则 – 销售只能看到自己的客户,经理可以看到全部 原文地址:http://cn.openerp.cn/record_rule/ OpenERP中的权限管理有四个层次: 菜单级别: 即,不属于指定 ...
- Flask —— 使用Python和OpenShift进行即时Web开发
最近Packtpub找到了我,让我给他们新出版的关于Flask的书写书评.Flask是一个很流行的Python框架.那本书是Ron DuPlain写的<Flask 即时Web开发>.我决定 ...
- eclipse导出Runnable Jar File在Launch Configuration中找不到类
1.只要选择中你需要Launch Configuration中出现的类,右击Run AS -- Java Application 再次. 2.点击导出Export的时候,就可以看到类在列表中出现了. ...
- Resizing the View(待续。。。。)
在iOS开发的过程中,控件的大小和位置如何去安排是一个现在看来比较麻烦的事情,需要从上到下的通知和从下到上的调整.而这部分在整个开发过程中是比较重要的,但是却经常没有被掌握.如果将这部分掌握,不管界面 ...
- AppDelegate中的方法解析
// 当应用程序启动完毕的时候就会调用(系统自动调用) -(BOOL)application:(UIApplication *)application didFinishLaunchingWithOp ...
- cocos2dx中的场景和使用方法
1.一个游戏中有且只有一个导演,但是至少有一个场景 2.场景是游戏元素节点数的根节点,也可以理解为该场景下的渲染树的根节点 3.场景是一个容器,包含了该场景下的所有游戏元素,比如层,精灵 4.场景是导 ...
- Windows Live Writer教程及代码高亮工具
十分感谢六仙庵对于Windows Live Writer的教程,方便了编辑与发布,教程地址如下: http://www.cnblogs.com/liuxianan/archive/2013/04/13 ...
- JS获取字符串长度(英文占1个字符,中文汉字占2个字符)
方法一: String.prototype.gblen = function() { var len = 0; for (var i = 0; i < this.length; i++) { i ...
- 命令学习:iftop
iftop显示带宽使用情况 http://riobard.com/2010/04/30/l2tp-over-ipsec-ubuntu/ http://jaseywang.me/2011/12/19/i ...