none
我是VB老编程员最近打算用vb.net开发silverlight程序,遇到一些问题(已经解决部分) RRS feed

  • 问题

  • 环境Visual Studio 2010 beta2:
    我是VB老编程员,最近打算用vb.net开发silverlight程序,在VB和VB.net转型方面遇到一些问题,整理如下,希望内行帮忙解答,个别之处如果能配上代码最好,感谢不尽:

    1. image控件问题
       VB中,放置一个image控件后就可以方便在代码中设置其中的图象文件,但在vb.net(制作silverlight应用)中,好象找不到相关的属性,如何动态修改image中的图象?

    2. 放置datagrid控件出错(已经解决)
       详参http://social.microsoft.com/Forums/zh-CN/vbasiczhchs/thread/5f9e5e7a-90a2-4b2d-b781-3933ed90123a/
       (安装了VS2010 专业正式版后解决!)

    3. VB一个项目中可以增加很多的Form,用代码可以方便调用Form的显示和关闭,在VB.net中是如何调用其它窗体的呢?

    4. VB.net开发silverlight应用时,如何实现弹出的窗体(或是界面)AlwaysOnTop,在不关闭此窗体前,后面的窗体无法点击激活,在弹出窗体时,背景还能呈淡灰色的效果。

    5. 在VB.net开发silverlight时,每次编译都要点菜单中的 Rebuild 项目名 一下,才能再按F5预览运行效果。能不能象VB那样,设置成直接按F5就编译预览了。多编译一次太麻烦了!
       (安装了VS2010 专业正式版后解决!)

    6. 在VB中两个窗体间的变量互相传递,是在模块或是类中定义变量名,VB.net在开发silverlight应用时是如何实现两窗体间的变量传递的呢?

    7. 在VB中可以方便调用windows API,实现很多底层的功能,VB.net在开发silverlight时是如何调用API的?(或是能提供参考代码的网站即可)

    8. silverlight是window phone手机的支持平台,wp手机应该也支持重力感应,手机震动,用vb.net来开发时,如何调用这手机中的相关机能(还有读取联系人,发短信等手机功能)?

    9.在vb.net调用数据库,编写数据库应用时有没有更方便的方法?看了很多相关代码,感觉比在VB中用起来更麻烦,写的代码更多。难道退步了?

    10.vb.net开发asp.net网页时,如何监测客户端发来的参数?比如填写的用户名,密码之类的.....
    (给出具体网址,我去学习参看即可)

    11.用vb.net开发silverlight应用程序时,如何开发相关的loading......就是很多flash,silverlight在进入前的调用等待动画图示?

    12.用VB.net开发aspx的网页时,表单中有一个DropDownList1控件,还有一个label控件,如何实现DropDownList1进行了选择后,能在Label.text中显示DropDownList11中的列表项的内容?在VB中能轻松实现,可在VB.net中试了DropDownList11的SelectedIndexChanged和TextChanged两个事件中放代码都没有效果,真是奇怪!

    上述问题可能表述不容易清楚,所以在msdn上查了很久也没有找到,只能发贴,希望高手解答,谢谢!

     最后一问:
    马上就要发行的Visual Studio 2010,会同步发行中文版吗?!!?!?!?

    • 已移动 Sheng Jiang 蒋晟Moderator 2010年4月4日 1:25 Silverlight (发件人:Visual Basic)
    • 已移动 Hao Yao 2010年4月5日 2:55 non partner (发件人:Silverlight)
    • 已编辑 新阿伦 2010年4月15日 5:45
    2010年4月3日 22:25

答案

  • 终于见到一个搞VB的,可惜是老VB...我尝试每个都回答或者提示一下.所有回答不涉及桌面部分(AIR?)

    1 自从到了VB.NET以后,这个image控件就有了很多种.以前的vb只有一套gdi的UI.现在到了.net以后,gdi被封装成了WinForm.WPF/SL是另外一套UI库(UI库其实是很多的,不再限于以前的那么一套).所以你按照以前的的思路来理解是不行的.在SL中.修改image.source=new xxxxx.可以修改这个控件所指的图像.如果你想进行像素操作,是很困难的.pset之类的是不能用了.你得想办法去修改这个数据流.

    2 稍后去那个帖子看

    3 vb.net也是有很多窗体的.但是使用前,你需要new Form1() New Form()2... 比如 dim f as new Form1()   f.ShowDialog() 你所谓的调用,我理解为你想在Form1里面直接call Form2的公共方法.这样,你需要在 module里面写一个main()函数,从main启动.里面定义一些公共的变量 比如  public f1 as new Form1()   public f2 as new Form2.此时,你在f1里面就能直接用f2.xxx()了.

    4 SL有Window类么?WPF是有的.alwaysontop也是有的.

    5 我一直都是F5的.你所谓的现象多半是你配置有问题.重新建立一个干净的项目你在试试

    6 SL没有Window类.(不知道SL的后续版本有没有,可能AIR的部分有)如果是WPF,那么你可以按照问题3的公共变量的方法.

    7 SL主要应用于网页前台设计.比如你打开一个网页,他去调用Windows底层API了...你会有何感想?SL能用的功能仅限于他自身的框架.如果是WPF可以跟以前经典的WinForm程序一样Declare Function xxxx....

    8 请查找相应的SDK,这个不是SL包含的部分.好比你在问Direct3D上问如何让一个模型被攻击后发出惨叫一样的道理.

    9 我认为这是一种进步.ADO.NET的部分,几行代码就能完成同样的操作.或者你拖一下控件就能在Winform中实现数据绑定.更重要的是,现在操作数据库的手段更多了.

    10 对于您这里"检测"可能有如下理解 a 验证数据格式,比如邮箱必须含有@字符 b用户的任何操作我都要知道,比如输入验证码的时候 c用户点了下一页,我希望能ajax不切换就更新数据 d 用户点了某个button提交了数据,送到了我的服务器应用(比如web form). 无论是哪种理解都不是一句两句话能说清楚的.建议您先从 VS自带的QuickStart看起.

    11 这个是可以做到的,需要另外写一个简单的xaml.您可以google: custom silverlight loading 看我google出来的http://www.dotblogs.com.tw/lolota/archive/2008/12/07/6282.aspx 这个跟vb一点关系不大,是js

    12 在DropDownList1的SelectedIndexChanged会有效果的.您确定是DropDOwnList1还是DropDownList11?

    我认为您需要先从VB.NET开始了解.先把以前老VB的习惯全部"纠正"过来,当然,这无疑是非常痛苦的过程.无论是框架还是语法都有着巨大的不同.第二步等您基础扎实了之后再来拓展视野,这个时候再去搞asp.net ado.net wpf sl之类.不然,您这样提问问题.的确很难回答.

    最后一个还是请MS的人来回答吧

    • 已标记为答案 新阿伦 2010年4月7日 22:15
    2010年4月6日 7:49

全部回复

  • 建议

    1 每个问题1贴

    2 类库的问题放在类库的论坛 (比如ASP.Net的问题发在ASP.Net论坛,ADO.Net的问题放在ADO.Net论坛,silverlight的问题发在silverlight论坛),和特定语言的IDE相关的IDE问题放在各个语言的论坛,和语言无关的Visual Studio功能放在Visual Studio的论坛。这样便于有同样问题的人查找资料

    3 你发帖之前也可以去问题相关的论坛,例如asp.net、silverlight和visual studio的论坛查找看看是不是有以前的讨论,这样比等人回答要快。很多常见的问题可以在对应论坛的FAQ找到。例如 ASP.Net的论坛FAQ里面就有dropdownlist的联动的示例代码,.Net 一般性问题讨论区有Windows Forms常见问题解答等等。

    鉴于你的问题中很多和silverlight相关,先移动到silverlight论坛。



    The following is signature, not part of post
    Please mark the post answered your question as the answer, and mark other helpful posts as helpful.
    Visual C++ MVP
    2010年4月4日 1:40
    版主
  • 终于见到一个搞VB的,可惜是老VB...我尝试每个都回答或者提示一下.所有回答不涉及桌面部分(AIR?)

    1 自从到了VB.NET以后,这个image控件就有了很多种.以前的vb只有一套gdi的UI.现在到了.net以后,gdi被封装成了WinForm.WPF/SL是另外一套UI库(UI库其实是很多的,不再限于以前的那么一套).所以你按照以前的的思路来理解是不行的.在SL中.修改image.source=new xxxxx.可以修改这个控件所指的图像.如果你想进行像素操作,是很困难的.pset之类的是不能用了.你得想办法去修改这个数据流.

    2 稍后去那个帖子看

    3 vb.net也是有很多窗体的.但是使用前,你需要new Form1() New Form()2... 比如 dim f as new Form1()   f.ShowDialog() 你所谓的调用,我理解为你想在Form1里面直接call Form2的公共方法.这样,你需要在 module里面写一个main()函数,从main启动.里面定义一些公共的变量 比如  public f1 as new Form1()   public f2 as new Form2.此时,你在f1里面就能直接用f2.xxx()了.

    4 SL有Window类么?WPF是有的.alwaysontop也是有的.

    5 我一直都是F5的.你所谓的现象多半是你配置有问题.重新建立一个干净的项目你在试试

    6 SL没有Window类.(不知道SL的后续版本有没有,可能AIR的部分有)如果是WPF,那么你可以按照问题3的公共变量的方法.

    7 SL主要应用于网页前台设计.比如你打开一个网页,他去调用Windows底层API了...你会有何感想?SL能用的功能仅限于他自身的框架.如果是WPF可以跟以前经典的WinForm程序一样Declare Function xxxx....

    8 请查找相应的SDK,这个不是SL包含的部分.好比你在问Direct3D上问如何让一个模型被攻击后发出惨叫一样的道理.

    9 我认为这是一种进步.ADO.NET的部分,几行代码就能完成同样的操作.或者你拖一下控件就能在Winform中实现数据绑定.更重要的是,现在操作数据库的手段更多了.

    10 对于您这里"检测"可能有如下理解 a 验证数据格式,比如邮箱必须含有@字符 b用户的任何操作我都要知道,比如输入验证码的时候 c用户点了下一页,我希望能ajax不切换就更新数据 d 用户点了某个button提交了数据,送到了我的服务器应用(比如web form). 无论是哪种理解都不是一句两句话能说清楚的.建议您先从 VS自带的QuickStart看起.

    11 这个是可以做到的,需要另外写一个简单的xaml.您可以google: custom silverlight loading 看我google出来的http://www.dotblogs.com.tw/lolota/archive/2008/12/07/6282.aspx 这个跟vb一点关系不大,是js

    12 在DropDownList1的SelectedIndexChanged会有效果的.您确定是DropDOwnList1还是DropDownList11?

    我认为您需要先从VB.NET开始了解.先把以前老VB的习惯全部"纠正"过来,当然,这无疑是非常痛苦的过程.无论是框架还是语法都有着巨大的不同.第二步等您基础扎实了之后再来拓展视野,这个时候再去搞asp.net ado.net wpf sl之类.不然,您这样提问问题.的确很难回答.

    最后一个还是请MS的人来回答吧

    • 已标记为答案 新阿伦 2010年4月7日 22:15
    2010年4月6日 7:49
  • 3 vb.net也是有很多窗体的.但是使用前,你需要new Form1() New Form()2... 比如 dim f as new Form1()   f.ShowDialog() 你所谓的调用,我理解为你想在Form1里面直接call Form2的公共方法.这样,你需要在 module里面写一个main()函数,从main启动.里面定义一些公共的变量 比如  public f1 as new Form1()   public f2 as new Form2.此时,你在f1里面就能直接用f2.xxx()了.


    今天试了一下,真的可以了.呵呵!真不知道为什么vb.net整得就是要比vb麻烦,vb下随时随地可以form2.show 多爽.最让人郁闷的是同样的操作和语法,用vb.net来开发silverlight,用dim new的上述方法就不行了!!!!具体方法,我还是不知道.微软平台上silverlight的开发,可以用各种语言的确是方便多了,但为什么就不再进一步,比如在vb.net中用vb.net的语法和调用方法就可以完全开发silverlight,而不是有所不同.
    2010年4月28日 5:32