用C#语言编写windows窗体应用程序

用C#语言编写windows窗体应用程序

【例1】假设需要制造一个带有四个按钮和两个灯泡的盒子并具有以下功能:
⑴ 有四个按钮输入,分别称为B1,B2,B3和B4;
⑵ 有两个灯泡作为输出,分别称为L1和L2;
⑶ B1是打开电源的按钮;
⑷ B4是关闭电源的按钮;
⑸ B2和B3 是操作按钮;
⑹ 在B1被按下后及B4被按下前,系统应称为电源打开状态;
⑺ 在B4被按下后及B1被按下前,系统应称为电源关闭状态;
⑻ 在电源关闭状态下,B2和B3按钮不起作用;
⑼ 在电源关闭状态下,灯应不亮;
⑽ 从最近一次电源打开状态算起,如果B2被按下的次数比B3被按下的次数多,L1亮,否则L2亮。
⑾ 任何时候都不能有一个以上的灯泡亮;
⑿ 如果其中的一个灯泡出现故障,另一个灯泡应以2秒钟的间隔闪烁,而不管B2和B3的操作过程。当B4按下时,闪烁停止;当B1被按下时,闪烁重新开始。当故障被排除后闪烁停止,系统恢复正常状态。

控件如图,由左到右,由上到下,分别命名为b1,b2,b3,b4,l1,l2,button1,button2,timer1,timer2

timer1与timer2的Enabled的属性默认为false,Interval默认为1000,

后代代码如下

      bool Isopen = false;

        int b2Times = 0;

        int b3Times = 0;

        int onebreak = 0;

        private void b1_Click(object sender, EventArgs e)

        {

     

                Isopen = true;

     

       

            if (onebreak==1)

            {

                timer1.Enabled = true;

            }

            if (onebreak==2)

            {

                timer2.Enabled = true;

            }

        

        

        }

        private void b2_Click(object sender, EventArgs e)

        {

            if (onebreak==0)

            {

                if (Isopen == false)

                {

                    return;

                }

                b2Times += 1;

                if (b2Times >= b3Times)

                {

                    l1.BackColor = Color.Red;

                    l2.BackColor = Color.White;

                }

            }

       

      

        }

        private void b3_Click(object sender, EventArgs e)

        {

            if (onebreak==0)

            {

                if (Isopen == false)

                {

                    return;

                }

                b3Times += 1;

                if (b3Times >= b2Times)

                {

                    l1.BackColor = Color.White;

                    l2.BackColor = Color.Red;

                }

            }

        

        }

        private void b4_Click(object sender, EventArgs e)

        {

            b3Times = 0;

            b2Times = 0;

            Isopen = false;

            l1.BackColor=Color.White;

            l2.BackColor = Color.White;

            timer1.Enabled = false;

            timer2.Enabled = false;

        }

        private void button1_Click(object sender, EventArgs e)

        {

            if (onebreak == 1)

            {

                button1.Text = "第一个灯泡坏掉";

                onebreak = 0;

                timer1.Enabled = false;

                button2.Enabled = true;

                return;

            }

            onebreak = 1;

            l2.BackColor = Color.White;

            button1.Text = "修好它";

            button2.Enabled = false;

            if (Isopen==false)

            {

                return;

            }

                timer2.Enabled = false;

                timer1.Enabled = true;

           

   

        }

        private void button2_Click(object sender, EventArgs e)

        {

            if (onebreak == 2)

            {

                button2.Text = "第二个灯泡坏掉";

                onebreak = 0;

                timer2.Enabled = false;

                button1.Enabled = true;

                return;

            }

            onebreak = 2;

            l1.BackColor = Color.White;

            button2.Text = "修好它";

            button1.Enabled = false;

            if (Isopen == false)

            {

                return;

            }

            timer2.Enabled = true;

            timer1.Enabled = false;

        }

        private void timer1_Tick(object sender, EventArgs e)

        {

       

            if (   l1.BackColor != Color.Red)

            {

                l1.BackColor = Color.Red;

                return;

              

            }

            if (l1.BackColor != Color.White)

            {

                l1.BackColor = Color.White;

                return;

            }

         

        }

        private void timer2_Tick(object sender, EventArgs e)

        {

            if (l2.BackColor != Color.Red)

            {

                l2.BackColor = Color.Red;

                return;

            }

            if (l2.BackColor != Color.White)

            {

                l2.BackColor = Color.White;

                return;

            }

        }

温馨提示:内容为网友见解,仅供参考
第1个回答  2010-12-17
你好.你的问题我试着作了一下,如果只是在C#上面是可以实现的,我也是新手。可能代码写的不太好。。代码贴给你,里面的变量什么的你稍稍改一下就可以看的到效果。。对了。还要自己添加控件。。。。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication2
{
public partial class Form1 : Form
{
int GuZhang1=0,GuZhang2=0,L1=0,L2=0,B1=0,B4=0;
public Form1()
{
InitializeComponent();
}

private void button4_Click(object sender, EventArgs e)//断电状态,两灯均闭。
{
pictureBox1.Visible = false;
pictureBox2.Visible = false;
timer1.Enabled = false;
timer2.Enabled = false;
B4 = 1; B1 = 0;
}

private void button2_Click(object sender, EventArgs e)
{
if (B1 == 1)//灯1,在通电状态亮,且灯2灭
{
pictureBox1.Visible = true;
pictureBox2.Visible = false;
}
else
{
L1 += 1; //L1为灯1在断电以后使用的次数
}

if (L1 > 10) GuZhang1 = 1;//若在断电后按10次以上,则出现故障
}

private void button3_Click(object sender, EventArgs e)
{
if (B1 == 1)
{
pictureBox1.Visible = false;
pictureBox2.Visible = true;
}
else
{
L2 += 1;
}

if (L2 > 10) GuZhang2 = 1;
}

private void button1_Click(object sender, EventArgs e)
{
if ((GuZhang1== 0)&&(GuZhang2==0))
{
B1 = 1; B4 = 0;
if (L1 > L2)
{
pictureBox1.Visible = true;
pictureBox2.Visible = false;
}
if (L2 > L1)
{
pictureBox1.Visible = false;
pictureBox2.Visible = true;
}
}
else if (GuZhang1 == 0)
{
pictureBox1.Visible = false;
timer1.Enabled = true;
timer2.Enabled = true;
}

}

private void timer1_Tick(object sender, EventArgs e)
{
if (GuZhang1 == 1)
{
pictureBox1.Visible = false;
GuZhang2 = 0;
if (B4 != 0)
{
pictureBox2.Visible = true;
timer1.Enabled = false;
timer2.Enabled = true;
}
else
{
pictureBox2.Visible = false;
timer1.Enabled = false;
timer2.Enabled = false;
}
}
if (GuZhang2 == 1)
{
pictureBox2.Visible = false;
GuZhang1 = 0;
if (B4 != 0)
{
pictureBox1.Visible = true;
timer1.Enabled = false;
timer2.Enabled = true;
}
else
{
pictureBox1.Visible = false;
timer1.Enabled = false;
timer2.Enabled = false;
}
}

}

private void timer2_Tick(object sender, EventArgs e)
{
if (GuZhang1 == 1)
{
pictureBox1.Visible = false;
GuZhang2 = 0;
if (B4 != 0)
{
pictureBox2.Visible = false;
timer1.Enabled = true;
timer2.Enabled = false;
}
else
{
pictureBox1.Visible = false;
timer1.Enabled = false;
timer2.Enabled = false;
}
}
if (GuZhang2 == 1)
{
pictureBox2.Visible = false;
GuZhang1 = 0;
if (B4 != 0)
{
pictureBox1.Visible = false;
timer1.Enabled = true;
timer2.Enabled = false;
}
else
{
pictureBox1.Visible = false;
timer1.Enabled = false;
timer2.Enabled = false;
}
}

}

private void Form1_Load(object sender, EventArgs e)
{
this.timer1.Enabled = true;
this.timer1.Interval = 1000;
this.timer2.Enabled = false;
this.timer2.Interval = 500;
}

}
}本回答被网友采纳
第2个回答  2010-12-16
你设计 4个按钮就是
开始把 B2 B3 按钮的 Eable 属性 设置为 false
B1 是打开电源
开始的时候按钮 B1 上文本是打开电源
打开后把 B1按钮上的值赋值为 关闭电源
在B1的按钮点击事件中写
B2.Eable=true;
B3.Eable=true;
你不是有2个 lable 控件嘛 L1 ,L2
默认 L1.Text="不亮";
L2.Text="不亮";
定义2个变量 来获取两个按钮分别的点击次数
然后 那个B1次数多就L1.Text ="亮";L2.text="不亮";

那个B2次数多就L2.Text ="亮";L1.Text ="不亮";
第3个回答  2010-12-19
想这中题目很简单
只要你弄清楚了对象和事件就很简单了
这是一个简单的开关问题
只需要设两个bool值就行了
当a=true时B1是打的,当a=false的时候B1是关闭的
另两个也是一样的!要么执行要么不执行,正好适合用bool来做变量要么是true要么是false
然后搞清楚事件执行的先后就行了!!!
第4个回答  2010-12-16
这个有点类似于排列组合,这个能组合多少种结果。
跟编程基本没什么关系。

VS2019无法创建Windows窗体应用程序(C#)
1、首先在电脑中打开C#,点击左上角的新建选项,如下图所示。2、之后在打开的下拉菜单中,选择新建,新建项目,如下图所示。3、然后在打开的新建项目窗口中,选择VsiualC#选项,如下图所示。4、接着在打开的页面中,选择windows窗体应用程序,如下图所示。5、最后就完成了,如下图所示。

c#设计一个Windows窗体应用程序,要求输入成绩计算某个学生
1. 在窗体上添加三个文本框,分别用于输入三门功课的成绩;2. 添加一个按钮,点击后触发计算奖学金的事件;3. 在事件中,获取文本框中输入的成绩,计算平均分,并判断是否符合获奖条件;4. 根据符合的条件,显示该学生获得的奖项。代码示例:```csharp private void btnCalculate_Click(object sender...

C#编写程序,“求出给定半径R的圆的面积和周长,并输出计算结果”,_百度...
打开vs,文件,新建,项目,Visual C#,Windows窗体应用程序.出现一个windows窗体,从工具栏拖一个TextBox.拖一个button 双击button,进入事件.Button1_Click(){ string strValue = textBox1.Text.Trim ( );double pi = 3.14;double dblValue;bool IsDouble = double.TryParse ( strValue, out dblValue...

用C#写的window窗体应用程序,怎样让它在开机的时候自动启动?
private void 启用ToolStripMenuItem_Click(object sender, EventArgs e) {\/\/获取程序执行路径..string starupPath = Application.ExecutablePath;\/\/class Micosoft.Win32.RegistryKey. 表示Window注册表中项级节点,此类是注册表装.RegistryKey loca = Registry.LocalMachine;RegistryKey run = loca.CreateSub...

Visual Studio 2019怎么创建C#窗体应用程序
Visual Studio 2019是现在十分常用的一款编程软件,有些新用户不知道该软件怎么创建C#窗体应用程序,接下来小编就给大家介绍一下具体的操作步骤。具体如下:1. 首先第一步先打开电脑中的Visual Studio 2019,接着根据下图箭头所指,将弹出【创建新项目】图标。2. 第二步根据下图箭头所指,点击【语言】选项...

C#如何利用VS2010生成exe应用程序并设置图标
一、打开VS2010,新建Windows窗体应用程序项目1. 打开VS2010,选中菜单栏中的【文件】—【新建】—【项目】,具体情况如下图所示:2. 在弹出来的新建项目菜单中选择“Windows窗体应用程序”,然后点击“确定”按钮。具体情况如下图所示:3. 新建完成后,我们可以看到一个简单的窗体,这时我们按F5进行调试...

c#,我需要创建一个Windows窗体应用程序,要求对文本框内输入的三个数...
private void button1_Click(object sender, EventArgs e){ \/\/获取文本框的值 string txt1 = textBox1.Text;string txt2 = textBox2.Text;string txt3 = textBox3.Text;\/\/定义转换时存储的整形变量(如果是浮点型自行替换)int num1 = 0;int num2 = 0;int num3 = 0;int result = 0;...

C#的windows窗体应用
首先建立一个WinForm程序。会一个默认窗体Form1 添加控件NotifyIcon 设置属性 notifyIcon1.Visible = false;双窗体,出现窗体的Load事件Form1_Load,另外添加窗体的FormClosing事件Form1_FormClosing。详细代码都在下面。再添加notifyIcon1的DoubleClick事件notifyIcon1_DoubleClick 添加好这些事件后,把下面代码添加...

visual studio 2010怎么创建windows窗体应用程序
在使用Visual Studio 2010创建Windows窗体应用程序时,首先需要在右侧的已安装模板中选择Visual C#。在该界面右侧,会显示出多种项目类型。在这里,你应该找到并选择Windows窗体应用程序。默认情况下,创建项目后会自动生成一个窗体文件。该窗体是主启动窗体,程序运行开始时会先运行这个窗体。如果需要对窗体...

用c#(windows应用程序)编写一个程序,输入自己的姓名“***”,然后输出...
新建一个Visual C#的Windows应用程序,在窗体上添加一个button和一个textbox,在button里添加以下代码: if (textBox1.Text != ""){ MessageBox.Show("你好," + textBox1.Text);textBox1.Text = "你好," + textBox1.Text;}

相似回答