技术开发 频道

Form.AutoScrollPosition的运用

IT168 技术文档】

    拿C#写了一个支持滚动的图片显示程序(WinForm程序),主要运用Form的AutoScroll,关键代码如下:

/// <summary> /// Form的Load事件 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void Form1_Load(object sender, System.EventArgs e) { //这个很关键,只有该属性为true时,窗口才会在控件超出窗口范围时 //自动添加滚动条,并在我们操作滚动条时,自动滚动控件 this.AutoScroll = true; } /// <summary> /// 设置一个图片文件到pictureBox1上 /// </summary> /// <param name="filename">图片文件名</param> private void SetImage(string filename) { Bitmap bm = new Bitmap(filename); pictureBox1.BackgroundImage = bm; GraphicsUnit bmGU = GraphicsUnit.Pixel; RectangleF rectF = bm.GetBounds(ref bmGU); //设置pictureBox1的大小和位置。如果该控件超出Form的范围,Form会自动 //添加滚动条 pictureBox1.SetBounds(0, 0, (int)rectF.Width, (int)rectF.Height); } /// <summary> /// pictureBox1的DobuleClick事件 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void pictureBox1_DoubleClick(object sender, System.EventArgs e) { //打开一个文件对话框选择图片文件 OpenFileDialog openFileDialog = new OpenFileDialog(); openFileDialog.Filter = "Image Files|*.bmp;*.jpg;.jpeg;*.gif"; if(openFileDialog.ShowDialog() == DialogResult.OK) { //设置要显示的图片 SetImage(pictureBox1.SetBounds(AutoScrollPosition.X, AutoScrollPosition.Y, (int)rectF.Width, (int)rectF.Height); } }

    注:当我们改变了窗口的滚动条的位置后,窗口客户区的坐标原点就发生了变化,和原来的坐标原点的偏移量可以用Form.AutoScrollPosition表示。

0
相关文章