读书人

listview循环添加Button后位置有关问题

发布时间: 2012-09-12 09:21:30 作者: rapoo

listview循环添加Button后位置问题

C# code
        private void Form1_Load(object sender, EventArgs e)        {            int i = 1;            int j;            int r = 0;            int btnwidth = 130;            int h = Convert.ToInt32(System.Math.Truncate((double)listView1.Width / btnwidth));            for (i = 0; i < 16; i++)            {                               j = i % h;                if (j == 0) r++;                Button btn = new Button();                btn.Name = "btn" + (i + 1).ToString();                btn.Text = (i + 1).ToString();                btn.Size = new Size(btnwidth, btnwidth);                btn.Left = 0 + (j) * btnwidth;                btn.Top = 0 + (r) * btnwidth;                btn.Click += new EventHandler(btn_Click);                this.listView1.Controls.Add(btn);            }        }


运行后,第一行总是行出来,从第二行开始循环添加,btn.Top初始时就附成了100,怎么能让他初始时附成0!

[解决办法]
if (j == 0) r++;
把这条改成if (j == 0&&i!=0) r++;
这样就可以了。因为程序开始进去 i=0,那么j肯定等于0,这样r=1.第一行的top就是btnwidth了。

读书人网 >C#

热点推荐