c#界面[2]

目录:1.引入:窗体方法:1.一个窗口跳到另一个窗口如何实现2.隐藏窗体3.关闭窗体
2.窗体事件
3.窗体属性
4.RadioButton,CheckBox,菜单和工具栏:[Menustrip,ToolStrip,StatuStrip,ContextMenuStrip,],ListBox,ComboBox,ListView,CheckedListBox

补充:
question:怎么调或用一个控件里的内容,如上一次讲的textbox,TextBox1输入的内容为textbox.Text[Text表示内容]

开始:
1.1.一个窗口跳到另一个窗口如何实现
资源方案解决管理器->右键windowsFormApp1->添加->windows窗体->添加;
会出来一个form2;[question:如何从form1跳到form2?]
窗体打开窗体方法:
窗体对象名.Show(): Form.Show();
窗体对象名.ShowDialog(): Form.ShowDialog();
窗体隐藏:窗体对象名.Hide():
窗体关闭:窗体对象名.Close():

eg.
在form1建立个button[Name:btnNext,Text:下一步],双击你建立的button控件,进入写代码区;
一按下form1中的button[下一步]会产生出现form2的事件:

 private void btnNext_Click(object sender, EventArgs e)
 { var frm= new Form2();
  frm.Show();//form2的窗口跳出来,并可以更改form1中的东西
  //  frm.ShowDialog();//form2的窗口跳出来,不可以更改form1中的东西,必须关掉form2才可以更改form1中的东西  
  this.Hide();//表示隐藏form1.;
  this.Close();//表示彻底关闭form1;
  }

question:如何在form2中修改form1中的东西,?
解决方法:传递参数Form.Show/ShowDIalog(this);
eg.在form2中点击button,form1中的label内容就变成123:

在form2中加button,form1中加个label,

//在form1中
  private void btnNext_Click(object sender, EventArgs e)
  {  //点击form1中的"下一步"按钮"产生的事件 
  var frm= new Form2();
            frm.Show(this);//传递参数
            //this.Hide();
  }

//在form2中[如下]

 private void button1_Click(object sender, EventArgs e)
        {
            (this.Owner as Form1).lbl1.Text = "123";//form1是持有者,form1中的label1中的内容在form2中可以改成123
            //但是在此之前需要在form.designed.cs将form1中的label由private改成public.
        }

在这里插入图片描述

在这里插入图片描述
2.窗体事件
(1)Load(加载)初始化操作.

private void Form1_Load(object sender, EventArgs e)       
  {         button1.Text="ok";//使form1里的button1的text内容为OK ;}

(2)FormClosed()
(3)FormClosing()
FormClosing事件
在窗体关闭时,FormClosing事件发生。此事件会得到处理。从而释放与窗体相关的所有资源。
如果取消此事件,则窗体仍然保持打开状态。
当窗体显示为模式对话框时,单击“关闭”会隐藏窗体并将DialogResult属性设为Cancel。
通过在些事件中设置DialogResult属性可以在用户单击右上角关闭按钮时重写DialogResult的值。
FormClosed事件
在用户或Application类的Close方法或Exit方法关闭窗体后,会发生FormClosed事件。
可以使用此事件释放窗体的一些资源。还可以使用此事件保存输入窗体中的一些信息或者更新父窗体。
3.窗体属性
Name:formXxx
Text:[标题]
Windowstate[窗口状态]:最右上角的最大化,最小化,默认值
AccepButton:中的选项是你创建的button控件,你选哪个,运行是在这个窗口按回车会自动执行你选button所对应的事件
CancelButton:按Esc执行哪个
MaximizeBox:确定标题栏上的右上角是否有最大化

5.RadioButton[单选按钮
属性
Name:radXxx
Text
checked(在第一幅图片用到]
事件:checkchanged;
举例:1.选择更改label.Text;[图片1]
2.模拟考试管理系统的选择题[图片2]
eg.1.拖两个RdioButton到界面[第一个RdioButton的Text:男性,Name:radMale,第二个RdioButton;Text:女性,Name:radFemale]
分别双击两个RadioButton会进入到两个:checkchanged事件中[写代码的地方]

   private void radMale_CheckedChanged(object sender, EventArgs e)
    { label1.Text = "你选择男性";
    }
    private void radFemale_CheckedChanged(object sender, EventArgs e)
    {label1.Text = "你选择女性";
    }    
    
   eg.

2.模拟考试管理系统的选择题
拖4个RadioButton,1个Button,一个label,第一个RdioButton的Text:A.10,Name:radA/第2个RdioButton的Text:B.20,Name:radB//第3RdioButton的Text:C.10,Name:radC,//第4个RdioButton的Text:D.10,Name:radD,//Button的Text:提交答案,;

private void radA_CheckedChanged(object sender, EventArgs e) 
  {                 label1.Text = "your answer is A";      
     }        
   private void radB_CheckedChanged(object sender, EventArgs e)
        {
            label1.Text = "your answer is B";
        }
         private void radC_CheckedChanged(object sender, EventArgs e)
         {label1.Text = "your answer is C";
         }
         private void radD_CheckedChanged(object sender, EventArgs e)
         { label1.Text = "your answer is D";
         }
              private void button1_Click(object sender, EventArgs e)
              {if(radD.Checked)//判断是否选中D选项
               { MessageBox.Show("回答正确"); }
                 else
                  { MessageBox.Show("回答错误!"); }
                  }

在这里插入图片描述

在这里插入图片描述

2.CheckBox控件[复选框按钮]一次可以选多个CheckBox控件.
(1.)常见属性:获取或设置CheckBox的状态:CheckState[Checked:选中状态,Indetermine:不确定状态,Unchecked:未选中状态],Checked:该控件已经选中.
(2)常见事件:CheckedChange,CheckedStateChanged.
eg.模拟考试管理系统的多选题
在工具栏拖4个CheckBox[分别命名为:cbA,cbB,cbC,cbD,Text分别为:A.学习c语言.B.学习c++,C.学习c#,D.学习数据结构],再拖个button[Text:提交答案],加个label.再双击分别点击每个CheckBox,进入代码区如下:

private void cbA_CheckedChanged(object sender, EventArgs e)
{     label2.Text = "your answer is ";
    if (cbA.Checked)
      label2.Text += "A";
      if (cbB.Checked)
       label2.Text += "B";
       if (cbC.Checked)
      label2.Text += "C";
      if (cbD.Checked)
      label2.Text += "D";
  }
  private void cbB_CheckedChanged(object sender, EventArgs e)
  {
  label2.Text = "your answer is ";
     if (cbA.Checked)
        label2.Text += "A"; 
         if (cbB.Checked)
          label2.Text += "B";
             if (cbC.Checked)
  label2.Text += "C";
   if (cbD.Checked)
    label2.Text += "D";
  }
   private void cbC_CheckedChanged(object sender, EventArgs e)
   {label2.Text = "your answer is ";
      if (cbA.Checked)
      label2.Text += "A";
  if (cbB.Checked)
          label2.Text += "B";
         if (cbC.Checked)
  label2.Text += "C";
   if (cbD.Checked)
    label2.Text += "D";
}
 private void cbD_CheckedChanged(object sender, EventArgs e)
{label2.Text = "your answer is ";
      if (cbA.Checked)
      label2.Text += "A";
 if (cbB.Checked)
          label2.Text += "B";
         if (cbC.Checked)
  label2.Text += "C";
   if (cbD.Checked)
    label2.Text += "D";
}
 private void button4_Click(object sender, EventArgs e)
 {    if (cbA.CheckState.ToString()=="Checked"&&cbB.CheckState.ToString()=="Checked"&&cbC.CheckState.ToString()=="Unchecked"&&cbD.CheckState.ToString()=="Checked")
 MessageBox.Show("回答正确!");
else
  MessageBox.Show("回答错误");
  }

在这里插入图片描述

3.MenuStrip[菜单栏控件]
1.举例菜单栏的事件
2.添加分割线,
3快捷键,[属性]
4快捷键的属性设置,
5添加图片
6,整个菜单栏的事件(如统计菜单栏的点击次数]

[1]工具箱->.MenuStrip->键入值
如下:手动键入值
添加分割线:
右键你要添加的哪个要添加分割线,如关闭和关闭解决方案之间要添加分割线,右键关闭解决方案,->插入->separator(分割线)
添加快捷键:任意点击个你要添加的快捷键->属性->shortcutkeys->任选ctr+F17

在这里插入图片描述
添加图片:
->e,g(新建)->右键设置图像或者属性里的Image,->导入->你导入的图片就会在新建的前面[像个小图标]
统计菜单点击次数(在编辑里键入了一个统计点击主菜单次数

 int count = 0;
 private void menuStrip1_ItemClicked(object sender, ToolStripItemClickedEventArgs e)
 { count++;
 }
 private void 统计点击主菜单次数ToolStripMenuItem_Click(object sender, EventArgs e)
 { MessageBox.Show(count.ToString());
 }

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

3.ToolStrip[工具栏]
eg.
(1)设button:点击退出
(2)插入一些标准项什么的像保存什么的;
->在工具箱拖一个ToolStrip->[在form2下方]->举个列子(点一个button)->将这个button的Text改成退出设置->双击这个刚刚建立的button进入代码区

private void toolStripButton3_Click(object sender, EventArgs e)
{ this.Close();//实现了点击工具栏上的toolStripButton3退出
}

在这里插入图片描述
4.**StatusStip[状态栏]**位于form的左下方;
eg.1.显示鼠标坐标
2.显示时间

1.显示鼠标坐标
双击StatusStrip->在statusstrip有四个选项->选ToolStripStatusLabel[用于显示指示状态的文本或图标]->单击界面->点进form的事件->找到mousemove事件双击点击->进入代码区

 private void Form2_MouseMove(object sender, MouseEventArgs e)
 {toolStripStatusLabel1.Text = e.X.ToString()+"  "+e.Y.ToString();//下图的103 162就是鼠标的坐标,鼠标一移动就会改变
 }

在这里插入图片描述

2.显示时间

private void Form2_Load(object sender, MouseEventArgs e)
{ 
toolStripStatusLabel1.Text = DateTime.Now.ToString();//显示时间
}

在这里插入图片描述
5.ContextMenuStrip[右键菜单(按右键可以使用)
eg.窗体设置属性,右键关联,通过菜单关联.
在工具栏->找到ContextMenuStrip双击->
6.ListBox控件[列表框控件]:用于显示一组字符窜,
常见属性:Items,
方法:Item.Add(); Item.Clear();
1.获取集合中项的总数量
Count属性可以获取集合中项的总数量
eg

int total=listBox1.Items.count;

2.清除listbox中的所有项

listBox1.Items.Clear();

3.向listBox控件中添加选项[可以调用Add()方法或AddRange()方法]

listBox1.Items.Add("c#");
string[] obj={"c","c++"};
listBox1.Items.AddRasnge(obj);

for example:
在工具栏双击listbox,textbox,两个button[一个button的Text改成:添加,另一个的Text改成删除];->双击第一个添加button->进入写代码区,添加如下内容->双击第二个添加button->进入写代码区,添加如下内容->

 private void button2_Click(object sender, EventArgs e)
 {string name = textBox1.Text;//在textbox中写入东西,按"添加"button会把内容添加到listBox中
 listBox1.Items.Add(name);
 }
 private void button3_Click(object sender, EventArgs e)
 {listBox1.Items.Clear();
 }

在这里插入图片描述

7.ComboBox下拉组合框控件
分为两个部分:顶部是一个允许用户键入列表项的文本框,第二部分时是一个项列表.用户可以在列表中选择;
常见属性:Items[获取一个对象,该对象表示下拉框所包含项的集合].SelectedIndex[获取或设置当前选定项的索引],DataSource,ValueMember,DisplayMember[自己去了解了解]
ComboBox控件中的Items属性可以获取示下拉框所包含项的集合,通过该集合的属性和方法可以获取总数量,移除,添加等操作.
如:
(1)Count属性:可以获取集合中项的树目]
(2)Add()方法:向项列表中添加集合项.
(3)AddRange()方法 :向项列表中添加项的数组
(4)Clear()方法:移除集合项的所有项.
(5)Remove()方法:移除指定的项
(6)RemoveAt()方法:移除指定索引的项
常见事件:
DropDown:显示ComboBox控件的下拉部分时触发事件
SelectedIndexChanged:最常用的事件之一,当改变了控件的列表部分的选项时会引发改事件
TextChanged:该事件在控件Text属性的值发生改变时引发

eg.选择自己的家乡(省,城市,线城市区)
从工具箱拖3个ComboBox,3个label.,具体如下:1.先单击第一个省份的comboBox,在属性Items中手动添加个个省份
接着双击点入第一个comboBox,和第二个ComboBox;添加如下代码;

 private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {    comboBox2.Items.Clear();
            if(comboBox1.SelectedIndex==0)
            { 
             comboBox2.Items.Add("衡阳市");
            }
        //省略其他省份的添加信息
            comboBox2.SelectedIndex = 0;
            }
  private void comboBox2_SelectedIndexChanged(object sender, EventArgs e)
{
            comboBox3.Items.Clear();
            comboBox3.Sorted = true;//自动排序
            if(comboBox1.SelectedIndex==1&&comboBox2.SelectedIndex==2)
            {
                comboBox3.Items.Add("蒸湘区");
                // 省略其他的添加
                }
  }

在这里插入图片描述

8.ListView控件[列表视图控件,通常用于显示数据,通常用于对这些数据和显示方式进行某些控件,还可以把包含在控件的数据像网络一样显示为行和列,或者显示为一列,或者显示为图标表示.]
常见属性:
Columns:获取控件中显示的所有列标题的集合.
Items:获取控件中的所有项的集合;
SmallImageList:获取或设置ImageList,当项在控件中显示小图标时使用,
LargeImageList:获取或设置ImageList,当项在控件中显示大图标时使用;
View:获取或设置项在控件的显示方式;[5种:LargeIcon,Details,SmallIcon,List,Tile.]

,从工具箱拖个ListView,5个radioButton,1个label[Name,Text,参考下图],2个ImageList;将Name分别修改成:

eg.

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值