习题5参考解答
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 控件中的各项显示方式的属性是 V iew 。
2. 判断题
1) 控件就是属性、方法和事件的集合封装体。
( 对 )    2) TextBox 控件只能用于单行文本的输入。控件只能用于单行文本的输入。
( 错 )    3) 通过RichTextBox 控件只能够与RTF 文件进行交互操作。    ( 错 )    4) CheckBox 控件的Checked 属性与CheckState 属性的值始终是相同的。 
( 错 )    5) Tool T ip Tip 组件用于显示某指定控件的自定义提示信息的。
( 对 )
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=V ScrollBars=Vertical; Multiline=True ertical; 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 事件。
button0、button1、button2、button3、button4、buttonClear 、buttonEqual 、buttonAdd 、buttonSub 
textBox 
图Ex5-5-2 窗体界面
图Ex5-5-1  窗体界面
完整代码如下:
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 = ; 
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 = ; 
} 
if (myCal == calculateType.sub) 
{ 
textBox.Text = Convert.ToString(x - y); 
myCal = ; 
} 
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; 
一个ListV iew 控件,页面布局及各控件属性如图Ex5-5-3所示。
在【解决方案资源管理器】中,将imageList1控件中的两个图标文件添加到应用程folder.ico 和doc.ico 。
代码文件中添加命名空间:using System.IO InitializeComponent(); PopulateTreeView(); private void PopulateTreeView() TreeNode rootNode; 
treeView1 Dock :Fill 
ImageList :imageList1 
imageList1 Images :
添加两个图标,分别用于指示文件夹和文件于指示文件夹和文件
splitContainer1 Dock :Fill listView1 Dock :Fill View :Det ails 
SmallImageList :imageList1 Columns :
添加三列,分别设置Text 属性
为Name 、Type 、Last Modif
i ed ied 图Ex5-5-3  “资源管理器”设计界
{ 
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) 添加treeV iew1的NodeMouseClick事件,使单击treeV iew1中某个节点时,用该节点的内容来填充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()) 
listview控件在哪里{ 
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) 按<F5>键编译并执行。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。