博客
关于我
C#成魔之路<2>Windows 应用程序高级控件(2)
阅读量:354 次
发布时间:2019-03-04

本文共 4299 字,大约阅读时间需要 14 分钟。

DateTimePicker控件是用于选择日期和时间的常用控件,它允许用户单独选择一个时间点或直接输入日期和时间值。该控件的主要特点是显示为下拉列表和网格形式,方便用户快速选择或输入时间信息。

DateTimePicker控件的使用

显示时间

DateTimePicker控件支持通过设置Format属性来选择显示格式。例如,设置Format为Time,可以让控件仅显示时间部分。此属性的默认值为Long,表示以用户操作系统设置的长日期格式显示日期时间。

public DateTimePickerFormat Format { get; set; }

DateTimePickerFormat枚举类型支持以下值:

  • Custom:自定义格式
  • Long:用户操作系统设置的长日期格式
  • Short:用户操作系统设置的短日期格式
  • Time:用户操作系统设置的时间格式

自定义日期格式

如果需要自定义日期和时间的显示格式,可以通过CustomFormat属性来设置。该属性的值是一个字符串,按照指定的格式规则来显示日期和时间。

public string CustomFormat { get; set; }

有效的自定义格式字符串包括:

  • d:一位或两位数字表示天数
  • dd:两位数字,天数前面补零
  • ddd:星期几的缩写形式(如Sun、Mon)
  • dddd:星期几的全称形式(如Sunday、Monday)
  • hhh:12小时格式的小时数
  • HHH:24小时格式的小时数
  • mmm:分钟数
  • MMM:月份表示
  • sss:秒数
  • ttt:AM/PM的缩写
  • yyyyyy:年份表示
  • ::时间分隔符

获取日期值

要获取DateTimePicker控件中的日期值,可以通过以下方式:

  • Text属性:返回与控件格式一致的字符串值
  • Value属性:返回DateTime对象
  • 使用YearMonthDay等方法获取具体日期部分

其他高级控件

ErrorProvider控件

ErrorProvider控件用于在用户输入错误时显示提示信息。它可以在不打扰用户的情况下显示错误提示。

public void SetError(Control control, string value)

通过在Validating事件中调用SetError方法,可以为特定控件设置错误描述。例如,在文本框验证失败时,显示错误提示。

HelpProvider控件

HelpProvider控件用于与帮助文件(如HTML或CHM文件)关联,为特定控件提供帮助信息。当用户按下F1时,会打开指定的帮助文件。

public string HelpNamespace { get; set; }
public void SetShowHelp(Control ctl, bool value)

通过设置HelpNamespace属性和调用SetShowHelp方法,可以实现帮助文件的显示。

Timer控件

Timer控件用于在定期间隔时间后引发事件。它的Interval属性定义时间间隔(毫秒),Enabled属性控制是否启用计时器。

public int Interval { get; set; }
public bool Enabled { get; set; }

ProgressBar控件

ProgressBar控件用于显示程序运行的进度。它的Value属性表示当前完成的进度,Minimum和Maximum属性定义范围,Step属性指定递增值大小。通过PerformStep方法可以递增进度值。

public int Value { get; set; }
public int Minimum { get; set; }
public int Maximum { get; set; }
public int Step { get; set; }
public void PerformStep()

示例程序

DateTimePicker自定义格式

public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
dateTimePicker1.Format = DateTimePickerFormat.Custom;
dateTimePicker1.CustomFormat = "MMMM dd, yyyy-dddd";
}
}

ErrorProvider验证

public partial class Form1 : Form
{
private bool isError = true;
public Form1()
{
InitializeComponent();
}
private void textBox3_TextChanged(object sender, EventArgs e)
{
if (textBox3.Text != textBox2.Text)
{
errorProvider1.SetError(textBox3, "the same");
isError = false;
}
}
private void textBox1_TextChanged(object sender, EventArgs e)
{
if (!Regex.IsMatch(textBox1.Text, "^[\u4e00-\u9fa5]{2,}$"))
{
errorProvider1.SetError(textBox1, "you must do this");
isError = false;
}
}
}

Timer实现

public partial class Form1 : Form
{
private Timer timer1;
private Timer timer2;
public Form1()
{
InitializeComponent();
timer1 = new Timer();
timer2 = new Timer();
timer1.Interval = 1000;
timer2.Interval = 1000;
timer1.Enabled = false;
timer2.Enabled = false;
}
private void timer1_Tick(object sender, EventArgs e)
{
Rectangle rect = Screen.GetWorkingArea(this);
if (this.Left != rect.Width - this.Width)
{
this.Left++;
this.Top += 1;
}
else
{
timer1.Enabled = false;
timer2.Enabled = true;
}
}
private void timer2_Tick(object sender, EventArgs e)
{
Rectangle rect = Screen.GetWorkingArea(this);
if (this.Left == 0)
{
timer1.Enabled = true;
timer2.Enabled = false;
}
else
{
this.Left--;
this.Top -= 1;
}
}
}

ProgressBar显示进度

public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
progressBar1.Value = 0;
}
private void timer1_Tick(object sender, EventArgs e)
{
if (progressBar1.Value == progressBar1.Maximum)
{
progressBar1.Value = progressBar1.Minimum;
}
else
{
progressBar1.PerformStep();
}
label1.Text = (progressBar1.Value - progressBar1.Minimum * 100 /
(progressBar1.Maximum - progressBar1.Minimum)).ToString() + "%";
}
}

通过以上方法,可以有效地使用这些高级控件来提升应用程序的用户体验和功能。

转载地址:http://lysr.baihongyu.com/

你可能感兴趣的文章