VB.NET質問スレ(Part31)

このエントリーをはてなブックマークに追加
952デフォルトの名無しさん:2009/11/17(火) 22:48:38
>>951
俺が知らない問題についていってるのかもしれんが、意味不明に聞こえるなあ。
「後で値を変更できなくなる」の「後」って何?

コンパイル後のこと?
バージョンアップのことを「後」って言ってるのか?

前者なら、そもそもそれがConstの意義だから何の問題もない。
後者なら、全然そんなはずはない。
953デフォルトの名無しさん:2009/11/17(火) 22:54:50
クラスライブラリがバージョンアップしたときに中のConstの値が変更されたら
それを参照してるものはすべてコンパイルし直さないといけなくなる。
>http://msdn.microsoft.com/ja-jp/library/ms229057%28VS.80%29.aspx
>const 値を変更すると、必ず互換性に関係する問題が生じます。
954デフォルトの名無しさん:2009/11/17(火) 22:55:15
変更しなきゃOK
955デフォルトの名無しさん:2009/11/17(火) 23:00:51
>>953
Constだとコンパイル時に即値に変換されちゃうって訳ね。
なるほど納得したすまん。
956デフォルトの名無しさん:2009/11/17(火) 23:03:10
皆あまりConstは積極的に使ったりせんのか
957デフォルトの名無しさん:2009/11/17(火) 23:16:04
>>948
http://msdn.microsoft.com/ja-jp/library/01143ea4%28VS.80%29.aspx
できるようですね、MSDNにもちゃんと明記されていました・・・

定数についてはちょっと考えを改めていこうと思います
Cだとヘッダ、VB6だと標準モジュールに定数を羅列するような感じで
今まで使っていたのですが、VB.NETだと毛色が違うようでいろいろと
他人のソースを見て回ってきます
958デフォルトの名無しさん:2009/11/18(水) 01:09:19
Constって積極的につかっちゃ遺憾のか…
ちょっと目鱗かなぁ…

不変な物ならつかってもいいですか?
┃゚д゚)チラッ
959デフォルトの名無しさん:2009/11/18(水) 01:20:04
Friend/Privateならお好きに
960デフォルトの名無しさん:2009/11/18(水) 10:36:02
そもそも、定数だろうと何だろうと
フィールドを公開するなんて下策は普通とらない。
961デフォルトの名無しさん:2009/11/18(水) 10:53:14
リッチテキストボックスに貼り付けた画像を
ファイルに保存したいのですが、どうすればできるでしょうか?
962デフォルトの名無しさん:2009/11/18(水) 11:20:42
int.MaxValue
とかはどうなのよ?
963デフォルトの名無しさん:2009/11/18(水) 13:28:36
値型や不変オブジェクトの読みとり専用や定数は公開することだってあるわな。
964デフォルトの名無しさん:2009/11/18(水) 14:53:03
後で後悔するんだよな
965デフォルトの名無しさん:2009/11/18(水) 15:14:59
【審議中】
    ∧,,∧  ∧,,∧
 ∧ (´・ω・) (・ω・`) ∧∧
( ´・ω) U) ( つと ノ(ω・` )
| U (  ´・) (・`  ) と ノ
 u-u (l    ) (   ノu-u
     `u-u'. `u-u'
966デフォルトの名無しさん:2009/11/18(水) 19:22:09
質問です

<input type="submit" value="次へ"/>
<input type="hidden" value="001" name="action"/>

上のような形のsubmitボタンが複数あり
その中からhiddenが001のボタンを自動でclickするようにしたいのですが
方法はありませんか?
967デフォルトの名無しさん:2009/11/18(水) 19:33:10
ASP.NET で聞けばいいんじゃないかな?

つうかhiddenが001てボタンじゃ無くね?
968デフォルトの名無しさん:2009/11/18(水) 19:44:05
>>966
javascriptで
969デフォルトの名無しさん:2009/11/18(水) 19:44:21
VB2008Expressなのでここで聞こうと思ったのですがスレ違いですか
001ってのは仮です
970デフォルトの名無しさん:2009/11/18(水) 21:12:44
VB2005のテキストボックスを質問させてください。

textboxでpaddingの効果を得るにはどうすればいいのでしょうか?
入力した後の表示で左側を大文字スペース1個分ぐらい開けたいのですがやり方がわかりません。

あとは下側に表示を行いたいのですが、
textalignもleft,center,rightで、
bottomleftがないですし・・・
bottomと同じ効果はpadding上設定で出来るとも思っていますが。

サイトへの誘導などでもよろしくお願いします。
971デフォルトの名無しさん:2009/11/18(水) 21:20:02
Dim hdoc As HtmlDocument = Me.WebBrowser1.Document
For Each frm As HtmlElement In hdoc.Forms
For Each elm As HtmlElement In frm.GetElementsByTagName("hidden")
If elm.GetAttribute("value") = "001" And elm.Name = "action" Then
frm.InvokeMember("submit")
End If
Next
Next
こんなかんじでやるしかないんじゃない
972デフォルトの名無しさん:2009/11/18(水) 21:21:06
アンカ忘れ
>>971>>969
973デフォルトの名無しさん:2009/11/18(水) 21:23:49
>>970
フォーカスはずれたときにTextの頭に全角スペース突っ込んで、フォーカスが来たら頭のスペースを削除するとかw
974デフォルトの名無しさん:2009/11/18(水) 21:36:26
最近PGやらされてて
グローバル変数?でコメントもなくて
aflgとかbflgとかわけわかんなくて
いたるところで値が書き換えられててわけわかんないんだけど、
こういう分かりづらいソースを保守するコツみたいな物ありますか?

まじでPG難しい
975デフォルトの名無しさん:2009/11/18(水) 21:38:06
中を触らない
ブラックボックスとして扱う
976デフォルトの名無しさん:2009/11/18(水) 21:54:34
>>973
ありがとうございます。
その手もありましたね。
いくつか案を出して他者と検討しますので、案に上げさせてもらいます。

今現在は、ラベルのborderstyleで表示枠を作って、
textboxのmultilineで丁度いいサイズを作成し、
全角1マス分ラベルの左側から離して、bottomleftの位置になるように
内部に配置という方法も考えていたり・・・

なんでプロパティでpadding設定できないんでしょうね。。。

他に同じように表示できる方法をご存知の方よろしくお願いします。
977デフォルトの名無しさん:2009/11/18(水) 21:57:29
C#でObject型の変数objに
 obj = (object)new byte[count];
と代入しているのをVBに変換する場合、
Dim bts As Byte() = New Byte() {}
ReDim bts(cbPidl - 1)
obj = bts
こういう仕方で行なえばよいでしょうか?よろしければご指南ください。
978デフォルトの名無しさん:2009/11/18(水) 21:59:28
>>977 訂正
Redimのところは ReDim bts(count - 1) でした、すみません。
979デフォルトの名無しさん:2009/11/18(水) 22:55:15
たくさんあるTextBoxにFor Nextで全部に同じ文字を入れたいのですが
どうやれば良いでしょうか?

For I As Integer = 1 To 50
TextBoxI.Text=""
Next

こういうことなのですが・・・
980デフォルトの名無しさん:2009/11/18(水) 22:58:55
>>977
C#と全く同じ
obj = New Byte(count) { }
981デフォルトの名無しさん:2009/11/18(水) 23:04:55
>>979
Dim tbxs As TextBox() = New TextBox() {TextBox1, TextBox2, TextBox3, TextBox4, TextBox5}
For Each tbx As TextBox In tbxs
tbx.Text = "ABC"
Next
982デフォルトの名無しさん:2009/11/18(水) 23:05:36
>>980
配列のサイズの指定方法がVBとC#では違うよ。
983デフォルトの名無しさん:2009/11/18(水) 23:07:40
>>981
ありがとうございます。
出来ました。
でもTextBox1, TextBox2, TextBox3, TextBox4, TextBox5。。。。。というのは必ず1度は書かないとだめでしょうか?
984デフォルトの名無しさん:2009/11/18(水) 23:09:53
>>983
そのTextBoxが、たとえばフォームに配置されている場合
For Each ctl As Control in Me.Controls
If ctl.GetType().Name = "TextBox" Then
CType(ctl, TextBox).Text = ""
End If
Next
といった感じでできるが、Controlsコレクションに追加されているのが前提である(デザイナでフォームに配置した場合は追加される)
985デフォルトの名無しさん:2009/11/18(水) 23:10:25
>>982
要素型() 変数名 = New 要素型(サイズ) { }
の形式で書けばほぼ同じ
最後の{}が格好悪いけど仕方ない
986985:2009/11/18(水) 23:11:21
変数名 As 要素型() = New 要素型(サイズ) { }
すまんこうだった
987デフォルトの名無しさん:2009/11/18(水) 23:13:21
>>984
ありがとございます。
できました!!
988デフォルトの名無しさん:2009/11/18(水) 23:13:45
>>980
どうもです!!countについては一応 count-1 ですよね?
989デフォルトの名無しさん:2009/11/18(水) 23:15:25
>>985
だから違うよ。
C#(というかC系統の言語)は配列の要素数を指定する。
ところがVBは伝統的に配列の最後のインデックスを指定することになってる。
ヤバイんじゃないの?今までこれ知らずにコード書いてたとしたらw
990デフォルトの名無しさん:2009/11/18(水) 23:17:32
遅レスだが
>>976
よく使うなら一個そういうカスタムコントロール作っとけば?

フォーカスがない場合はPaint時に自分で全角をくっつけて描画
フォーカスがある場合はコントロールのペイントに任せるとか
991デフォルトの名無しさん:2009/11/18(水) 23:18:06
>>971>>972
これからいじくってみます
ありがとうございました
992デフォルトの名無しさん:2009/11/18(水) 23:19:31
>>985
ありがとうございました!!同じ形式で書けるのですね!わかりました!
993デフォルトの名無しさん:2009/11/18(水) 23:21:01
>>989
わかりました!!ありがとうございます!!
994デフォルトの名無しさん:2009/11/18(水) 23:40:23
たしかに真央のジャンプはチートが多いけど、見た目奇麗だからいいのだ。気にしないよ。
995デフォルトの名無しさん:2009/11/18(水) 23:41:13
すまん、誤爆した。
996デフォルトの名無しさん:2009/11/19(木) 00:41:29
>>989
>VBは伝統的に配列の最後のインデックスを指定することになってる
つか、大昔のBASICの名残で、配列は1からだったんだよ
なんで指定するのは個数だともいえたわけだ。VBになって、配列は0からか
1からか指定できるようになったんだよ(3からとか10からとかでも指定できたがw)
そしてVB.NETになって0からのみになった
その間上限の指定方法はずっと変わってないんだ
997デフォルトの名無しさん:2009/11/19(木) 01:23:45
数字の質問で申し訳ないのですが
1.234 と
50 という2つの数字から
1.250を得たいのですが、
1.290と10だった場合は1.310を得たいです。
また1.8と1だったら2.1だったり
桁数が変動するのですがどんな感じでやれば良いでしょうか?
998デフォルトの名無しさん:2009/11/19(木) 02:30:08
法則がよく分からんが
第一引数の小数部の桁数をm、第二引数の桁数をnとしたとき
第一引数の小数点以下第n位を四捨五入して、それに
第二引数を10^mで割った数値を加えたい?
999デフォルトの名無しさん:2009/11/19(木) 07:37:15
999
1000デフォルトの名無しさん:2009/11/19(木) 07:38:26
1000
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。