文档库 最新最全的文档下载
当前位置:文档库 › CSharp_重写tabControl控件

CSharp_重写tabControl控件

CSharp_重写tabControl控件
CSharp_重写tabControl控件

TabControl控件

——实现双击标签关闭选项卡

主要功能:

1、双击选项卡标签关闭选中的选项卡

2、新建带指定窗体的选项卡

3、新建带指定控件的选项卡

步骤:

1、新建windows控件集合项目

2、拖动一个tabControl控件到Panel上,将其Dock属性设置为Fill

3、删除默认的两个选项卡

4、编写功能代码

using System;

usingSystem.Collections.Generic;

https://www.wendangku.net/doc/0412187892.html,ponentModel;

usingSystem.Drawing;

usingSystem.Data;

usingSystem.Linq;

usingSystem.Text;

usingSystem.Windows.Forms;

namespaceBaseControl

{

public partial class GridTabControl : UserControl

{

publicGridTabControl()

{

InitializeComponent();

}

///

/// 设置指定选项卡的标签

///

/// 选项卡索引(从0开始)

/// 标签字符

public void SetTabName(int index, string lable)

{

if (this.tabControl1.TabPages.Count < index + 1)

return;

this.tabControl1.TabPages[index].Text = lable;

}

///

/// 添加一个加载一个窗体的选项卡

///

///

///

public void AddOneTabWithForm(string lable,Formfrm)

{

TabPage tab = new TabPage();

https://www.wendangku.net/doc/0412187892.html, = "tabPage" + this.tabControl1.TabPages.Count.ToString();

tab.Text = lable;

frm.TopLevel = false;//设置窗体为非顶级控件

tab.Controls.Add(frm);

frm.Dock = DockStyle.Fill;

//frm.Anchor = (AnchorStyles.Bottom | AnchorStyles.Left | AnchorStyles.Right | AnchorStyles.Top);//会看不到关闭按钮

frm.FormBorderStyle = FormBorderStyle.None;//取消显示窗体标题栏,包括最大、最小、关闭窗体按钮

this.tabControl1.TabPages.Add(tab);

frm.Show();//添加窗体的时候必须有这个东西,不然不会显示窗体

/* 说明:

* 如果在选项卡中关闭窗体,窗体会消失,但选项卡仍然存在!

*

*/

}

///

/// 添加一个加载一个控件的选项卡

///

///

///

public void AddOneTabWithControl(string lable, Control ctrl)

{

TabPage tab = new TabPage();

https://www.wendangku.net/doc/0412187892.html, = "tabPage" + this.tabControl1.TabPages.Count.ToString();

tab.Text = lable;

tab.Controls.Add(ctrl);

ctrl.Dock = DockStyle.Fill;//使控件停靠在父容器中

//ctrl.Anchor = (AnchorStyles.Bottom | AnchorStyles.Left | AnchorStyles.Right | AnchorStyles.Top);//设置添加的控件跟随tabControl大小变化而变化

this.tabControl1.TabPages.Add(tab);

}

///

/// 双击选项卡将其关闭

///

///

///

private void tabControl1_DoubleClick(object sender, EventArgs e) {

TabPage tab = this.tabControl1.SelectedTab;

this.tabControl1.TabPages.Remove(tab);

}

}

}

VB教程:文本框(TextBox)

VB教程:文本框(TextBox) 2、文本框(TextBox) 作用:用于输入、编辑文本或用于输出、显示文本。 (1)常用属性 Text——表示用户输入的内容。 例:Label1.Caption=Text1.Text 将Text1控件接收用户输入的数据通过Label1控件显示出来。 multiline ——设置文本框能否输入和显示多行文本。 true —可输入、显示多行文本 False—限制所有的文本在一行内显示(缺省)。 scrollbars——是否需要滚动条(只有在multiline属性设置为true时)。 =0 没有。 =1 有水平。 =2 有垂直。 =3 水平、垂直都有。 注意:multiline属性和scrollbars属性只能在设计时进行设置,不能在代码中赋以新值。SelStart——表示用户选中一段文字的起始位置。第一个字符位置为0。利用SelStart属性可以实现字符串查找功能。 SelLength——表示用户选中文字的长度。 SelText——表示用户选中文字的内容。 例:0123456789 这时:SelStart=5,SelLength=4,SelText="5678" PasswordChar——设置是否在文本框中显示用户键入的字符。 如果该属性设置了某一字符,那么无论在文本框中输入什么(即无论Text属性值是什么),都只显示设置的该字符,例如,如果将PasswordChar的属性设置为字符“*”,那么文本框中的文本都以“*”显示,最终用户无法知道文本的内容,所以该属性起到了口令的作用。(2)常用方法: SetFocus——使当前控件获得输入焦点,即将光标从其他位置移动到文本框中。 焦点(focus)代表接收用户鼠标或键盘输人的能力,对象(窗体和控件)获得焦点通常称之为“聚焦”。当对象获得焦点时,可接收用户的输入。 (3)主要事件 主要事件有Change、KeyPress、LostFocu(失去焦点,即光标离开)等。 (4)例子: 例1:见教材P103。 1)控件的属性设置 控件属性设置 CommandButton (Name) Command1 Caption “查找” Height 495 Left 3000 Top 2400 Width 1335 TextBox (Name) Text1

Winform之TextBox边框底色重绘实例

TextBox边框及底色重绘实例 本实例通过继承TextBox类对TextBox边框及底色进行重绘,本实例实现了TextBox四个边的边框重绘,其他单边的重绘可依照此方式进行扩展。先来看一下具体效果。 1.设计时TextBox边框线。 2.新增的属性用于对边框底色及边框宽度进行设置,FocusHotTrack=false时不对TextBox进行重绘,即此时就是MS提供的TextBox。

3.运行时效果界面 具体代码如下: Windows API : [DllImport("User32.dll")] public static extern IntPtr GetWindowDC(IntPtr hWnd); [DllImport("User32.dll")] public static extern IntPtr ReleaseDC(IntPtr hWnd, IntPtr hdc); 注:此处API可用可不用。 实现类: 说明: 重绘TextBox边框实现过程是:将TextBox加入到一个Panel中,当获取焦点时在Panel 上绘制一个矩形框,同时绘制一个1像素的TextBox边框。添加Panel的用途是为TextBox 绘制外边框,因为当TextBox边框线大于1像素的时候,会覆盖编辑区,引起绘制的边框的变形,为了能根据需要设定边框线的宽度,使用Panel来添加外边框线。 using System; using System.Collections.Generic; using https://www.wendangku.net/doc/0412187892.html,ponentModel; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace Sam.WinUI.Controls { ///

///

TextBox控件

TextBox控件 在Visual Basic 操作界面中,TextBox(文本框)控件所代表的图标如图一: 图一 TextBox 控件主要用来显示文本或用来输入文本,如Windows 登陆时的“口令”窗口,或者记事本的整个编辑区域。 双击工具箱中的文本框控件或者单击文本控件,然后用鼠标在VB 的工作区域拖拉,就可以创建文本框了。如图二: 图二 文本框控件的默认名称为TextX(X为1、2、3,等等),命名规则为TxtX(X为用户自定义的名字,如TxtShow、TxtFont、TxtColor ,等等) 一、文本框控件的主要属性: 1、Text(文本)属性: 本控件最重要的属性,用来显示文本框中的文本内容,可以在界面设置时指定,如图三: 图三 也可以在程序中动态修改,程序代码规则: 文本框控件名.Text = "欲显示的文本内容" 如要在一个名为TxtFont 的文本框控件中显示“隶书”字样,那么输入代码: TxtFont.Text = "隶书" 习题一:创建一个文本框(TxtContent)用来显示文本;按钮一(Cmd1),点击时文本框内

容变为“跟我来学VB神童教程”;按钮二(Cmd2),点击时文本框内容清空(也就是没有内容)。 答案:见答案区。 2、SelText(选中文本)属性: 本属性返回或设置当前所选文本的字符串,如果没有选中的字符,那么返回值为空字符串即""。 请注意,本属性的结果是个返回值,或为空,或为选中的文本。 一般来说,选中文本属性跟文件复制、剪切等剪贴板(在VB 中,剪贴板用Clipboard 表示)操作有关,如要将文本框选中的文本拷贝到剪贴板上: Clipboard.SetText 文本框名称.SelText(注意,本行没有表示赋值的等号。) 要将剪贴板上的文本粘贴到文本框内: 文本框名称.SelText = Clipboard.GetText(注意,本行有表示赋值的等号。) 例:一个文本框(TxtContent),按钮一(CmdCopy)用于复制文本框中的选中文本;按钮二(CmdPaste)用于将剪贴板上的内容粘贴到文本框内。 按钮一: Private Sub CmdCopy_Click() Clipboard.SetText TxtContent.SelText End Sub 按钮二: Private Sub CmdPaste_Click() TxtContent.SelText = Clipboard.GetText End Sub 3、SelStart 与SelLength 属性: SelStart ,选中文本的起始位置,返回的是选中文本的第一个字符的位置。 SelLength ,选中文本的长度,返回的是选中文本的字符串个数。例如:文本框TxtContent 中有内容如下: 跟我一起学习VB 神童教程 假设选中“一起学习”四个字,那么,SelStart 为 3 ,SelLength 为 4 。 4、MaxLength(最大长度)属性: 本属性限制了文本框中可以输入字符个数的最大限度,默认为0 ,表示在文本框所能容纳的字符数之内没有限制,文本框所能容纳的字符个数是64K ,如果超过这个范围,则应该用其他控件来代替文本框控件。 这跟Windows 中用记事本打开文件一样,当文件过大,系统会自动调用写字板来打开文件,而不是用记事本。 文本框控件MaxLength 属性既可以在界面设置过程中予以指定,如图四:

跟我学vb--第3课时TextBox的使用

第3课时 TextBox的使用 一、教学目标 1、了解TextBox控件的应用 2、掌握TextBox控件的主要属性 3、了解TextBox控件的主要事件 二、重点难点 重点: 1、TextBox控件的主要属性 难点: 1、TextBox控件的主要事件 2、运用TextBox控件设计一个简单 TextBox的应用 文本框控件在工具箱中的名称为TextBox,在VB中,可以使用文本框控件输入、输出数据。 Windows系统的"搜索文件夹"、计算器等程序中都应用了文本框控件。

TextBox的主要属性: (1)Text属性:字符串类型。 返回或设置文本框中显示的内容。 例如:Text1.text=”年年有余” (2)MultiLine属性:布尔型。 当MultiLine属性为True时,文本框可以输入或显示多行文本。

(3)Passwordchar属性:字符串类型。 当MultiLine属性值为False时,该属性可以用于口令输入。如果把 Passwordchar属性设置为一个字符,如星号(*),则在文本框中键入字符时,只显示星号,不显示键入的字符。 (4)ScrollBars属性:数值型。 该属性用于确定文本框是否带滚动条。有以下4种选择: 0-None 没有滚动条 1-Horizontal 只有水平滚动条 2-Vertical 只有垂直滚动条 3-Both 同时具有水平和垂直滚动条 只有当MultiLine属性值为True时,文本框才显示滚动条。 TextBox的事件和事件过程: 1、事件: 我们先来了解一下什么是事件.事件的含义很广泛,最常见的是鼠标事件,包括鼠标移动,鼠标左右键的单击双击,鼠标位于窗口的位置等。 在程序设计中,事件是指由用户操作触发或由系统触发,能被特定对象所识 别并作出响应的动作。 文本框除了支持鼠标的Click、DblClick事件外,还支持Change、GotFocus、LostFocus、KeyPress等事件。本节课,我们先学习Change事件。 2、事件过程:处理事件的步骤。 事件过程由对象名、下划线和事件名组合而成。例如:命令按钮command1 的鼠标单击事件过程为: Private Sub Command1_Click() ...... End Sub (1)Change事件:当用户向文本框输入新的内容,或在程序代码中对文本框的Text属性进行赋值从而改变了文本框的Text属性时,将触发Change事件。(2)示例:建立两个文本框,名称分别为:t1、t2。运行时,用户在文本框t1 中输入内容的同时,文本框t2显示相同的内容。 程序代码: Private Sub t1_Change() t2.Text=t1.Text End Sub 程序运行 作业(界面如下图所示):

c#控件textbox禁止粘贴及快捷键

//In C# 禁止textbox右键粘贴的代码 public class NoCopyTextBox : System.Windows.Forms.TextBox { ContextMenu noContext = new ContextMenu(); public NoCopyTextBox() { this.ContextMenu = noContext; } private void InitializeComponent() { } protected override bool ProcessCmdKey(ref Message msg, Keys keyData) { if (keyData == (Keys.Control | Keys.C) || keyData == (Keys.Control | Keys.V)) { MessageBox.Show("不能粘贴,复制"); return true; } else return base.ProcessCmdKey(ref msg, keyData); //return false; } } 最终的解决方法是将textbox的属性值ShortcutsEnabled设为False。这个既屏蔽了右键也屏蔽了ctrl+v txtPassword.MaxLength = 30 ;//输入框最多输入30位 C#_为WinForm窗体定义功能快捷键 这里的快捷键并非系统全局快捷键。仅是普通的当窗体在焦点内是发生。有很多种方法,这里列举几种项目中使用到的方法。 Alt+*(一般控件快捷键) 这个比较简单,只需为该控件的Text属性声明时加上”(&A)”,”(&D)”之类的标识,例如一个Button按钮的Text属性为:this.btnOK.Text=”确定(&A)”; Ctrl+*(组合键) 当在某个窗体上按下一个组合键时发生。常用的如:打印(Ctrl+P),保存(Ctrl+S)…等等。 首先需设置窗体的KeyPreview(确定窗体上控件的键盘事件是否已向窗体注册)属性设置为True 然后只需在窗体的KeyDown事件中做相应业务处理。

该使用TextBox.Text+=还是TextBox.AppendText

技术分析- 该使用TextBox.Text+=还是TextBox.AppendText? 前几天有一个网友在贴吧提出了在阻塞UI线程时TextBox.Text属性和TextBox.AppendText 存在差异的问题(https://www.wendangku.net/doc/0412187892.html,/p/3221290195),引起了我的兴趣,决定一探究竟。 1.源代码分析 TextBox.AppendText的实现比较简单,直接调用的父类TextBoxBase.AppendText,源代码如下: 它临时将输入点设置到文本的最后,然后设置SelectedText属性。SelectedText最终调用的是SetSelectedTextInternal,实现代码如下:

使用的是windows消息EM_SETSEL。 而TextBox.Text属性的设置则比较复杂,从TextBox到TextBoxBase再到Control层层调用,主要的实现代码在Control类之中: 然后转到了Control.WindowText:

可以看出最终其调用的是win32函数SetWindowText。根据MSDN文档,SetWindowText使用的是WM_SETTEXT消息。 2.测试 为了追踪最终的消息调用,建立了一个WinForm工程,测试按钮的主代码如下: 使用Sleep实现对UI线程的阻塞。测试结果表明,使用AppendText方法,字符串会立即显示,而是用Text属性,必须在阻塞完成之后才能显示出来。 调用Application.DoEvents()后,两个字符串都会立即显示。 使用WH_CALLWNDPROC钩子监视对窗口消息函数的调用,使用IMessageFilter接口监视消息队列,监视结果如下: 不调用Application.DoEvents:

文本框控件(TextBox)的常用属性

1.03、文本框控件(TextBox)的常用属性 属性说明(Name)文本框控件的名称 Alignment 设置Caption属性文本的对齐方式, 取值为: 0 左对齐 1 右对齐 2 中间对齐 Appearance 是否用立体效果绘制,取值为: 0 平面 1 3D(立体) BackColor背景颜色,可从弹出的调色板选择。 BorderStyle 设置边界样式,取值为: 0 None(无边界线) 1 FixedSingle(固定单线框) CauseValidation 该控件获得焦点时,失去焦点的控件的Validate事件是否发生。取值为:True 发生 False 不发生 DataField获得或设置一个值,将控件绑定到当前记录的一个字段DataFormat返回数据格式对象,用于该部件的可绑定性(打开属性页) DataMember获得或设置一个值,为数据连接描述数据成员 DataSource设置一个数值,指出数据控件通过它将当前控件绑定到数据库DragIcon该对象在拖动过程中鼠标的图标 DragMode 该对象的拖动模式,取值为: 0 Manual(手动) 1 Automatic(自动) Enabled 用于设定是否对事件产生响应,取值为: True 可用 False 不可用,在执行程序时,该对象用灰色显示,并且不响应任何事件 Font字型,可从弹出的对话框选择字体,大小和风格ForeColor前景颜色,可从弹出的调色板选择。 Height文本框控件的高度 HelpContextID指定一个对象的缺省帮助文件上下文标识符 HideSelection 当控件失去焦点时选定文本是否不加强显示。取值为:True 不加强显示,此为默认值 False 加强显示

Visual Studio2010 TextBox属性

名称说明 AcceptsReturn 获取或设置一个值,该值指示在多行 TextBox控件中按 Enter 键时,是在控件 中创建一行新文本还是激活窗体的默认按 钮。(继承自TextBox。) AcceptsTab 获取或设置一个值,该值指示在多行文本框 控件中按 Tab 键时,是否在控件中键入一 个 Tab 字符,而不是按选项卡的顺序将焦 点移动到下一个控件。(继承自 TextBoxBase。) AccessibilityObject 获取分配给该控件的AccessibleObject。 (继承自Control。) AccessibleDefaultActionDescr iption 获取或设置控件的默认操作说明,供辅助功 能客户端应用程序使用。(继承自 Control。) AccessibleDescription 获取或设置辅助功能客户端应用程序使用 的控件说明。(继承自Control。) AccessibleName 获取或设置辅助功能客户端应用程序所使 用的控件名称。(继承自Control。) AccessibleRole 获取或设置控件的辅助性角色(继承自 Control。) AllowDrop 获取或设置一个值,该值指示控件是否可以 接受用户拖放到它上面的数据。(继承自 Control。) AltHTML基础结构。 Anchor基础结构。(重写Control.Anchor。) Application 获取一个Application对象,该对象表示 TextBox的创建者。 AutoCompleteCustomSource 获取或设置在AutoCompleteSource属性 设置为CustomSource 时使用的自定义 System.Collections.Specialized.String Collection。(继承自TextBox。) AutoCompleteMode 获取或设置控制自动完成如何作用于 TextBox的选项。(继承自TextBox。) AutoCompleteSource 获取或设置一个值,该值指定用于自动完成 的完整字符串的源。(继承自TextBox。) AutoScrollOffset 获取或设置一个值,该值指示在 ScrollControlIntoView中将控件滚动到 何处。(继承自Control。) AutoSize 获取或设置一个值,该值指示当更改分配给 控件的字体时,是否自动调整控件的高度。 (继承自TextBoxBase。)

文本框tetbo控件

文本框t e t b o控件 Document number【SA80SAB-SAA9SYT-SAATC-SA6UT-SA18】

C#窗体控件简介-文本框控件 在希望用户输入程序员在设计阶段不知道的文本(如用户的姓名)时,应使用文本框。文本框的主要用途是让用户输入文本,用户可以输入任何字符,也可以限制用户只输入数值。 文本框(TextBox)的作用是实现程序与用户的交互,获取用户输入的信息或者向用户显示文本。 文件框的属性和事件 CharacterCasing:确定文本框中的大小写设置。 ScrollBars:指定文本框内容比较多时,是否显示滚动条。 MaxLength:指定文本框中输入的最大字符数。 Multiline:表示是否可在文本框中输入多行文本。 PasswordChar:作为密码框时,文本框中显示的字符。 ReadOnly:设置文本框是否只读。 Text:与文本框相关头联的文本。 KeyPress:文本框内,按任意键时触发的事件。 TextChanged:文本框内容发生改变触发的事件。 TextBox提供了3种样式的输入:单行、多行和密码。输入内容比较多时,设置Multiline属性为True,可以调整TextBox的宽度,实现多行输入。如果文本框的内容比较保密,设置PasswordChar属性为“*”,输入的内容就会以“*”显示。 TextBox控件的属性 名称 描述 CausesValidation 当控件的这个属性设置为true,且该控件 获得了焦点时,会引发两个事件: Validating 和 Validated。可以处理这 些事件,以便验证失去焦点的控件中 数据的有效性。 这可能使控件永远都不能获得焦点。 下面会讨论相关的事件 CharacterCasing

文本框控件

任课教师授课教案 课程名称可视化编程应用基础授课时间9月5日--- 9月9日授课班级2016级计算机应用专业任课教师杨正伟 课题项目2.1 文本框控件 课型新课教学时数 2 教学方法与 手段 讲授,举例分析 教学目标1、掌握文本框的常用属性; 2、掌握文本框控件的基本用法。 主要教学内容 1、演示学生成绩管理系统的封面。唤起学生对以前的相关知识的记忆。 2、问题用英文属性回答。 (制作要求:仿照封面,制作有自己独特风格、版面合理的系统封面,写清大标题)。 Visual Basic 操作界面中,TextBox(文本框)控件所代表的图标如图一: 图一 TextBox 控件主要用来显示文本或用来输入文本,如Windows 登陆时的“口令”窗口,或者记事本的整个编辑区域。 双击工具箱中的文本框控件或者单击文本控件,然后用鼠标在VB 的工作区域拖拉,就可以创建文本框了。如图二:

图二 文本框控件的默认名称为TextX(X为1、2、3,等等),命名规则为TxtX(X为用户自定义的名字,如TxtShow、TxtFont、TxtColor ,等等) 一、文本框控件的主要属性: 1、Text(文本)属性: 本控件最重要的属性,用来显示文本框中的文本内容,可以在界面设置时指定,如图三: 图三 也可以在程序中动态修改,程序代码规则: 文本框控件名.Text = "欲显示的文本内容" 如要在一个名为TxtFont 的文本框控件中显示“隶书”字样,那么输入代码: TxtFont.Text = "隶书" 2、SelText(选中文本)属性: 本属性返回或设置当前所选文本的字符串,如果没有选中的字符,那么返回值为空字符串即""。 3、SelStart 与SelLength 属性: SelStart ,选中文本的起始位置,返回的是选中文本的第一个字符的位置。 SelLength ,选中文本的长度,返回的是选中文本的字符串个数。例如:文本框TxtConte nt 中有内容如下: 4、MaxLength(最大长度)属性: 本属性限制了文本框中可以输入字符个数的最大限度,默认为0 ,表示在文本框所能容纳的字符数之内没有限制,文本框所能容纳的字符个数是64K ,如果超过这个范围,则应该用其他控件来代替文本框控件。 这跟Windows 中用记事本打开文件一样,当文件过大,系统会自动调用写字板来打开文件,

相关文档
相关文档 最新文档