1.在C#中处理窗体移动是一个经典问题,不管鼠标点击窗体上的任何一个空间都可以拖动窗体,首先给该控件的鼠标按下,鼠标移动,鼠标离开的事件中添加方法,下面是实现这一方法的具体代码。
public static Point CPoint; public void Frm_Move(Form Frm, MouseEventArgs e)//处理窗体移动的方法 { if (e.Button == MouseButtons.Left) { Point posittion = Control.MousePosition; posittion.Offset(CPoint.X, CPoint.Y); Frm.DesktopLocation = posittion; } } private void Form1_MouseDown(object sender, MouseEventArgs e) { int Tem_X = -e.X; CPoint = new Point(Tem_X, -e.Y); } private void Form1_MouseMove(object sender, MouseEventArgs e) { Frm_Move(this,e);//调用处理窗体移动的方法 }
2.在窗体上放上一个pictureBox,当鼠标进入该控件时,显示另一张图片,鼠标离开后,该控件又显示该控件上的原有的图片,详细代码如下:
#region 显示图片的动态 注意: pictureBox控件的Tag属性不能为空,它的值是pictureBox控件个数的编号。 public void PictureChage(PictureBox picBox,Int16 n,Boolean Bn) { if (n >0 && n <= 2)//n是case的个数,也可以是所需图片的张数,自己理解即可。 { picBox.Image = null; } switch (n) { case 1: { if (Bn) { picBox.Image = (Image)Properties.Resources.mb0708; } else { picBox.Image=(Image)Properties.Resources._1; } break; } } } #endregion
在pictureBox的鼠标进入和离开事件中调用PictureChage函数,代码如下:
private void pictureBox1_MouseEnter(object sender, EventArgs e) { PictureChage((PictureBox)sender,Convert.ToInt16(((PictureBox)sender).Tag.ToString()),true); } private void pictureBox1_MouseLeave(object sender, EventArgs e) { PictureChage((PictureBox)sender,Convert.ToInt16(((PictureBox)sender).Tag.ToString()),false; }
3.窗体间的信息传递
要想在一个窗体中操作其它窗体上的控件,要把该控件所在的窗体设置为公共的,同时还要把该控件设置为公共的,具体操作过程如下:
打开Frm_Play.desiger.cs代码页
#region Windows 窗体设计器生成的代码,把privatevoid InitializeComponent(){}中的private改为public即可,同样把控件前面的private改为public就可以了。