下面用我们学过的知识创建一个应用程序实例,演示MDI窗体的用法,此窗体包括菜单,工具栏和状态栏。用户选择“创建用户”菜单中“创建学员账户”菜单项,或者单击工具栏上的“创建”按钮后,将显示“frmNewUser”窗体。使用“菜单管理”命令可动态添加上下文菜单,状态栏显示日期和当前窗体名称,选择“退出系统”菜单可退出系统。 创建步骤如下: 1、创建一个名为“UserManage”的Windows应用程序。 2、将Form1改为frmUserManage,作为主窗体,将其“IsMdiContainer”属性值设置为true,这个窗体成为子窗体的窗器。 3、将菜单栏(MenuStrip)、工具栏(ToolStrip)、和状态栏(StatusStrip)控件拖到窗体上,建成界面。 4、将以下代码添加到frmUserManage的Load事件中。 private void frmUserManage_Load(object sender, EventArgs e) {
this.toolStripStatusLabel1.Text = DateTime.Now.ToString(); } 以上代码实现窗体载入时,在状态栏的Label标签中显示当前时间。 5、在项目上右击,打开关联菜单,选择“添加新项”—“Windows窗体”命令,打开“添加新项”对话框,修改名称为“frmNewUser”,单击“确定”按钮。窗体界面如下: 6、将以下代码添加到“创建学生用户的菜单”中 private void 创建学生用户ToolStripMenuItem_Click(object sender, EventArgs e) {
frmNewUser user = new frmNewUser(); user.MdiParent = this; user.WindowState = FormWindowState.Maximized; user.Show(); this.toolStripStatusLabel2.Text = this.ActiveMdiChild.ToString(); } 以上代码实现选择“创建学生用户”菜单时,打开frmNewUser窗体,作为子窗体打开,并在主窗体的状态栏中显示当前活动窗体的信息。 7、将以下代码加到“退出”菜单项和工具栏的“退出”按钮中。 private void 退出EToolStripMenuItem_Click(object sender, EventArgs e) {
Application.Exit(); } 8、将以下代码添加到“用户管理”菜单项的Click事件中。 private void 用户管理ToolStripMenuItem_Click(object sender, EventArgs e) {
ContextMenuStrip mnuContext = new ContextMenuStrip(); this.ContextMenuStrip = mnuContext; mnuContext.Items.Add("创建用户"); mnuContext.Items.Add("查询用户"); mnuContext.Items.Add("退出系统"); } 该代码用于动态创建应用程序上下文菜单。 9、对于实现的功能键,添加一个提示信息,代码如下: private void toolStripButton2_Click(object sender, EventArgs e) {
MessageBox.Show("正在建设中"); } 编译并运行,首先出现的是主窗体,单击“创建”按钮,frmNewUser窗体作为子窗体显示在主窗体中。 C# winForm 将窗体状态栏StatusStrip示例(显示当前时间)
实现效果:通过StatusStrip显示窗体状态栏,同时将状态栏分成三部分: 居左边显示相关文字信息,中间空白显示,居右边显示时间信息。 1.创建窗体及添加StatusStrip 默认StatusStrip名称为statusStrip1 2.在statusStrip1的Items属性中 添加三个StatusLabel 默认名称为toolStripStatusLabel1,2,3 按1,2,3的顺序排列 3.修改toolStripStatusLabel1的Text属性 为相关文字如"欢迎使用本系统" 4.修改toolStripStatusLabel2的Text属性 为空 Sprint属性为True BorderSides属性为Left,Right 5.修改toolStripStatusLabel3的Text属性 为空 在Form的Load事件中 修改其显示为当前时间 this.toolStripStatusLabel3.Text = "登录时间:" + DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss"); 6.如果要使状态栏时间信息随操作系统当前时间不停的改变 则可以通过增加Timer控件来实现 增加Timer控件 timer1 编写其Tick事件为 private void timer1_Tick(object sender, EventArgs e) {
this.toolStripStatusLabel3.Text = "系统当前时间:" + DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss"); } 在Form的Load事件中 对timer1进行相关设置 private void MainForm_Load(object sender, EventArgs e) {
this.toolStripStatusLabel3.Text = "系统当前时间:" + DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss"); this.timer1.Interval=1000; this.timer1.Start(); } |
|