vb点虐 dmax的简单介绍

VB.NET中对象的克隆[1]

在 DMAX里面 做好一个物体(父物体)以后 可以选择Edit菜单中的Clone 下面有三中选项 Copy(生成一个同模样的子物体 两者的操作互不影响) Instance(父子互动 父物体的操作同样影响子物体 子物体也一样) 还有一个Reference(暂不考虑)

南湖网站建设公司创新互联建站,南湖网站设计制作,有大型网站制作公司丰富经验。已为南湖上千提供企业网站建设服务。企业网站搭建\外贸营销网站建设要多少钱,请找那个售后服务好的南湖做网站的公司定做!

在VB NET 同样会碰到这样的问题 创建一个复杂对象(可能有很多种不同的数据类型)的实例 进行了一系列操作之后 想让一个中间变量或几个(另外的实例)保存它的状态 我们一般采取逐个变量赋值 有时候会写很长的代码 )这实际上就是上述的Copy问题 而对于Instance 很简单 新建一个实例 指向一下就可以了

Dim objA As New CResume Cresume是一个自定义的记录简历信息的类

然后进行初始化 比如

objA Name= AAA

objA Address= Shanghai China

……

Dim objB As New CResume 新建一个实例

objB=objA

这样的话 objB跟objA有相同状态 值得注意的是objB改变一个Name 比如

objB Name= BBB

而实际上 objA的Name也变为 BBB 理由很简单 它们指向同一块内存空间

下面我们重点讨论对象的Clone问题 即Copy以后的各个对象互不影响 关键是如何采用简单的方法解决我们的问题 MemoryStream和BinFormatter配合一下可以很简单的把对象克隆

MemoryStream 我以前提到过 是支持存储区为内存的流

BinFormatter 主要以二进制形式序列化和反序列化对象

主要思路

先用BinFormatter的Serialize方法 把对象存储在MemoryStream流中 (操作跟其他Stream一样) 然后Deserialize反序列化 得到一个流式的数据 转化为原来对象的类型就可以了 是不是很简单?呵呵 看一下代码再说

CResume类的代码

Imports System IO

Imports System Runtime Serialization Formatters

Serializable() Public Class CResume  

注意类前面加上Serializable()属性 否则不可以序列化

Dim m_Name As String         姓名

Dim m_Address As String         地址

Public Property Address() As String

Get

Return m_Address

End Get

Set(ByVal NewAddress As String)

m_Address = NewAddress

End Set

End Property

lishixinzhi/Article/program/net/201311/15510

VB .NET编程是否可以不依赖.NET Framework

这是典型对点虐 构架不理解造成的!

只要是点虐 编程,一定使用的是点虐 类库,必须是同运行版本的点虐 支持方可运行。而所谓的vb点虐 只是说编程的语言层使用的是vb语言而已。该语言在点虐 构架下被编译成为IL语言(MSIL,严格说来是IL的一个子集)。而上层的语言只是产生软件时所使用的一个不同语言规则而已,与IL已经没有任何相关性了。上层语言无论是C#还是VB,甚至是Java(J#)均只适应编程人员的一个策略,与整个构造没有多大的相关性。

点虐 的最终目的就是让不同的语言编程人员能协同工作,那么语言在其中的区别没有多大了,所有的运行核心都是由点虐 完成的,没有必须依赖于点虐 。这是没有任何疑问的。

vb点虐 就是点虐 ,只是表示用VB语言人的称呼,用C#的则称其为C#点虐 ,但不管是哪种,它是无法脱离点虐 的。

怎样在vb点虐 的窗体设计时,使窗体最大化?

vb点虐 在窗体设计时不可以最大化,但可以通过手动调整Size属性来模仿最大化,vb点虐 也没有像VB6的窗体布局窗口,可以通过更改StartPosition属性来实现

StartPosition取值范围:

CenterParent:在父窗口的中心

CenterScreen:在屏幕中心

Manual:Location属性中定义的坐标

WindowsDefaultBounds:Windows默认位置

WindowsDefaultLocation:Windows默认位置,并且包括大小设置为默认

VB .NET如何在计算过程中加入进度条?

VB.Net中提供了ProgressBar控件,用于显示进度条

我建议你不要用进度条显示剩余时间而是显示执行进度

这样比较好控制

设置ProgressBar的Minimum和Maximum属性为循环的起始和终止数值

然后在代码的循环体中计算当前循环的进度,然后设置进度条的Value属性,

将进度显示在进度条上

比如,简单的例子:

Dim Progress As Integer

ProgressBar1.Minimum = Min

ProgressBar1.Maximum = Max

For i As Integer = Min To Max

'执行计算.......

Progress = i \ Max '计算进度

ProgressBar1.Value = Progress '显示进度

My.Application.DoEvents() '使用Doevents防止窗体假死使进度条看不到,但是会严重降低运行速度

Next

这里的优化技巧是,可以设置为每隔N次循环才更新进度条

If Not Progress Mod N Then ProgressBar1.Value = Progress

不然进度条的更新也许比计算的速度还要慢很多


名称栏目:vb点虐 dmax的简单介绍
文章位置:http://pwwzsj.com/article/ddgjhie.html