工具箱中怎么添加dockpanel控件

工具箱中怎么添加dockpanel控件,第1张

右击工具箱,选择“选择项”,之后会d出一个对话框供你选择,,找到你的dockpanel的库,,就可以添加到工具箱里哦。。。

我是在系统自带的库里是没找到dockpanel这个哦。。

$rm=mysql_query("SELECT * FROM `pql_spices` ORDER by rand()")

$i = '1'

$td=[]

while ($rmx=mysql_fetch_array($rm))

{

$Total+=$rmx['Price']

$Total_standard+=$rmx['standard']

$td[]=$row

$end=end(array($td))

这个控件不错,

可以很方便地实现如vs

里那种窗口定位,

浮动,

dock,

tab化等界面效果,

今天有空下载来看了一下,

用起来还是很容易的,

大概讲一下,

省得以后忘记了.

dockpanel中提供了几个可用的类,

重要的有两个,

一是DockPanel,

一是DockContent,

DockPanel是从panel继承出来的,

用于提供可浮动的dock的子窗口进行浮动和dock的场所,

DockContent是从form类中继承出来的,

用于提供可浮动的窗口基类.

就是说:

DockContent对象可以在DockPanel对象中任意贴边,

浮动,

TAB化等.

建立一个docpanel风格的程序的过程是:

1.

建立一个winform程序,

引用WinFormsUI.dll

2.

程序主窗口比如说是FrmMain

把FrmMain.IsMdiContainer

设置为true

3.

在FrmMain中放一个DockPanel,

比如说名称是Panel1,

把Panel1.Dock设为Fill,

或是者是你规划的地方.

4.

新建你的子文档窗口类,

就是新建一个windows

FORM,

在窗口设计器里面随便你添上什么愿意要的控件.

这将是你的程序里的子窗口,

我弄了两个:

一个叫FrmChild,

里面放了一个dock

fill的editbox,

另一个叫FrmProperty,

放了一个dock

fill的PropertyGrid,

名叫propertyGrid1,

设这两个是有用的.

后面说.

5.

打开FrmChild和FrmProperty的代码,

把class的继承类由Form改为DockContent

如:

public

class

FrmChild

:

WeifenLuo.WinFormsUI.DockContent

//

注意这里改了!

{

.........

}

6.

为FrmMain加上两个私有成员:

FrmChild

fc

FrmProperty

fp

这两个成员用来保存待会儿新建的两个窗口的指针.

7.

为FrmMain的Load写些代码,

如下:

fc

=

new

FrmChild()

fp

=

new

FrmProperty()

fc.Show(this.dockPanel1)

fp.Show(this.dockPanel1)

fp.propertyGrid1.SelectedObject

=

fc

fp.propertyGrid1.PropertyValueChanged

+=new

PropertyValueChangedEventHandler(propertyGrid1_PropertyValueChanged)

fc.MouseDown

+=new

MouseEventHandler(fc_MouseDown)

fc.MouseUp

+=new

MouseEventHandler(fc_MouseUp)

就是建立两个窗口,

这两个窗口都是从DockContent中继承的,

都有贴边,

tab化,

自动hide的能力,

很有意思的.

注意DockContent有新的Show()方法,

可以指定要Show的DockPanel,

当然要写上你准备的那个dockPanel1

两个都Show了,

然后为fp的propertyGrid1指定要显示的对象,

就是fc

之后再注册事件处理程序,

这几句是为了可以实现属性变了窗口变,

窗口变了属性变的效果,

可以动态地看到这些对象的属性对于其外观和形为的影响,

对于只想建个多窗口程序的人来说,

Show完了就可了.

8.

由于上面注册的事件,

下面加几个事件处理程序:

private

void

propertyGrid1_PropertyValueChanged(object

s,

PropertyValueChangedEventArgs

e)

{

this.dockPanel1.Invalidate()

this.fc.Invalidate()

//this.fc.Refresh()

}

private

void

fc_MouseDown(object

sender,

MouseEventArgs

e)

{

this.fp.propertyGrid1.Refresh()

}

private

void

fc_MouseUp(object

sender,

MouseEventArgs

e)

{

this.fp.propertyGrid1.Refresh()

}

运行吧,

看看效果?

你把这两个窗口放到边上,

这里哪里都试试,

挺有意思的.


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11307868.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-15
下一篇 2023-05-15

发表评论

登录后才能评论

评论列表(0条)

保存