检测面板中的自动滚动值更改

时间:2010-09-22 11:04:24

标签: visual-studio-2005

如何检测面板1中的自动滚动值是否发生变化?

例如,

  

textbox1和textbox2。

在panel1中添加。 autoscroll属性设置为true。

我只对检测面板自动滚动位置值的变化感兴趣。

上面提到的动态文本框。

正在使用的软件:C#,Visual Studio 2005。

1 个答案:

答案 0 :(得分:1)

它所需的组件。是:

  1. ListBox1中
  2. ListBox2
  3. 面板
  4. 按钮。
  5. Class的命名空间:

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;
    using System.Collections;
    

    以下是完整的解决方案代码:

    namespace detectpanelvalue
    {
    
    public partial class Form1 : Form
    
    {
    
        private Point tbpoint  = new Point(10, 14);
    
        private Point tbbpoint = new Point(300, 14);
    
        private ArrayList arylst;
    
        private ArrayList arylst1;
    
        public Form1()
        {
            InitializeComponent();
        }
    
        private void Form1_Load(object sender, EventArgs e)
        {
            panel1.Paint += new PaintEventHandler(panel1_Paint);
    
        }
    
        void panel1_Paint(object sender, PaintEventArgs e)
        {
            System.Drawing.Point pnlpt;
            pnlpt = panel1.AutoScrollPosition;
            if (tbpoint !=null  || pnlpt != null ) 
            {
                pnlpt = tbpoint;
            }
            arylst1 = new ArrayList();
            arylst1.Add(pnlpt);
    
        }
    
        private void runtime() 
        {
            foreach (Point pt in arylst) 
            {
                listBox1.Items.Add(pt);
    
            }
    
            foreach (Point ptt in arylst1) 
            {
                listBox2.Items.Add(ptt);
    
            }
        }
    
    
        private void button1_Click(object sender, EventArgs e)
        {
            TextBox tb = new TextBox();
            tb.Location = tbpoint;
            this.panel1.Controls.Add(tb);
            tbpoint.Y += 30;
            TextBox bb = new TextBox();
            bb.Location = tbbpoint;
            this.panel1.Controls.Add(bb);
            tbbpoint.Y += 30;
            arylst = new ArrayList();
            arylst.Add(tbpoint);
            runtime();
    
        }
    }
    }
    

    调整面板自动滚动位置很有帮助。