将 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的编程经验,这个应该就好理解了。