vb.net自绘窗体 vb窗体设计窗口
VB.net 如何画窗体??
绘制和数据分离,就是说,Paint 事件永远是用来绘制的,具体绘制什么东西(也就是绘制的数据,如半径为4的圆),有数据决定,MouseClick 可以更改一些参数,然后由Paint 绘制:
成都创新互联公司专注于通化县网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供通化县营销型网站建设,通化县网站制作、通化县网页设计、通化县网站官网定制、成都微信小程序服务,打造通化县网络公司原创品牌,更为您提供通化县网站排名全网营销落地服务。
MouseClick 事件里,重绘窗体,即:
int r = 0, x = 0, y = 0;
private void Form1_MouseClick(object sender, MouseEventArgs e)
{
r = 10;
x = e.X;
y = e.Y;
this.Invalidate();
}
private void Form1_Paint(object sender, PaintEventArgs e)
{
// 绘制一个r半径圆
e.Graphics.DrawEllipse(new Pen(Color.Red), x, y, r, r);
}
补充:
在 MouseClick 事件中去调用Form 的 Paint 事件,那么参数要如何传递?
参数是个全局变量,类似上面的r、x、y等,不是由e传过去的,
上述代码是c#的,vb.net和c#一样,都是用的fcl类库,你改一下就可以了,
用VB.NET轻松制作特效窗体
体是Windows应用程序的基础 新一代的开发工具Visual Basic Net为设计制作窗体提供了更多简单而丰富的方法 无需再求助于复杂而易错的API函数 我们就可以轻松制作多种特效窗体 轻松制作透明窗体VB NET可以轻松制作出任一透明度的窗体 我们只要在窗体的 属性 窗口中 将 Opacity 属性设置为一个介于 (完全透明)与 (完全不透明)之间的值就可以了 Dim frm As FrmTrans = New FrmTrans()frm Opacity = frm ShowDialog() 轻松制作始终位于最上层的窗体在VB 中 要制作一个始终位于最上层的窗体我们只能求助于令人头痛的API函数 然而在 NET 中 我们只要简单设置窗体的 TopMost 属性就可实现同样效果了!例如 Dim frm As frmTopMost = New frmTopMost()frm TopMost = Truefrm Show() 轻松制作不可见的窗体如果要编写一个不让别人发现的隐藏程序 制作不可见的窗体就是必须实现的第一步 窗体的可见性通常由 Visible 属性控制 但是 如果希望 Windows 应用程序的主窗体在应用程序启动时不可见 您将会发现将它的 Visible 属性设置为 False 的方法无效 窗体总会自己显示出来(这是因为 启动窗体的生存期决定了应用程序的生存期) 虽然如此 我们还是可以通过简单将应用程序的启动设置为一个模块 从而从窗体的生存期分出应用程序的生存期 轻松实现不可见的窗体 在下面这个例子中 窗体在特定的时间内自动隐藏 ( )在 Visual Basic 中 右击项目并选择 添加模块 以将模块添加到 Windows 应用程序 ( )在已添加的模块(或类)内 创建可作为项目启动对象的 Main 函数 Sub main()Dim f As New Form ()f Visible = FalseWhile Hour(Date Now) 如果当前时间早于 点 窗体自动隐藏Application DoEvents()End Whilef ShowDialog()End Sub 轻松编写托盘程序托盘程序作为一类特殊的窗体 其快捷图标显示在系统托盘中 窗体本身则隐藏不可见 在 NET之前版本的VB中编写托盘程序是十分困难的 但是VB NET提供的新的NotifyIcon组件却使VB初学者也能轻松编写一个这样的程序 新建 Windows应用程序 设置主窗体Opacity属性为 FormBorderStyle属性为None ShowInTaskbar属性为False 这样窗体将在启动后隐藏 在窗体上放置一个NotifyIcon组件NotifyIcon 一个ContextMenu(弹出菜单)组件ContextMenu 并根据需要为ContextMenu 添加菜单项 设置NotifyIcon 的ICON属性 这个图标就是应用程序出现在系统托盘中的快捷图标 设置NotifyIcon 的Text属性为 VB NET托盘程序 这就是鼠标移动到托盘图标时弹出的文字说明 设置NotifyIcon 的ContextMenu属性为ContextMenu 也就是右键单击快捷图标时的弹出菜单为ContextMenu OK 按F 运行!几乎不用编写代码 一个托盘程序就这样轻松实现了 lishixinzhi/Article/program/net/201311/13831
用VB.NET设计各种形状的窗体界面二
结合上一节介绍的方法 通过Visual Basic Net的菜单设计器 按照图 和图 所示的菜单结构设计菜单 图 【MDI编程】项目的菜单结构之一 图 【MDI编程】项目的菜单结构之二 在利用菜单设计器设计完菜单后 分别在窗体中双击 新建 退出 层叠显示 横行平铺 纵向平铺 和 排列图标 菜单项 这样Visual Basic Net会在Form vb文件中分别产生这些菜单项的Click事件对应的处理代码 设定Form 的 IsMdiContainer 属性值为 True 这把Form 窗体定义为MDI窗体容器 这一步设置是后面编程的基础 当设置此属性值后 Form 的窗体也发生了改变 图 是设置此属性后的窗体模样 图 把Form 窗体设置为MDI窗体容器后的模样 选中图 中的 窗口 菜单项 并设置此菜单项的 MdiList 属性值为 True 其作用是当程序运行后 如果新建了一个MDI窗体 就会在 窗口 菜单项后 自动加入一个以新建MDI窗体名称命名的菜单项 如果新建了多个MDI窗体 则会在 窗口 菜单项后 会加入以这些MDI窗体名称命名的菜单项 当MDI窗体被关闭 那些以此MDI窗体命名的菜单项也会自动删除 具体可图 所示 把Visua Basic Net的当前窗口切换到Form vb的代码编辑窗口 并在定义Form 中组件的代码区加入下列代码 下列代码是定义一个变量 此变量用以统计程序中新建MDI窗体的数量 Private iFormCount As Integer = 用下列代码替换Form vb中的MenuItem 的Click事件对应的处理代码 MenuItem 即为图 中的 新建 菜单项 下列代码的作用是在新建一个MDI窗体 Private Sub MenuItem _Click ( ByVal sender As System Object ByVal e As System EventArgs ) Handles MenuItem ClickDim frmTemp As Form = New Form ( ) 新建一个窗体frmTemp MdiParent = Me 为当前创建的窗体设置MDI父窗体frmTemp Text = MDI窗体 + iFormCount ToString ( )iFormCount = iFormCount + frmTemp Show ( ) 把此MDI窗体显示出来End Sub 用下列代码替换Form vb中的MenuItem 的Click事件对应的处理代码 MenuItem 即为图 中的 退出 菜单项 下列代码的作用是退出应用程序 Private Sub MenuItem _Click ( ByVal sender As System Object ByVal e As System EventArgs ) Handles MenuItem ClickApplication Exit ( ) 退出应用程序End Sub 用下列代码替换Form vb中的MenuItem 的Click事件对应的处理代码 MenuItem 即为图 中的 层叠显示 菜单项 下列代码的作用是层叠排列窗体中的所有MDI窗体 Private Sub MenuItem _Click ( ByVal sender As System Object ByVal e As System EventArgs ) Handles MenuItem ClickMe LayoutMdi ( MdiLayout Cascade ) 层叠排列窗体中的所有MDI窗体End Sub 用下列代码替换Form vb中的MenuItem 的Click事件对应的处理代码 MenuItem 即为图 中的 水平平铺 菜单项 下列代码的作用是水平平铺窗体中的所有MDI窗体 Private Sub MenuItem _Click ( ByVal sender As System Object ByVal e As System EventArgs ) Handles MenuItem ClickMe LayoutMdi ( MdiLayout TileHorizontal ) 水平平铺窗体中的所有MDI窗体End Sub 用下列代码替换Form vb中的MenuItem 的Click事件对应的处理代码 MenuItem 即为图 中的 垂直平铺 菜单项 下列代码的作用是垂直平铺窗体中的所有MDI窗体 Private Sub MenuItem _Click ( ByVal sender As System Object ByVal e As System EventArgs ) Handles MenuItem ClickMe LayoutMdi ( MdiLayout TileVertical ) 垂直平铺窗体中的所有MDI窗体End Sub 用下列代码替换Form vb中的MenuItem 的Click事件对应的处理代码 MenuItem 即为图 中的 排列图标 菜单项 下列代码的作用是窗体中的所有MDI窗体排列图标 Private Sub MenuItem _Click ( ByVal sender As System Object ByVal e As System EventArgs ) Handles MenuItem ClickMe LayoutMdi ( MdiLayout ArrangeIcons ) 窗体中的所有MDI窗体排列图标End Sub至此【MDI编程】项目的全部工作就完成了 图 图 和图 是程序运行后的界面 图 【MDI编程】运行界面之一 图 【MDI编程】运行界面之二 图 【MDI编程】运行界面之三 此时我们注意到图 所示的 窗口 菜单中增加许多子菜单 而在程序设计时 并没有处理这些功能的代码 这是由于第十一步中设置 窗口 菜单项的 MdiList 属性值为 True 造成的 可见正确的设置组件的属性值有时的确能够代替烦杂的代码编写工作 五 总结 本文主要内容有二个 其一是介绍的在Visual Basic Net定制不规则窗体的实现方法 在Visual Basic Net中创建不规则窗体主要使用的是Region类和GraphicsPath类 GraphicsPath主要是绘制窗体的形状 Region主要是以GraphicsPath来构建窗体 结合本文的实现思路和具体方法 我想对于其他形状的窗体 在掌握GraphicsPath类提供的使用方法的前提下 加上对所要创建不规则窗体的规划设计 用Visual Basic Net实现起来应该不算很困难 本文的另外一个主要内容就是介绍在Visual Basic Net编写MDI应用程序的基本过程 技巧和注意事项 通过本文的介绍可见Visual Basic Net的MDI编程并没有什么复杂的地方 只需了解一些对MDI窗体处理的方法及其调用方式 当然更重要的是要了解并掌握某些组件的针对MDI的属性及其设置方式 lishixinzhi/Article/program/net/201311/11698
分享题目:vb.net自绘窗体 vb窗体设计窗口
文章分享:http://scyanting.com/article/hgicde.html