C#处理经典问题的方法.

摘要

在C#中处理窗体移动是一个经典问题,不管鼠标点击窗体上的任何一个空间都可以拖动窗体,首先给该控件的鼠标按下,鼠标移动,鼠标离开的事件中添加方法,下面是实现这一方法的具体代码。

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就可以了。


IT家园
IT家园

网友最新评论 (0)