c#点击一下红色按钮出现一个红色label,点击一下绿色按钮,右旁边再出现一个绿色label。

intX=10;intY=10;intSpace=20;intcol=1;intlabelWidth=40;intlabelheight=20;intlbNums=0;p... int X = 10;
int Y = 10;
int Space = 20;
int col = 1;
int labelWidth = 40;
int labelheight = 20;
int lbNums = 0;
private void button1_Click(object sender, EventArgs e)
{
lbNums++;
Label label = new Label();
label.ForeColor = Color.Red;
label.Text = "你好" + lbNums;
label.Size = new Size(labelWidth, labelheight);
label.Location = new Point(X, Y);
this.panel1.Controls.Add(label);
X = col * (labelWidth + Space);
col++;
}

请问我应该怎么实现点击红色字体按钮出现一个红色字体的label,我再按绿色按钮的时候就会继续右边出现一个绿色字体的label.再点击红色字体按钮继续右边出现红色字体的label
展开
 我来答
greystar_cn
推荐于2016-09-27 · 知道合伙人软件行家
greystar_cn
知道合伙人软件行家
采纳数:16407 获赞数:17260
本人主要从事.NET C#方向的技术开发工作,具有10多年的各类架构开发工作经验。

向TA提问 私信TA
展开全部
 int X = 10;
        int Y = 10;
        int Space = 20;
        int col = 1;
        int labelWidth = 40;
        int labelheight = 20;
        int RowHeight = 30;
        int lbNums = 0;

        private void button1_Click(object sender, EventArgs e)
        {
            AddLabel(Color.Red);

        }

        private void AddLabel(Color color)
        {
            lbNums++;
            if (X >= this.panel1.Width)
            {
                //换行
                Y += RowHeight;//换一行
                X = 10;
                col = 1;//从新第一列
            }

            Label label = new Label();
            label.ForeColor = color;
            label.Text = "好" + lbNums;
            label.Size = new Size(labelWidth, labelheight);
            label.Location = new Point(X, Y);
            this.panel1.Controls.Add(label);
            X = col * (labelWidth + Space);
            col++;
        }

        private void button2_Click(object sender, EventArgs e)
        {
            AddLabel(Color.Green);
        }

追问

点击两组按钮(上行、下行)显示上下行的label,panel里设置有滚动条,当把滚动条从左拉到右时label左右间隔就会显示错位。我需要两组label实现上下对称,又能使拉动滚动条的时候不会错位显示?如何解决这个问题呢?设置上下滚动条也行。只要不会使拉动滚动条时错位。

追答
this.panel1.Scroll += new System.Windows.Forms.ScrollEventHandler(this.panel1_Scroll);
this.panel2.Scroll += new System.Windows.Forms.ScrollEventHandler(this.panel1_Scroll);

private void panel1_Scroll(object sender, ScrollEventArgs e)
{
if(e.ScrollOrientation == ScrollOrientation.VerticalScroll)
{
this.panel1.VerticalScroll.Value = e.NewValue;
this.panel2.VerticalScroll.Value = e.NewValue;
}
if (e.ScrollOrientation == ScrollOrientation.HorizontalScroll)
{
this.panel1.HorizontalScroll.Value = e.NewValue;
this.panel2.HorizontalScroll.Value = e.NewValue;
}

}

早点结贴吧,问题不能一个接着一个。
来自:求助得到的回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式