| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 773 人关注过本帖
标题:初学者的3个问题,求解。
只看楼主 加入收藏
toomee
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2008-10-7
收藏
 问题点数:0 回复次数:7 
初学者的3个问题,求解。
1。一个密码输入的textbox,在validating事件中,如果输入不够6位,就提示重新输入,问题是:如果输入了低于6位密码,此时直接点击右上角关闭窗口,仍会提示重新输入,这个问题怎么解决?

2。在结构和类中,public int i=0;就可以直接访问i,也可以赋值给i,为什么还有
  
                 get,set,语句呢?

3。如果在sting里,存在好多“”,每次都要“”“来转义,很烦啊,聪明的编译器为什么连这点都判断不出阿?

谢谢
搜索更多相关主题的帖子: 求解 
2008-10-13 08:58
乖老鼠
Rank: 5Rank: 5
来 自:四川省
等 级:职业侠客
威 望:2
帖 子:434
专家分:394
注 册:2008-9-8
收藏
得分:0 
get,set是用在属性里的,这里你需要明白一个含义:类的封装

例如有一个类,名字就叫你的ID:toomee
class toomee

你可以定义一个私有变量
privete string name;

在构造函数中赋值:
public toomee()
{
   name="toomee";
}

这时,如果别人要读取你这个类实例化对象中的name的值怎么办?你有2个简单方法:

(1) 你可以修改类toomee的name属性为public,这样你的类toomee就全部暴露了,内部定义的东西都被别人看到了。
(2) 你可以定义一个public属性 :
public string Toomee(一般与私有变量同名,第一个字母大写)
{
  get{ return toomee;}
  set{toomee = value;}
}
这样,你的私有变量toomee别人看不到,别人只能看到你的Toomee属性。这样就起到了封装的作用。

get是读取操作,set是存储操作。有了这2个,Toomee和toomee用起来就差不多了。

而且你可以在get,set中加入判断,来保护你的私有变量toomee不被恶意修改成不希望的值。

例如:

public string Toomee
{
  get{ return toomee;}
  set{
      if(value!="我是瓜的")
      {
        toomee = value;
      }
    }
}
这样就可以防止别人给toomee赋“我是瓜的”这个值

[[it] 本帖最后由 乖老鼠 于 2008-10-13 17:45 编辑 [/it]]

转眼就从编程菜鸟混成了半灌水
2008-10-13 17:38
乖老鼠
Rank: 5Rank: 5
来 自:四川省
等 级:职业侠客
威 望:2
帖 子:434
专家分:394
注 册:2008-9-8
收藏
得分:0 
第三个问题:
你试试在字符最前面加上: @

例如:string str=@""测"试"";
这样你的str得到的就是是:"测"试"

包括其他转移字符都可以这样加上@。尤其是文件路径那个东西,很多\\\\\\,加上@就简单明了了

[[it] 本帖最后由 乖老鼠 于 2008-10-13 17:49 编辑 [/it]]

转眼就从编程菜鸟混成了半灌水
2008-10-13 17:46
toomee
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2008-10-7
收藏
得分:0 
谢谢乖老鼠阿。对第2个问题很详细。
2008-10-13 19:36
乖老鼠
Rank: 5Rank: 5
来 自:四川省
等 级:职业侠客
威 望:2
帖 子:434
专家分:394
注 册:2008-9-8
收藏
得分:0 
[bo][un]toomee[/un] 在 2008-10-13 19:36 的发言:[/bo]

谢谢乖老鼠阿。对第2个问题很详细。

第一个问题我不懂,因为我对验证事件不懂

不过你可以换一个事件:TextChanged(直接用是达不到你要的效果,不过你可以多写一点代码,应该能行。)

转眼就从编程菜鸟混成了半灌水
2008-10-14 08:39
hellson
Rank: 2
来 自:北京
等 级:新手上路
威 望:4
帖 子:195
专家分:0
注 册:2008-9-1
收藏
得分:0 
密码输入textbox validating
右上角关闭窗口事件中改 validating 事件绑定去掉可以不?

春了夏了秋冬了,来了来了又来了
相信我的帖子打开都很快,看我头像就知道了
2008-10-14 10:25
skyzoneskyzone
Rank: 1
等 级:新手上路
威 望:1
帖 子:137
专家分:0
注 册:2008-10-6
收藏
得分:0 
1。一个密码输入的textbox,在validating事件中,如果输入不够6位,就提示重新输入,问题是:如果输入了低于6位密码,此时直接点击右上角关闭窗口,仍会提示重新输入,这个问题怎么解决?
===================================================================================================
validating 应该是这样的,当textbox获得焦点之后,然后当textbox失去焦点时,validating开始起作用。
所以这个问题不是在你是否点击了关闭窗口的问题,而是你点任意其他的控件都会引发这个validating发生。
解决方法1:
那么如果设定在提示重新输入之后设定焦点不在这个textbox上,是不会提示你的。(不大好用,不方便,不人性,不专业),好像是用e.cancel=false吧。
解决方法2:
不用validating事件(如果单单是你这个功能的实现的话并不是说validating没用),而直接在比如提交按钮(或处理这个密码的地方)进行值的判断就可以了。不需要非得用validating的。
2008-10-14 10:57
favoriteran
Rank: 1
等 级:新手上路
帖 子:142
专家分:0
注 册:2006-3-10
收藏
得分:0 
刚学,也从这学到了一点东西了。

海納百川,一切從源開始........
2008-10-14 11:10
快速回复:初学者的3个问题,求解。
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.033219 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved