搜档网
当前位置:搜档网 › c#TableLyoutPanel控件应用 动态添加控件及事件

c#TableLyoutPanel控件应用 动态添加控件及事件

c#TableLyoutPanel控件应用 动态添加控件及事件
c#TableLyoutPanel控件应用 动态添加控件及事件

C#使用Tablelayoutpanel动态添加button

------2012-04-16 20:17:37

void PanelStartClick(object sender, System.EventArgs e)

{ int line=2;//定义行数

int columns=4;//定义列数

panel.Controls.Clear();//清楚里面的control

Size a =new Size();//new 一个size

a.Width =350;

a.Height=200;

panel.BackColor=Color.Silver;//设置背景yanse

panel.Size=a;

panel.Refresh();//刷新panel

panel.RowCount=line;

panel.ColumnCount=columns;

int width =panel.Width/columns;//定义列宽

int height =panel.Height/line;//定义行高

for(int h=0;h

panel.RowStyles[h].SizeType=SizeType.Absolute;

panel.RowStyles[h].Height=height;

}

// 设置Tablelayoutpanel 的perfence

for(int c=0;c

panel.ColumnStyles[c].SizeType=SizeType.Absolute;

panel.ColumnStyles[c].Width=width;

}

//定义按键

for(int i=0;i

{ Button p =new Button();

https://www.sodocs.net/doc/6217121476.html, ="id"+i;

// p.Text ="DD"+i%columns+"áD"+i/columns;

p.Text ="?áo?:\n"+(i+1);//显示名称

panel.Controls.Add(p,i%columns,i/columns);//put button method add into Tablelayoutpanel

p.Width=width;

p.Height=height;

p.MouseMove+= new MouseEventHandler(getButton );

p.ContextMenuStrip =contextMenuStrip1;//鼠标右键

}

}

c# TableLayoutPanel控件应用动态添加控件及事件

///

/// 调整画面布局

///

///

///

private bool InitializeVideo(int videoNum)

{

//计算行列

int rowcol;

if (videoNum <= 0 || !int.TryParse(Math.Sqrt(videoNum).ToString(), out rowcol))

{

return false;

}

//计算宽高

int WidthHeight = (int)(MainPanel.Width / rowcol);

//重新设置表格

//MainPanel为TableLayoutPanel控件

MainPanel.Controls.Clear();

MainPanel.RowCount = MainPanel.ColumnCount = rowcol;

MainPanel.CellBorderStyle = TableLayoutPanelCellBorderStyle.Single;

MainPanel.Refresh();

for (int i = 0; i < MainPanel.ColumnStyles.Count; i++)

{

MainPanel.ColumnStyles[i].SizeType = SizeType.Absolute;

MainPanel.ColumnStyles[i].Width = WidthHeight;

}

for (int i = 0; i < MainPanel.RowStyles.Count; i++)

{

MainPanel.RowStyles[i].SizeType = SizeType.Absolute;

MainPanel.RowStyles[i].Height = WidthHeight;

}

//添加控件

for (int i = 0; i < videoNum; i++)

{

PictureBox pVideo = new PictureBox();

pVideo.Padding = pVideo.Margin = new Padding(0);

https://www.sodocs.net/doc/6217121476.html, = "pVideo" + i.ToString();

pVideo.Width = pVideo.Height = WidthHeight;

pVideo.Dock = DockStyle.Fill;

pVideo.BackgroundImage = Resources.bg;

pVideo.BackgroundImageLayout = ImageLayout.Stretch;

pVideo.Click += new EventHandler(pVideo_Click);

MainPanel.Controls.Add(pVideo, i % rowcol, i / rowcol);

}

return true;

}

///

/// 点击图像事件

///

///

///

private void pVideo_Click(object sender, EventArgs e)

{

PictureBox pVideo = (PictureBox)sender;

//MessageBox.Show(https://www.sodocs.net/doc/6217121476.html,);

if (MainPanel.GetColumnSpan(pVideo) == 1)

{

//隐藏其它控件

foreach (Control ctr in MainPanel.Controls)

{

if (https://www.sodocs.net/doc/6217121476.html, != https://www.sodocs.net/doc/6217121476.html,)

ctr.Visible = false;

}

pos = MainPanel.GetPositionFromControl(pVideo);

MainPanel.SetCellPosition(pVideo, new TableLayoutPanelCellPosition(0, 0));

MainPanel.SetRowSpan(pVideo, MainPanel.RowCount);

MainPanel.SetColumnSpan(pVideo, MainPanel.ColumnCount);

}

else

{

//显示所有控件

foreach (Control ctr in MainPanel.Controls)

{

ctr.Visible = true;

}

MainPanel.SetCellPosition(pVideo, pos);

MainPanel.SetRowSpan(pVideo, 1);

MainPanel.SetColumnSpan(pVideo, 1);

}

}

VisualStudio_各个控件详解

.NET控件详解 (2011-07-20 22:44:33) 转载 标签:it分类:C#语言 微软的.net控件详解,没有那个比这个更权威的了网址: https://www.sodocs.net/doc/6217121476.html,/QuickStartv20/aspnet/doc/ctrlref/standard/multiview.aspx 参考资料:https://www.sodocs.net/doc/6217121476.html,/QuickStartv20/aspnet/doc/ctrlref/standard/multiview.aspx 网易学院:https://www.sodocs.net/doc/6217121476.html,/special/000915SN/stvs2005.html 参考资料:https://www.sodocs.net/doc/6217121476.html,/tianine5/blog/item/1470aa35f46bad8aa61e1285.html .NET控件命名规范

按功能列出的推荐控件和组件:(windows程序用的控件和组件) 数据显示: DataGridView控件 DataGridView控件提供用来显示数据的可自定义表。使用DataGridView类,可以自定义单元格、行、列和边框。 注意DataGridView控件提供DataGrid控件所不具备的许多基本和高级功能。有关更多信息数据绑定和定位: BindingSource组件 通过提供当前项管理、更改通知和其他服务,来简化将窗体上的控件绑定到数据的过程。

文本编辑: BindingNavigator控件 提供工具栏式的界面来定位和操作窗体上的数据。 TextBox控件 显示设计时输入的文本,它可由用户在运行时编辑或以编程方式更改。 RichTextBox控件 使文本能够以纯文本或RTF 格式显示。 MaskedTextBox控件约束用户输入的格式信息显示(只读): Label 控件显示用户无法直接编辑的文本。 LinkLabel控件 将文本显示为Web 样式的链接,并在用户单击该特殊文本时触发事件。该文本通常是到另一个窗口或网站的链接。 StatusStrip控件 通常在父窗体的底部使用有框架的区域显示有关应用程序的当前状态的信息。ProgressBar控件向用户显示操作的当前进度。 网页显示: WebBrowser控件使用户可以在窗体内导航网页。

MFC中如何动态创建控件并响应其消息

原理: 利用窗体上的消息都会经OnCmdMsg进行路由处理的原理,在这里截获自己动态生成的那些控件,然后通过自定义消息发送出去(带上控件id),经自己的消息处理函数处理即可。 1、定义起始控件ID号,和自定义消息 UINT Start_CtlID = 1980; #define DynamicBtnMessage WM_USER+200 后面动态创建的控件id号会基于Start_CtlID自增; 2、在OnInitDialog中动态创建控件 窗体类中定义:CArray btnArray 以保存动态创建的按钮 int btnw=120;int btnh = 50;//创建*3个button,顺序排列 for (int i=0;i<5;i++) { for (int j=0;j<5;j++) { CString str; str.Format(_T("Cam%d"),Start_CtlID-1980); r.left =100 + (j*btnw); r.top =250 + (i*btnh); r.bottom = r.top + btnh; r.right =r.left + btnw; CButton *btn = CreateButton(Start_CtlID,str,r, BS_FLAT); btn->ShowWindow(SW_SHOW); btnArray.Add(btn); } }

3 在OnCmdMsg中处理控件点击消息 BOOL CFormDlg::OnCmdMsg(UINT nID, int nCode, void* pExtra, AFX_CMDHANDLERINFO* pHandlerInfo) { // 判断传进来的控件id位于动态创建button的id之间,并且命令nCode是控件命令(比如点击事件消息),注:其它系统事件也会走到这个函数里进行分发的。 if (nID>=1980 && nID<=Start_CtlID-1 && CN_COMMAND==nCode) { //发送自定义消息,并附上控件ID PostMessage(DynamicBtnMessage,nID,NULL); } return CDialog::OnCmdMsg(nID, nCode, pExtra, pHandlerInfo); } 4、在自定义消息处理函数中处理点击事件 在BEGIN_MESSAGEMAP和END_MESSAGE_MAP之间加入以下消息映射: ON_MESSAGE(DynamicBtnMessage, &CpngFormDlg::OnDynamicBtnMessage) 在头文件中定义消息响应函数: afx_msg LRESULT OnDynamicBtnMessage(WPARAM wParam, LPARAM lParam); LRESULT CpngFormDlg::OnDynamicBtnMessage(WPARAM wParam, LPARAM lParam) { g_ClickBtnID = (UINT)wParam-1980; if (g_ClickBtnID>=0 && g_ClickBtnID<=100) { CString str; str.Format(_T("button %d is clicked!"),g_ClickBtnID);//获取到点击的是谁 AfxMessageBox(str); } return TRUE; }

基础控件应用与界面设计

广州大学学生实验报告 开课学院及实验室:机械与电气工程学院、计算机楼603B 年月日学院机电年级、专业、班姓名学号 实验课 程名称 高级程序设计实验成绩 实验项 目名称 基础控件应用与界面设计指导老师VisualBasic认知实验 第一部分:熟悉VB6.0集成开发环境 一、实验目的 1.掌握VB6.0的启动与退出。 2.了解VB6.0的集成开发环境,熟悉各主要窗口的作用。 3.掌握窗体中控件对象的建立、选定、调整布局、属性设置和删除等操作方法。 4.掌握在VB6.0中使用帮助的方法。 二、实验内容 1.练习Visual Basic 6.0的启动与退出。 2.熟悉工具箱中的控件。 3.Visual Baisc6.0帮助系统的使用。 三、实验题目 练习一 1.创建一个“标准EXE”应用程序。 方法: 1、启动VB的办法:"开始"→"程序"→"Microsoft Visual Basic 6.0 中文版"→"Microsoft Visual Basic 6.0 中文版" 2、在启动时显示的"新建工程"对话框中单击"打开"就可以实现"创建标准工程" 2.主要窗口的显示与关闭。 方法: 单击每一个窗口上的关闭按钮即可关闭相应窗口。 显示各窗口: (1)对象窗口:单击“视图”菜单栏中“对象窗口”或按Shift+F7。 (2)工具箱:单击“视图”菜单栏中“工具箱”或单击工具栏上的“工具箱”按钮。 工程资源管理器:单击“视图”菜单栏中“工程资源管理器”或 单击工具栏上的“工程资源管理器”按钮或按Ctrl+R组合键。属性窗口:单击“视图”菜单栏中“属性”或单击工具栏上的“属 性”按钮或按F4功能键。 (5)窗体布局窗口:单击“视图”菜单栏中“窗体布局”或单击工具栏上的“窗体布局”按钮。练习二 1、将工具箱中的每一个空间添加到窗体,并识别这些控件。 方法: 1、双击工具箱中的控件,在窗体的中央出现一个系统默认大小的控件。 2、用鼠标单击工具箱中的某个控件,然后在窗体上拖拽鼠标,画出控件。 2.对窗体中的控件,作选定、调整大小、剪切、复制、粘贴、删除和调整布局等操作。 方法: 1、用鼠标在控件拖拽或单击控件选中对象。 2、对已选中的控件,当光标变为双向箭头时拖动鼠标,或在属性窗口 中修改Height和Width属性值来调整控件的大小。 3、对已选中的控件,当光标变为十字箭头时拖动鼠标调整布局。 练习三 1、利用VB帮助系统提供的示例程序,体会VB程序的运行。 方法: 1、在窗体的熟悉窗口中选择“FillColor”属性,然后按键盘上的F1键,打开VB帮助系统,并直接对“FillColor”属性提供帮助。 2、在打开的“FillColor”属性帮助窗口中选择”示例”,可以看到该属性的一段应用实例。复制这段程序到VB代码窗口,单击运行就可以运行这段程序。 3、该程序为在窗体上按下鼠标左键时驱动的事件过程。 四、问题讨论 1.简述Visual Basic 6.0的集成开发环境中各主要窗口的作用。 2.窗口的功能是什么?如何打开属性窗口?如何进行属性设置? 3.代码窗口的作用是什么?如何打开代码窗口? 1、主窗口:标题栏(显示应用程序的名称)、菜单栏(菜单中的命令提供了开发、调试和保存应用程序所需的工具)、工具栏(编辑、标准、窗体编辑器、调试工具); 窗体设计器窗口:应用程序最终面向用户的窗口,对应于应用程序的运行结果,通过控件显示各种图像、数据和图形等; 工程资源管理器窗口:显示建立一个应用程序所需要的文件的清单; 属性窗口:用来设置窗体或窗体中控件属性; 工具箱窗口:用于应用程序的界面设计。 2、窗口的作用:是程序员的“工作台”,让程序员可以直观的建立应用程序。 打开属性窗口:点击视图—选择属性窗口 进行属性设置:窗口中的属性按照字母顺序排列,想要设置哪个属性,把光标移至属性名称的后面直接输入即可。 3、代码窗口的作用:分栏显示当前命令下的代码,让程序员直观的进行编写程序。 打开代码窗口的方法:双击窗体或者按如下步骤:单击视图—选择代码窗口。

Word控件工具箱的使用和实例

Word控件工具箱的使用和实例(多选题制作) 2010-07-27 07:41:48 来源:IT部落窝浏览:4246次 word中的控件工具箱是做什么的,如何使用? Word的控件工具箱在哪里呢?单击菜单“视图——工具栏””项中点“控件工具箱”就可以调出控件工具箱。 Word控件工具箱是做什么的呢?word控件工具箱主要在VBA中窗体内使用,每个控件都是一个工具模块,具体功能通过设置属性和写入VB代码来实现。有些控件也可以在w ord文档中使用。 word控件工具箱其实就是VBA的可视化界面,需要掌握一定的VBA知识,懂一些代码,才能更好的驾驭Word的控件工具箱。 举一个很简单的例子,打开word后,打开控件工具箱,双击命令按钮,页面上就会多出一个Commandbutton,双击“commandbutton”,在end sub上面加这样一行MsgBox 保存退出VBA编辑器,单击一下控件工具箱上第一个钮退出设计模式,现在单击一下页面上的Commandbutton按钮,就会弹出一个提示框 下面我们就利用Word的控件工具箱来制作一道多项选择题。下面是具体操作步骤: 第一步,启动Word,新建一空白文档,输入“计算机的软件系统包括( )”并根据情况设置好字体、字号和颜色。 第二步,依次单击菜单栏中的“视图→工具栏→控件工具箱”命令,在弹出的控件工具箱中选中“复选框”按钮,然后在文档拖拉出一个复选框。 第三步,在拖拉出的复选框(checkbox1)上单击鼠标右键选择属性,打开“属性”对话框,

将其中“名称”修改为“duoxt11”,“Caption”后面的字符修改为题目相应选项字符(如“系统软件”),然后再设置“font”选项设置合适的字体、字号等。其他属性可采用默认值。 第四步,将上面设置好的复选框复制三个,分别将“名称”修改为“duoxt12”、“duoxt13”、“duoxt14”,“Caption”属性分别修改为“应用软件”、“杀毒软件”和“工具软件”。 第五步,选择“控件工具箱”的“命令按钮” ,在文档中添加一个按钮,和上面3中的操作一样将其“名称”修改为“duopd11”,“caption”属性修改为“判断”(也可以修改“font”属性来设置字体、字号等)。然后双击该按钮,进入“VisualBasic编辑器”状态,将下述代码输入到Priv ate Sub Private Sub duopd11_Click()和End Sub代码中间,输入完成后,关闭窗口返回。 If duoxt11.Value = True And duoxt12.Value = True And duoxt13.Value = False And duoxt14.Value = False Then MsgBox "恭喜你,选择正确。", vbOKOnly, "结果" Else If duoxt11.Value = True And duoxt12.Value = False And duoxt13.Value = False And duoxt14.Value = False Or duoxt11.Value = False And duoxt12.Value = True And duoxt13.Value = False And duoxt14.Value = False Then MsgBox "选对了一个,还有一个,再努力一下就胜利了。", vbOKOnly, "提示" Else MsgBox "选择错误!还需要继续努力啊!", vbOKOnly, "提示" End If End If

Android常用控件

《Android基础应用》 Android常用控件 ?本章任务 ?使用Android开发使用时间组件 ?使用Android开发使用进度条组件 ?使用Android开发创建底部选项卡 ?本章目标 ?了解Android的组件层次结构 ?掌握常用的日期时间类控件 ?掌握常用的几个容器组件 1.Android组件的层次结构 UI组件都是View的子类,View有很多子类,它们之间存在树状的继承关系View及其子类结构图

TextView及其子类结构图

ViewGroup及其子类结构图 其下的子类一般作为容器或布局来使用 FrameLayout及其子类结构图 其下的子类通常作为容器或布局来使用

2.时间控件 2.1日期时间选择器 DatePicker组件可用于输入日期,TimePicker组件可用来选择时间,只能输入小时和分,默认12小时制 DatePicker ●使用onDateChangedListener监听器来获取用户的日期选择 ●使用init对组件进行初始化 ●使用getYear,getMonth,getDayOfMonth方法获得用户选择的年,月,日 TimePicker ●使用onTimeChangedListener监听器获取用户的时间选择 ●使用setIs24HourView设置是否以24小时制显示 ●使用getCurrentHour获得当前的小时数 ●使用getCurrentMinute获得当前的分钟数 示例

示例的实现结果

2.2时钟组件 AnalogClock组件用来以表盘的方式显示当前时间,该表只有时针和分针,DigitClock组件以数字的方式显示当前时间可以显示时分秒,由于DigitClock继承TextView,可以使用TextView 的属性 示例

C#.NET中动态添加与删除控件

C#.NET中动态添加与删除控件 数组为共享公用功能的一组控件一起工作提供了便捷的途径。例如,一组控件可能用于显示相关的数据,或者在被点击时提供相关的行为。C#本身并不支持控件数组的建立,但是你可以通过编程复制控件数组的所有功能。本文介绍复制控件数组功能的简单组件的建立。 控件数组的主要用处有: 1,使用相同的名称与索引访问一组控件,允许用编号检索和设置数据项并且在整个数组中重复。这个功能可以使用下面的代码实现。 伪代码 myControl[myIndex].MyProperty = myValue; myControl[myIndex + 1].MyMethod 2,多个对象使用同一个事件处理程序(event handler)处理事件,在这些事件中检索和使用索引,代码如下: 伪代码 private void myControl_Click(System.Object sender, System.EventArgs e) { Messagebox.Show("You have clicked MyControl number " + myControl.Index); } 3,在运行时动态添加或者删除控件,代码如下: 伪代码 for (int i = 1; i < 6; i++) { //插入代码来建立控件并给属性赋值 } C#允许你复制与控件数组相关的一些功能。例如,你能使用委托把多个对象的事件绑定到一个事件处理程序。但是,如果把这些功能合并到一个动态的、容易管理的组件中更加简便。本文将建立有下面特性的组件: ·建立索引和排序控件的集合。将使用按钮集合来演示。 ·一个事件处理程序来处理衍生的按钮的点击事件。 ·使用索引引用控件和成员的代码。 ·给窗体动态添加和删除控件的代码。 建立项目 在本节中将建立并命名一个项目,并给该项目添加一个类。该类将封装实现控件数组的代码。 1、选择File-> New-> Project菜单打开New Project对话框。

控件使用

、控件mscomm32.ocx 的几个重要属性 CommPort:设置并返回通讯端口号。 Settings:以字符串的形式设置并返回波特率、奇偶校验、数据位、停止位PortOpen:设置并返回通讯端口的状态。也可以打开和关闭端口。 Input:从接收缓冲区返回和删除字符。 Output:向传输缓冲区写一个字符串。 InBufferCount:返回接收缓冲区中等待的字符数,该属性在设计时无效,可以把InBufferCount 属性设置为0 来清除接收缓冲区。 InBufferSize:设置并返回接收缓冲区的字节数,接收缓冲区的大小。Rthreshold:产生OnComm 事件之前要接收的字符数。设置Rthreshold 为1,接收缓冲区收到每一个字符都会使MSComm 控件产生OnComm 事件。设置为0(缺省值)则不产生OnComm 事件。 CommEvent:返回最近的通讯事件或错误。该属性在设计时无效,在运行时为只读。只要有通讯错误或事件发生时都会产生OnComm 事件,CommEvent 属性存有该错误或事件的数值代码。CommEvent 属性返回2 表示收到Rthreshold 个字符。该事件将持续产生直到用Input 属性从接收缓冲区中删除数据。 2、实例: 该事例演示如何控制COM口发送命令及如何接收数据。本事例采用轮讯方式。适用于通讯数据 不是很巨大的和要求不是很高速的情况下。 (1)在VFP中,建立一个新的表单 (2)插入文本(命名为TEXT1,用来显示读取的数据) (3)建立Microsoft Communication Control1 控件在工具栏中点插入ole容器控件,选择Microsoft Communication Control 控件(NAMe为mscomm1) (4)建立一个按纽命名为command1 (5)在CHICK属性里下如下代码: **存储变量名字 buffer="" ** 使用COM1。 https://www.sodocs.net/doc/6217121476.html,mPort = 1 **9600 波特,无奇偶校验,8 位数据,一个停止位。 thisform.MSComm1.Settings = "9600,N,8,1" * 告诉控件读入整个缓冲区。 thisform.MSComm1.InputLen = 0 * 打开端口。 thisform.MSComm1.PortOpen = True **将attention 命令送到调制解调器。这是MODEM的状态读取命令 thisform.MSComm1.Output = "ATV1Q0" & Chr$(13) ** CHR(13)是回车符号,用来表示命令结束 **等待数据返回到串行端口。 vv=1 do while .t. Buffer = thisform.MSComm1.Input *从串行端口读"OK" 响应。

VB中动态创建控件

VB中动态创建控件 VB相关技术:https://www.sodocs.net/doc/6217121476.html,/s/blog_5ccce2820100lof8.html 创建数据驱动窗体 所谓数据驱动窗体就是根据所请求的数据的不同生成相应的窗体。举例来讲,假设你现在有一个数据库,其中有些字段必须根据登录者的身份加以显示,授权级别高的用户可以浏览并修改这些字段的内容;授权级别一般的用户只能浏览这些字段中的数据;授权级别低的用户则不能浏览这些字段中的内容。要做到这一点就得利用VB动态添加控件的功能。 动态创建控件 无论你想要创建何种类型的数据驱动窗体,你必须知道如何在运行时动态地创建控件。你可以通过控件数组做到这一点,但VB6的Controls集合所提供的Add 方法,功能更强大,灵活性更高。使用该方法,你不需要在设计时将控件的实例放在窗体上。实际上,用Add方法你甚至可以创建程序在编译时根本不存在的控件。这种方法的用法也很简单: ' 声明一个窗体级的变量 Dim WithEvents txtTotal As TextBox Sub CreateTextbox() ' 创建新的Textbox控件 Set txtTotal = Controls.Add("VB.TextBox", "txtTotal") ' 将控件移动到你所需要的地方 txtTotal.Move 1000, 800, 1200, 300 ' 创建时,所有的控件都是不可见的 txtTotal.Visible = True End Sub 请注意Add方法的第二个参数:分配给控件的名称。从代码可读性出发,这个名称一般都与变量名相同。你可以用这个名称从Controls集合中获取相应的控件或移除该控件。例如: Controls.Remove "txtTotal" 在变量声明时加上WithEvents关键字,即使在设计时窗体不存在该控件,你也可以为该控件的事件编写代码。

第7章 Visual Basic控件及其应用

第7章 Visual Basic控件及其应用 VB是一种可视化的程序设计语言,即对于图形界面的设计,不需要编写大量的代码,只需选用并为每个对象设置属性。因此,控件在VB程序设计中扮演这及其重要的角色。VB 控件可分为标准控件、ActiveX控件和可插入对象3类,在第3章中已介绍了标签、文本框和命令按钮3种控件,本章将进一步介绍其他常用控件。 学习目标: ●单选按钮、复选按钮、列表框的设置和使用 ●计时器、图片框和滚动条的设置和使用。 ●通用对话框的设置和使用。 7.1 单选按钮、复选按钮及框架 在实际编程中,有时会遇到一些开关或功能选项要求用户做出选择,或要求用户在一个小围对某些参数做出选择等。为此,VB提供了单选按钮、复选按钮及框架来实现上述功能。 7.1.1 单选按钮 单选按钮(OptionButton)控件也称为选项按钮,常被成组选用,用于实现多选一的情况。在一组单选按钮中,仅有一个单选按钮会被选中(出现黑点)。选中某项后,该组中的其他单选按钮均处于未选中状态,这是单选按钮与复选按钮的主要区别,也是单选按钮名称的由来。 1.单选按钮的常用属性 (1)Value属性 Value属性用于返回或设置单选按钮是否有效的选中状态,其取值为True或False。 若属性值为True,则表示该单选按钮处于被选中状态;若为False,则处于未选中状态。 运行时,可以通过该属性检查单选按钮的选中状态,还可以通过赋值语句修改Value属性值,以改变单选按钮的选中状态。 (2)Enabled属性 Enabled属性用于设置单选按钮是否有效(可操作))。属性值为True表示有效,为False 为无效,单选按钮禁止使用并显示为灰色。 (3)Style属性 Style属性用于设置单选按钮的样式,其值有0和1两种。若设置为0,则为标准样式(默认值);若设置为1,则为图形化的单选按钮,此时可在单选按钮上同时显示文字和图像,这一点类似于图形化命令按钮。 (4)Picture属性 Picture属性用于设置单选按钮要显示的图像。该属性只有在Style属性值为1时有效。 (5)Caption属性 Caption属性用于设置单选按钮旁的说明文字。 2.单选按钮事件和方法 单选按钮能响应的事件有Click、GotFocus、MouseMove、MouseDown、MouseUp、

VB动态添加控件的简单方法

VB动态添加控件并对其进行拖放操作改变位置 用Controls.Add添加控件 Dim WithEvents mypic As PictureBox Private Sub Command1_Click() Set mypic = Controls.Add("VB.PictureBox", "mypic") mypic.Left = 50 mypic.Top = 50 mypic.Visible = True End Sub 至于拖放操作,在程序中设置好mypic控件的有关属性后,处理mypic的有关事件即可 注意: 如果是控件数组的话,建议采用:load 控件数组名(索引) 的方法添加控件 '可先手工画一个控件,Visable设置为False,Index设置为0 '若需要多个就用load object(index)来加载,并把它们的visable设置为true;不需要多个就真接把原有的那个的visable设成显示就行了。 Private Declare Function ReleaseCapture Lib "user32" () As Long Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" ( _ ByVal hwnd As Long, ByVal wMsg As Long, _ ByVal wParam As Long, lParam As Any) As Long Private Sub Command1_MouseDown(Index As Integer, Button As Integer, _ Shift As Integer, X As Single, Y As Single) If Button = 1 Then ReleaseCapture '移动控件 SendMessage Command1(Index).hwnd, &HA1, 2, 0& End If End Sub

EXCEL多控件的组合应用

EXCEL多控件的组合应用 在实际工作中,数据源并不总是像“各地区手机销量”那样简单、规则的二维表格,你面对的可能是三维甚至四维的数据。 对于多维数据,由于数据维度的增加,我们必须思考一个问题:如何在二维的Excel工作表中组织更多维的数据以满足函数的引用和源数据的提取需求。 数据维度的增加必然丰富数据展现的角度,对交互功能的要求更高。此时,单一的控件就不能满足数据展现和交互的需求,而需要多组控件共同配合完成

1 三维数据的动态图表制作 首先看一个三维数据的应用。如图1所示,表格数据为深圳某银行按交易渠道和客户所属区域统计的交易量数据。这个表格共包含“交易渠道”、“区域”和“月份”三个数据维度(注意表格的组织)。对于这组数据,可能既要从渠道维度去展现,也要从区域维度去展现。这样,我们就必须同时使用两个单选控件来实现交易数据的展现,如图2所示。 图 1

图 2 下面以图2所示示例为例,介绍如何制作基于三个数据维度的动态图表。 Step01 制作控件。

图 3 无论图表多么复杂,第一步都是先把需要的控件制作出来。本例将制作两个组合框控件,分别作为交易渠道选项和区域选项(选项列表需提前制作),并分别链接至单元格B20和B23。 Step02 定义名称。 显然源数据是一个1行6列的数据区域,源数据名称及引用如下: 打开名称管理器,新建一个名称为“TRA_CHA”,引用位置

为“=OFFSET($B$1,($B$20-1)*4+$B$23,1,1,6)”,如图3所示。 引用函数的编写是动态图表制作的关键。以“短信平台”渠道为例,当在交易渠道控件中选择“短信平台”时,链接单元格B20输 出“信号”1,(B20-1)*4即为0。此时,当在区域控件中选择“宝安”时,链接单元格B23输出“信号”3。(B20-1)*4+B23就等于3,引用函数即为“=OFFSET($B$1,3,1,1,6),返回的结果是单元格区域C4:H4,即“短信平台+宝安”对应的交易数据。当在渠道控件中选择其他交易渠道时,这一公式同样能够准确地获取到要引用的目标数据,请读者仔细理解和消化。 Step03 制作图表。 1)添加数据系列。插入一个空白的柱状图,在图表上右击,在弹出的快捷菜单中选择“选择数据”命令打开“选择数据源”对话框。单 击“添加”按钮打开“编辑数据系列”对话框,在“系列值”编辑框中输 入“=Sheet1!TRA_CHA”,如图4所示。 2)添加坐标轴标签。在“水平(分类)轴标签”选项区中单击“编辑”按钮,轴标签区域设为C1:H1,即月份名称,如图5所示。

控件在PowerPoint中的应用

控件在PowerPoint中的应用 控件在PowerPoint中的应用 摘要:PowerPoint是Microsoft公司推出的Office系列产品之一,主要用于设计制作教学案例、广告宣传、产品演示的电子版幻灯片,制作的演示文稿可以通过计算机屏幕或者投影机播放。控件是其中的主要内容,但由于多数人并不了解控件,没能充分发挥其作用,基于这一点,本文主要讨论ppt中控件的特点及应用方法,并给出了几个应用实例。 关键字:PowerPoint,控件 一绪论 PowerPoint是Microsoft公司推出的Office系列产品之一,是用于制作演示文稿的优秀工具软件,它制作的演示文稿简洁明快,成为用户在学术交流、工作汇报、产品展示等场合最常使用的演示文稿软件之一。在教学课件的制作上,PowerPoint与其他软件相比,最大的优点是:操作方便,修改灵活。对于经常要添加、修改内容的课程,使用PowerPoint制作的课件比其他软件制作的课件更有优越性。在PowerPoint中,用户经常使用的功能主要是:编辑幻灯演示文稿的基本方法、多媒体对象的添加、动画制作、超级链接等。使用这些一般功能,就可以制作出具有多媒体对象、操作方便的演示文稿。 但美中不足的是演示内容和过程过于呆板,缺乏良好的人机交互界面。对于这个问题,如果使用PowerPoint自身提供的控件,就可以很好的解决,使演示文稿以一种精细的方式在放映过程中与用户交换信息,建立良好的交互关系。PowerPoint从1995年到现在经历了95、97、98、2000、2003、2007六代,而其主要内容是控件的发展。在PowerPoint中使用控件能够制作出集文字、图形、图像、声音以及视频剪辑等多媒体元素于一体的演示文稿,把自己所要表达的信息组织在一组图文并茂的画面中,用于介绍公司的产品、展示自己的学术成果。用户不仅在投影仪或者计算机上进行演示,也可以将演示文稿打印出来,制作成胶片,以便应用到更广泛的领域中。然而多数人还不了解控件,没有充分发挥PowerPoint的作用,所以让我们来探讨控件及其在PowerPoint中的应用。 二控件概念与主要类型 控件是用户可与之交互以输入或操作数据的对象。控件通常出现在对话框中或工具栏上。控件就是一种已预定义在windows里并已被注册的组件对象(com),它可说是windows利用“面向对象”技术的一种成果,控件是包括在窗体对象内的对象。窗体是一种对象,由属性定义其外观,由方法定义其行为,由事件定义其与用户的交互。通过设置窗体属性并编写响应事件的VisualBasic代码,就能

vb动态添加删除控件汇总

VB 动态添加删除控件汇总 1. 概述在使用Visual Basic 进行程序设计的过程中,如果能在运行时刻动态地创建和删除控件,可以极大地丰富界面的处理和变化。本人在设计网络监控系统时,需要在原理图与实物示意图间切换。切换的过程采用本文介绍控件的动态创建和删除来实现,有效地节省了系统资源,同时也有利于简化界面的维护。下面将就Visual Basic 6.0 中的控件在运行时刻的创建和删除的两种方法——控件数组 和控件集合作详细的阐述。2. 基于控件数组的动态控件的创建与删除vb 中的控件数组实际上也是一种数组,其中的每个控件具有相同的Name 属性,但具有不同的Index 属性,在这里Name 属性类似于数组的名字,而Index 属性类似于数组的下标同时,控件数组也支持普通VBA 数组的LBound 、UBound 和Count 方法,控件数组中的控件可以共享一个事件过程,便于代码的编写和集中处理,这正是使用控件数组的最大的理由。但是控件数组与普通的数组并非完全一样,它不需要定义大小,只有这样我们才可以动态的扩展[kuo zhan]它。下面给出利用Load 命令动态添加控件和Unload 命令动态删除控件的一般方法:(1) 首先在窗体上放置一个TextBox ,其Name 属性设置为Text1 ,Index 属性设置为0 ,这样我们就创建了一个

TextBox 控件数组,其中有一个成员。(2)在窗体上放置一个命令按钮Command1 ,在其Click 事件中添加如下的代码:Load Text1(1)Text1(1).left=0Text1(1).visible=true(3) 在窗体上放置一个命令按钮Command2 ,在其Click 事件中添加如下的代码:Unload Text1(1)(4)运行。单击命令按钮Command1 ,窗体上会出现一个新的文本框;单击命令按钮Command2 ,窗体上刚出现的新的文本框就被删除。需要注意的是:Load 命令创建的控件Text1(1) 与设计时已经放在窗体上的控件Text1(0) 有完全相同的属性,也包括大小和位置等属性,例外的就是Index 属性不一样,Visible 属性默认为False, 所以必须在Load 方法执行之后,执行调整控件位置的语句[yu ju],并把其Visible 属性设置为True ,以便在窗体上可见。Unload 命令只能删除动态加载的控件,若删除设计时创建的控件会产生错误[cuo wu]。另外,利用上面提到的数组的一些方法,可以有效的简化代码的编写。以下的代码可以删除所有动态创建的Text1 控件数组中的控件: Do While Text1.Count>1Unload Text1(Text1.Ubound)Loop需要说明[shuo ming]的是,菜单数组是控件数组的一种特殊的形式,只是它是在菜单编辑器[bian ji qi]中设置相应的Name 和Index 属性,而且要求一个菜单控件数组中的菜单项必须是

android中利用linearlayout动态添加控件 - androider的专栏 -

Android中利用LinearLayout动态添加控件- Androider的 专栏-... 在androidUI布局中,一般都是利用xml来布局控件,这是比较方便和直观的,但是有时却需要动态生成,下面就举2个简单例子来说明怎么动态添加控件: 1.动态添加2个垂直排列的Button view plaincopy to clipboardprint? 01. @Override 02. public void onCreate(Bundle savedInstanceState) { 03. super.onCreate(savedInstanceState); 04. //setContentView(https://www.sodocs.net/doc/6217121476.html,yout.main); 05. final LinearLayout layout2=new LinearLayout(this); 06. layout2.setOrientation(LinearLayout.VERTICAL); 07. Button btn1=new Button(this); 08. setContentView(layout2); 09. Button btn2=new Button(this); 10. btn1.setText("Button1"); 11. btn2.setText("Button2"); 12. layout2.addView(btn1);

13. layout2.addView(btn2); 14. 15. 16. setContentView(layout2); 17.} @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //setContentView(https://www.sodocs.net/doc/6217121476.html,yout.main); final LinearLayout layout2=new LinearLayout(this); layout2.setOrientation(LinearLayout.VERTICAL); Button btn1=new Button(this); setContentView(layout2); Button btn2=new Button(this); btn1.setText("Button1"); btn2.setText("Button2"); layout2.addView(btn1); layout2.addView(btn2); setContentView(layout2); }

vb动态添加控件

搞了快一个下午的这个东东, 其实是在搞一个在VB6.0中动态添加控件和时间的一个实现, 没用过VB6.0, IDE也么有VS好用... 好多东东在探索 结果就报了个这个错误.... run-time error '91' object variable or with block variable not set 查了好久, 原来是使用变量的时候, 没有去new它, 因为别人给的sample中, Dim的时候, 有new, 单身我拿过来用的时候, dim后面的new在build的时候不通过, 我就拿掉了, 结果运行的时候一直出这个问题.. 动态添加控件和时间的, 参考如下(等哪天我有空了,再来写) 创建数据驱动窗体 所谓数据驱动窗体就是根据所请求的数据的不同生成相应的窗体。举例来讲,假设你现在有一个数据库,其中有些字段必须根据登录者的身份加以显示,授权级别高的用户可以浏览并修改这些字段的内容;授权级别一般的用户只能浏览这些字段中的数据;授权级别低的用户则不能浏览这些字段中的内容。要做到这一点就得利用VB动态添加控件的功能。 动态创建控件 无论你想要创建何种类型的数据驱动窗体,你必须知道如何在运行时动态地创建控件。你可以通过控件数组做到这一点,但VB6的Controls集合所提供的Add方法,功能更强大,灵活性更高。使用该方法,你不需要在设计时将控件的实例放在窗体上。实际上,用Add方法你甚至可以创建程序在编译时根本不存在的控件。这种方法的用法也很简单: ' 声明一个窗体级的变量 Dim WithEvents txtTotal As TextBox Sub CreateTextbox() ' 创建新的Textbox控件

OA常用控件的用法

OA工作流的表单设计器中最常用控件的用法 如果想要设计制作精确、合理的OA工作流程,最基本的条件是设计出最合适的工作表单,而表单的制作最关键的是熟练掌握各个控件的使用方法。 下面就以最常用的几个控件跟大家分享一下它们在工作表单的制作过程中的用法。

控件类型及其用 第一,单行输入框。 单行输入框是最简单的空间,就是为表单添加一个可以输入内容的空,一般是用来填写比较简短的内容,比如:名字、手机号等。 ?如上图所示设置了单行输入框的属性后,就会在表单中出现下图所示的样式。 ?第二,多行输入框。 性质跟单行输入框类似,这个控件的内容也是完全由填写表单的用户手填。但多行输入框一般是用在输入内容较长的地方,比如一个较长的地址。

?如下图所示就是一个设置好的多行输入框在表单中显示的样式。 ?第三,下拉菜单。 这个很好理解,下拉菜单包含所有可能的选项。然后填写表单的用户可以通过下拉菜单选择需要的选项。

?第四,单选框。 单选框的含义我们都知道,就是设置多于一个的选项,而用户填写表单的时候只能从中选择一个选项。 ?比如下图所示的一个同意或不同意,只能选择其中一个选项。

?第五,多选框。 多选框的功能其实是只在表单中画一个可以打勾的小框,多选框有多少选项,就设置多少个多选框,然后在每个多选框后面自定义选项内容。 ?如下图所示就是一个多选框的样式,其中,火车、汽车、飞机和轮船这四个选项是在表单中定义的。 ?第六,列表控件。 这个列表控件其实是不经常用到的。起作用是相同格式记录的动态输入,可以根据实际需要灵活新增行数录入相应数据。 使用这个控件,是可以设置好列表头。列表控件支持多种输入类型,包括单行输入框、多行输入框、下来菜单、单选框、复选框和日期,满足多方面的需求; 而且支持自动计算和合计,使用通用运算符+、-、*、/、%等,可以实现列表项目的自动计算输入。其中列表计算项目是不可人工输入的。 如果用户在设计表单的时候确实用到了这个控件,可以设置上一两行试一下,看完表单效果后就知道该如何设置。

vb实现动态添加控件

vb实现动态添加控件 VB6有一个新功能,可以动态添加控件,不用控件数组: object.Add (ProgID, name, container) 参数说明 Object 必需的。一个对象表达式,其值是“应用于”列表中的一个对象。 ProgID 必需的。一个标识控件的字符串。大多数控件的ProgID 都可通过查看对象浏览器来决定。控件的ProgID是由控件的库和类组成的。 例如,CommandButton控件的ProgID是 https://www.sodocs.net/doc/6217121476.html,mandButton。在ProgID 与对象浏览器中所显示的不一样的情况下,Visual Basic 将显示一个包括正确 ProgId 的错误信息。 name 必要的。一个字符串,用来标识集合的成员。 container 可选的。一个对象引用,它指定控件的容器。如果没有指定或为NULL,缺省值为 Controls 集合所属的容器。通过指定该参数,可以把一个控件放置在任何现存的容器控件(如 Frame控件)中。用户控件或 ActiveX 文档也可以作为一个容器。 举例: //在picture1上面添加一个commandbutton Private Sub Form_Load() Form1.Controls.Add "https://www.sodocs.net/doc/6217121476.html,mandButton", "cmdOk", Picture1 With Form1!cmdOk .Visible = True .Width = 500 .Caption = "确认(&Y)" End With End Sub 重点:当您添加一个未引用的需要许可证的控件到一个现存的(已部署好的)应用程序时,在使用Add 方法之前您必须也添加这个控件的许可证关键字。 在运行时添加未引用的控件: 您也可以利 Add 方法来动态添加一个在工程中没有被引用的控件。(“未引用的”控件是不出现在 Toolbox 中的控件)。为此,您必须也把控件的License关键字添加到 Licenses 集合中。下面的示例中在添加控件本身之前添加了控件的许可证关键字: Option Explicit Private WithEvents extCtl As VBControlExtender Private Sub Form_Load() Licenses.Add "prjWeeks.WeeksCtl", "xydsfasfjewfe" Set extCtl = Form1.Controls.Add("prjWeeks.WeeksCtl", "ctl1") extCtl.Visible = True The control is invisible by default. End Sub 但是,为了编程这样一个未引用控件的事件,您必须使用WithEvents关键字声明一个对象变量为VBControlExtender 对象(如上),并且设置该对象变量到Add 方法返回的引用上。然后,利用VBControlExtender 对象的ObjectEvent事件来编程该控件的事件。下面是一个简单的例子。 Option Explicit Dim WithEvents objExt As VBControlExtender 声明 Extender 变量

相关主题