WinForm中日期控件开窗

时间:2021-09-10 15:26:04

http://www.cnblogs.com/denylau/archive/2010/04/28/1723274.html

当我们在使用WinForm开发项目或者小工具的时候,很多时候需要做开窗事件,这个时候你会如何处理呢?

当然微软给我们提供了强大的日期控件,我们可以通过下拉选择来选择相应的日期,但是你会发现日期的格式不是我们所需要的,或者

我们希望得到的日期格式,并且呈现出来的效果也不是非常美观。在此我给大家演示一下,我在开发小工具中如何设置日期开窗事件的,

这是一个比较简单的日期开窗,下面开始喽!

首先创建一个项目,里面有两个Windows窗体,如下图所示:

WinForm中日期控件开窗

WinForm中日期控件开窗

第一个窗体时需要日期一个文本框一个Button一个图片资源,窗体二需要我们拖一个MonthCalendar控件,调整至合适的大小。

接下来我们需要做的就是在Button下面写事件喽:

private void button1_Click(object sender, EventArgs e)
        {
            string tDateTime = string.Empty;
            NewOpenManager1.OpenWindow(ref tDateTime);//調用OpenWindow得到回傳的日期
            if (tDateTime == null)
            {

            }
            else
            {
                this.textBox1.Text = tDateTime;
            }
        }

在这个click事件中,需要我们注意的是NewOpenManager1.OpenWindow(ref tDateTime);这句Code,他的意思是说我们会调用NewOpenManager1类的OpenWindow方法,下面将这个类的方法体描述如下:

public abstract class NewOpenManager1
    {
        public static void OpenWindow(ref string tDateTime)
        {
            FrmDateTime frmDt = new FrmDateTime();
            tDateTime = frmDt.GetNewWindowDateTime();
        }
    }

定义的这个抽象类的时候我们会实例化日期窗体,调用日期窗体中的GetNewWindowDateTime()方法来获取在日期窗体中点选的日期。

下面就来看下日期窗体中有那些代码吧!

首先呢,我们要定义一个日期属性如下
        public string tDateTime
        {
            get;
            set;
        }

 

 之后呢就是定义一个我们上面调用的方法GetNewWindowDateTime(),方法体的内容如下:

public string GetNewWindowDateTime()
        {
            switch (ShowDialog())
            {
                case DialogResult.OK:
                    return this.tDateTime;
                default:
                    break;
            }
            return null;
        }

这样我们就会得到所选日期,下面是对所选日期进行格式化出我们需要的日期格式,内容如下:

private void monthCalendar1_DateSelected(object sender, DateRangeEventArgs e)
        {
            String tDate = this.monthCalendar1.SelectionStart.ToString("yyyy-MM-dd");
            this.tDateTime = tDate.Replace("-","/"); 
            this.DialogResult = DialogResult.OK;
        }

这里我将日期格式化为yyyy/MM/dd的格式,你可以根据自己需要来进行格式化,最后返回到窗体Form1中的TextBox中。显示的效果如下:

WinForm中日期控件开窗

Ok了,这个小的日期开窗就完成喽,请各位参考吧,如果有更好的方法记得介绍给我,非常感谢!