X



VB.NET質問スレ(Part44)
0003デフォルトの名無しさん
垢版 |
2018/05/27(日) 14:56:09.97ID:zT1np8E1
>>1
0004デフォルトの名無しさん
垢版 |
2018/05/27(日) 18:21:31.45ID:teqC9YR8
前スレで会計士の資格を何とか言ってた人は何してる人?
0005デフォルトの名無しさん
垢版 |
2018/05/28(月) 07:04:43.96ID:CFYCWcTb
>>1
0006デフォルトの名無しさん
垢版 |
2018/05/28(月) 20:52:59.65ID:Sfjpk0Yc
hosyu
0007デフォルトの名無しさん
垢版 |
2018/05/29(火) 08:27:30.27ID:lozk8I7H
皆さんどこのサイトを参考にしてますか?
日本語サイトでお願いします
MSDNで参考になった事が一度もないほど意味不明なので他でお願いします
0008デフォルトの名無しさん
垢版 |
2018/05/29(火) 10:37:07.29ID:FH6FJ8zm
>>7
C# <キーワード>
でググればだいたい何でもすぐに出てくる。
VB向けの情報はカスしかないから、VBじゃなくてC#。ここが重要。
0010デフォルトの名無しさん
垢版 |
2018/05/30(水) 08:23:19.88ID:K4unYhSv
>>9
情報が古いじゃん
0011デフォルトの名無しさん
垢版 |
2018/05/30(水) 08:46:46.23ID:K4unYhSv
最新のフレームワークの機能が乗ってるのが良い
0012デフォルトの名無しさん
垢版 |
2018/05/30(水) 10:05:12.15ID:If51NAMp
WPF以降で参考にしようとしたら、c#とVBが併記してあって日本語解説あるのは@ITぐらいしかないね。
あとはc#をVBに自分で置き換えるしかない
0014デフォルトの名無しさん
垢版 |
2018/06/01(金) 19:21:47.42ID:ntOQryVg
hosyu
0015デフォルトの名無しさん
垢版 |
2018/06/01(金) 20:22:38.72ID:y75uzRcE
#devってヤツを知らんけど既存のコードを変換出来る?
それとも一行だけ?
0018デフォルトの名無しさん
垢版 |
2018/06/01(金) 21:45:12.58ID:Lg9QUlsP
そんな化石知ってても何の自慢にもならんよ
SharpDevelopはとっくの昔に開発終了してMonoDevelopに引き継がれてMSに買収されて今ではVisual Studio for Macと呼ばれている
001918
垢版 |
2018/06/01(金) 21:47:45.04ID:Lg9QUlsP
抜けてた
MonoDevelopは途中からオーナーが変わってXamarin Studioと呼ばれていた
0020デフォルトの名無しさん
垢版 |
2018/06/05(火) 19:02:31.85ID:FxOXz7Hv
hosyu
0021デフォルトの名無しさん
垢版 |
2018/06/05(火) 20:21:46.36ID:2NfSKm9E
VB.NETの開発環境ってVS以外でもあるの?
ついでにもう一つ
グレープシティのWindows Formsの中のコントロールでリサイズ以外いらんよね?
0022デフォルトの名無しさん
垢版 |
2018/06/07(木) 08:53:21.30ID:m139B5x9
WindowsサービスアプリでSystem.Timers.TimerのElapsedイベントが
発生しなくなってしまったのですが、同じような事例はありますか?
ソース、EXE自体は何も変えていないのですが…
0023デフォルトの名無しさん
垢版 |
2018/06/07(木) 12:05:30.42ID:qRd3cwLX
net Frameworkのバージョンが変わったとか?
002522
垢版 |
2018/06/07(木) 15:57:07.40ID:m139B5x9
原因不明のため、System.Timers.TimerからSystem.Threading.Timerでプログラム作り直しました。
0027デフォルトの名無しさん
垢版 |
2018/06/19(火) 16:45:27.80ID:JtYoq5Ul
>>22 >>25-26
そんなバグあったの?
C# だけど、15分おき、特に問題なく Elapsed 起きてるけど。

普通と違うとしたら、毎回 Interval を設定し直してるくらい。
0028デフォルトの名無しさん
垢版 |
2018/07/04(水) 22:30:10.70ID:gFgZc5FG
XOF
0030デフォルトの名無しさん
垢版 |
2018/07/14(土) 14:20:34.11ID:P6Xcr6ek
問題
数値型1,2,3,・・・を文字列型0001,0002,0003,・・・にするプログラミングを書きなさい
0033デフォルトの名無しさん
垢版 |
2018/07/14(土) 15:56:41.68ID:FPULV7Dx
>>31でもいいけど、リーディングゼロ付けたい場合は普通は"D4"みたいにする
つーか何が書きなさいだよアホかw
0035デフォルトの名無しさん
垢版 |
2018/07/14(土) 16:04:36.45ID:P6Xcr6ek
ちなみに
Dim i as Integer
Dim S as Strong
i=任意の数字
S =""
S = "0000" & i
S = VBの関数Leftで左から4文字までを取り出し
すると000iになる
が用意した正解
おまえら小学生からやり直せ
0037デフォルトの名無しさん
垢版 |
2018/07/15(日) 14:52:08.42ID:8MWyOg1O
>>>30 の出題の数値型の説明がいい加減だし、百歩譲って1,2,3...とあるから正の整数だとしても
>>35 は自分でIntegerと後出しで規定しながら9999を越えると対応していない間抜けな回答
>>31でも>>33でもその点はクリアしている

しかもよく見りゃ右も左も分かってない出題者の頭の悪さだけが際立つ結果に
そもそも今の時代まさかright,left,midもつかわんだろ
0038デフォルトの名無しさん
垢版 |
2018/07/19(木) 17:48:31.34ID:BhSp1+Me
Constで物理名定義して、論理名をXMLコメントか属性で取得したかったが、どうもできない。
なんかいいアイデアあったら教えて
0039デフォルトの名無しさん
垢版 |
2018/07/19(木) 18:14:54.96ID:5QYEQzqE
>>38
プロパティとかの名前のこと?
普通にカスタム属性でできるよ
リフレクションで取れる
0041デフォルトの名無しさん
垢版 |
2018/08/03(金) 14:25:57.89ID:u92XsOcz
コンソールプログラミングでは
Application.DoEventsが使えませんが
代わりに処理中の入力を受け付けるようなメソッドはないでしょうか?

時間がかかる処理をESCキーでキャンセルするような処理を
コンソールプログラムで書きたいと思っています
0043デフォルトの名無しさん
垢版 |
2018/08/17(金) 00:18:15.23ID:KHui9/an
PDFファイルを通常使うプリンタに印刷するのにはどげんしたら良かですか?

外部からファイル名をフルパスで渡せば印刷してくれるようなのがいいのですがヒント下さい。

Acrobatのコマンドラインオプションは保証されてないし、自作でexeを作りたいのです。
0047デフォルトの名無しさん
垢版 |
2018/08/22(水) 20:26:55.43ID:CRGAAmOc
private public Static の違いがわからない俺様が通りますよ。
グローバルだと意図しないところで変な値が入っちゃう可能性があるから使うなとじっちゃんが言ってた。
0048デフォルトの名無しさん
垢版 |
2018/09/15(土) 12:38:17.24ID:f69ONJY6
エンドユーザーの都合で次の開発案件の開発言語がVB.Netになったオレを慰めてください。
0049デフォルトの名無しさん
垢版 |
2018/09/15(土) 12:57:12.64ID:wC5+IMEd
>>48
>>エンドユーザーの都合で
金出すヤツの意見が通るのが実情
VB6までの資産有る所はC#にはしない傾向に有る
残念なのは日本でVB.NETに関する導入事例や書籍など情報自体が少ない
海外が多いくらいだ
ネット上で海外から情報取得して生かすしか方法が無い
日本マイクロソフトもC#重視したから尚更
0051デフォルトの名無しさん
垢版 |
2018/09/15(土) 18:21:04.91ID:V2kvEVN2
C#に比べて
ラムダとかエクステンションの書き方が
めっちゃわかりにくい
0052デフォルトの名無しさん
垢版 |
2018/09/16(日) 11:47:37.40ID:o5IUt/R9
VB.NETでシステム構築して今更、他の言語を検討してるとか言ってる所も有る
VB.NETのままでも安く運用する方法考えれば良いのだが、システム更新に責任持ちたく無いヤツ居る職場だと永遠にシステム刷新出来ない罠
0053デフォルトの名無しさん
垢版 |
2018/09/16(日) 14:03:16.46ID:o5IUt/R9
VB+Oracleで構築しちゃうと
ライセンスでOracleが足かせになる場合出るので、Oracle→MariaDBやPostgreSQLにする方が安く出来る
0055デフォルトの名無しさん
垢版 |
2018/09/22(土) 15:01:46.72ID:tW/Yy4gZ
VB.NET(〜VS2013)の細かい仕様の質問なんだけど、
通常のFormにPictureBoxを載せて、PictureBoxのデバイスコンテキストを取ってきて自前で低レベルAPIで描画してるんだけど、
最初にALTキーを押した時にPictureBoxがチラついて自前の描画が消えてしまう場合がある。
このちらつきは、そのアプリの起動後、ALTキーを押した時に必ず1回だけ発生して、場合によって自前描画もちらつきとともに消える模様。
これを抑止することって出来ないのかな
FormのOnPaint、OnPaintBackgroundを空メソッドにオーバーライドしても効き目なかった
0056デフォルトの名無しさん
垢版 |
2018/09/22(土) 15:40:38.65ID:kFAOP0FY
一般的な問題と思えんから再現可能なコードを示さないと
誰も何も言えないと思う
0057デフォルトの名無しさん
垢版 |
2018/09/22(土) 15:52:30.06ID:tW/Yy4gZ
え?そんなにやってることが特殊かな?
扱うデータが大きくてその視覚化を自前ネイティブに任せるとか、よくやる方法だと思ってた
聞く場所を間違えたかな・・・
0059デフォルトの名無しさん
垢版 |
2018/09/22(土) 16:22:56.12ID:kFAOP0FY
>>57
よく分からん思考回路
どこで聞いても同じたお思うよ。
それで答えが返ってきたらその人はエスパーだ
エスパーなんかいないけどね
0060デフォルトの名無しさん
垢版 |
2018/09/22(土) 16:39:18.15ID:tW/Yy4gZ
>>58
ありがとう
FormのKeyUpとKeyDownとKeyPressイベントで、e.Handled = Trueにしてるんだけど、それでもちらつく
またFormのKeyUpイベントの後に自前描画し直してるんだけど、それでも自前描画が消えてしまうことがある
こういうのがあるから.NETは信頼できないんだよな
0061デフォルトの名無しさん
垢版 |
2018/09/22(土) 16:42:39.47ID:kFAOP0FY
システムのバグだー!!!
タメグラマの典型的な思考回路だねw

賭けてもいいよ絶対にあんたの書いたコードのバグだからw
0063デフォルトの名無しさん
垢版 |
2018/09/22(土) 16:52:51.71ID:kFAOP0FY
だから何でそうなるのw

そもそもあんた、特殊な実装をしてるかどうか読み手が判断できるような情報を何も書いてないだろうw
だからそれで答えが返ってきたらエスパーだと言ってるのに重症だなおい
0064デフォルトの名無しさん
垢版 |
2018/09/22(土) 16:53:24.99ID:/LVptLz+
膨大なデータ生で見せられてもユーザーにはメリットがないのでデータの見せ方を変える
低レベルAPIじゃなく高速描画ライブラリを使う
というのが一般的な対応じゃないかな

そもそもここで言う一般的ってのはやってることが一般的かどうかという意味じゃなく
事象と発生条件が一般的ではないから実際のものを見なきゃ何もわからないという意味だろう
0066デフォルトの名無しさん
垢版 |
2018/09/22(土) 17:14:32.51ID:tW/Yy4gZ
>>64
言葉を返すようだが、「見せ方」「メリット」というけど、そこまで相談はしていないよ
低級API利用が特殊だとは全く思わないし、そもそも描画手続きについて相談してるわけでもない
ALTキー押下でVB.NETのPictureBox上の自前描画が消えるのが問題なんだよ
自前描画もそうだけど、ALTキーを押すなんてそんな特殊なケースだとは思わなかったね
みんな普段ALTキーを使ってないのかよ?w
0067デフォルトの名無しさん
垢版 |
2018/09/22(土) 17:19:14.70ID:kFAOP0FY
マジで言ってるなら相当の幸せ回路だな

ALTキーを押すのが特殊と思わんかったてw
何でそうなるのw
0068デフォルトの名無しさん
垢版 |
2018/09/22(土) 17:24:48.15ID:ga1yzWrI
>>66
VB.NETでブラウザ上表示じゃなくForm描画だとしたら、PictureBOXが載ってる親オブジェクトのFormの描画リフレッシュレートタイミングに問題が有るんじゃ無いか
0069デフォルトの名無しさん
垢版 |
2018/09/22(土) 19:34:34.13ID:/LVptLz+
「起動後の最初」に特定のキーを押す
描画が消えてしまう「ことがある」

特殊バグすぎてイラつくわ
一般的に起こってたまるかよ
0070デフォルトの名無しさん
垢版 |
2018/09/22(土) 20:50:50.11ID:tW/Yy4gZ
>>68
>リフレッシュレートタイミング
つながってると意味がぼやけるな。それはともかく、
VB.NETのFormは、イベント駆動で再描画されるから常時一定間隔で描画更新されてるわけじゃないだろう
0071デフォルトの名無しさん
垢版 |
2018/09/22(土) 20:54:15.78ID:tW/Yy4gZ
ところで、再現手順については必要最低限の情報を提示したつもりだったんだが、こんなに特殊に受け止められるとは想定外だったな
これだけ出回っているツールだから、同じケースで悩んでいる人たちがいるだろうと思ってたんだが
主張根拠を、相手の書き込みの一部だけを恣意的に抽出してつなげて、捏造主体の印象操作を行うことに羞恥心を感じない心の浅い人もいるみたいだし、
聞く場所を間違えた、という結論に至りました^^
0074デフォルトの名無しさん
垢版 |
2018/10/04(木) 03:58:18.05ID:3Cg3sys6
この掲示板だけのインシデントと信じたいが、
お前らマジで使えねえな
その程度でイキってるからVB.NETが馬鹿にされるんだよ、ゴミ共が
0075デフォルトの名無しさん
垢版 |
2018/10/28(日) 14:59:16.13ID:SFrY9m9d
GetPrivateProfileStringでINIファイルの全文を読み込む方法ってありますか?
0077デフォルトの名無しさん
垢版 |
2018/10/28(日) 20:11:08.64ID:SFrY9m9d
>>76
おお!目を通したつもりがよく理解できてなかったよ
大変助かったよ!本当に有難う!精進します。
0078デフォルトの名無しさん
垢版 |
2018/10/28(日) 20:28:08.52ID:SFrY9m9d
http://jump.5ch.net/?https://msdn.microsoft.com/ja-jp/library/cc429779.aspx
ここを参考に考えてみたけれど
lpDefault
NULL で終わる既定の文字列へのポインタを指定します。lpKeyName パラメータで指定したキーが .ini ファイル内に見つからなかった場合、
GetPrivateProfileString 関数はこの既定の文字列を、lpReturnedString パラメータが指すバッファへコピーします。lpDefault パラメータで NULL を指定することはできません。

第一引数と第二引数をNULLにしてSECTIONとKEYを一挙に取得したい際、pKeyName パラメータで指定したキーが見つからないってことだと思うから
結局第三引数が第四引数の中に入っちゃうのですが
解釈がおかしいのでしょうか
0079デフォルトの名無しさん
垢版 |
2018/10/28(日) 20:43:01.97ID:pnWZEcOz
>>78
実際にやってみた?、考えただけ?

普通に解釈すればlpKeyNameがNULLということは
キーを指定していないんだからキーが見つからないと
なるとは考えられないけどね

実際にやってみてlpDefaultの値がlpReturnedStringに
入ってしまったのならこの関数で全文取得は無理なんじゃないかな
0080デフォルトの名無しさん
垢版 |
2018/10/28(日) 22:33:46.69ID:SFrY9m9d
>>79
実際にやってみて入らなかったよ、教えてくれたのに申し訳ない。
INIファイルからキーを全部抽出して任意のタイミングで変数に入れたいだけなんだが
調べてもよく分からなくて質問を受けてくれてる方にも
困惑させてしまっているな...
0081デフォルトの名無しさん
垢版 |
2018/10/29(月) 06:03:03.69ID:WUUAbnDR
30分ごとに料金を+500円ずつ足していってラベルテキストに表示するプログラムが作りたいのですが
どうすればいいでしょうか?
経過時間を計測するところまではできています
0083デフォルトの名無しさん
垢版 |
2018/10/29(月) 10:50:14.54ID:oAZGLoeZ
>>80
> 第一引数と第二引数をNULLにしてSECTIONとKEYを一挙に取得したい
誤解してない? これで手に入るのはセクションの一覧だよ
その後で個々のセクションごとに改めて第2引数だけNULLでGetPrivateProfileStringを呼び出してそのセクション内のキー一覧を取得する

ほかの確認事項としては
iniのファイルパスが正しい確認、念のためフルパスで渡す
\0で区切られた文字列はStringとかStringBuilderとかでは正しく受け取れないからByte配列で受け取ってEncoding::GetStringで文字列変換
0084デフォルトの名無しさん
垢版 |
2018/10/29(月) 18:57:40.55ID:vJZ8/XYU
>>83
ごめんなさい、少し勘違いをしていました。
第一引数でセクションを指定し、第二引数をVBNullStringにした場合、キー値ではなく何故かセクション名をひとつだけ取得するのですが、第一引数でセクションを指定し、第二引数をnullにすれば指定したセクションのキー値をすべて取得できるという解釈は誤りでしょうか?
0085デフォルトの名無しさん
垢版 |
2018/10/29(月) 19:27:50.65ID:oAZGLoeZ
> 第一引数でセクションを指定し、第二引数をnullにすれば指定したセクションのキー値をすべて取得できるという解釈は誤りでしょうか?
解釈は正しい
セクションしか取れないのは何か勘違いしてんじゃね
1つしか取れないのは>>83の最後の行
0086デフォルトの名無しさん
垢版 |
2018/10/29(月) 20:04:46.54ID:EQ0ZvgtX
>>85

GetPrivateProfileString(セクションの変数, キー値の変数, "", strBuffer, strBuffer.Capacity, FileName)
KeyValue =strBuffer.ToString

第一引数でセクションの変数(ここでは「element」とします。)第二引数にVBNullStringを代入した際、strBufferに格納される値が
「element」のみなのですが>>85さんの仰るとおり何か勘違いをしているのでしょうか...
以下、INIファイルです

[element]
VALUE1 = AAA\nBBB
VALUE2 = CCC\nDDD
[element2]
VALUE3 = EEE\nFFF
VALUE4 = GGG\nHHH

本来VALUE1の値である「AAA\nBBB」とVALUE2の値である「CCC\nDDD」が取得されるものかと思っておりました。
0087デフォルトの名無しさん
垢版 |
2018/10/30(火) 00:57:51.70ID:8/9eZ6sC
大して複雑でもないんだから、悩むなら
ファイル全読して自分で解析した方が早そう
0089デフォルトの名無しさん
垢版 |
2018/10/30(火) 13:36:29.61ID:LlhJqt4w
nullにすればって言ってるからヌル渡してると思うじゃん?
まさか空文字列を渡して動かないと言ってるとは思わないじゃん?
0090デフォルトの名無しさん
垢版 |
2018/10/30(火) 13:43:18.14ID:2q9Nopp0
(定数) Constants.vbNullString As String = Nothing
インテリセンスによるとこうらしい
説明では長さ0の文字列とか言ってるけどな
0091デフォルトの名無しさん
垢版 |
2018/10/31(水) 01:30:41.68ID:uKh/exBf
>>86
GetPrivateProfileString("element", vbNullString, ...
としたときにバッファに帰る文字列は

"VALUE1" & vbNullChar & "VALUE2" & vbNullChar & vbNullChar

なので、lpReturnedString に StringBuilder を渡すと最初の vbNullChar で区切られてしまう。
こういうときは >>83 が書いてくれてるようにバイト配列で受けるか、 Marshal.AllocHGlobal でバッファを確保してアドレスを渡す。

Unicode バージョンを呼び出している場合は

Dim bufferPtr As IntPtr = Marshal.AllocHGlobal(1024)
Dim buffer As String = String.Empty
Dim nSize As Integer = GetPrivateProfileString("element", vbNullString, vbNullString, bufferPtr, 512, "C:\HOGE.ini")
If nSize > 0 Then buffer = Marshal.PtrToStringUni(bufferPtr, nSize - 1)
Marshal.FreeHGlobal(bufferPtr)
Dim keys As String() = buffer.Split(vbNullChar)

こんな感じ
0093デフォルトの名無しさん
垢版 |
2018/11/03(土) 19:36:08.98ID:SHI5qsHH
VBのNothingはnullではなく型の規定値だったはず。
つまり、

Dim hoge as String = Nothing
はC#の
var hoge = default(string);

と同じはず。
だからどっちにしろ空文字ではなくNull参照じゃないとおかしい気がする
0094デフォルトの名無しさん
垢版 |
2018/11/03(土) 20:46:51.95ID:0JFYuFT5
Debug.Print("{0}", String.Empty.Equals(vbNullString)) .. False
Debug.Print("{0}", String.Empty = vbNullString) ... True

面白いな。
0095デフォルトの名無しさん
垢版 |
2018/11/07(水) 00:28:16.72ID:SlJfY7pV
WindowsFormアプリからExcelを参照する際に困ったことがあったので質問します。
いま参照しているExcelに名前ボックスが同じ名前のActivexコントロール(CheckBox)が2つあるんですが片方のValue値が取れません。
Excelには手を加えずに解決する方法をご存じの方はいますか?
0099デフォルトの名無しさん
垢版 |
2018/11/12(月) 17:40:02.30ID:epPqaRvS
datagridviewで選択した行のテキストを各列ごとにテキストボックスに反映させるにはどうすればいいですか?
レスを投稿する


ニューススポーツなんでも実況