C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


(過去ログ 67 を表示中)
■38912 / )  Re[1]: textboxのBackcolor設定
□投稿者/ gtk2k (26回)-(2009/07/27(Mon) 15:46:33)
No38906 (toto さん) に返信
> よろしくお願いします。
> 従来VBAで造っていたものをVB2008に変換していますが、TextboxのBackcolorの所の記述がうまくいきません。
>
> sub XXXX
> ① Dim mytextbox As MSForms.TextBox
>   Dim i AS interger
> 途中略
>   For i = 1 To 42
> ②    Set mytextbox = Me.Controls("textbox" & i)
>    If Mat(2, i) = "1" Then
> ③    Me.Controls("textbox" & i).BackColor = &HC0C0FF
>    Else
>     Me.Controls("textbox" & i).BackColor = &H80000005
>    End If
> end sub
>  上記のプログラムの中で
>  ①、②、③の記述部分のご指導をお願いします。
>

なんかソース見ると①と②は不要な気がするんだけど。
まああえて書けば
①は
Dim mytextbox As TextBox
②は
mytextbox = Me.Contlors("textbox" & i)
となる。

③は
VB.NETにおいてはColor構造体を使用して、色を設定したり参照したりする。
③をVB.NETに変化すると
Me.Controls("textbox" & i) = Color.FromArgb(&HFF, &HC0, &HC0)
となる。
あと、○付けされていない行
Me.Controls("textbox" & i).BackColor = &H80000005
の行では、システムカラーを設定しているので注意しないといけない。
&H80000005はウィンドウの背景色らしい。
この行を素直に変換すると
Me.Controls("textbox" & i).BackColor = System.Drawing.SystemColors.Window
としちゃうところだが、VB.NETにおいてウインドウの背景色はSystem.Drawing.SystemColors.Controlが設定されているので
Me.Controls("textbox" & i).BackColor = System.Drawing.SystemColors.Control
となる。
返信 編集キー/


管理者用

- Child Tree -