statusBar控件


       最近在敲学生信息管理系统时,看到窗体最下边的一栏,那就是statusBar了.默认情况下被创建的状态栏只有一个本域,,但是我们需要多个文本域来显示多条信息,如下:

       现在给出另一种方法:

      1.点击状态栏,右击属性

statusBar控件_第1张图片

 

2.在属性对话框中,对窗格一栏进行设置(重点是样式),如图:

statusBar控件_第2张图片

3.在样式的下拉菜单中,可以进行我们的设置,如:可以显示我们输入的文本,或者当前日期,时间等如图:

statusBar控件_第3张图片

     到此为止,就完成了我们想要的效果了。

     其实到现在为止,我们接触到的这些控件,我们对他们的属性设置现在就有一个大概的判断,是用代码设置比较好呢,还是直接在这样的属性框中设置比较好。自己斟酌。

      这里是代码的设置,很多种,自己慢慢实践。

 

statusBar.SetFieldsCount(3)
statusBar.SetStatusWidths([-1,-2,-3])
       1.其中SetFieldsCount()的参数为一个整数,表示希望得到的文本域的个数
       2.SetStatusWidths方法的参数是一个由一个数列表组成,其中列表长度必须与SetFieldsCount()中设置的文本的个数相同,不然就会出错。
       3.如果在这个列表中出现了负数,则表示以百分比来表示宽度,其百分比大小以负数的绝对值的大小来划分,比如上面给出的[-1,-2,-3],将整个状态栏的宽度分成6份,第一个  文本域占一份宽度,第二个占2份,第三个占3份。
       4.当然还可以混合正数和负数,比如SetStatusWidth([-1,-2,100]),这表示第3个文本域的宽度为100,前两个的宽度为statusBar的宽度减去100然后分成3份,按其比例分配,方式为3中描述的。

       现在多个文本域有了,如何给各个文本域赋值呢?如下:statusBar.SetStatusText('txt',0)其中第一个参数为给定的值,第二个参数为文本域的索引(从0开始)
       后来又查了一下,如下:关于statusBar的赋值还有2个函数,分别为:statusBar.PushStatusText(text,field=0)  statusBar.PopStatusText(field=0)那么这两个函数是做啥的呢?原来在statusBar类中每个文本域都维持着一个后进先出的栈,使用PushStatusText给对应文本域赋值后,这个文本域原来的值就被压入栈中(具体说就是栈的顶部)存储了起来。在调用PopStatusText的时候将存储的值由后进先出的规则调取出来设置为对应文本域的值。当然在调用PopStatusText之前你必须保证对应文本域中的栈中有值,否则就会出错。

你可能感兴趣的:(statusBar控件)