C语言中怎样让tablelayoutpanel中控件居中显示?

Python074

C语言中怎样让tablelayoutpanel中控件居中显示?,第1张

从“工具箱”中将一个 TableLayoutPanel 控件拖到窗体上。

将 Button 控件从“工具箱”拖到 TableLayoutPanel 控件左上部的单元格中。 Button 在单元格中居中。

将 Button 控件的 Anchor 属性值设置为 Left,Right。 Button 控件将拉伸到与单元格的宽度相符。

将 Button 控件的 Anchor 属性的值设置为 Top,Bottom。 Button 控件将拉伸到与单元格的高度相符。

将 Button 控件的 Dock 属性值设置为 Fill。 Button 控件将扩展到填满单元格。

将 Button 控件的 Dock 属性值设置为 None。 Button 控件将恢复到原始大小并移动到单元格的左上角。 “Windows 窗体设计器” 已将 Anchor 属性设置为 Top, Left。

将 Button 控件的 Anchor 属性值设置为 Bottom,Right。 Button 控件将移动到单元格的右下角。

将 Button 控件的 Anchor 属性值设置为 None。 Button 控件将移动到单元格的中心。

/*

问题地址:http://zhidao.baidu.com/question/317437658.html

详解:

标准的网址(URL)格式是这样的:

http://user:pass@myserver:port/myapp1/myapp2/index.html?key1=value2&key2=value2#anchor

其中:

[1] http 是协议类型,同样的还有 ftp 等。【可省略,一般浏览器默认都是 http】

[2] user 是用户名,pass 是密码。【可省略】

[3] myserver 可以是服务器的 ip 或者域名,

如百度的 ip = 220.181.112.143 , 域名是:www.baidu.com

【这个不能省略】

[4] port 是端口。【可省略,一般默认都是 80】

[5] myapp1,myapp2 是应用程序目录。【可省略】

index.html 是当前页面【可省略,默认是 index.html,default.html 等】

[6] key1,value1,key2,value2 是传递给网站的参数,【可省略】

[7] anchor 是网页内的锚点

合法的网址举例:

www.baidu.com

http://__anglfish:[email protected]:80/

http://zhidao.baidu.com/question/311110938.html?an=0&si=1

判断网址算法:

最简单的当然是正则表达式了。

我们看到标准网址(URL)的 7 个部分,有 6 个分割符号,分别是:

://

@

:

/

?

#

在浏览器里面,只有第 3 部分是必须填写的,也是我们日常写的最多的。

用到的资源文件:

头文件 deelx.h,可以到:http://www.regexlab.com/zh/deelx/下载

下载后放到和源程序同一个目录下即可。

*/

#include <stdio.h>

#include "deelx.h"

int main(int argc, char * argv[])

{

char text[1000] = "http://user:[email protected]:800/myapp1/myapp2/index.html?key1=value1&key2=value2#anchor"

// 判断合法网址的正则表达式

static CRegexpT <char>regexp

(

"(([:alpha:]+)\\://)?((\\w+)\\:(\\w+)@)?(\\w+(\\.\\w+)*)(\\:(\\d+))?((/\\w+)*(\\.\\w+)?)?(\\?((\\w+=\\w+&)*(\\w+=\\w+)))?(#((\\w+)))?)"

)

int i

printf("输入一个网址:")

while(scanf("%s",text))

{

MatchResult result = regexp.Match(text)

if ( result.IsMatched() )

{

/*

for(i=0i<result.MaxGroupNumber()i++)

{

printf("%d=%.*s\n", i,result.GetGroupEnd(i) - result.GetGroupStart(i), text + result.GetGroupStart(i))

}

*/

// 解析网址

printf("网址:%.*s\n", result.GetGroupEnd(0) - result.GetGroupStart(0), text + result.GetGroupStart(0))

printf("协议类型:%.*s\n",result.GetGroupEnd(2) - result.GetGroupStart(2), text + result.GetGroupStart(2))

printf("用户名:%.*s\n",result.GetGroupEnd(4) - result.GetGroupStart(4), text + result.GetGroupStart(4))

printf("用户密码:%.*s\n",result.GetGroupEnd(5) - result.GetGroupStart(5), text + result.GetGroupStart(5))

printf("服务器IP或域名:%.*s\n",result.GetGroupEnd(6) - result.GetGroupStart(6), text + result.GetGroupStart(6))

printf("服务器端口:%.*s\n",result.GetGroupEnd(9) - result.GetGroupStart(9), text + result.GetGroupStart(9))

printf("应用程序目录:%.*s\n",result.GetGroupEnd(10) - result.GetGroupStart(10), text + result.GetGroupStart(10))

printf("查询参数:%.*s\n",result.GetGroupEnd(14) - result.GetGroupStart(14), text + result.GetGroupStart(14))

printf("锚:%.*s\n\n",result.GetGroupEnd(18) - result.GetGroupStart(18), text + result.GetGroupStart(18))

}

else

{

printf("\"%s\" 是一个非法的网址!!!\n",text)

}

printf("输入一个网址:")

}

return 0

}

/*

运行结果:

输入一个网址:http://user:[email protected]:800/myapp1/myapp2/index.html?key1=value1&key2=value2#anchor

网址:http://user:[email protected]:800/myapp1/myapp2/index.html?key1=value1&key2=value2#anchor

协议类型:http

用户名:user

用户密码:pass

服务器IP或域名:myserver.com

服务器端口:800

应用程序目录:/myapp1/myapp2/index.html

查询参数:key1=value1&key2=value2

锚:anchor

*/

这个很简单啊,与一下 就在知道了,比如说判断该Anchor是否包含Left,那么就判断

mzMapControl1.Anchor &AnchorStyles.Left 的结果是否等于1就行了

你看AnchorStyles枚举的值分别是0,1,2,4,8,对应的就是二进制的0,1,10,100和1000,如果你以前有一些C的编程经验,这个应该就好理解了。