2023年11月26日发(作者:)
(更新时间)2021年11⽉18⽇Winform2021秋招Winform⾼频⾯试题
Winform常见笔⾯试题
1. 如何设置窗体页⾯的默认提交按钮?
设置Form的AcceptButton属性,将⽤户按Enter时,就相当于单击了AcceptButton属性指定的按钮,就会引发它的Click事件。
2. 怎么让⼀个窗体在运⾏时,只能打开⼀个?
1)可以通过遍历Application的OpenedForms集合,从中如果找到了该Form,将其激活即可
2)给该Form定义静态创建⽅法,除⾮该页⾯已经关闭或释放,否则直接返回该实例,不重复创建
public static Form1 frm;
//静态构造⽅法
public static Form1 CreateInstance()
{
if (frm== null || osed)
frm= new Form1();
return frm;
}
3. Form中有多个按钮,如何做到让它们都响应同⼀个单击事件处理程序,显⽰它们各⾃的名称信息?
先定义⼀个实现该效果的事件处理程序:
Private void Btn_Click(object sender,EventArgs e)
{
Button btn=(Button)sender;
($”点击的按钮是:{}”);
}
然后订阅按钮的单击事件,
如Btn1按钮的订阅:+=Btn_Click;
2)Form2 f2=new Form2();
ent=this;(这⾥的this指Form1,假设当前页就是Form1)
();
6. Winform中,Form之间传值⽅式有哪些?
(1)通过Tag属性
(2)通过构造函数(在要接收值的Form页代码后台,定义⼀个带参数的构造函数)
(3)在接收值的Form代码后台⽂件中,定义⼀个public的变量
(4)通过事件参数传值
7. Winform中,怎么实现Form2中点击打开按钮,打开Form1,输⼊⽂本,再点击Form1中的“确定”按钮,把输
⼊的值显⽰到Form2的⽂本框中?
⾸先⾃定义⼀个事件参数TextBoxArgs:
Public class TextBoxArgs:EventArgs
{
public string TxtValue{get;set}
Public TextBoxArgs(string val)
{
TextValue=val;
完成!
8. 在Winform应⽤程序中, 与 有什么不同?
** ()表⽰退出应⽤程序,()表⽰关闭当前Form。
⼀般只有当Form是启动窗体时,它们才会有⼀样的效果,如果是⾮启动窗体,()只是关闭当前Form⽽已。
9. 在Winform中,我们发现在⼀个Form相关的cs⽂件有两个,它们的类名都是⼀样的,只是代码后台类⽂件中
的class之前有partical修饰⽽已,这是为什么?
C# 2.0可以将类、结构、接⼝的定义拆分到两个或多个源⽂件中,⽤partial关键字修饰。这⾥也是这个道理。
Form分为两个类⽂件,其实还是只⼀个类,⼀个⽂件名是 表⽰Form的UI代码⽂件,其中的代码是⾃动⽣成的,⼀般不建
议去修改;另⼀个以.cs结尾的是后台⽂件⽂件,我们可在其中⾃⼰代码。等到编译运⾏时,系统会⾃动将两部分合成⼀个类。
10. 如何在关闭窗体时,可以取消关闭?
在窗体的Form_Closing事件中,⾸先显⽰询问消息框,当⽤户点击“是”才执⾏关闭,当点击“否”,则取消关闭,实现⽅式如下:
private void Form1_Closing(object sender,FormClosingEventArgs e)
{
If((“您确定要关闭该页吗?”,”关闭提⽰”, ,
on)==)
=true;
}
11. DataGridView中添加了⼀个ComboBox列,如何使⽤?
如果DataGridView是要绑定数据的话,⾸先设置这个列的DataPropertyName,如果该列对应的数据源中的列是编号的话,就设置该编号列
的列名或属性名;
然后在页⾯的Load事件中,在绑定DataGridView的数据源之前,先获取该列,指定该下拉框列的DataSource.
绑定下拉框列的数据源:
private void pTop_MouseDown(object sender, MouseEventArgs e)
{
point = on;//按住的点
isMove = true;
}
private void pTop_MouseMove(object sender, MouseEventArgs e)
{
Point pointNew;
if ( == && isMove)
使⽤DataBing可以实现⾃动绑定,为Form定义⼀个实体模型,将控件的属性与实体模型中的属性绑定在⼀起,当页⾯控件的属性值改变
时,模型中的属性值⾃动更新,不需要⼀⼀再去获取;当模型中的属性值修改时,控件的属性值也会⾃动更新。
Form页⾯ 控件绑定:
Form1_Load事件处理程序:
UserInfo userInfo=null;
然后在Form1的Load事件中绑定数据源:
yMember = “DayName”;
ember = “DayValue”;
urce = GetWeekDayList();
16. Form窗体的常⽤事件有哪些?
Form的常⽤事件主要是:Load(加载窗体时发⽣)、FormClosing(正在关闭时还⽰关闭)、Activated(窗体被激活时)、
SizeChanged(Size属性更改时)、Resize(调整窗体⼤⼩时)、LocationChanged(Location属性更改时)
17. 计时器如何实现动态时间
这个计时器是基于UI的,可以修改控件的。⾸先,直接在Form上拖控件Timer,设置Enabled=true(程序运⾏计时器⽴即运⾏);然后设置时
间间隔:Interval 1000(ms),表⽰每隔1s执⾏⼀次。
Location=new (48, 37);
};
(label1);
}
这样就将⼀个Label控件添加到了Form中。
20. 怎样将⼀个Form显⽰在Panel之中?
将Form1作为⽗窗体,在窗体上放⼀个Panel控件,将Form2显⽰在Panel之中。
⾸先,要将Form2的TopLevel设置为false,因为顶级窗体不能显⽰在其他控件之中。
其次,将Form2的FormBorderStyle设置为:。⽆边框。
Form2添加到Panel的代码如下:
();//移除所有控件
Form2 frm2 = new Form2 ();
frm2 .TopLevel = false;
frm2 .FormBorderStyle = ;
(frm2 )
frm2 .Show();
24. 怎么设置StatusStrip控件中项之间的分隔线?
StatusStrip控件中没有分隔线的项,那么 如果各项之间要显⽰分隔线,怎么办呢?答案很简单。
在StatusStrip中添加⼀个StatusLabel⼦项,将它的BorderSides改成Left或Right即可。
25. 如何根据提供的值列表,设置CheckedListBox中项的勾选状态?
假设提供的值列表是List valueList
public static void SetCheck(CheckedListBox cblItems, List valueList)
{
foreach (string str in valueList)
{
for (int i = 0; i < ; i++)
{
if (mText([i]) == str)
其实这⾥我们仍然使⽤CheckEdit控件来实现,⽰例如下:
tyle = ;
此外,必须确保所设定的所有单选按钮设置RadioGroupIndex相同的索引编号。
29. 在DevExpress中,如何修改SimpleButton的背景⾊?
要对simplebutton按钮控件设置背景⾊,除了给其Appearance下的BackColor属性赋值之外,还需要将ButtonStyle的值,设置为除
Default和Office2003之外的其它值,背景⾊才会起效,否则没有任何改变。⽐如将ButtonStyle为Flat。
30. 在DevExpress中,怎样让TextEdit只能输⼊6位数字?
⾸先,将TextEdit的 MaskType设置为:Numeric,
然后,将Edit Mask改为:“######”即可。
度条控件) 17. DXValidationProvider(验证控件)
28. DevExpress Winform 如何实现单选按钮?


发布评论