VB.Net - 有更好的方法来编写这段代码吗? [英] VB.Net - Is there a better way to write this code?

查看:116
本文介绍了VB.Net - 有更好的方法来编写这段代码吗?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

你好,


我想为双重发布这个问题道歉,因为我发布了

同样的问题看起来像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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆