189 8069 5689

vb点虐 多窗体同步 vb中一个窗体对应一个窗体文件吗

VB.NET两个窗体怎么同步显示或隐藏?

1、没有事件是直接由最小化、还原触发的,它们都会触发SizeChanged事件。所以你可以写主窗体的SizeChanged事件来控制副窗体显隐,顺便改变副窗体的相对位置;

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

2、在SizeChanged事件中,通过判断窗体的WindowState属性来确定用户是最小化还是还原了;(FormWindowState.Minimized和FormWindowState.Normal枚举)

3、调用副窗体的BringToFront方法可以把副窗体带到最前面来

VB中如何使多个窗口同步显示

我做了几行。

对无标题栏的窗体,或者不从标题栏移动的情况下可用。

有标题栏并且点住标题栏移动则不理想。

代码如下,仅供参考。

1、建立模块。

option

explicit

public

oldproc

as

long

public

declare

function

setwindowlong

lib

"user32"

alias

"setwindowlonga"

(byval

hwnd

as

long,

byval

nindex

as

long,

byval

dwnewlong

as

long)

as

long

public

declare

function

sendmessage

lib

"user32"

alias

"sendmessagea"

(byval

hwnd

as

long,

byval

wmsg

as

long,

byval

wparam

as

long,

byref

lparam

as

any)

as

long

public

declare

function

callwindowproc

lib

"user32"

alias

"callwindowproca"

(byval

lpprevwndfunc

as

long,

byval

hwnd

as

long,

byval

msg

as

any,

byval

wparam

as

any,

byval

lparam

as

any)

as

long

public

const

wm_move

=

h3

public

const

wm_lbuttondown

=

h201

public

const

wm_lbuttonup

=

h202

public

const

gwl_wndproc

=

(-4)

public

bnhwnd

as

long

public

function

newproc(byval

hwnd

as

long,

byval

msg

as

long,

byval

wp

as

long,

byval

lp

as

long)

as

long

if

msg

=

wm_move

then

'捕获窗体移动事件

sendmessage

bnhwnd,

wm_lbuttondown,

1,

sendmessage

bnhwnd,

wm_lbuttonup,

1,

'将消息发送到按纽,使其发生click事件

end

if

newproc

=

callwindowproc(oldproc,

hwnd,

msg,

wp,

lp)

end

function

2、在窗体上有一个按钮(名称为eventbn)

dim

原垂直

as

single,

原水平

as

single

private

sub

eventbn_click()

msgbox

"移动了"

end

sub

private

sub

form_load()

form2.show

form3.show

bnhwnd

=

eventbn.hwnd

'获得按纽句丙

oldproc

=

setwindowlong(me.hwnd,

gwl_wndproc,

addressof

newproc)

eventbn.visible

=

false

end

sub

private

sub

form_mousedown(button

as

integer,

shift

as

integer,

x

as

single,

y

as

single)

if

button

=

1

then

原垂直

=

me.top

+

y

原水平

=

me.left

+

x

end

if

end

sub

private

sub

form_mouseup(button

as

integer,

shift

as

integer,

x

as

single,

y

as

single)

me.top

=

me.top

-

原垂直

+

y

me.left

=

me.left

-

原水平

+

x

form2.top

=

form2.top

-

原垂直

+

y

form2.left

=

form2.left

-

原水平

+

x

form3.top

=

form3.top

-

原垂直

+

y

form3.left

=

form3.left

-

原水平

+

x

end

sub

3、其他窗体基本都这样。

在VB.NET中怎么实现多窗体同步

建立一个名为 modGeneral 的模块并加入下面一行代码:

Friend DataStuff As DataClass

这一行代码为我的新类 DataClass 创建了一个友元变量,使你可以完全访问程序集,对这个简单例子来说,也就是指完整的应用程序。然后我添加了下面的代码到 Form1 的 Load 事件:

DataStuff = New DataClass

Me.txt1stData.DataBindings.Add("Text", DataStuff, "MyData")

Me.txt2ndData.DataBindings.Add("Text", DataStuff, "MoreData")

第一行建立一个 DataClass 新实例。下面两行代码将数据绑定到 textbox 控件。对这个窗体而言,就这么些操作!

现在,你怎样让它们与 Form2 和其它窗体上的数据同步呢?将下面两行加入到 Form 2 的窗体load 事件中去:

Me.txt1stData.DataBindings.Add("Text",DataStuff, "MyData")

Me.txt2ndData.DataBindings.Add("Text",DataStuff, "Moredata")

这个方法容易确保所有窗体上的几乎任何类型的数据处于同步状态。你可以简单地将控件绑定到某个类的相同实例上,这就行了。

vb点虐 如何设置两个窗体在屏幕上的位置同步

首先,在一个两个窗体都能访问的地方声明一个变量记录窗体位置,我这里使用的是Module,你也可以用静态类。

Public Module Module1

Public frmLocation As Point

End Module

然后两个窗体的VisibleChanged事件处理器里写下面的代码:

If Me.Visible Then

Me.Location = frmLocation

Else

frmLocation = Me.Location

End If

窗口切换时要“先隐藏后显示”


网站标题:vb点虐 多窗体同步 vb中一个窗体对应一个窗体文件吗
URL标题:http://jkwzsj.com/article/ddgsgpe.html

其他资讯