C#网络应用编程基础练习题与答案(五)

编程|网络

  1. 填空题

  1) 使控件是否可以对用户交互作出响应的属性是 Enabled 。

  2) 控制控件是否显示的属性是 Visible 。

  3) 若要在文本框中输入密码,常指定 PasswordChar 属性。

  4) 若某复选框某时刻CheckState属性的值为Indeterminate,则其属性Checked的值为 Unchecked 。

  5) 使用 Panel 或 GroupBox 控件可以将多个RadioButton控件分为两个单选组。

  6) 若不希望用户在ComboBox控件中编辑文本,则应将属性 DropDownStyle 的属性值设置为DropDownList。

  7) 用于设置MenuStrip控件中某菜单项快捷键的属性是 ShortcutKeys 。

  8) 用于控制ListView控件中的各项显示方式的属性是 View 。

  2. 判断题

  1) 控件就是属性、方法和事件的集合封装体。 ( 对 )

  2) TextBox控件只能用于单行文本的输入。 ( 错 )

  3) 通过RichTextBox控件只能够与RTF文件进行交互操作。 ( 错 )

  4) CheckBox控件的Checked属性与CheckState属性的值始终是相同的。 ( 错 )

  5) ToolTip组件用于显示某指定控件的自定义提示信息的。 ( 对 )

  3. 区别TextBox控件、MaskedTextBox控件、RichTextBox控件的使用场合。

  【解答】

  TextBox控件一般用于单段文本的编辑,可以设置为单行或多行的输入模式,也可以用作密码的输入;MaskedTextBox控件主要用于特定格式的单段文本编辑,在输入文本不符合格式要求的将会触发其MaskInputRejected事件;RichTextBox控件除了具有TextBox的一般文本编辑功能外,还可以进行多段文本的高级编辑功能,如改变文本、段落的显示格式、在文本中查找特定字符和字符串以及与Rtf文件的交互等。

  4. 简要说明CheckBox控件和RadioButton控件的区别。

  【解答】

  CheckBox控件可为用户提供选择功能,常用的是二选一的选择,如“真/假”或“是/否”;但该控件也可以通过属性的设置作三选一的选择。每一个CheckBox所代表的选择都是独立的,若有多个CheckBox控件构成一组选项时,则可以多个同时被选中,相互之间不影响,即复选。RadioButton控件,它与CheckBox控件功能类似,也是用于接收用户的选择,但它是以单项选择的形式出现,即一组RadioButton按钮中只能有一个处于选中状态。一旦某一项被选中,则同组中其他RadioButton按钮的选中状态自动清除。

  5. 设计一个Windows应用程序,窗体上有一个TextBox控件、一个Button控件。要求,每当用户单击按钮时,文本框都会增加一行文字来反映单击的次数,例如“第3次单击按钮”。

  【解答】

  1) 窗体界面如图Ex5-5-1所示;

  2) 窗体中主要控件属性设置如表Ex5-5-1;

表Ex5-5-1 窗体中的主要控件属性

控件

Name属性

功能

其它属性

TextBox控件

textBox1

显示信息

ScrollBars=Vertical; Multiline=True

Button控件

Button1

触发添加信息事件

Button2

触发结束添加事件

  3) 主要事件代码。

  ……
  int i = 1;
  bool Add = true;
  ……private void button1_Click(object sender, EventArgs e)
  {
  if(Add) textBox1.Text += "第" + i + "次单击按钮\r\n";
  i++;
  }
  private void button2_Click(object sender, EventArgs e)
  {
  Add = false;
  }

  6. 编写一段程序,向ListBox控件listBox1中,自动添加10个数,每个数占一项。

  【解答】

  主要代码如下:

  public partial class Form1 : Form
  {
  int m = 1;
  ……
  private void button1_Click(object sender, EventArgs e)
  {
  for (int i = m ; i < m+10; i++)
  {
  listBox1.Items.Add(i);
  }
  m = m + 10;
  }
  }

  7. 参照Windows系统“附件”中的“计算器”,自行编写一个简易的计算器。要求:可以实现由0~4构成的整数的加减运算。

  【解答】

  1) 窗体界面如图Ex5-5-2所示;

  2) 将InputNumber事件作为button0、button1、button2、button3、button4的Click事件。

  完整代码如下:

  using System;
  using System.Collections.Generic;
  using System.ComponentModel;
  using System.Data;
  using System.Drawing;
  using System.Text;
  using System.Windows.Forms;
  namespace Exer2
  {
  public partial class FormCalculator : Form
  {
  enum calculateType { none, add, sub };
  calculateType myCal = calculateType.none;
  int x, y;
  bool isY = false;
  public FormCalculator()
  {
  InitializeComponent();
  textBox.TextAlign = HorizontalAlignment.Right;
  }
  private void InputNumber(object sender, EventArgs e)
  {
  Button num = (Button)sender;
  if (isY)
  {
  textBox.Clear();
  isY = false;
  }
  textBox.Text += num.Text;
  }
  private void buttonEqual_Click(object sender, EventArgs e)
  {
  y = Convert.ToInt32(textBox.Text);
  if (myCal == calculateType.add)
  {
  textBox.Text = Convert.ToString(x + y);
  myCal = calculateType.none;
  }
  if (myCal == calculateType.sub)
  {
  textBox.Text = Convert.ToString(x - y);
  myCal = calculateType.none;
  }
  isY = true;
  }
  private void addButton_Click(object sender, EventArgs e)
  {
  myCal = calculateType.add;
  x = Convert.ToInt32(textBox.Text);
  isY = true;
  }
  private void buttonSub_Click(object sender, EventArgs e)
  {
  myCal = calculateType.sub;
  x = Convert.ToInt32(textBox.Text);
  isY = true;
  }
  private void buttonClear_Click(object sender, EventArgs e)
  {
  textBox.Text = "";
  myCal = calculateType.none;
  isY = false;
  }
  }
  }

  8. 试利用TreeView、ListView等控件实现一个类似“资源管理器”的文档管理程序,用于查看C:\Documents and Settings目录下的文件。

  【解答】

  1) 新建一个名为WindowsControlsExercise的项目,在【解决方案资源管理器】中重命名文件Form1.cs为Explorer.cs,并设置Form1窗体的Text属性为“资源管理器”。

  2) 向窗体中添加一个SplitContainer控件、一个ImageList控件、一个TreeView控件、一个ListView控件,页面布局及各控件属性如图Ex5-5-3所示。

  3) 在【解决方案资源管理器】中,将imageList1控件中的两个图标文件添加到应用程序目录中,分别命名为folder.ico和doc.ico。

  4) 在Explorer.cs代码文件中添加命名空间:using System.IO,并添加构造函数代码如下:

  public Explorer()
  {
  InitializeComponent();
  PopulateTreeView();
  }
  private void PopulateTreeView()
  {
  TreeNode rootNode;
  DirectoryInfo info = new DirectoryInfo(@"C:\Documents and Settings");
  if (info.Exists)
  {
  rootNode = new TreeNode(info.Name);
  rootNode.Tag = info;
  GetDirectories(info.GetDirectories(), rootNode);
  treeView1.Nodes.Add(rootNode);
  }
  }
  private void GetDirectories(DirectoryInfo[] subDirs, TreeNode nodeToAddTo)
  {
  TreeNode aNode;
  DirectoryInfo[] subSubDirs;
  foreach (DirectoryInfo subDir in subDirs)
  {
  aNode = new TreeNode(subDir.Name, 0, 0);
  aNode.Tag = subDir;
  aNode.ImageKey = "folder";
  subSubDirs = subDir.GetDirectories();
  if (subSubDirs.Length != 0)
  {
  GetDirectories(subSubDirs, aNode);
  }
  nodeToAddTo.Nodes.Add(aNode);
  }
  }
  5) 添加treeView1的NodeMouseClick事件,使单击treeView1中某个节点时,用该节点的内容来填充listView1。
  private void treeView1_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
  {
  TreeNode newSelected = e.Node;
  listView1.Items.Clear();
  DirectoryInfo nodeDirInfo = (DirectoryInfo)newSelected.Tag;
  ListViewItem.ListViewSubItem[] subItems;
  ListViewItem item = null;
  foreach (DirectoryInfo dir in nodeDirInfo.GetDirectories())
  {
  item = new ListViewItem(dir.Name, 0);
  subItems = new ListViewItem.ListViewSubItem[]
  {new ListViewItem.ListViewSubItem(item, "Directory"),
  new ListViewItem.ListViewSubItem(item,
  dir.LastAccessTime.ToShortDateString())};
  item.SubItems.AddRange(subItems);
  listView1.Items.Add(item);
  }
  foreach (FileInfo file in nodeDirInfo.GetFiles())
  {
  item = new ListViewItem(file.Name, 1);
  subItems = new ListViewItem.ListViewSubItem[]
  { new ListViewItem.ListViewSubItem(item, "File"),
  new ListViewItem.ListViewSubItem(item,
  file.LastAccessTime.ToShortDateString())};
  item.SubItems.AddRange(subItems);
  listView1.Items.Add(item);
  }
  listView1.AutoResizeColumns(ColumnHeaderAutoResizeStyle.HeaderSize);
  }

  6) 按键编译并执行。

时间: 2024-11-01 08:45:08

C#网络应用编程基础练习题与答案(五)的相关文章

C#网络应用编程基础练习题与答案(九)

编程|网络 1. 简述三类二维坐标系统之间的相同点和区别. [解答] GDI+中的二维笛卡儿坐标系统分为三类:全局坐标系统.页面坐标系统和设备坐标系统. 三类坐标系统的相同点:它们都有坐标原点以及向右和向下的x轴和y轴. 三类坐标系统的区别:全局坐标系统可以进行旋转.平移等操作.页面坐标系统与设备坐标系统都是以设备的左上角为坐标原点,X水平向右为正,Y垂直向下为正.页面坐标系统与设备坐标系统的差异在于X,Y的单位不同:页面坐标系中的X,Y单位可以任意设定,如英寸.毫米等;而设备坐标系中,只有一种

C#网络应用编程基础练习题与答案(一)

编程|网络 1. C/S结构模式与B/S结构模式的主要区别是什么? [解答] 首先,在系统的性能方面.只要拥有可上网的浏览器,就可以使用B/S系统.不过,B/S结构的客户端只能完成浏览.查询.数据输入等简单功能,绝大部分工作要由服务器承担,这就对服务器提出了很高的要求,无形中增加了用户在这一方面的投入.采用C/S结构时,客户端和服务器都承担部分工作,有效利用了客户端和服务器端的资源,使用户不必在硬件上有更多的投入.另外,浏览器页面不便于修改,这为用户定制自己的文件时带来了不便,比如用户想自定义一

C#网络应用编程基础练习题与答案(二)

编程|网络 1. C#支持的数据类型有那些?与C++相比有哪些特点? [解答] C#支持的数据类型有: (1) 值类型 包括:简单类型.结构类型.枚举类型.其中,简单类型又分为:整型.布尔型.字符型.浮点型.小数型. (2) 引用类型 包括:对象类型.类类型.接口.元数据.字符串类型.数组. 与C++相比,C#的主要特点有: 1) C#语言自C/C++演变而来.但是,它是完全按照面向对象的思想来设计的,并保证了类型的安全性. 2) C#简化了C++在类.名称空间.方法重载和异常处理等方面的使用.

C#网络应用编程基础练习题与答案(三)

编程|网络 1. 编写一个控制台应用程序,完成下列功能. 1) 创建一个类,用无参数的构造函数输出该类的类名. 2) 增加一个重载的构造函数,带有一个string类型的参数,在此构造函数中将传递的字符串打印出来. 3) 在Main方法中创建属于这个类的一个对象,不传递参数. 4) 在Main方法中创建属于这个类的另一个对象,传递一个字符串"This is a string.". 5) 在Main方法中声明类型为这个类的一个具有5个对象的数组,但不要实际创建分配到数组里的对象. 6) 写

C#网络应用编程基础练习题与答案(四)

编程|网络 1. 与结构化编程方法相比,面向对象编程有哪些优点? [解答] (1) 以过程为中心和对象为中心的比较 结构化编程方法是以过程为中心的,当面对一个问题时,该方法侧重于问题解决过程的层次结构.面向对象的分析和设计方法侧重于对象.对象具有特定的行为和属性,行为和属性决定了对象与其他对象的交互作用方式,以及对象本身的行为方式. (2) 公开数据和隐藏数据的比较 结构化编程方法对数据和过程仅仅进行简单的包装,这些数据和过程是公开的,或者说程序中的其他代码可以访问这些数据和过程.面向对象的实现

C#网络应用编程基础练习题与答案(六)

编程|网络 1. 简要回答文件和流之间的区别和联系. [解答] 文件(file)和流(stream)即有区别又有联系.文件是在各种媒质上(可移动磁盘.硬盘.CD 等)永久存储的数据的有序集合.它是一种进行数据读写操作的基本对象.通常情况下,文件按照树状目录进行组织,每个文件都有文件名.文件所在路径.创建时间.访问权限等属性. 流是字节序列的抽象概念,例如文件.输入输出设备.内部进程通信管道或者TCP/IP套接字等均可以看成流.流提供一种向后备存储器写入字节和从后备存储器读取字节的方式. 2. D

C#网络应用编程基础练习题与答案(七)

编程|网络 1. 解释正则表达式 <a\s+href\s*=\s*""?([^"" >]+)""?>(.+)</a>各部分代表的含义. [解答] 此正则表达式用于匹配源文件中类似于搜狐新闻的字符串,各部分表示的含义为: \s+ 一个或多个空白字符 href 后接 HTML 定位点中的确切文本 \s* 零个或多个空白字符 = 后接 HTML 定位点中的确切文本 \s* 零个或多个空白字符 ""? 零

C#网络应用编程基础练习题与答案(八)

编程|网络 1. 使用保持连接的方式编写程序,计算各年级平均成绩,并显示结果. [解答] using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.Data.SqlClient; namespace 习

C#网络应用编程基础练习题与答案(十)

编程|网络 1. 组件与控件的主要区别是什么? [解答] 组件是指可重复使用并且可以和其他对象进行交互的对象.组件(component)是靠类实现的.控件是能够提供用户界面接口(UI)功能的组件.换句话说就是,控件是具有用户界面功能的组件. 所有控件肯定都是组件,但并不是每个组件都一定是控件. 2. 控件有几种类型?各有什么特点? [解答] 控件分为:复合.扩展和自定义三类. 复合控件是封装在公共容器内的Windows窗体控件的集合.这种控件有时称为"用户控件",包含的控件称为&quo