VB.Net - 有更好的方法来编写这段代码吗? [英] VB.Net - Is there a better way to write this code?
问题描述
你好,
我想为双重发布这个问题道歉,因为我发布了
同样的问题看起来像VB 6新组和不是.Net
新闻组...
这里有:
以下代码有效,但我一直在看它并且认为那里有b $ b应该是某种方式来压缩它。有10个ImagePages,唯一的
差异是他们的名字属性。即ImagePage1,ImagePage2,
ImagePage3 ...
我的目标是删除Select Case语句并将其替换为
喜欢ImagePage& miCnt。 (想想这就是我在Clipper中做了这个很久很久很久的事情。
问题是ImagePage在等于左边符号为我
我正在为ImagePage的属性赋值。
如果有人有解决方案,我将非常感激。代码片段
以下...
谢谢,
Rhek
对于miCnt = 1到10 >
msFileName = myDataRow(" Image"& miCnt&" URL")。ToString()
如果Len(msFileName)> 0然后
msFileName = msApplicationPath&" img \"& msFileName
选择案例miCnt
案例1
ImagePage1.picImage.Image = Image.FromFile(msFileName)
ImagePage1.lblFileName.Text = msFileName
ImagePage1.picImage .BorderStyle = BorderStyle.FixedSingle
ImagePage1.editImageCaption.Text =
myDataRow(" Image1Caption" ;)。ToString()
案例2
ImagePage2.picImage.Image = Image.FromFile(msFileName)
ImagePage2.lblFileName.Text = msFileName
ImagePage2.picImage.BorderStyle = BorderStyle.FixedSingle
ImagePage2.editImageCaption.Text =
myDataRow(" Image2Caption")。ToString( )
案例3
ImagePage3.picImage.Image = Image.FromFile(msFileName)
ImagePage3.lblFileName.Text = msFileName
ImagePage3.picImage.BorderStyle = BorderStyle.FixedSingle
ImagePage3.editImageCaption.Text =
myDataRow(" Image3Caption")。ToString()
案例4
ImagePage4.picImage.Image = Image.FromFile(msFileName)
ImagePage4.lblFileName.Text = msFileName
ImagePage4 .picImage.BorderStyle = BorderStyle.FixedSingle
ImagePage4.editImageCaption.Text =
myDataRow(" Image4Caption")。ToString()
案例5
ImagePage5.picImage.Image = Image.FromFile(msFileName)
ImagePage5.lblFileName.Text = msFileName
ImagePage5.picImage.BorderStyle = BorderStyle.FixedSingle
ImagePage5.editImageCaption。 Text =
myDataRow(" Image5Caption")。ToString()
案例6
ImagePage6.picImage.Image = Image.FromFile(msFileName )
ImagePage6.lblFileName.Text = msFileName
ImagePage6.picImage.BorderStyle = BorderStyle.FixedSingle
ImagePage6.editImageCaption.Text =
myDataRow(" Image6Caption")。ToString()
案例7
ImagePage7.picImage.Image = Image.FromFile(msFileName)
ImagePage7.lblFileName.Text = msFileName
ImagePage7.picImage.BorderStyle = BorderStyle.FixedSingle
ImagePage7.editImageCaption.Text =
myDataRow(" Image7Caption")。ToString()
案例8
ImagePage8.picImage.Image = Image.FromFile(msFileName)
ImagePage8 .lblFileName.Text = m sFileName
ImagePage8.picImage.BorderStyle = BorderStyle.FixedSingle
ImagePage8.editImageCaption.Text =
myDataRow(" Image8Caption")。ToString( )
案例9
ImagePage9.picImage.Image = Image.FromFile(msFileName)
ImagePage9.lblFileName.Text = msFileName
ImagePage9.picImage.BorderStyle = BorderStyle.FixedSingle
ImagePage9.editImageCaption.Text =
myDataRow(" Image9Caption")。ToString()
案例10
ImagePage10.picImage.Image = Image.FromFile(msFileName)
ImagePage10.lblFileName.Text = msFileName
ImagePage10 .picImage.BorderStyle = BorderStyle.FixedSingle
ImagePage10.editImageCaption.Text =
myDataRow(" Image10Caption")。ToString()
End选择
结束如果
下一页
Rhek,
再次不是正确的n ewsgroup。
在我看来是最好的一个
microsoft.public.dotnet.languages.vb
提前给出答案,你可以提出更好的问题
在该新闻组中提出问题。通常有dotNet 3不同的b $ b窗口形式,它有自己的使用方法(最好使用名称
表格,因为Page更多的是dotNet中的webform,现在我不得不看看
image.fromfile,因为它不存在于Webform中。
表格可以是
- 一个标准的表格,显示为frm.show
- 一个MDI儿童frm,它被添加到MDI父母的集合中
- 一个用frm显示的标准表格.showdialog
在dotNet中存在来自引用的所有内容,因此您可以在其中一种方式使用
这些引用。然而,这些表单的实例方式是
对于获得正确的集合非常重要。
在VB6中,每个表单都有一个formarray,现在每个控件都来自其中
是Form a a(Child)Control Collection,而表格还有更多。
我希望到目前为止这有用吗?
Cor
我想为双重发布这个问题道歉,因为我
发布了同样的问题看起来像VB 6新组而不是.Net
新闻组......
这里有:
下面的代码可以工作,但我只是继续看着它,并认为那里有
应该是某种方式来压缩它。有10个ImagePages,唯一的区别是他们的名字属性。即ImagePage1,ImagePage2,
ImagePage3 ...
我的目标是删除Select Case语句并将其替换为
,如ImagePage& miCnt。 (想想这就是我很久以前在Clipper中做了这么多,
。
问题是ImagePage位于等号的左侧,因为我是
将值赋给ImagePage的属性。
如果有人有解决方案,我会非常感激。下面的代码片段
谢谢,
Rhek
对于miCnt = 1到10
msFileName = myDataRow(" Image"& miCnt&" URL")。ToString()
如果Len(msFileName)> 0那么
msFileName = msApplicationPath&" img \"& msFileName
选择Case miCnt
案例1
ImagePage1.picImage.Image = Image.FromFile(msFileName)
ImagePage1.lblFileName.Text = msFileName
ImagePage1.picImage.BorderStyle = BorderStyle.FixedSingle
ImagePage1.editImageCaption.Text =
myDataRow(" Image1Caption")。ToString()
案例2
ImagePage2.picImage.Image = Image.FromFile(msFileName)
ImagePage2.lblFileName.Text = msFileName
ImagePage2.picImage.BorderStyle = BorderStyle.FixedSingle
ImagePage2.editImageCaption.Text =
myDataRow(" Image2Caption")。ToString()
案例3
ImagePage3.picImage.Image = Image.FromFile(msFileName)
ImagePage3.lblFileName.Text = msFileName
ImagePage3.picImage.BorderStyle = BorderStyle.FixedSingle
ImagePage3.editImageCaption.Text =
myDataRow(" Image3Caption" ).ToString()
案例4
ImagePage4.picImage.Image = Image.FromFile(msFileName)
ImagePage4.lblFileName.Text = msFileName
ImagePage4.picImage.BorderStyle = BorderSty le.FixedSingle
ImagePage4.editImageCaption.Text =
myDataRow(" Image4Caption")。ToString()
案例5
ImagePage5.picImage.Image = Image.FromFile(msFileName)
ImagePage5.lblFileName.Text = msFileName
ImagePage5.picImage.BorderStyle = BorderStyle.FixedSingle
ImagePage5.editImageCaption.Text =
myDataRow(" Image5Caption")。ToString()<案例6
ImagePage6.picImage.Image = Image.FromFile(msFileName)
ImagePage6.lblFileName.Text = msFileName
ImagePage6.picImage.BorderStyle = BorderStyle.FixedSingle
ImagePage6 .editImageCaption.Text =
myDataRow(" Image6Caption")。ToString()
案例7
ImagePage7.picImage.Image = Image.FromFile(msFileName)
ImagePage7.lblFileName。文字= ms FileName
ImagePage7.picImage.BorderStyle = BorderStyle.FixedSingle
ImagePage7.editImageCaption.Text =
myDataRow(" Image7Caption")。ToString()
案例8
ImagePage8 .picImage.Image = Image.FromFile(msFileName)
ImagePage8.lblFileName.Text = msFileName
ImagePage8.picImage.BorderStyle = BorderStyle.FixedSingle
ImagePage8.editImageCaption.Text =
myDataRow (Image8Caption)。ToString()
案例9
ImagePage9.picImage.Image = Image.FromFile(msFileName)
ImagePage9.lblFileName.Text = msFileName
ImagePage9.picImage .BorderStyle = BorderStyle.FixedSingle
ImagePage9.editImageCaption.Text =
myDataRow(" Image9Caption")。ToString()
案例10
ImagePage10.picImage.Image = Image .FromFile(msFileName)
ImagePage10.lblFileName.Text = msFileName
ImagePage10.picImage.BorderStyle = BorderStyle.FixedSingle
ImagePage10.editImageCaption.Text =
myDataRow(" Image10Caption") .ToString()
结束选择
结束如果
下一页
< blockquote> Rhek< Rh ** @ discuss.microsoft.com>写道:
我想为双重发布这个问题道歉,因为我发布了同样的问题,看起来像VB 6新组,而不是.Net
新闻组。 。
这里有:
下面的代码可以工作,但我只是继续关注它并认为应该有某种方式来压缩它。有10个ImagePages,唯一的区别是他们的名字属性。即ImagePage1,ImagePage2,
ImagePage3 ......
我的目标是删除Select Case语句并将其替换为像ImagePage& miCnt这样的东西。 (想想这就是我在Clipper中做了很久很久很久的事。
问题是ImagePage位于等号的左侧,因为我是
将值赋给ImagePage的属性。
如果有人有解决方案,我将非常感激。下面的代码片段
当然,这很容易:创建一个数组,例如ImagePages,然后
使用
ImagePages(miCnt).picImage.Image = Image.FromFile(msFileName)
等
-
Jon Skeet - < sk * **@pobox.com>
http://www.pobox.com/ 〜双向飞碟
如果回复小组,请不要给我发邮件
Cor Ligthert< no **** ******@planet.nl>写道:再次不是正确的新闻组。
在我看来是最好的新闻组
微软.publ ic.dotnet.languages.vb
恐怕我们再次不同意,Cor :)
使用数组控件(我建议的解决方案)而不是命名
每个单独不是语言问题,它是一般设计
问题。
-
Jon Skeet - < sk *** @ pobox.com>
http://www.pobox.com/~skeet
如果回复该群组,请不要给我发邮件
Hello,
I would like to apologize for double posting this question because I posted
this same question in what looks like the VB 6 newgroups and not the .Net
newsgroup...
Here goes:
The code below works but I just keep looking at it and thinking that there
should be some way to compact it. There are 10 ImagePages and the only
difference is their name propertie. i.e. ImagePage1, ImagePage2,
ImagePage3...
My goal is to remove the Select Case statement and replace it with something
like ImagePage&miCnt. (think that is how I did this in Clipper a long, long
time ago.
The problem is that ImagePage is on the left side of the equal symbol as I
am assigning values to the properties of the ImagePage.
If anyone has a solution for this I would be very grateful. Code snippet
below...
Thanks,
Rhek
For miCnt = 1 To 10
msFileName = myDataRow("Image" & miCnt & "URL").ToString()
If Len(msFileName) > 0 Then
msFileName = msApplicationPath & "img\" & msFileName
Select Case miCnt
Case 1
ImagePage1.picImage.Image = Image.FromFile(msFileName)
ImagePage1.lblFileName.Text = msFileName
ImagePage1.picImage.BorderStyle = BorderStyle.FixedSingle
ImagePage1.editImageCaption.Text =
myDataRow("Image1Caption").ToString()
Case 2
ImagePage2.picImage.Image = Image.FromFile(msFileName)
ImagePage2.lblFileName.Text = msFileName
ImagePage2.picImage.BorderStyle = BorderStyle.FixedSingle
ImagePage2.editImageCaption.Text =
myDataRow("Image2Caption").ToString()
Case 3
ImagePage3.picImage.Image = Image.FromFile(msFileName)
ImagePage3.lblFileName.Text = msFileName
ImagePage3.picImage.BorderStyle = BorderStyle.FixedSingle
ImagePage3.editImageCaption.Text =
myDataRow("Image3Caption").ToString()
Case 4
ImagePage4.picImage.Image = Image.FromFile(msFileName)
ImagePage4.lblFileName.Text = msFileName
ImagePage4.picImage.BorderStyle = BorderStyle.FixedSingle
ImagePage4.editImageCaption.Text =
myDataRow("Image4Caption").ToString()
Case 5
ImagePage5.picImage.Image = Image.FromFile(msFileName)
ImagePage5.lblFileName.Text = msFileName
ImagePage5.picImage.BorderStyle = BorderStyle.FixedSingle
ImagePage5.editImageCaption.Text =
myDataRow("Image5Caption").ToString()
Case 6
ImagePage6.picImage.Image = Image.FromFile(msFileName)
ImagePage6.lblFileName.Text = msFileName
ImagePage6.picImage.BorderStyle = BorderStyle.FixedSingle
ImagePage6.editImageCaption.Text =
myDataRow("Image6Caption").ToString()
Case 7
ImagePage7.picImage.Image = Image.FromFile(msFileName)
ImagePage7.lblFileName.Text = msFileName
ImagePage7.picImage.BorderStyle = BorderStyle.FixedSingle
ImagePage7.editImageCaption.Text =
myDataRow("Image7Caption").ToString()
Case 8
ImagePage8.picImage.Image = Image.FromFile(msFileName)
ImagePage8.lblFileName.Text = msFileName
ImagePage8.picImage.BorderStyle = BorderStyle.FixedSingle
ImagePage8.editImageCaption.Text =
myDataRow("Image8Caption").ToString()
Case 9
ImagePage9.picImage.Image = Image.FromFile(msFileName)
ImagePage9.lblFileName.Text = msFileName
ImagePage9.picImage.BorderStyle = BorderStyle.FixedSingle
ImagePage9.editImageCaption.Text =
myDataRow("Image9Caption").ToString()
Case 10
ImagePage10.picImage.Image = Image.FromFile(msFileName)
ImagePage10.lblFileName.Text = msFileName
ImagePage10.picImage.BorderStyle = BorderStyle.FixedSingle
ImagePage10.editImageCaption.Text =
myDataRow("Image10Caption").ToString()
End Select
End If
Next
Rhek,
And again not the right newsgroup.
In my opinion is the best one for this
microsoft.public.dotnet.languages.vb
To give you an answer in advance with what you can make your question better
for making the question in that newsgroup. In general has dotNet 3 different
windowforms, which have there own used methods (It is better to use the name
Forms because Page stands more for a webform in dotNet, now I had to look at
image.fromfile because that exist not in a Webform).
The form can be
- a standard form which is showed with frm.show
- a MDI child frm which is added to the collection of the MDI parent
- a standard form which is showed with frm.showdialog
In dotNet exist everything from references so you can use in one ore the
other way those references. However the way those forms are instanced is
important to get the right collection.
In VB6 there was one formarray per form, now has every Control, from which
is the Form one a (Child) Control Collection, while the form has even more.
I hope this helps so far?
Cor
I would like to apologize for double posting this question because I posted this same question in what looks like the VB 6 newgroups and not the .Net
newsgroup...
Here goes:
The code below works but I just keep looking at it and thinking that there
should be some way to compact it. There are 10 ImagePages and the only
difference is their name propertie. i.e. ImagePage1, ImagePage2,
ImagePage3...
My goal is to remove the Select Case statement and replace it with something like ImagePage&miCnt. (think that is how I did this in Clipper a long, long time ago.
The problem is that ImagePage is on the left side of the equal symbol as I
am assigning values to the properties of the ImagePage.
If anyone has a solution for this I would be very grateful. Code snippet
below...
Thanks,
Rhek
For miCnt = 1 To 10
msFileName = myDataRow("Image" & miCnt & "URL").ToString()
If Len(msFileName) > 0 Then
msFileName = msApplicationPath & "img\" & msFileName
Select Case miCnt
Case 1
ImagePage1.picImage.Image = Image.FromFile(msFileName)
ImagePage1.lblFileName.Text = msFileName
ImagePage1.picImage.BorderStyle = BorderStyle.FixedSingle
ImagePage1.editImageCaption.Text =
myDataRow("Image1Caption").ToString()
Case 2
ImagePage2.picImage.Image = Image.FromFile(msFileName)
ImagePage2.lblFileName.Text = msFileName
ImagePage2.picImage.BorderStyle = BorderStyle.FixedSingle
ImagePage2.editImageCaption.Text =
myDataRow("Image2Caption").ToString()
Case 3
ImagePage3.picImage.Image = Image.FromFile(msFileName)
ImagePage3.lblFileName.Text = msFileName
ImagePage3.picImage.BorderStyle = BorderStyle.FixedSingle
ImagePage3.editImageCaption.Text =
myDataRow("Image3Caption").ToString()
Case 4
ImagePage4.picImage.Image = Image.FromFile(msFileName)
ImagePage4.lblFileName.Text = msFileName
ImagePage4.picImage.BorderStyle = BorderStyle.FixedSingle
ImagePage4.editImageCaption.Text =
myDataRow("Image4Caption").ToString()
Case 5
ImagePage5.picImage.Image = Image.FromFile(msFileName)
ImagePage5.lblFileName.Text = msFileName
ImagePage5.picImage.BorderStyle = BorderStyle.FixedSingle
ImagePage5.editImageCaption.Text =
myDataRow("Image5Caption").ToString()
Case 6
ImagePage6.picImage.Image = Image.FromFile(msFileName)
ImagePage6.lblFileName.Text = msFileName
ImagePage6.picImage.BorderStyle = BorderStyle.FixedSingle
ImagePage6.editImageCaption.Text =
myDataRow("Image6Caption").ToString()
Case 7
ImagePage7.picImage.Image = Image.FromFile(msFileName)
ImagePage7.lblFileName.Text = msFileName
ImagePage7.picImage.BorderStyle = BorderStyle.FixedSingle
ImagePage7.editImageCaption.Text =
myDataRow("Image7Caption").ToString()
Case 8
ImagePage8.picImage.Image = Image.FromFile(msFileName)
ImagePage8.lblFileName.Text = msFileName
ImagePage8.picImage.BorderStyle = BorderStyle.FixedSingle
ImagePage8.editImageCaption.Text =
myDataRow("Image8Caption").ToString()
Case 9
ImagePage9.picImage.Image = Image.FromFile(msFileName)
ImagePage9.lblFileName.Text = msFileName
ImagePage9.picImage.BorderStyle = BorderStyle.FixedSingle
ImagePage9.editImageCaption.Text =
myDataRow("Image9Caption").ToString()
Case 10
ImagePage10.picImage.Image = Image.FromFile(msFileName)
ImagePage10.lblFileName.Text = msFileName
ImagePage10.picImage.BorderStyle = BorderStyle.FixedSingle
ImagePage10.editImageCaption.Text =
myDataRow("Image10Caption").ToString()
End Select
End If
Next
Rhek <Rh**@discussions.microsoft.com> wrote:I would like to apologize for double posting this question because I posted
this same question in what looks like the VB 6 newgroups and not the .Net
newsgroup...
Here goes:
The code below works but I just keep looking at it and thinking that there
should be some way to compact it. There are 10 ImagePages and the only
difference is their name propertie. i.e. ImagePage1, ImagePage2,
ImagePage3...
My goal is to remove the Select Case statement and replace it with something
like ImagePage&miCnt. (think that is how I did this in Clipper a long, long
time ago.
The problem is that ImagePage is on the left side of the equal symbol as I
am assigning values to the properties of the ImagePage.
If anyone has a solution for this I would be very grateful. Code snippet
below...
Sure, it''s very easy: create an array instead, eg ImagePages, and then
use
ImagePages(miCnt).picImage.Image = Image.FromFile(msFileName)
etc.
--
Jon Skeet - <sk***@pobox.com>
http://www.pobox.com/~skeet
If replying to the group, please do not mail me too
Cor Ligthert <no**********@planet.nl> wrote:And again not the right newsgroup.
In my opinion is the best one for this
microsoft.public.dotnet.languages.vb
I''m afraid we disagree again, Cor :)
Using an array of controls (my suggested solution) rather than naming
each one separately isn''t a language issue, it''s a general design
issue.
--
Jon Skeet - <sk***@pobox.com>
http://www.pobox.com/~skeet
If replying to the group, please do not mail me too
这篇关于VB.Net - 有更好的方法来编写这段代码吗?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!