搜档网
当前位置:搜档网 › winform(C#)解决顶级窗体文本框部分选中、部分删除、部分文本内容替换问题

winform(C#)解决顶级窗体文本框部分选中、部分删除、部分文本内容替换问题

winformC屏幕右下角弹出消息框自动消失

winform C#屏幕右下角弹出消息框,自动消失 private void button2_Click(object sender, EventArgs e) { Form1 frmShowWarning = new Form1();//Form1为要弹出的窗体(提示框), Point p = new Point(Screen.PrimaryScreen.WorkingArea.Width-frmShowWarning.Width, Screen.PrimaryScreen.WorkingArea.Height); frmShowWarning.PointToScreen(p); frmShowWarning.Location = p; frmShowWarning.Show(); for (int i = 0; i <= frmShowWarning.Height; i++) { frmShowWarning.Location = new Point(p.X, p.Y - i); Thread.Sleep(10);//将线程沉睡时间调的越小升起的越快 } } 如果要让提示窗过一段时间慢慢的消失,则可以在Form1中放一个timer计时器,设定他执行的频率为2000,Form1的load事件中timer1.Enable=true,当此弹出框load过2秒后timer1开始工作,在timer1事件中代码: private void timer1_Tick(object sender, EventArgs e) { timer1.Enabled = false; for (int i = 0; i <= this.Height; i++) { Point p = new Point(this.Location.X, this.Location.Y + i);//弹出框向下移动消失 this.PointToScreen(p);//即时转换成屏幕坐标 this.Location = p;// new Point(this.Location.X, this.Location.Y + i); System.Threading.Thread.Sleep(10);//线程睡眠时间调的越小向下消失的速度越快。 } this.Close();//记得关闭此弹出框哦。OK } 如果想让弹出窗,过了半分钟开始渐渐透明一直到关闭,又想在透明阶段鼠标移上去弹出窗显示不透明则操作如下: 1、在弹出窗上添加两个timer控件。执行代码如下: timer2的事件中: /// <summary> /// /// 判断鼠标是不是还在弹出框上,如果不是则timer1又可以开始工作了 /// </summary> /// <param name="sender"></param>

C#WinForm布局方式

C#WinForm布局⽅式 ⼀、默认布局 ★可以加panel,也可以不加; ★通过⿏标拖动控件的⽅式,根据⾃⼰的想法布局。拖动控件的过程中,会有对齐的线,⽅便操作; ★也可选中要布局的控件,在⼯具栏中有对齐⼯具可供选择,也有调整各个控件⼤⼩的⼯具。 注:分层:右键点击控件。可以选择置于顶层或置于顶层。 锁定控件:当部分布局完成,为了操作失误,把布局好的打乱,可以选中布局好的控件,右键,锁定控件,这样布局好得控件就不可以随意拖动了。 ⼆、边界布局 ★属性Anchor:定义某个控件绑定到容器的边缘。当控件锚定到某个边缘时,与指定边缘最接近的控件边缘与指定边缘之间的距离将保持不变。 ★Dock属性:⼀般配合panel使⽤ Top:靠上,⾼度不变,左右(宽度)拉伸(拉动窗体时) Bottom:靠下,⾼度不变,左右拉伸(拉动窗体时) Fill:填充整个区域 Left:靠左,宽度不变,上下拉伸(拉动窗体时) Right:靠右,宽度不变,上下拉伸(拉动窗体时) 三、流式布局(Flowlayoutpanel) 也是⼀个panel,与普通panel的区别是它⾥⾯的控件会按照⼀定的⽅向流(布局) ★属性FlowDirectiaon:LeftToRight从左到右 TopDawn从上往下 RightToLeft从右到左 BottomUp从下往上 四、⽹格布局(表格布局TablelayPanel) 默认两⾏两列,可以⾃⼰添加⾏或列。 做好表格后,可以往表格⾥⾯添加控件。 五、卡⽚布局(TabControl) 即选项卡,如下图: 六、分割布局(SplitContainer) ★属性orientation:调整分割⽅式,确定拆分器是⽔平的还是垂直的 Vertical:垂直;Horizontal:⽔平的 ★分割线在窗体启动后,也是可以拖动的 分割布局效果图如下:

winform 单选框用法

winform 单选框用法 WinForm单选框(RadioButton)用于在一组选项中选择一个选项。它提供了以下用法: 1. 添加单选框控件: ```c# RadioButton radioButton1 = new RadioButton(); radioButton1.Text = "Option 1"; radioButton1.Location = new Point(10, 10); groupBox1.Controls.Add(radioButton1); RadioButton radioButton2 = new RadioButton(); radioButton2.Text = "Option 2"; radioButton2.Location = new Point(10, 40); groupBox1.Controls.Add(radioButton2); ``` 2. 获取选中的单选框: ```c# if (radioButton1.Checked) { // Option 1 被选中 } else if (radioButton2.Checked) { // Option 2 被选中 } ```

3. 通过事件处理程序响应选中状态变化: ```c# radioButton1.CheckedChanged += new EventHandler(radioButton_CheckedChanged); private void radioButton_CheckedChanged(object sender, EventArgs e) { RadioButton radioButton = (RadioButton)sender; if (radioButton.Checked) { // 单选框的选中状态发生变化 } } ``` 4. 设置默认选中项: ```c# radioButton1.Checked = true; ``` 5. 使用GroupBox创建选项组: ```c# GroupBox groupBox1 = new GroupBox(); groupBox1.Text = "Options"; groupBox1.Location = new Point(10, 10); this.Controls.Add(groupBox1); ``` 以上为WinForm单选框的基本用法,通过设置选项的文本、

Winform基础

Winform基础 Winform基础 今天开始我们为⼤家逐渐的介绍Winform的知识。 先介绍三个概念: 1)⼯具箱:添加控件复制对齐 2)属性(以窗体或Button为例):如何更改属性常⽤属性(name)Visibale Enabled Location Size Text等3)事件:当事件发⽣的时候,.net框架会帮助我们执⾏⼀个⽅法。叫事件处理⽅法。 属性也可以通过代码来赋值。 MessageBox类 Winform是在窗体上创建,在资源管理器中跟之前我们学过的在控制台中⽂件上有什么区别呢?如下图: 图⼀、窗体⽂件和控制台⽂件差别 图⼆、添加两个按钮,及其它们的属性 图三、Winform中的排版⼯具 属性: 拖⼊⼀个按钮;修改其属性值 Ctrl+W+P 可以打开控件的属性窗⼝; 可以设置控件⾥⾯显⽰的内容; 修改控件的名字的; 改变控件背景颜⾊的; 事件: 在属性窗⼝⾥点击闪电图标,就可以找到这个控件的很多事件,直接双击就可以添加代码了 按钮的点击事件; 图四、添加⼀个按钮点击事件,弹出消息 事件: 窗体的单击⿏标的时候发⽣; 在窗体上双击⿏标的时候发⽣; 在窗体上按下⿏标的时候就发⽣; 在⿏标进⼊控件可见的部分时候发⽣ 此处代码参考上⾯的添加按钮的单击事件。

图五、练习题⽬ 图六、三连击 事件 ⿏标离开可见部分的时候发⽣ ⿏标移动的时候发⽣ ⿏标抬起的发⽣ 图七、利⽤MouseMove事件获取⿏标的坐标 属性 设置背景图⽚样式 图⼋、添加图⽚ 今天的内容介绍了⼀⼩部分winform中的常⽤属性还有事件。感兴趣的朋友可以根据软件上的提⽰⾃⼰动⼿做些有意思的内容。下⼀篇⽂章当中,我将对winform做更加细致的介绍,敬请期待。 作者近期⽂章列表: C#基础教程(完全免费,献给代码爱好者的最好礼物。注:本作者分享⾃⼰精⼼整理的C#基础教程,⽆任何商业⽬的。 希望与更多的代码爱好者交流⼼得,也请⾼⼿多多指点) ⾯向过程 ⾯向对象 GDI+ HTML概述

c#WinForm窗体之间传值的几种方式(小结)

c#WinForm窗体之间传值的⼏种⽅式(⼩结) 前⾔ ⼩编最近维护⼀个Winfrom窗体,是项⽬中CS端的主窗体,很多⼦窗体需要从主窗体获取值,同时⼦窗体还需要给主窗体回传值,下⾯来给⼤家介绍⼀下。 正⽂ 本⽂中以主窗体为frmMain,⼦窗体为frmGroup ,两窗体之间的传值来做⽰例。 ⽅式⼀:使⽤公共静态变量传值 主窗体frmMain中代码 public partial class frmMain : Form { //声明⼯位ID 为公共静态变量 public static string terminalID = ""; //给静态变量赋值 terminalID = "q13bh01-bh12"; } ⼦窗体frmGroup中代码 private void frmGroup_Load(object sender, EventArgs e) { this.txtTerminalID.Text= frmMain.terminalID.Trim(); //可以再赋值给静态成员,⽅便其他窗体调⽤ frmMain.terminalID = "q13bh01-bh11"; } 特点:双向传值,实现简单 缺点:静态变量在类加载的时候分配内存,存储于⽅法区,⼀般不会被销毁,在系统不够内存情况下会⾃动回收静态内存,这样就会引起访问全局静态错误。 ⽅式⼆:使⽤公共变量传值 主窗体frmMain中代码 public partial class frmMain : Form { //声明⼯位ID 为公共变量 public string terminalID = ""; //给变量赋值 terminalID = "q13bh01-bh12"; //单击‘⾏为'按钮的时候会给窗体传值 private void btnGroup_Click(object sender, EventArgs e) { frmGroup frmGro = new frmGroup(); //变量传值,注意顺序写在ShowDialog()⽅法之前 frmGro .stationID = this.terminalID; frmGro .ShowDialog(); } } ⼦窗体frmGroup中代码 public partial class frmGroup : Form { //定义公共属性 public string stationID = ""; } 特点:单向传值,只能主窗体给⼦窗体传值,实现简单 ⽅式三:使⽤委托传值 先来看⼦窗体frmGroup中代码 namespace Siemens.Simatic.GUIClient.MESClient {

C# WinForm多线程开发

C# WinForm多线程开发 一Thread类库 Windows是一个多任务的系统,如果你使用的是windows 2000及其以上版本,你可以通过任务管理器查看当前系统运行的程序和进程。什么是进程呢?当一个程序开始运行时,它就是一个进程,进程所指包括运行中的程序和程序所使用到的内存和系统资源。而一个进程又是由多个线程所组成的,线程是程序中的一个执行流,每个线程都有自己的专有寄存器(栈指针、程序计数器等),但代码区是共享的,即不同的线程可以执行同样的函数。多线程是指程序中包含多个执行流,即在一个程序中可以同时运行多个不同的线程来执行不同的任务,也就是说允许单个程序创建多个并行执行的线程来完成各自的任务。 一关于Thread的说明 在.net framework class library中,所有与多线程机制应用相关的类都是放在System.Threading 命名空间中的。其中提供Thread类用于创建线程,ThreadPool类用于管理线程池等等,此外还提供解决了线程执行安排,死锁,线程间通讯等实际问题的机制。如果你想在你的应用程序中使用多线程,就必须包含这个类。Thread类有几个至关重要的方法,描述如下:Start():启动线程 Sleep(int):静态方法,暂停当前线程指定的毫秒数 Abort():通常使用该方法来终止一个线程 Suspend():该方法并不终止未完成的线程,它仅仅挂起线程,以后还可恢复。 Resume():恢复被Suspend()方法挂起的线程的执行 线程入口使程序知道该让这个线程干什么事,在C#中,线程入口是通过ThreadStart代理(delegate)来提供的,你可以把ThreadStart理解为一个函数指针,指向线程要执行的函数,当调用Thread.Start()方法后,线程就开始执行ThreadStart所代表或者说指向的函数。ThreadState在各种情况下的可能取值如下: Aborted:线程已停止 AbortRequested:线程的Thread.Abort()方法已被调用,但是线程还未停止 Background:线程在后台执行,与属性Thread.IsBackground有关 Running:线程正在正常运行 Stopped:线程已经被停止 StopRequested:线程正在被要求停止 Suspended:线程已经被挂起(此状态下,可以通过调用Resume()方法重新运行)SuspendRequested:线程正在要求被挂起,但是未来得及响应 Unstarted:未调用Thread.Start()开始线程的运行 WaitSleepJoin:线程因为调用了Wait(),Sleep()或Join()等方法处于封锁状态 二Winform中使用的thread 首先可以看看最直接的方法,也是.net 1.0下支持的方法。但请注意的是,此方法在.net 2.0以后就已经是一种错误的方法了。 [csharp] view plain copy 在CODE上查看代码片派生到我的代码片 public partial class Form1 : Form

C# winform 常用控件大全

1、窗体 (2) 2、Label 控件 (4) 3、TextBox 控件 (4) 4、RichTextBox控件 (6) 5、NumericUpDown 控件 (7) 6、Button 控件 (8) 7、GroupBox 控件 (8) 8、RadioButton控件 (8) 9、CheckBox 控件 (9) 10、ListBox 控件 (9) 11、ComboBox 控件 (11) 12、CheckedListBox 控件 (11) 13、PictureBox 控件的使用 (11) 14、Timer 控件 (12) 15、ProgressBar控件和TrackBar控件 (12) 16、HScrollBar 控件和VScrollBar控件的使用 (14) 17、OpenFileDialog 控件 (14) 18、SaveFileDialog 控件 (15) 19、FontDialog 控件 (15) 20、ColorDialog控件 (15) 21、PrintDialog控件和PrintDocument 控件 (16) 22、用户自定义对话框 (16) 23、菜单控件 (16) 25、MDI 应用程序设计 (17) 26、键盘事件处理 (18) 27、鼠标事件处理 (19) 28、排列窗体上的控件 (19)

1、窗体 1、常用属性 (1)Name属性:用来获取或设置窗体的名称,在应用程序中可通过Name属性来引用窗体。 (2)WindowState属性:用来获取或设置窗体的窗口状态。取值有三种:Normal (窗体正常显示)、Minimized (窗体以最小化形式显示)和Maximized(窗体以最大化形式显示)。 (3)StartPosition属性:用来获取或设置运行时窗体的起始位置。其取值及含义如表9-1 所示。默认的起 始位置是WindowsDefaultLocation。 (4)Text属性:该属性是一个字符串属性,用来设置或返回在窗口标题栏中显示的文字。 (5)Width属性:用来获取或设置窗体的宽度。 (6)Height属性:用来获取或设置窗体的高度。 (7)Left属性:用来获取或设置窗体的左边缘的x坐标(以像素为单位)。 (8)Top属性:用来获取或设置窗体的上边缘的y坐标(以像素为单位)。 (9)ControlBox属性:用来获取或设置一个值,该值指示在该窗体的标题栏中是否显示控制框。值为true 时将显示控制框,值为false时不显示控制框。 (10)MaximizeBox属性:用来获取或设置一个值,该值指示是否在窗体的标题栏中显示最大化按钮。值 为true时显示最大化按钮,值为false时不显示最大化按钮。 (11)MinimizeBox 属性:用来获取或设置一个值,该值指示是否在窗体的标题栏中显示最小化按钮。值 为true时显示最小化按钮,值为false时不显示最小化按钮。 (12)AcceptButton 属性:该属性用来获取或设置一个值,该值是一个按钮的名称,当按Enter 键时就相 当于单击了窗体上的该按钮。 (13)CancelButton 属性:该属性用来获取或设置一个值,该值是一个按钮的名称,当按Esc 键时就相当 于单击了窗体上的该按钮。 (14)Modal 属性:该属性用来设置窗体是否为有模式显示窗体。如果有模式地显示该窗体,该属性值为 true;否则为false。当有模式地显示窗体时,只能对模式窗体上的对象进行输入。必须隐藏或关闭模式窗 体(通常是响应某个用户操作),然后才能对另一窗体进行输入。有模式显示的窗体通常用做应用程序中的对话框。 (15)ActiveControl属性:用来获取或设置容器控件中的活动控件。窗体也是一种容器控件。 (16)ActiveMdiChild属性:用来获取多文档界面(MDI)的当前活动子窗口。 (17)AutoScroll 属性:用来获取或设置一个值,该值指示窗体是否实现自动滚动。如果此属性值设置为true,则当任何控件位于窗体工作区之外时,会在该窗体上显示滚动条。另外,当自动滚动打开时,窗体的工作区自动滚动,以使具有输入焦点的控件可见。 (18)BackColor属性:用来获取或设置窗体的背景色。 (19)BackgroundImage属性:用来获取或设置窗体的背景图像。 (20)Enabled 属性:用来获取或设置一个值,该值指示控件是否可以对用户交互作出响应。如果控件可- 3 -

CWinForm滚动条控件应用简介

为了程序的‎需要我定义‎了几个变量‎: priva‎t e int m_VBa‎r Widt‎h; priva‎t e int m_HBa‎r Heig‎h t; priva‎t e VScro‎l lBar‎m_VBa‎r; priva‎t e HScro‎l lBar‎m_HBa‎r; 接下来,给变量们做‎了初始值或‎初始设置,代码放到构‎造函数里了‎: this.m_VBa‎r Widt‎h = Syste‎m Info‎r mati‎o n.Verti‎c alSc‎r ollB‎a rWid‎t h; this.m_HBa‎r Heig‎h t = Syste‎m Info‎r mati‎o n.Horiz‎o ntal‎S crol‎l BarH‎e ight‎; this.Suspe‎n dLay‎o ut(); this.m_VBa‎r = new VScro‎l lBar‎(); this.m_HBa‎r = new HScro‎l lBar‎(); this.setSc‎r llBa‎r s(); this.m_VBa‎r.Scrol‎l += new Scrol‎l Even‎t Hand‎l er(this.VBar_‎S crol‎l); this.m_HBa‎r.Scrol‎l += new Scrol‎l Even‎t Hand‎l er(this.HBar_‎S crol‎l); this.Contr‎o ls.Add(this.m_VBa‎r); this.Contr‎o ls.Add(this.m_HBa‎r); this.Resum‎e Layo‎u t(true);

相关主题