0

我有一个秒表,想更新你开始和停止手表的时间日志

像这样的东西: 在此处输入图像描述

正如您在开始时看到的那样,它是空的,首先使用它,然后使用带有使用次数和持续时间的行,然后您使用更多次的行会显示出来。我已经在寻找方法来做到这一点,但我没有找到,我没有创建一个 tablelayoutpanel,但我无法将数据放入其中。

关于如何做到这一点的任何想法?

谢谢,

布鲁诺

4

2 回答 2

0

您可以使用FlowLayoutPanel, 自定义UserControl您的编号和持续时间,您将需要 ,UserControl因为如果您垂直告诉面板堆栈,您将无法添加相邻项目。你也没有提到你正在用哪种语言编程,所以我会给你和 C# 中的例子:看看这是否给你一个想法。

using System;
using System.Drawing;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        FlowLayoutPanel flp = new FlowLayoutPanel() 
                                  { Width = 200, 
                                    Height = 200, 
                                    AutoScroll = true, 
                                    FlowDirection = FlowDirection.TopDown ,
                                    Location = new Point(0,0),
                                    WrapContents = false 
                                  };
        Button btn = new Button() { Text = "Add", 
                                    Height = 30, 
                                    Width = 70, 
                                    Location = new Point(200, 200) 
                                  };
        public Form1()
        {
            InitializeComponent();
            this.Controls.Add(flp);
            this.Controls.Add(btn);
            btn.Click += new EventHandler(btn_Click);

        }

        void btn_Click(object sender, EventArgs e)
        {
            flp.Controls.Add(new myUserControl() { Number = "1", 
                                                   Duration = "00:00:00"
                                                 });
        }
    }

    public class myUserControl:UserControl
    {
        Label number = new Label(){ ForeColor = Color.Blue,
                                    Font = new Font("Arial", 14),
                                    AutoSize = true,
                                    Location = new Point(0,0)
                                  };

        Label duration = new Label(){ ForeColor = Color.Red,
                                      Font = new Font("Arial", 14),
                                      AutoSize = true,
                                      Location = new Point(24, 0)
                                    };

        public  myUserControl()
        {
            this.Size = new Size(new Point(150, 24));
            this.Controls.Add(number);
            this.Controls.Add(duration);
        }

        public string Number
        {
            get { return number.Text; }
            set { number.Text = value; }
        }

        public string Duration
        {
            get { return duration.Text; }
            set { duration.Text = value; }
        }
    }
}
于 2013-07-25T05:59:43.580 回答
0

对不起,我忘了提及我正在使用 VB,我尝试应用您的代码但无法让我工作,但找到了解决方案

我使用了一个 listview 控制器,并将其配置为我需要的 4 列,然后当单击停止按钮时,我输入代码:

newitem = New ListViewItem
newitem.Text = pausa
newitem.SubItems.Add(inicio.ToLongTimeString)
newitem.SubItems.Add(fim.ToLongTimeString)
newitem.SubItems.Add(diferença.ToString.Substring(0, 8))
ListView1.Items.Add(newitem)

它工作正常。

希望它可以帮助将来的人。

于 2013-07-27T00:56:41.590 回答