我有一个秒表,想更新你开始和停止手表的时间日志
像这样的东西:
正如您在开始时看到的那样,它是空的,首先使用它,然后使用带有使用次数和持续时间的行,然后您使用更多次的行会显示出来。我已经在寻找方法来做到这一点,但我没有找到,我没有创建一个 tablelayoutpanel,但我无法将数据放入其中。
关于如何做到这一点的任何想法?
谢谢,
布鲁诺
我有一个秒表,想更新你开始和停止手表的时间日志
像这样的东西:
正如您在开始时看到的那样,它是空的,首先使用它,然后使用带有使用次数和持续时间的行,然后您使用更多次的行会显示出来。我已经在寻找方法来做到这一点,但我没有找到,我没有创建一个 tablelayoutpanel,但我无法将数据放入其中。
关于如何做到这一点的任何想法?
谢谢,
布鲁诺
您可以使用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; }
}
}
}
对不起,我忘了提及我正在使用 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)
它工作正常。
希望它可以帮助将来的人。