我有一个秒表,想要更新你开始的时间日志并停止观看
这样的事情:
正如你在开始时看到它是空的,首先使用它和一个使用数量和持续时间的行,你使用更多次显示更多的行。我已经找到了方法来做到这一点,但我找不到,我想创建一个tablelayoutpanel,但我无法将数据放入其中。
如何做到这一点的任何想法?
谢谢,
布鲁诺
答案 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)
它工作正常。
希望将来可能对某人有所帮助。