トップページ⇒tech
1001コメント347KB

【老若】VB.net質問スレ【男女】

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさんNGNG
VB質問スレはあるのに、「VB.net質問スレが無い!」
と憤慨しているアナタ!
の為に立ててみました。
VB.net初心者〜VB.net神
まで自由に書き込んでチョ。
0685デフォルトの名無しさんNGNG
>>683
> VB.Net でもできますよね。
http://www.microsoft.com/japan/msdn/library/ja/vbls7/html/vblrfVBSpec11.asp
オーバーロードに関する記述が無いよ?
0686デフォルトの名無しさんNGNG
スタートアップに設定したフォームが閉じてもアプリケーションを終了させないことって可能ですか?
0687デフォルトの名無しさんNGNG
>>684
演算子のオーバーロードはC#独自の機能で、CLIの機能ではないよ。
IL的に見れば、ただの specialname 属性の付いた1メソッドにすぎないからね。
それをC#が勝手に特別扱いしてるだけ。
0688685NGNG
>>687 詳細サンクス。ためになった。
0689683NGNG
ありがとうございました。
だめなら、だめで、他のコーディングで対応します。

#MSDNにも演算子のオーバーロードはできませんぐらい書いてくれたらいいのに。。。
0690デフォルトの名無しさんNGNG
>>689
ドキュメントに言語仕様が掲載されているのに何言ってんだか。
0691デフォルトの名無しさんNGNG
>>686
スタートアップをMainにして、
Application.Run()でアプリ開始、
Application.Exit()でアプリ終了するようにすればよろし。
0692デフォルトの名無しさんNGNG
フォームを印刷するには、どうしたらいいのですか?
0693デフォルトの名無しさんNGNG
>>692
PrintScreenでキャプチャする
0694692NGNG
早速の回答、ありがとうございます。
すいませんが、どのようなコードを記述すればよいのでしょうか?
PrintDocument1_PrintPageに、書き込めばいいのでしょうか?
よろしくお願いいたします。
0695デフォルトの名無しさんNGNG
"Boolean"ってカタカナ読みしたら「ブール」なんですか?
0696デフォルトの名無しさんNGNG
>>695
ブールは今は流行らない省略形を好むC厨読みです。
0697最凶VB厨房NGNG
>>687
ありがとさん。
フムフムφ...メモメモ

specialname・・・
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/cpref/html/frlrfSystemReflectionTypeAttributesClassTopic.asp?frame=true

>>692
漏れのスキルじゃわからんチン。
このコードが参考になるやもしれん。。。ならんかも知れん。鬱氏
http://www.dotnet247.com/247reference/msgs/26/133191.aspx
0698695NGNG
>>696
最新の読み方は何なんですか?
0699デフォルトの名無しさんNGNG
GDI+をサンプル見ながらフォームに書いている所です。
で、何かしらのグラフィックをパネルクリックをトリガにパネル上に書こうと思ったのですが
Private Sub Panel1_Paint(〜

End Sub
Private Sub Panel1_Click(〜 ) Handles Panel1.Click

End Sub
を出してから途方にくれているのですが、
その次にどのように考えたら良いのでしょうか?
0700最凶VB厨房NGNG
>>699
Graphicsオブジェクトを作成する。

その後は、
ms-help://MS.VSCC/MS.MSDNVS.1041/cpguide/html/cpcondrawingeditingimages.htm
ここらへん見て適当にやる。
0701デフォルトの名無しさんNGNG
>>695
ブーリアン
ブールでも普通に通じるよ。ブール値を扱うのがブーリアンだし。
ちなみにブールは数学者の名前だ。
ttp://www.interq.or.jp/jazz/iijima/primer/comment/bool.html
0702デフォルトの名無しさんNGNG
>700
レスありがとう。今の状況。
サンプルに習いPanel1_Paint中に
Dim g As Graphics = e.Graphics
g.DrawString("Hello World!", Control.DefaultFont, Brushes.PapayaWhip, e.ClipRectangle.Left + 10, e.ClipRectangle.Top + 10)
を入れてます。
で、Form1のコンストラクタに
AddHandler Panel1.Click, AddressOf Me.Panel1_Click
の一文を入れたら良い感じ。ただ、一番にOnPaintが発生しているらしいので、生成時に既に書かれてしまっている。
ここをクリアできれば使えそうだが。。
0703692NGNG
>>693
やっと、意味がわかりました。
ありがとうございました。
0704699NGNG
>702
あれ、読み返してみて馬鹿な事書いてる。Paintと関係ないじゃん。
忘れてください。
またやり直して報告しにきます。
0705最凶VB厨房NGNG
Paintの中なら、
e.Graphics.DrawLine(New Pen(Color.Black), 0, 0, 100, 100)
ってな感じで使えるぜ。
0706699NGNG
>705
そうなんです。
Paintをハンドルした先なら、Graphicオブジェクトが使えて
Clickをハンドルした先でClickイベントが捕まえられる。
どうにか、二つを一緒にしたClick→Paintという形態がとれないかと思っています。
目的としては学習および利用方法の取得メインなので、出来ればこの二つのハンドラを崩さない形で。
0707最凶VB厨房NGNG
>>621か
http://www.atmarkit.co.jp/fdotnet/vb6tonet/index/index.html
にある
http://www.atmarkit.co.jp/fdotnet/vb6tonet/vb6tonet25/vb6tonet25_01.html
↑を見るがよろし。両方見るがよろし。
0708最凶VB厨房NGNG
ってあかんわ。嘲笑ハゲワラ>>俺
0709699NGNG
>706-707
Clickのハンドラに
Dim g As Graphics = Graphics.FromHwnd(Me.Panel1.Handle)
g.DrawString("Hello World!", Control.DefaultFont, Brushes.PapayaWhip, Cursor.Position.X() - Me.Location.X - Me.Panel1.Location.X, Cursor.Position.Y() - Me.Location.Y - Me.Panel1.Location.Y)
を入れると、ちょっと座標が追従してなくおかしいけど、まぁ、大体合ったことは合った。

さて本来ならこれでいいのかもしれないですが、目的が達成されていないのでこれから>707のリンク先を見てきます。
0710699NGNG
ClickとPaintでは継承元が違うのかな。
ハンドル追加しようにもシグニチャが違うと怒られる。。どっちもpanel1のイベントなのに(´・ω・‘)ショボーン
原因分からず。
とりあえずOnPaintはシステムで管理するタイミング専用と。
0711デフォルトの名無しさんNGNG
DataGridコントロールのセルを編集したときや別の行に移動したときのイベントってどう記述しますか?
6にあったAfterColEditのようなイベントは無くなったのでしょうか?
0712デフォルトの名無しさんNGNG
>>709-710
それだと、自分のウィンドウが他のウィンドウで隠れたら、
描画内容が消えないか?

PrivateなBitmapクラスの変数を用意しておく。

ClickイベントではBitmapオブジェクトを作って、
そこから得た、Graphicsオブジェクトに絵を描く。
BitmapオブジェクトがNothingでなければ、
PaintイベントではBitmapオブジェクトを描画する。

ってな具合でOKかな。
0713699NGNG
>712
レスありがとう。
それが出来ればまともなアプリの振る舞いになりそう。

そこで、二つ聞きたいんだけど。(悩みながらやっているので、その後自己解決したら報告します)
Bitmapオブジェクトに対して書くのは、明示的にPanel1に書いて、Bitmapにも書くって事?
現状、Bitmapに対して書くことができないんだけど、どのような解決方法があるの?
0714712NGNG
>>713
ちょっと抜けてたので補足。

ClickイベントでBitmapオブジェクトに描いて、
#Bitmapオブジェクトに描くというのは、
#Bitmapオブジェクトを生成して、さらに、Graphics.FromImageで
#Graphicsオブジェクトを取得し、そこに描画するということ。
その後、Invalidateメソッドで再描画するように指示する。
そうすればPaintイベントが発火されるので、
その中では、e.Graphics.DrawImageを使ってこのBitmapを描画する。
0715699NGNG
言われた通りにやってみたらちょっと進展。勘違い含み。

Formのコンストラクタに
bmppanel = New Bitmap(Panel1.Width, Panel1.Height, Graphics.FromHwnd(Me.Panel1.Handle))
Paintのハンドラに
Dim g As Graphics = Graphics.FromImage(bmppanel)
If Not (bmppanel Is Nothing) Then
g.DrawImage(bmppanel, 0, 0)
End If
Clickのハンドラに
Dim g As Graphics = Graphics.FromImage(bmppanel)
g.DrawString("Hello World!", Control.DefaultFont, Brushes.PapayaWhip, Cursor.Position.X() - Me.Location.X - Me.Panel1.Location.X, Cursor.Position.Y() - Me.Location.Y - Me.Panel1.Location.Y)

としたら、全く描画がされなくなったけど、何かおしいところにいっているような気がする。
NETなんだろのサンプルもこんな感じだったし。
0716699NGNG
>714
すいません読んでなかった。
715は712を読んでの結果です。

試してから出直してきます。
0717699NGNG
>714
ありが�d。おかげさまで再描画対応なフォームが出来ました。
715の状態からPaintハンドラのGraphicオブジェクト宣言を
Dim g As Graphics = e.Graphics
に。またClickハンドラの最後に
Me.Panel1.Invalidate(True)
を追加するだけで出来ました。アドバイスのままですけど、改めてコードとして報告。

改めて、最凶VB厨房さんと、712さんに感謝。

あと、タイトルバー左上角からフォームの左上隅Sizeの取得方法わかる方いますか?ここのオフセットがどうしても取れない。。
0718デフォルトの名無しさんNGNG
初心者です。
calc.exeを起動して、それが閉じられたらもう一回起動する、というようなプログラムはできないものでしょうか。
Shell関数の辺りを調べてみましたが、ダメでした。
よろしくお願いします。
0719デフォルトの名無しさんNGNG
>>717
System.Windows.Forms.SystemInformation で地道に計算。
0720デフォルトの名無しさんNGNG
>>718
できるかどうかは試してないが、
Processクラスあたりでなんかないかな。
0721デフォルトの名無しさんNGNG
labelの背景色透明化って、真下にあるコントロールは表示されない仕様なんですか?
vb6のように、真下にある物も表示させる方法はあるのかな。
0722デフォルトの名無しさんNGNG
VB6から.NET に移行したら今まで使えてたDLLが使えなくなって
もー8時間くらい試行錯誤してます… どなたかヒントだけでもプリーズ!

〜〜 VB6版(正常に動く
Private Type TestInfo
dataType As Long
dataSize As Long
scale As Double
act As Long
mot As Long
frm As Long
End Type

Private Declare Function GetInfo Lib "getinfo.dll" Alias "_GetInfo@8" (ByVal lpInFileName As String, lpInfo As TestInfo) As Integer

Dim iReturn As Integer
Dim info As TestInfo

iReturn = GetInfo(strFileName, info)
0723デフォルトの名無しさんNGNG
続きがかけない・・・
0724デフォルトの名無しさんNGNG
.NET版は TypeをStructureにしただけです。

〜〜 エラーの表示
'System.NullReferenceException' のハンドルされていない例外が RaClient.exe で発生しました。
追加情報 : オブジェクト参照がオブジェクト インスタンスに設定されていません。
0725デフォルトの名無しさんNGNG
http://www.microsoft.com/japan/msdn/net/books/ProgWinVBNET/chapter2.asp
0726デフォルトの名無しさんNGNG
画像を指定したサイズでPictureBoxに表示する場合
VB6の時はLoadPictureを使用して、
PictureBox.PaintPicture LoadPictute("画像.jpg"), 0, 0, 100, 100,0,0
って出来たんだけど、

VB.NETではどうやるんですか?

http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/cpref/html/frlrfsystemdrawinggraphicsclassdrawimagetopic5.asp
の
Public Sub DrawImageRect(e As PaintEventArgs)
' Create image.
Dim newImage As Image = Image.FromFile("SampImag.jpg") ←これはわかります
' Create rectangle for displaying image.
Dim destRect As New Rectangle(100, 100, 450, 150)
' Draw image to screen.
e.Graphics.DrawImage(newImage, destRect)
End Sub

をやってみても、どこにも画像が表示されないし…。よくわかりません

よろしくお願いします。
0727世直し一揆NGNG
<血液型A型の一般的な特徴>(見せかけの優しさ(偽善)に騙されるな!)
●とにかく気が小さい(神経質、臆病、二言目には「世間」)
●他人に異常に干渉する(しかも好戦的・ファイト満々でキモイ)
●自尊心が異常に強く、自分が馬鹿にされると怒るくせに平気で他人を馬鹿にしようとする
(ただし、相手を表面的・形式的にしか判断できず(早合点・誤解の名人)、実際にはたいてい、内面的・実質的に負けている)
●「常識、常識」と口うるさいが、実はA型の常識はピントがズレまくっている(日本の常識は世界の非常識)
●権力、強者(警察、暴走族…etc)に弱く、弱者には威張り散らす(強い者に弱く、弱い者には強い)
●あら探しだけは名人級(例え10の長所があってもほめることをせず、たった1つの短所を見つけてはけなす)
●基本的に悲観主義でマイナス思考に支配されているため、性格がうっとうしい(根暗)
●一人では何もできない(群れでしか行動できないヘタレ)
●少数派の異質、異文化を排斥する(差別主義者)
●集団によるいじめのパイオニア&天才(陰湿&陰険)
●悪口、陰口が大好き(A型が3人寄れば他人の悪口、裏表が激しい)
●他人からどう見られているか、体裁をいつも気にしている(「世間体命」、「〜みたい」とよく言う)
●自分の感情をうまく表現できず、コミュニケーション能力に乏しい(同じことを何度も言う、知障)
●表面上意気投合しているようでも、腹は各自バラバラで融通が利かず、頑固(本当は個性・アク強い)
●人を信じられず、疑い深い(自分自身裏表が激しいため、他人に対してもそう思う)
●自ら好んでストイックな生活をし、ストレスを溜めておきながら、他人に猛烈に嫉妬する(不合理な馬鹿)
●執念深く、粘着でしつこい(「一生恨みます」タイプ)
●自分に甘く他人に厳しい(自分のことは棚に上げてまず他人を責める。しかも冷酷)
●男は、女々しいあるいは女の腐ったみたいな考えのやつが多い
0728699NGNG
>726
教えられるような身空じゃ無いんだけど、
Paintハンドラで、そのDrawImageRectメソッド呼び出してますか?
他にも方法があるけど有効なPaintEventArgsを得るにはPaintハンドラ内から呼び出すのがいちばん簡単。

>719
レスありがとう。
このメンバ(プロパティ)ほとんどStaticなんだね.。
該当する物を見当つけてヒーコラ探している所です。

VB6と違ってインスタンス化しないクラスがあるので(VB6でもあったっけ?)、そういうときはウォッチ式が使いにくい。
あるクラスのプロパティの値だけ一覧でぱっと分かる方法って無いのかな。
0729726NGNG
>>728
申し訳ないんですが、簡単なコード教えてもらえませんか?
0730デフォルトの名無しさんNGNG
>726
728もいってるけど、あやしーのは e as PaintEventArgs だね。
ちゃんと描画したいオブジェクトのGraphicsオブジェクト持ってきてる?
確かCreateGraphicsかなんかで作れたはず。
0731デフォルトの名無しさんNGNG
>>722
>>430あたりからのレスとか、>>539付近とかまずは見てみ。
0732デフォルトの名無しさんNGNG
Datagridについて質問です。
DatasetをDatagridに貼り付ける際に
現在拙者はDoLoopを使ってAddしてます。
なんか自分は根本的に間違ってると思えるぐらい
激しく重いです。
DatagridのDataSourceに貼り付けようとしてみたんですが
クラス名が表示されたりしてうまいこといきません。

どうすれば効率的に貼り付けられるでしょうか。
どなたかよろしゅうお願いします。
0733726NGNG
>>730
うーん、、わからんですたい
考えてみると

>Public Sub DrawImageRect(e As PaintEventArgs)
これがわからない

>' Create image.
>Dim newImage As Image = Image.FromFile("SampImag.jpg")
newImageにSampImag.jpgってのが格納されて

>' Create rectangle for displaying image.
>Dim destRect As New Rectangle(100, 100, 450, 150)
座標100,100、サイズ450,150がdestRectに入って

' Draw image to screen.
e.Graphics.DrawImage(newImage, destRect)
で、eが描画・・・ハァ?
End Sub

ってことなんですよ

もう、わけわからないわけで。。。なんでこんなに大変なんだ.Netは・・・
0734デフォルトの名無しさんNGNG
>>732
質問の主旨がよくわかんないけど、データアダプタのFillメソッドを使う。
ttp://www.microsoft.com/japan/msdn/library/ja/Vbcon/html/
vbwlkwalkthroughdisplayingdatafromsingletableinwindowsform.asp
を一回読んでみたら?(urlは連結してね)

外してたらスマソ
0735730NGNG
>726
ってゆーか、よく見たらPictureBoxじゃん。
ImageオブジェクトをPictureBoxのImageプロパティにいれりゃOKだった。
PictureBox1ってやつを配置した場合なら、

Dim newImage As Image = Image.FromFile("SampImag.jpg")
PictureBox1.Image = newImage

どーしてもDrawImageが使いたいんならこんな感じ。

Dim Grap As System.Drawing.Graphics
Dim newImage As Image = Image.FromFile("SampImag.jpg")
Dim destRect As New Rectangle(100, 100, 450, 150)
Grap = PictureBox1.CreateGraphics
Grap.DrawImage(newImage, destRect)

0736726NGNG
おはようございます

>>735
あー出来ました。
どうしても、DrawImageが使いたかったので助かりました。
あとはCreateGraphicsを理解できればなんとかなるかな。

ありがとうございました。

そういや、コントロール配列ってなくなったんですねー。
Tagを使って変な感じで代替できてますが、なんか不便。。。
0737デフォルトの名無しさんNGNG
.Netって画像の再描画なくなったんだなぁ。。。どうしよ
0738デフォルトの名無しさんNGNG
>732
基本はDatagrid.DataSourceにDataSetのDataTableを入れりゃOK。
つーか、どうやってDataset取得してんのか教えれ。

>736
Controlクラスレベルならできるよ。
とはいえ、デザイナが自動生成するところいじらんとできない(はず)。
動的にコントロールを配置するときに少し便利。まあ、少しだけど。
0739732NGNG
>>734 >>738

ども。レス感謝です。732です。
OLEテータアダプタで抽出してfillでつっこんでます。
データ自体が来てるのは確認済みです。

>基本はDatagrid.DataSourceにDataSetのDataTableを入れりゃOK

つまり
Datagrid.DataSource = DataSet.tables("テーブル名")
って感じでしょうか?

一月前までDAOしかつかってなかったんで何がなんやら・・・
スンマセンです。
0740デフォルトの名無しさんNGNG
>739
まずは試してみろよ。
それでも駄目なら再質問しれ。

まあ、一応それでOKのはず。
テーブル名はFillで指定したヤツな。
0741デフォルトの名無しさんNGNG
すれ違い指摘移動。スマソ。

VB.NETを購入したのですがコントロールにあるVideoSoftのVSFlexというOCX
は配布可能な物なのでしょうか?使って配布不可だったら悲しいので。
0742デフォルトの名無しさんNGNG
>741
それ、パッケージのOCXじゃねぇの?
葡萄都市いってみれ。
0743デフォルトの名無しさんNGNG
すいませんが、Listviewでカラムをクリックしたときに
そのカラムを基準にソートをしたいのですが、どうやればいいのでしょうか?
IComparerの実装というのがよくわかりません。。。
0744732NGNG
>>740
いや、試したいんですけど
環境が会社にしかないもんで・・

で、今日試してきたらうまいこといきました。
皆さん感謝です。
0745DataFormウイザード変??NGNG
DataFormウイザード、OLE Jet4.0を使って、mdbデータベースを読み込むことには、成功したんだけど、
更新ボタンをクリックすると、”UPDATEステートメントの構文エラーです。”のメッセージが出てしまう。
ウイザード通りにやっても駄目なのはバグ?? mdbデータベースに問題あり??
0746デフォルトの名無しさんNGNG
>743
ちょっと見てみたが、できるんかなコレ?
SortメソッドにColumn指定するのないし。

IComparerはソート順の規則…だと思う。
コレ実装しても、多分無理じゃないかな。
そもそも別カラムのデータが入ってかないからね。
0747デフォルトの名無しさんNGNG
メーラー受信できたよーー
書籍にまんま載ってた。
0748デフォルトの名無しさんNGNG
保守まげ。
0749DataFormウイザード変??NGNG
>>745続き
mdbデータベースのフィールド名にvalueがある場合、
更新ボタンをクリックすると、”UPDATEステートメントの構文エラーです。”のメッセージが出るようだ。
やっぱ、バグか??
絞り込むのに、疲れ果てた爺さんみたいになっちまったよ。
0750デフォルトの名無しさんNGNG
すみません、質問させていただきます。
<param>
 <ringo>150</ringo>
 <banana>80</banana>
 <melon>55</melon>
   .
   .
   .
</param>
のようなXMLファイルがあるとき、このparam要素配下の
諸要素(要素数は不明)の数字を
fluits(0)=150 fluits(1)=80 fluits(2)=55…のように
上から順に配列に格納するにはどうすれば良いでしょうか。
どなたか助言お願いします。
0751デフォルトの名無しさんNGNG
? "akemashiteomedetou"
0752デフォルトの名無しさんNGNG
Console.WriteLine("あけましたらあほでした。")
0753デフォルトの名無しさんNGNG
http://www.iris.dti.ne.jp/~door1024/jissou01.html
0754デフォルトの名無しさんNGNG
無知で申し訳無い。
BGMを流す方法希望。
0755デフォルトの名無しさんNGNG
>>754
DirectSound
0756デフォルトの名無しさんNGNG
ヽ(´∀`)ノポルァ♪
http://choco.2ch.net/test/read.cgi/intro/1040885146/l50
0757デフォルトの名無しさんNGNG
>>754
mciSendString関数
0758750NGNG
誰か・・・

DOMを利用するというのは何となく分かったんですが
VB.NETで使う方法が調べても出てこなくて困ってます。どなたかお願いします
0759最凶VB厨房NGNG
Dim myXmlDocument As New XmlDocument()
myXmlDocument.Load("test.xml")
Dim arraylist As New ArrayList()
Dim Reader As New XmlNodeReader(myXmlDocument.SelectSingleNode("param"))
While Reader.Read()
If Reader.HasValue Then
Console.WriteLine(Reader.Value)
arraylist.Add(Reader.Value)
End If
End While

test.xmlの中身・・・。

<?xml version="1.0" encoding="Shift_JIS" ?>
<param>
<ringo>150</ringo>
<banana>80</banana>
<melon>55</melon>
</param>

(´-`).。oO(XMLさっぱりわからないや・・・。)
0760最凶VB厨房NGNG
(´-`).。oO(言うの忘れてたけどGraphicsオブジェクト作成したら、最後にDispose)
0761750NGNG
>>759
どうもありがとうございます。
しかし1,4行目のXmlDocumentとXmlNodeReaderで
型が定義されていませんというエラーが出るのですが,
どう対処すれば良いのでしょうか?
0762最凶VB厨房NGNG
Imports System.Xml
を追加。どこに追加するかはわかってるよね?
0763750NGNG
>>762
できました、ありがとうございます。
勉強始めたばかりなもので、済みません。
0764まいっちんぐマチコ ◆2gicN.Bep6 NGNG
正月休みなので、VB.NET買って遊んでたらコンパイラにいつも怒られるんです。
MSHFlexGridをフォームに貼り付けて、
MSHFlexGrid1.Cols = 7
っていう、コードを書いたんです。そしたら
Form1.vb(67): 'Cols' は 'AxMSHierarchicalFlexGridLib.AxMSHFlexGrid' のメンバではありません。
って、言うんです。どうしたら怒られないですみますでしょうか?
0765デフォルトの名無しさんNGNG
>764
単純にColsプロパティがないんだと思われ。
ヘルプ嫁。
0766まいっちんぐマチオ ◆2gicN.Bep6 NGNG
>>764の続き

それで、オブジェクトブラウザを見ると作成したMSHFlexGrid1はAxMSHFlexGridの方を継承していて
こちらのAxMSHFlexGridには確かにColsは無いんです。
ただ、Interop.MSHierarchicalFlexGridLibの下にあるMSHFlexGridには、Colsがあるんです。
私としては、後述したMSHFlexGridを継承している階層フレキシブルグリッドを使いたいんですがどうもうまくいきません。

何か良い手段はないでしょうか?
(マチコ先生に失礼なのでコをオに変えました)
0767デフォルトの名無しさんNGNG
自分で作ったクラスのプロパティに値を代入するときにイコールの後に
何を代入できるかを表示させるにはどうすればいいんですか
0768デフォルトの名無しさんNGNG
VB.NETになってなにか変わった点ありますか?
0769デフォルトの名無しさんNGNG
全く別物になりました。
0770デフォルトの名無しさんNGNG
>>767
そのプロパティの型は何?Booleanや列挙型を指定していれば
候補がでると思うけど、開発環境持ってないので知らん。その辺は旧VBと変わってないと思う。


>>768
・完全なオブジェクト指向言語になり、実装の継承が可能。オーバーロードも可。
・オブジェクト指向対応のためのキーワードの追加。
→ Protected, Inherits, Imports, Overrides, Overloadsなどなど
・イベント処理がプロシージャ名固定(例えばForm_Load、Command1_Click)ではなく、
 同じ引数の並びを持っていれば(正確にシグニチャが同じなら)、任意のプロシージャを指定できる。
・ランタイムライブラリが.NETで共通化
・配列は0オリジン
・コントロール配列の廃止
・Long → Integer
・Integer → Short
・Varinat → 廃止
・Set xxx = hoge → xxx = hoge
・Public Sub A(B As Integer)のようなプロシージャがあるとき、
旧VBではByRef B As Integerの意味だが、VB.NETではByVal B As Integerの意味
・初期値の代入のサポート→例) Dim i As Integer = 100
・型指定、明示的型変換の強制オプションOption Strict On/Offの追加
・While〜Wend→ While 〜 End While
・旧BASICな文法の削除
・C/Java的にFunctionの戻り値を返すためのReturnの導入
・Try〜Catch〜Finally〜End Tryによる構造化された例外処理
・APIの呼び出し制御が柔軟に
その他、多数。
0771デフォルトの名無しさんNGNG
>>768ではないけど、VB.NETの簡単な解説が。
初めて知ったぜ。
新鮮な機能ってあんまり追加されてないのね。
その他に含まれてたりしてw
0772デフォルトの名無しさんNGNG
フィールドってなに?
0773デフォルトの名無しさんNGNG
>>772
使うソフトウェアやアーキテクチャによっていろいろ意味が違ってくる。
0774デフォルトの名無しさんNGNG
>>772
領域。
0775770NGNG
>>771
イベント処理まわり(AddHandlerで動的追加)とかAPI関連の変更、Try〜Catchなんてかなり新鮮だけどねぇ。
(VB的には)
今までと違って、AddressOf演算子は普通に使うし。

ちなみにリフレクションとか、マルチスレッドとか、デリゲートとか、
豊富なクラスライブラリは.NETの機能なんで、770で挙げた中には含んでない。
C#のunsafeポインタのような使い方でのポインタじゃないが、
Marshalクラスを利用してポインタも利用できるし、
構造体と属性を利用してC言語のUNION(共用体)みたいなこともできる。
サブクラス化にAPIのSetWindowLong関数を使わんでいいとか。
(WndProcメソッドのオーバーライドでサブクラス化できる)

>>772
旧VB的に言えば、モジュールレベルの変数。
0776デフォルトの名無しさんNGNG
フォルダ内に複数ファイルがあり、その中の指定したある1つのファイルと
他すべてのファイルについて処理を行うことを考えています。例えば
以下のような処理で、ファイルAAAを固定して、ファイルNNNをAAA以外の
別ファイルとし、全ての別ファイルについて繰り返したい場合どうすれば良いでしょうか?
よろしくお願いします。

Private Sub Keisan
 X=(aaaとnnnnの処理結果を用いて計算)
 Console.WriteLine(X)
End Sub

Private Function aaa()
 ファイルAAAについて処理
End Function

Private Function nnn()
 ファイルNNNについて処理
End Function
0777デフォルトの名無しさんNGNG
ブーメラン型にtrueとfalseは代入できたけど1と0は入れられなかったよ。
0778デフォルトの名無しさんNGNG
>>777
Option Strict Offならそのまま代入可。
OnでもCBoolで代入できるよ。
0779777NGNG
>>778
Option Strict Off
というのは知らなかった。
Option Explicitなら使ってた。
CBoolで型変換とはすばらしい。
0780デフォルトの名無しさんNGNG
>>776
わけわかんない
0781デフォルトの名無しさんNGNG
思うんだけどさ
Function とEndで囲んで関数を表現するの気持ち悪くない?
C/C++/Java/C#のように{}で囲った方が使いやすいと思う。
そうでもない?
0782デフォルトの名無しさんNGNG
FunctionならEnd FunctionとかIfならEnd Ifみたいになにがここで終わるのが
はっきり分かるほうがいいと思う
0783デフォルトの名無しさんNGNG
>>776
要するにジャンケンのグーチョキパーが書かれたファイルが100あったら、
あるAの手と他の99個全部の手を勝負させてその結果を表示しるとか
そういうことか?

>>781
気持ち悪いっつーかめんどくさい。
まあ初読みやすくはあるけど
0784デフォルトの名無しさんNGNG
×初読みやすく
○読みやすく
何だよ初読みって…
■ このスレッドは過去ログ倉庫に格納されています