秒表,更新日志窗体

时间:2013-07-24 23:44:08

标签: winforms visual-studio

我有一个秒表,想要更新你开始的时间日志并停止观看

这样的事情: enter image description here

正如你在开始时看到它是空的,首先使用它和一个使用数量和持续时间的行,你使用更多次显示更多的行。我已经找到了方法来做到这一点,但我找不到,我想创建一个tablelayoutpanel,但我无法将数据放入其中。

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

谢谢,

布鲁诺

2 个答案:

答案 0 :(得分:0)

您可以使用FlowLayoutPanel和自定义UserControl作为您的号码和持续时间,您需要UserControl,因为如果您垂直告诉Panel堆栈,您将无法添加相邻的项目。您还没有提到您正在编程的语言,所以我将在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; }
        }
    }
}

答案 1 :(得分: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)

它工作正常。

希望将来可能对某人有所帮助。