首页 > 开发 > 综合 > 正文

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

2024-07-21 02:28:22
字体:
来源:转载
供稿:网友

  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) 按键编译并执行。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表