--------------------------------------------
★ 通过重写窗口过程函数(WndProc)函数,截取窗体消息,如最大.最小化等
const int WM_SYSCOMMAND = 0x112;
const int SC_CLOSE = 0xF060;
const int SC_MINIMIZE = 0xF020;
const int SC_MAXIMIZE = 0xF030;
protected override void WndProc(ref Message m)
{
if (m.Msg == WM_SYSCOMMAND)
{
if (m.WParam.ToInt32() == SC_MINIMIZE)
{
MessageBox.Show("最小化!1");
}
if (m.WParam.ToInt32() == SC_MAXIMIZE)
{
MessageBox.Show("最大化!1");
}
if (m.WParam.ToInt32() ==0xF120)
{
MessageBox.Show("还原!1");
}
}
base.WndProc(ref m);
}
--------------------------------------------
★C#实现MDI 多文档界面 应用程序:
主窗体Form_Main:将其IsMdiContainer设定成true,这样MDI主窗体就建立了.
子窗体Form_Child属性:
设置Form_Main它的MDI父窗体:Form_Child.MdiParent=this;
--------------------------------------------
★设置窗体鼠标-形状
this.Cursor = Cursors.属性
★监视鼠标-状态
Button.MouseButtons == MouseButtons.属性
----------------------
★设置控件的透明色
Control.Parent=ParentControl(父控件);
Control.BackColor=Color.Transparent;
----------------------
★字体设置(listViewEx为例)
//FontStyle Fs=FontStyle.Regular;GraphicsUnit Gh=GraphicsUnit.Point;
listViewEx1.Font = new Font("宋体", 9, FontStyle.Regular,
GraphicsUnit.Point);//Font.Unit
----------------------
★合理的管理控件(释放/创建)
control.IsDisposed 控件是否释放
control.Created 控件是否创建并show()
判断窗体是否已经打开:
if (client_Fm == null || client_Fm.IsDisposed)//Client_Form:窗体
{
client_Fm = new Client_Form();
client_Fm.Show();
}
else
client_Fm.Activate();
--------------------------------------------
★绘制UI
e.Graphics.DrawString()字
e.Graphics.DrawLines() 线
e.Graphics.DrawRectangle()方
e.Graphics.DrawImage() image
PaintEventArgs 类: 为 Paint 事件提供数据。
Rectangle 类: 绘制一个矩形。
PaintEventArgs.Graphics.DrawImage: 在指定位置并且按指定大小绘制指定的
Image 的指定部分。
PaintEventArgs..::.ClipRectangle: 获取要在其中进行绘画的矩形
--------------------------------------------
★Form添加背景图片
this.BackgroundImage = imageList1.Images[Index];
再把BackgroundImageLayout属性改为:Stretch
这样在界面上显示的图片就不是小图标了,是大图片
--------------------------------------------
★窗体全屏显示:另外就是调用API函数
WindowState= FormWindowState.Maximized;
FormBorderStyle=FormBorderStyle.None;//此并非真正的全屏
--------------------------------------------
★获取COMBOX指定索引 cb_Name.SelectedIndex = n;//适合用于其它datagridview等
控件
--------------------------------------------
★设置控件焦点:control.fouts();
--------------------------------------------
★设置窗体不让用户改变大小
把窗体的FormBorderStyle属性设为FormBorderStyle.FixedSingle;
--------------------------------------------
★设置Form窗体的特征“
i , StartPosition 窗体第一次出现的位置:如CenterScreen当前窗口居中,
CenterParent为父窗口中心位置。
ii ,FormBorderStyle 指示窗体的边框和标题栏的外观和行为:如None 为无标题栏格
式。
iii,属性Font设置显示控件中的文本的字体;属性CaptionFont 设置标题栏字体,
--------------------------------------------
★frm.ShowDialog()//有模式窗体
frmAbout.Show()//无模式窗体
--------------------------------------------
★键盘,鼠标事件
鼠标事件:"MouseHover"、"MouseLeave"、"MouseEnter"、"MouseMove"、"MouseDown"
和"MouseUp"。
例--MouseDown 鼠标按钮按下事件
e.Button == MouseButtons.Left 左按下
e.Button == MouseButtons.Right 右按下
键盘事件:"KeyDown"、"KeyUp"和"KeyPress"。
先 声明: "组件名称"."事件名称"+= new System.EventHandler("事件函数名称"
);
再 定义: 事件函数····
--------------------------------------------
★Enter控件获取焦点事件中,设置文本全选
textBox1.SelectAll();///textBox1文本全选
textBox1.SelectionStart = 1;/"1"代表光标在第1个字符之后
form.ActiveControl==control1//判断控件control1是否被选中
--------------------------------------------
★控件(以主窗体Form为例)大小变化时,控件内的子控件安装相应比例缩放
一般使用Anchor/Dock 就可以控制窗体位置和大小,但是这个不能实现控件随窗体缩放比例
自动调整自身大小和位置。所以只能跟踪Resize事件用代码做出相应的调整。
方法代码:
--------------------------------------------
★ windows 开始按钮效果的 Button
--------------------------------------------
★将Form添加到主窗体进行显示
不能直接把frm.Parent =父容器,会报出无法将顶级控件添加到控件的错误,解决方案:
因为Form默认是顶级窗体,所以加不上去,可以设置其TopLevel属性为False,代码如下:
frmMain frm = new frmMain();
frm.FormBorderStyle = FormBorderStyle.None;
frm.TopLevel = false;
frm.Parent = panel1;
frm.Show();
--------------------------------------------
★
--------------------------------------------
★
--------------------------------------------
★
--------------------------------------------
★
--------------------------------------------
★