菜单项图像和文本显示方式设置
菜单项图像和文本显示方式设置相关的参数主要有三个: ·DisplayStyle //设置是否显示文本和图像 ·ImageScaling //设置显示大图(32*32)还是小图(16*16) ·TextImageRelation //设置文本和图像相对彼此的位置 菜单效果:
菜单项图像和文本显示方式设置相关的参数主要有三个: ·DisplayStyle //设置是否显示文本和图像 ·ImageScaling //设置显示大图(32*32)还是小图(16*16) ·TextImageRelation //设置文本和图像相对彼此的位置 菜单效果:
效果图:
先在代码页面中加入如下代码: 将需要进行拖动和缩放的控件的MouseDown、MouseLeave、MouseMove事件处理程序分别设置为MyMouseDown、MyMouseLeave、MyMouseMove即可,例如:
先添加上边语句,然后编写控件MouseMove事件的处理程序(下边代码移动PictureBox控件):
在Windows 应用程序编程中,我们经常会在Form1中创建一个Form2实例,并调用其Show方法显示窗体,之后又试图在Form2实例中访问Form1,这时就要用到Form类的Show方法的一个重要的重载函数: 下边代码在Form1中创建一个Form2实例并显示: 它表示实例化一个Form2,并将其所有者设置为Form1,好了,下边看下怎么在Form2实例中访问Form1(button1为Form2上一个按钮): 是不是非常容易!需要注意的是不能在Form2的构造函数中访问Owner属性,否则将引发NullReferenceException错误,提示"未将对象引用设置到对象的实例"!
ConsoleApplication1代码: WindowsFormsApplication1代码: 效果图:
有时我们需要在已有的 Windows 窗体的基础上新建一个窗体,这时只需要复制一个原来的窗体再进行修改即可,复制步骤很简单: 1.在解决方案资源管理器中右击Form1.cs,选择复制; 2.在解决方案资源管理器中右击项目,选择粘贴,出现新窗体"副本 Form1.cs"; 3."副本 Form1.cs"重命名为Form2.cs; 4.打开Form2.cs代码页面,将类名称以及构造函数名称修改为Form2; 5.打开Form2.Designer.cs,将类名称修改为Form2; 一定要注意修改4、5两步内容,否则vs将报错: 项“obj\Debug\WindowsApplication1.Form1.resources”在“Resources”参数中指定了多次。“Resources”参数不支持重复项。
在一个WinForm界面上有一个按钮(button1)和一个文本框(textBox1),在button1的点击事件处理程序中创建一个新的线程,并期望在新线程中更改textBox1的值,代码如下: 运行程序点击按钮后出错,提示:线程间操作无效: 从不是创建控件“textBox1”的线程访问它。下边我们用Invoke解决这一问题: 更新成功!
将Label控件的AutoSize属性设置为true时,控件会自动调整其大小以适应其内容的大小,在没有人为换行时,文本将始终在一行中并且超过Label控件所在容器右边界的部分将显示不出来。将Label控件的AutoSize属性设置为false时,文本会自动换行,但超过Label控件高度的内容将显示不出来。最始的解决方法是:Label控件的Dock属性设置为DockStyle.Fill,AutoSize属性设置为false。
要让一个Windows Form的TextBox显示多行文本就得把它的Multiline属性设置为true。 这个大家都知道,可是当你要在代码中为Text属性设置多行文本的时候可能会遇到点麻烦:) 你往往会想到直接付给一个含有换行符"\n"的字符串给Text属性: 可是实际运行的时候你却发现它始终不会换行,显示的结果为"First LineSecond LineThirdLine"。 其实主要是因为TextBox运行在Windows上。Windows能够显示的换行必须由两个字符组成:carriage return & line feed,也就是必须是"\r\n"。如果只是"\n"在Windows中不能显示为换行的,这与Linux/Unix等其他的操作系统不一样。所以上边如果把"\n"替换成"\r\n"就可以了。…