
WinFrom面试题
WinFrom面试题
微软MVP Eleven
这个作者很懒,什么都没留下…
展开
-
2021-11-24 WinFrom面试题 在DevExpress中,怎样让TextEdit只能输入6位数字?
首先,将TextEdit的 MaskType设置为:Numeric,然后,将Edit Mask改为:“######”即可。原创 2021-11-24 08:45:31 · 32805 阅读 · 0 评论 -
2021-11-24 WinFrom面试题 在DevExpress中,如何修改SimpleButton的背景色?
要对simplebutton按钮控件设置背景色,除了给其Appearance下的BackColor属性赋值之外,还需要将ButtonStyle的值,设置为除Default和Office2003之外的其它值,背景色才会起效,否则没有任何改变。比如将ButtonStyle为Flat。...原创 2021-11-24 08:44:44 · 32759 阅读 · 0 评论 -
2021-11-24 WinFrom面试题 DevExpress Winform 如何实现单选按钮?
在DevExpress中已经看不到RadioButton控件,只有RadioGroup,但它却不是我们想要的单选按钮。其实这里我们仍然使用CheckEdit控件来实现,示例如下:CheckEdit.Properties.CheckStyle = DevExpress.XtraEditors.Controls.CheckStyles.Radio;此外,必须确保所设定的所有单选按钮设置RadioGroupIndex相同的索引编号。...原创 2021-11-24 08:44:12 · 32624 阅读 · 0 评论 -
2021-11-24 WinFrom面试题 DevExpress Winform 常用控件有哪些?
\1. SimpleButton(普通按钮) 2. ButtonEdit(编辑按钮) 3. CheckEdit(复选/单选框)\4. TextEdit(文本框) 5. SpinEdit(数值选择控件) 6. DateEdit(日期控件)\7. TimeEdit(时间控件) 8. ComboBoxEdit(下拉框) 9. LookUpEdit(下拉列表视图)\10. LayoutControl(排版控件) 11. SplitContainerControl(分割原创 2021-11-24 08:43:40 · 32947 阅读 · 0 评论 -
2021-11-24 WinFrom面试题 如何将Dictionary<int,string>中存储的信息绑定到ListBox中?
因为ListBox的数据源可以是DataTable或List,但Dictionary却不能直接作为它的数据源。但我们可以利用BindingSource来作为连接数据源与控件的桥梁。实现如下:Dictionary<int,string> userList=new Dictionary<int,string>();userList.Add(101,”李明”);userList.Add(102,”刘红”);userList.Add(103,”张三”);//绑定数据 c原创 2021-11-24 08:43:07 · 32627 阅读 · 0 评论 -
2021-11-24 WinFrom面试题 如何根据提供的值列表,设置CheckedListBox中项的勾选状态?
假设提供的值列表是List valueListpublic static void SetCheck(CheckedListBox cblItems, List valueList){foreach (string str in valueList){for (int i = 0; i < cblItems.Items.Count; i++){if (cblItems.GetItemText(cblItems.Items[i]) == str){cblItems.SetItemChe原创 2021-11-24 08:42:33 · 32591 阅读 · 0 评论 -
2021-11-24 WinFrom面试题 怎么设置StatusStrip控件中项之间的分隔线?
StatusStrip控件中没有分隔线的项,那么 如果各项之间要显示分隔线,怎么办呢?答案很简单。在StatusStrip中添加一个StatusLabel子项,将它的BorderSides改成Left或Right即可。原创 2021-11-24 08:42:02 · 32377 阅读 · 0 评论 -
2021-11-24 WinFrom面试题 Winform中如何跨线程修改控件的值?
因为Winform应用程序是单线程的。对于某一个控件来说,只有创建该控件的线程才能修改它的值。对Winform来说,在窗体中拖一个控件,它由程序的主线程创建。因而,如果我们又另开一个线程,那么如果我们想要在这个线程中直接去修改该控件的值,就会报错。那么如果,我们仍然想要改控件的值,该如何做呢?我们可以通过,在这个子线程中,通过this.Invoke() 或 this.BeginInvoke()的方式通过执行委托的方式,在委托里去修改,就可以。代码如下:This.Invoke(new Action((原创 2021-11-24 08:40:50 · 32888 阅读 · 0 评论 -
2021-11-24 WinFrom面试题 Winform布局时,如何实现让Form中的GroupBox的宽度随Form的尺寸调整而自动变化,高度不变?
如果GroupBox与Form的左、上、右是没有间距的,可以直接设置GroupBox控件的Dock属性为:top 即可;如果GroupBox与Form的左、上、右是有一定间距的,那Dock属性就无法做到了,这时就要考虑Anchor属性了,设置GroupBox的Anchor属性为:Left,Top,Right, 然后再调整好控件与Form左、上、右的间距就OK了。...原创 2021-11-24 08:40:11 · 32857 阅读 · 0 评论 -
2021-11-22 WinFrom面试题 怎样将一个Form显示在Panel之中?
将Form1作为父窗体,在窗体上放一个Panel控件,将Form2显示在Panel之中。 首先,要将Form2的TopLevel设置为false,因为顶级窗体不能显示在其他控件之中。 其次,将Form2的FormBorderStyle设置为:FormBorderSyle.None。无边框。 Form2添加到Panel的代码如下:panelPage.Controls.Clear();//移除所有控件 Form2 frm2 = new Form2 ();原创 2021-11-22 21:03:22 · 32987 阅读 · 0 评论 -
2021-11-22 WinFrom面试题 如何在Form加载时,动态添加控件到Form中?
这里以Label为例说明。在Form1的加载加载中:private void Form1_Load(object sender, EventArgs e){Label label1=new Label(){Text=“欢迎来到这里!!!”,ForeColor = System.Drawing.Color.Red,Name=”label1”,AutoSize=true,Location=new System.Drawing.Point(48, 37);};this.Controls.A原创 2021-11-22 21:02:49 · 32781 阅读 · 0 评论 -
2021-11-22 WinFrom面试题 Winform中,控件开发分为哪些?
在Winform中,自定义控件可分为三种:1)复合控件:将现有标准控件组合起来成一个新控件如public class UserCardControl:UserControl{ }2)扩展控件:继承于现有控件,扩展新的特性或重绘外观如:public class ButtonEx:Button { }3)自定义控件:完全地自定义一个控件。该控件继承于Control,重写OnPaint()实现控件外观绘制。Public class NewControl:Control{ }...原创 2021-11-22 21:02:15 · 34625 阅读 · 0 评论 -
2021-11-22 WinFrom面试题 Windows.Forms.Timer 计时器如何实现动态时间
这个计时器是基于UI的,可以修改控件的。首先,直接在Form上拖控件Timer,设置Enabled=true(程序运行计时器立即运行);然后设置时间间隔:Interval 1000(ms),表示每隔1s执行一次。最后,写每隔Interval设置的时间间隔执行的Tick事件即可。private void timer1_Tick(object sender, EventArgs e){this.label1.Text = DateTime.Now.ToString(“yyyy-MM-dd HH:mm:原创 2021-11-22 21:01:43 · 32931 阅读 · 0 评论 -
2021-11-22 WinFrom面试题 Form窗体的常用事件有哪些?
Form的常用事件主要是:Load(加载窗体时发生)、FormClosing(正在关闭时还示关闭)、Activated(窗体被激活时)、SizeChanged(Size属性更改时)、Resize(调整窗体大小时)、LocationChanged(Location属性更改时)...原创 2021-11-22 21:01:10 · 32886 阅读 · 0 评论 -
2021-11-22 WinFrom面试题 ComboBox控件绑定枚举类型如何实现?
比如定义一个星期的枚举类型public enum Weekdays { 星期一,星期二,星期三,星期四,星期五,星期六,星期日 } //定义WeekDayInfo实体类 public class WeekDayInfo{public int DayValue{get;set;}public string DayName{get;set;}} //将枚举类型中的值转换成List public List GetWeekDayLi原创 2021-11-22 21:00:39 · 32823 阅读 · 0 评论 -
2021-11-22 WinFrom面试题 Form中的控件与数据可以实现双向绑定吗?
使用DataBing可以实现自动绑定,为Form定义一个实体模型,将控件的属性与实体模型中的属性绑定在一起,当页面控件的属性值改变时,模型中的属性值自动更新,不需要一一再去获取;当模型中的属性值修改时,控件的属性值也会自动更新。模型基类,实现INotifyPropertyChanged接口,可以通知客户端属性性已更改public class ViewModelBase : INotifyPropertyChanged { public event PropertyChange原创 2021-11-22 21:00:06 · 32560 阅读 · 0 评论 -
2021-11-22 WinFrom面试题 实现一个能动态添加多层次结构的TreeView节点的递归方法(以菜单数据为例)
private void AddTreeNodes(List mList, TreeNode pNode, int pId) { var subList = mList.Where(m => m.ParentId == pId); foreach(var child in subList) { TreeNode node= new TreeNode ();原创 2021-11-22 20:59:34 · 32745 阅读 · 0 评论 -
2021-11-22 WinFrom面试题 在Form中,实现无边框窗体拖动功能?
首先:将Form的FormBorderStyle设置为None.然后,在工具箱中拖一个Panel控件到Form中,并将Panel控件的Dock设置为:Top.这时的Form因为没有边框,是不能拖动的,接下来,我们来实现拖动效果:先注册Panel的MouseDown和MouseMove事件, Point point = new Point(); bool isMove = false;//是否移动 private void pTop_MouseDown(object sen原创 2021-11-22 20:58:59 · 32762 阅读 · 0 评论 -
2021-11-22 WinFrom面试题 DataGridView中添加了一个ComboBox列,如何使用?
如果DataGridView是要绑定数据的话,首先设置这个列的DataPropertyName,如果该列对应的数据源中的列是编号的话,就设置该编号列的列名或属性名;然后在页面的Load事件中,在绑定DataGridView的数据源之前,先获取该列,指定该下拉框列的DataSource.绑定下拉框列的数据源:DataGridViewComboBoxColumn colCbo = dgvList.Columns[“colCboName”] as DataGridViewComboBoxColumn;原创 2021-11-22 20:57:25 · 32914 阅读 · 0 评论 -
2021-11-18 WinFrom面试题 如何在关闭窗体时,可以取消关闭?
如何在关闭窗体时,可以取消关闭?在窗体的Form_Closing事件中,首先显示询问消息框,当用户点击“是”才执行关闭,当点击“否”,则取消关闭,实现方式如下:private void Form1_Closing(object sender,FormClosingEventArgs e){If(MessageBox.Show(“您确定要关闭该页吗?”,”关闭提示”, MessageBoxButtons.YesNo, MessageBoxIcon.Question)==DialogResult.No)原创 2021-11-18 21:58:41 · 32578 阅读 · 0 评论 -
2021-11-18 WinFrom面试题 在Winform中,我们发现在一个Form相关的cs文件有两个,它们的类名都是一样的,只是代码后台类文件中的class之前有partical修饰而已,这是为
在Winform中,我们发现在一个Form相关的cs文件有两个,它们的类名都是一样的,只是代码后台类文件中的class之前有partical修饰而已,这是为什么?C# 2.0可以将类、结构、接口的定义拆分到两个或多个源文件中,用partial关键字修饰。这里也是这个道理。Form分为两个类文件,其实还是只一个类,一个文件名是xx.Designer.cs 表示Form的UI代码文件,其中的代码是自动生成的,一般不建议去修改;另一个以.cs结尾的是后台文件文件,我们可在其中自己代码。等到编译运行时,系统会自原创 2021-11-18 21:57:58 · 33142 阅读 · 0 评论 -
2021-11-18 WinFrom面试题 在Winform应用程序中,Appplication.Exit **与** Form.Close有什么不同?
在Winform应用程序中,Appplication.Exit 与 Form.Close有什么不同?** Appplication.Exit()表示退出应用程序,Form.Close()表示关闭当前Form。一般只有当Form是启动窗体时,它们才会有一样的效果,如果是非启动窗体,Form.Close()只是关闭当前Form而已。...原创 2021-11-18 21:57:20 · 32746 阅读 · 0 评论 -
2021-11-18 WinFrom面试题 Winform中,怎么实现Form2中点击打开按钮,打开Form1,输入文本,再点击Form1中的“确定”按钮,把输入的值显示到Form2的文本框中?
Winform中,怎么实现Form2中点击打开按钮,打开Form1,输入文本,再点击Form1中的“确定”按钮,把输入的值显示到Form2的文本框中?首先自定义一个事件参数TextBoxArgs:Public class TextBoxArgs:EventArgs{ public string TxtValue{get;set} Public TextBoxArgs(string val) { TextValue=val;}}在Form1后台声明一个事原创 2021-11-18 21:56:50 · 33129 阅读 · 0 评论 -
2021-11-18 WinFrom面试题 Form之间传值方式有哪些?
Winform中,Form之间传值方式有哪些?(1)通过Tag属性(2)通过构造函数(在要接收值的Form页代码后台,定义一个带参数的构造函数)(3)在接收值的Form代码后台文件中,定义一个public的变量(4)通过事件参数传值...原创 2021-11-18 21:56:12 · 33192 阅读 · 0 评论 -
2021-11-18 WinFrom面试题 将Form2作为子窗体显示在Form1内,如何实现?
将Form2作为子窗体显示在Form1内,如何实现?将Form1的IsMdiContainer属性设置为True;2)Form2 f2=new Form2();f2.MdiParent=this;(这里的this指Form1,假设当前页就是Form1)F2.Show();原创 2021-11-18 21:55:35 · 32957 阅读 · 0 评论 -
2021-11-18 WinFrom面试题 如何让Form的尺寸在运行时不可调整?
如何让Form的尺寸在运行时不可调整?1)首先将Form的FormBoderStyle属性设置为:FixedSingle/Fixed3D/FixedDialog/FixedToolWindow;2)再将Form的MaximizeBox设置为False然后,运行时,Form的大小就不可调整了。原创 2021-11-18 21:55:01 · 32698 阅读 · 0 评论 -
2021-11-18 WinFrom面试题 Form中有多个按钮,如何做到让它们都响应同一个单击事件处理程序,显示它们各自的名称信息?
Form中有多个按钮,如何做到让它们都响应同一个单击事件处理程序,显示它们各自的名称信息?先定义一个实现该效果的事件处理程序:Private void Btn_Click(object sender,EventArgs e){ Button btn=(Button)sender; MessageBox.Show($”点击的按钮是:{btn.Text}”);}然后订阅按钮的单击事件,如Btn1按钮的订阅:Btn1.Click+=Btn_Click;Btn2按钮的订阅:Btn2原创 2021-11-18 21:54:19 · 32816 阅读 · 0 评论 -
2021-11-18 WinFrom面试题 怎么让一个窗体在运行时,只能打开一个?
怎么让一个窗体在运行时,只能打开一个?1)可以通过遍历Application的OpenedForms集合,从中如果找到了该Form,将其激活即可2)给该Form定义静态创建方法,除非该页面已经关闭或释放,否则直接返回该实例,不重复创建 public static Form1 frm; //静态构造方法 public static Form1 CreateInstance() { if (frm== null || frm.IsDisposed)原创 2021-11-18 21:53:40 · 32725 阅读 · 0 评论 -
2021-11-18 WinFrom面试题 如何设置窗体页面的默认提交按钮?
如何设置窗体页面的默认提交按钮?设置Form的AcceptButton属性,将用户按Enter时,就相当于单击了AcceptButton属性指定的按钮,就会引发它的Click事件。原创 2021-11-18 21:52:33 · 32706 阅读 · 0 评论