VB.NET質問スレ(Part44)

1 .(もんじゃ) 2018/05/26(土) 18:08:49 ID:
前スレ

VB.NET質問スレ(Part40)
https://2ch.live/cache/view/tech/1365857015
VB.NET質問スレ(Part41)
https://2ch.live/cache/view/tech/1391334405
VB.NET質問スレ(Part42)
https://2ch.live/cache/view/tech/1419148239
VB.NET質問スレ(Part43)
https://2ch.live/cache/view/tech/1465958469

2 .(もんじゃ) 2018/05/26(土) 18:11:57 ID:
関連スレ

古代VBプログラマ質問スレ(Ver.6.0 まで) part65
https://2ch.live/cache/view/tech/1440930335
【初心者歓迎】Small Basic Part 2 【片手間】
https://2ch.live/cache/view/tech/1422240355

3 デフォルトの名無しさん 2018/05/27(日) 14:56:09 ID:
>>1

4 デフォルトの名無しさん 2018/05/27(日) 18:21:31 ID:
前スレで会計士の資格を何とか言ってた人は何してる人?

5 デフォルトの名無しさん 2018/05/28(月) 07:04:43 ID:
>>1

6 デフォルトの名無しさん 2018/05/28(月) 20:52:59 ID:
hosyu

7 デフォルトの名無しさん 2018/05/29(火) 08:27:30 ID:
皆さんどこのサイトを参考にしてますか?
日本語サイトでお願いします
MSDNで参考になった事が一度もないほど意味不明なので他でお願いします

8 デフォルトの名無しさん 2018/05/29(火) 10:37:07 ID:
>>7
C# <キーワード>
でググればだいたい何でもすぐに出てくる。
VB向けの情報はカスしかないから、VBじゃなくてC#。ここが重要。

9 デフォルトの名無しさん 2018/05/29(火) 21:25:25 ID:
ドボンでええやん

10 デフォルトの名無しさん 2018/05/30(水) 08:23:19 ID:
>>9
情報が古いじゃん

11 デフォルトの名無しさん 2018/05/30(水) 08:46:46 ID:
最新のフレームワークの機能が乗ってるのが良い

12 デフォルトの名無しさん 2018/05/30(水) 10:05:12 ID:
WPF以降で参考にしようとしたら、c#とVBが併記してあって日本語解説あるのは@ITぐらいしかないね。
あとはc#をVBに自分で置き換えるしかない

13 デフォルトの名無しさん 2018/05/30(水) 13:15:18 ID:
#devでコンバートすりゃえーやん

14 デフォルトの名無しさん 2018/06/01(金) 19:21:47 ID:
hosyu

15 デフォルトの名無しさん 2018/06/01(金) 20:22:38 ID:
#devってヤツを知らんけど既存のコードを変換出来る?
それとも一行だけ?

16 デフォルトの名無しさん 2018/06/01(金) 20:34:07 ID:
くだらないこと言ってないでC#くらい読みなさい

17 デフォルトの名無しさん 2018/06/01(金) 20:35:42 ID:
sharp developも知らんのか…

18 デフォルトの名無しさん 2018/06/01(金) 21:45:12 ID:
そんな化石知ってても何の自慢にもならんよ
SharpDevelopはとっくの昔に開発終了してMonoDevelopに引き継がれてMSに買収されて今ではVisual Studio for Macと呼ばれている

19 18 2018/06/01(金) 21:47:45 ID:
抜けてた
MonoDevelopは途中からオーナーが変わってXamarin Studioと呼ばれていた

20 デフォルトの名無しさん 2018/06/05(火) 19:02:31 ID:
hosyu

21 デフォルトの名無しさん 2018/06/05(火) 20:21:46 ID:
VB.NETの開発環境ってVS以外でもあるの?
ついでにもう一つ
グレープシティのWindows Formsの中のコントロールでリサイズ以外いらんよね?

22 デフォルトの名無しさん 2018/06/07(木) 08:53:21 ID:
WindowsサービスアプリでSystem.Timers.TimerのElapsedイベントが
発生しなくなってしまったのですが、同じような事例はありますか?
ソース、EXE自体は何も変えていないのですが…

23 デフォルトの名無しさん 2018/06/07(木) 12:05:30 ID:
net Frameworkのバージョンが変わったとか?

24 デフォルトの名無しさん 2018/06/07(木) 12:17:27 ID:
まず確実に>>22自身のバグに一票
49.7日問題なんてのが大昔にあったけど、無関係だろう

25 22 2018/06/07(木) 15:57:07 ID:
原因不明のため、System.Timers.TimerからSystem.Threading.Timerでプログラム作り直しました。

26 デフォルトの名無しさん 2018/06/07(木) 16:13:30 ID:

27 デフォルトの名無しさん 2018/06/19(火) 16:45:27 ID:
>>22 >>25-26
そんなバグあったの?
C# だけど、15分おき、特に問題なく Elapsed 起きてるけど。

普通と違うとしたら、毎回 Interval を設定し直してるくらい。

28 デフォルトの名無しさん 2018/07/04(水) 22:30:10 ID:
XOF

29 デフォルトの名無しさん 2018/07/05(木) 16:54:05 ID:
XOF

30 デフォルトの名無しさん 2018/07/14(土) 14:20:34 ID:
問題
数値型1,2,3,・・・を文字列型0001,0002,0003,・・・にするプログラミングを書きなさい

31 デフォルトの名無しさん 2018/07/14(土) 14:31:20 ID:
val.ToString("0000")

32 デフォルトの名無しさん 2018/07/14(土) 15:36:41 ID:
マジ?

33 デフォルトの名無しさん 2018/07/14(土) 15:56:41 ID:
>>31でもいいけど、リーディングゼロ付けたい場合は普通は"D4"みたいにする
つーか何が書きなさいだよアホかw

34 デフォルトの名無しさん 2018/07/14(土) 15:57:58 ID:
アッソ

35 デフォルトの名無しさん 2018/07/14(土) 16:04:36 ID:
ちなみに
Dim i as Integer
Dim S as Strong
i=任意の数字
S =""
S = "0000" & i
S = VBの関数Leftで左から4文字までを取り出し
すると000iになる
が用意した正解
おまえら小学生からやり直せ

36 デフォルトの名無しさん 2018/07/14(土) 16:45:23 ID:
>>35
強そう

37 デフォルトの名無しさん 2018/07/15(日) 14:52:08 ID:
>>>30 の出題の数値型の説明がいい加減だし、百歩譲って1,2,3...とあるから正の整数だとしても
>>35 は自分でIntegerと後出しで規定しながら9999を越えると対応していない間抜けな回答
>>31でも>>33でもその点はクリアしている

しかもよく見りゃ右も左も分かってない出題者の頭の悪さだけが際立つ結果に
そもそも今の時代まさかright,left,midもつかわんだろ

38 デフォルトの名無しさん 2018/07/19(木) 17:48:31 ID:
Constで物理名定義して、論理名をXMLコメントか属性で取得したかったが、どうもできない。
なんかいいアイデアあったら教えて

39 デフォルトの名無しさん 2018/07/19(木) 18:14:54 ID:
>>38
プロパティとかの名前のこと?
普通にカスタム属性でできるよ
リフレクションで取れる

40 デフォルトの名無しさん 2018/07/19(木) 20:03:38 ID:
>>39
ありがとうございます!
できました!

41 デフォルトの名無しさん 2018/08/03(金) 14:25:57 ID:
コンソールプログラミングでは
Application.DoEventsが使えませんが
代わりに処理中の入力を受け付けるようなメソッドはないでしょうか?

時間がかかる処理をESCキーでキャンセルするような処理を
コンソールプログラムで書きたいと思っています

42 デフォルトの名無しさん 2018/08/07(火) 03:53:59 ID:
>>41
Console.KeyAvailable プロパティが true なら Console.ReadKey するとか。

43 デフォルトの名無しさん 2018/08/17(金) 00:18:15 ID:
PDFファイルを通常使うプリンタに印刷するのにはどげんしたら良かですか?

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

Acrobatのコマンドラインオプションは保証されてないし、自作でexeを作りたいのです。

44 デフォルトの名無しさん 2018/08/17(金) 12:13:17 ID:
非同期がんがれ

45 デフォルトの名無しさん 2018/08/17(金) 12:13:57 ID:
あ、>>41

46 デフォルトの名無しさん 2018/08/22(水) 19:49:57 ID:
戻り値のある関数もいらないな
グローバル変数を使えばいいわけだし

47 デフォルトの名無しさん 2018/08/22(水) 20:26:55 ID:
private public Static の違いがわからない俺様が通りますよ。
グローバルだと意図しないところで変な値が入っちゃう可能性があるから使うなとじっちゃんが言ってた。

48 デフォルトの名無しさん 2018/09/15(土) 12:38:17 ID:
エンドユーザーの都合で次の開発案件の開発言語がVB.Netになったオレを慰めてください。

49 デフォルトの名無しさん 2018/09/15(土) 12:57:12 ID:
>>48
>>エンドユーザーの都合で
金出すヤツの意見が通るのが実情
VB6までの資産有る所はC#にはしない傾向に有る
残念なのは日本でVB.NETに関する導入事例や書籍など情報自体が少ない
海外が多いくらいだ
ネット上で海外から情報取得して生かすしか方法が無い
日本マイクロソフトもC#重視したから尚更

50 デフォルトの名無しさん 2018/09/15(土) 13:03:37 ID:
>>49
最新の構文を使いまくってやる予定
別に嫌がらせじゃないよw

51 デフォルトの名無しさん 2018/09/15(土) 18:21:04 ID:
C#に比べて
ラムダとかエクステンションの書き方が
めっちゃわかりにくい

52 デフォルトの名無しさん 2018/09/16(日) 11:47:37 ID:
VB.NETでシステム構築して今更、他の言語を検討してるとか言ってる所も有る
VB.NETのままでも安く運用する方法考えれば良いのだが、システム更新に責任持ちたく無いヤツ居る職場だと永遠にシステム刷新出来ない罠

53 デフォルトの名無しさん 2018/09/16(日) 14:03:16 ID:
VB+Oracleで構築しちゃうと
ライセンスでOracleが足かせになる場合出るので、Oracle→MariaDBやPostgreSQLにする方が安く出来る

54 デフォルトの名無しさん 2018/09/21(金) 14:21:26 ID:
SQL鯖の一択

55 デフォルトの名無しさん 2018/09/22(土) 15:01:46 ID:
VB.NET(~VS2013)の細かい仕様の質問なんだけど、
通常のFormにPictureBoxを載せて、PictureBoxのデバイスコンテキストを取ってきて自前で低レベルAPIで描画してるんだけど、
最初にALTキーを押した時にPictureBoxがチラついて自前の描画が消えてしまう場合がある。
このちらつきは、そのアプリの起動後、ALTキーを押した時に必ず1回だけ発生して、場合によって自前描画もちらつきとともに消える模様。
これを抑止することって出来ないのかな
FormのOnPaint、OnPaintBackgroundを空メソッドにオーバーライドしても効き目なかった

56 デフォルトの名無しさん 2018/09/22(土) 15:40:38 ID:
一般的な問題と思えんから再現可能なコードを示さないと
誰も何も言えないと思う

57 デフォルトの名無しさん 2018/09/22(土) 15:52:30 ID:
え?そんなにやってることが特殊かな?
扱うデータが大きくてその視覚化を自前ネイティブに任せるとか、よくやる方法だと思ってた
聞く場所を間違えたかな・・・

58 デフォルトの名無しさん 2018/09/22(土) 15:58:27 ID:
>>55
>>ALTキー
OnKeyイベントで対処するしか無いんじゃないの

59 デフォルトの名無しさん 2018/09/22(土) 16:22:56 ID:
>>57
よく分からん思考回路
どこで聞いても同じたお思うよ。
それで答えが返ってきたらその人はエスパーだ
エスパーなんかいないけどね

60 デフォルトの名無しさん 2018/09/22(土) 16:39:18 ID:
>>58
ありがとう
FormのKeyUpとKeyDownとKeyPressイベントで、e.Handled = Trueにしてるんだけど、それでもちらつく
またFormのKeyUpイベントの後に自前描画し直してるんだけど、それでも自前描画が消えてしまうことがある
こういうのがあるから.NETは信頼できないんだよな

61 デフォルトの名無しさん 2018/09/22(土) 16:42:39 ID:
システムのバグだー!!!
タメグラマの典型的な思考回路だねw

賭けてもいいよ絶対にあんたの書いたコードのバグだからw

62 デフォルトの名無しさん 2018/09/22(土) 16:49:12 ID:
エスパーにしか分からん位に特殊な実装だとは全然思ってなかったなw

63 デフォルトの名無しさん 2018/09/22(土) 16:52:51 ID:
だから何でそうなるのw

そもそもあんた、特殊な実装をしてるかどうか読み手が判断できるような情報を何も書いてないだろうw
だからそれで答えが返ってきたらエスパーだと言ってるのに重症だなおい

64 デフォルトの名無しさん 2018/09/22(土) 16:53:24 ID:
膨大なデータ生で見せられてもユーザーにはメリットがないのでデータの見せ方を変える
低レベルAPIじゃなく高速描画ライブラリを使う
というのが一般的な対応じゃないかな

そもそもここで言う一般的ってのはやってることが一般的かどうかという意味じゃなく
事象と発生条件が一般的ではないから実際のものを見なきゃ何もわからないという意味だろう

65 デフォルトの名無しさん 2018/09/22(土) 16:54:14 ID:
hDC取ってWin32API呼びました、これが実装の詳細か?w

66 デフォルトの名無しさん 2018/09/22(土) 17:14:32 ID:
>>64
言葉を返すようだが、「見せ方」「メリット」というけど、そこまで相談はしていないよ
低級API利用が特殊だとは全く思わないし、そもそも描画手続きについて相談してるわけでもない
ALTキー押下でVB.NETのPictureBox上の自前描画が消えるのが問題なんだよ
自前描画もそうだけど、ALTキーを押すなんてそんな特殊なケースだとは思わなかったね
みんな普段ALTキーを使ってないのかよ?w

67 デフォルトの名無しさん 2018/09/22(土) 17:19:14 ID:
マジで言ってるなら相当の幸せ回路だな

ALTキーを押すのが特殊と思わんかったてw
何でそうなるのw

68 デフォルトの名無しさん 2018/09/22(土) 17:24:48 ID:
>>66
VB.NETでブラウザ上表示じゃなくForm描画だとしたら、PictureBOXが載ってる親オブジェクトのFormの描画リフレッシュレートタイミングに問題が有るんじゃ無いか

69 デフォルトの名無しさん 2018/09/22(土) 19:34:34 ID:
「起動後の最初」に特定のキーを押す
描画が消えてしまう「ことがある」

特殊バグすぎてイラつくわ
一般的に起こってたまるかよ

70 デフォルトの名無しさん 2018/09/22(土) 20:50:50 ID:
>>68
>リフレッシュレートタイミング
つながってると意味がぼやけるな。それはともかく、
VB.NETのFormは、イベント駆動で再描画されるから常時一定間隔で描画更新されてるわけじゃないだろう

71 デフォルトの名無しさん 2018/09/22(土) 20:54:15 ID:
ところで、再現手順については必要最低限の情報を提示したつもりだったんだが、こんなに特殊に受け止められるとは想定外だったな
これだけ出回っているツールだから、同じケースで悩んでいる人たちがいるだろうと思ってたんだが
主張根拠を、相手の書き込みの一部だけを恣意的に抽出してつなげて、捏造主体の印象操作を行うことに羞恥心を感じない心の浅い人もいるみたいだし、
聞く場所を間違えた、という結論に至りました^^

72 デフォルトの名無しさん 2018/09/22(土) 21:01:14 ID:
バイバイ

73 デフォルトの名無しさん 2018/09/26(水) 19:54:20 ID:
JavaのOpenJDKはLTSバージョンが無くなった
.NET復権だろうな

74 デフォルトの名無しさん 2018/10/04(木) 03:58:18 ID:
この掲示板だけのインシデントと信じたいが、
お前らマジで使えねえな
その程度でイキってるからVB.NETが馬鹿にされるんだよ、ゴミ共が

75 デフォルトの名無しさん 2018/10/28(日) 14:59:16 ID:
GetPrivateProfileStringでINIファイルの全文を読み込む方法ってありますか?

76 デフォルトの名無しさん 2018/10/28(日) 17:31:59 ID:
>>75
第1引数と第2引数をNULLで出来るみたいだぞ

↓ここを参考
https://msdn.microsoft.com/ja-jp/library/cc429779.aspx

77 デフォルトの名無しさん 2018/10/28(日) 20:11:08 ID:
>>76
おお!目を通したつもりがよく理解できてなかったよ
大変助かったよ!本当に有難う!精進します。

78 デフォルトの名無しさん 2018/10/28(日) 20:28:08 ID:
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 パラメータで指定したキーが見つからないってことだと思うから
結局第三引数が第四引数の中に入っちゃうのですが
解釈がおかしいのでしょうか

79 デフォルトの名無しさん 2018/10/28(日) 20:43:01 ID:
>>78
実際にやってみた?、考えただけ?

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

実際にやってみてlpDefaultの値がlpReturnedStringに
入ってしまったのならこの関数で全文取得は無理なんじゃないかな

80 デフォルトの名無しさん 2018/10/28(日) 22:33:46 ID:
>>79
実際にやってみて入らなかったよ、教えてくれたのに申し訳ない。
INIファイルからキーを全部抽出して任意のタイミングで変数に入れたいだけなんだが
調べてもよく分からなくて質問を受けてくれてる方にも
困惑させてしまっているな...

81 デフォルトの名無しさん 2018/10/29(月) 06:03:03 ID:
30分ごとに料金を+500円ずつ足していってラベルテキストに表示するプログラムが作りたいのですが
どうすればいいでしょうか?
経過時間を計測するところまではできています

82 デフォルトの名無しさん 2018/10/29(月) 08:05:28 ID:
>>81
Tickイベントで1秒毎に変数に1足していって300.600.900辺りで表示するようにすればいい

83 デフォルトの名無しさん 2018/10/29(月) 10:50:14 ID:
>>80
> 第一引数と第二引数をNULLにしてSECTIONとKEYを一挙に取得したい
誤解してない? これで手に入るのはセクションの一覧だよ
その後で個々のセクションごとに改めて第2引数だけNULLでGetPrivateProfileStringを呼び出してそのセクション内のキー一覧を取得する

ほかの確認事項としては
iniのファイルパスが正しい確認、念のためフルパスで渡す
¥0で区切られた文字列はStringとかStringBuilderとかでは正しく受け取れないからByte配列で受け取ってEncoding::GetStringで文字列変換

84 デフォルトの名無しさん 2018/10/29(月) 18:57:40 ID:
>>83
ごめんなさい、少し勘違いをしていました。
第一引数でセクションを指定し、第二引数をVBNullStringにした場合、キー値ではなく何故かセクション名をひとつだけ取得するのですが、第一引数でセクションを指定し、第二引数をnullにすれば指定したセクションのキー値をすべて取得できるという解釈は誤りでしょうか?

85 デフォルトの名無しさん 2018/10/29(月) 19:27:50 ID:
> 第一引数でセクションを指定し、第二引数をnullにすれば指定したセクションのキー値をすべて取得できるという解釈は誤りでしょうか?
解釈は正しい
セクションしか取れないのは何か勘違いしてんじゃね
1つしか取れないのは>>83の最後の行

86 デフォルトの名無しさん 2018/10/29(月) 20:04:46 ID:
>>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」が取得されるものかと思っておりました。

87 デフォルトの名無しさん 2018/10/30(火) 00:57:51 ID:
大して複雑でもないんだから、悩むなら
ファイル全読して自分で解析した方が早そう

88 デフォルトの名無しさん 2018/10/30(火) 13:23:38 ID:
>>86
ヌルストリングはヌル値じゃなくて空文字列の事じゃん?

89 デフォルトの名無しさん 2018/10/30(火) 13:36:29 ID:
nullにすればって言ってるからヌル渡してると思うじゃん?
まさか空文字列を渡して動かないと言ってるとは思わないじゃん?

90 デフォルトの名無しさん 2018/10/30(火) 13:43:18 ID:
(定数) Constants.vbNullString As String = Nothing
インテリセンスによるとこうらしい
説明では長さ0の文字列とか言ってるけどな

91 デフォルトの名無しさん 2018/10/31(水) 01:30:41 ID:
>>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)

こんな感じ

92 デフォルトの名無しさん 2018/11/03(土) 19:15:19 ID:
>>90
Nothingを文字列として評価すると長さゼロの文字列だからな

93 デフォルトの名無しさん 2018/11/03(土) 19:36:08 ID:
VBのNothingはnullではなく型の規定値だったはず。
つまり、

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

と同じはず。
だからどっちにしろ空文字ではなくNull参照じゃないとおかしい気がする

94 デフォルトの名無しさん 2018/11/03(土) 20:46:51 ID:
Debug.Print("{0}", String.Empty.Equals(vbNullString)) .. False
Debug.Print("{0}", String.Empty = vbNullString) ... True

面白いな。

95 デフォルトの名無しさん 2018/11/07(水) 00:28:16 ID:
WindowsFormアプリからExcelを参照する際に困ったことがあったので質問します。
いま参照しているExcelに名前ボックスが同じ名前のActivexコントロール(CheckBox)が2つあるんですが片方のValue値が取れません。
Excelには手を加えずに解決する方法をご存じの方はいますか?

96 デフォルトの名無しさん 2018/11/08(木) 16:15:45 ID:
>>95
自己解決しました。

97 デフォルトの名無しさん 2018/11/08(木) 18:23:13 ID:
>>96
解決方法ぐらい書き込めよ

98 デフォルトの名無しさん 2018/11/08(木) 21:54:24 ID:
>>97
(Excelシート名).OLEObject(1).Object.Value
名前じゃなくインデックスで値を拾う感じ

99 デフォルトの名無しさん 2018/11/12(月) 17:40:02 ID:
datagridviewで選択した行のテキストを各列ごとにテキストボックスに反映させるにはどうすればいいですか?

100 デフォルトの名無しさん 2018/11/13(火) 11:07:08 ID:
BindingSourceを作って
DataGridViewのDataSourceと各TextBoxのDataBindingに割り当てる

101 デフォルトの名無しさん 2018/11/13(火) 17:35:19 ID:
BindingSource って Visible=False なコントロールを飛ばするとか、微妙なところあるんだよなぁ

102 デフォルトの名無しさん 2018/11/16(金) 15:10:13 ID:
11/14あたりのWindowsUpdateでListViewの表示がおかしくなった。
正確には「View=Tile」にしてもLargeIconになってしまうケースがある。
既にリリース済みのシステムで今日から表示がおかしいという問合せが
あった。どこに原因があるのか確認しようとミニマムなコードを書いて
みても普通にTileで表示されるので原因がまだ特定できていない。
それとApplication.EnableVisualStyles()していてもTabコントロール上の
ボタンにVisualStyleが適用されないものもある。この時、Tabコントロール
以外に存在するコントロールにはVisualStyleが適用されている。
これも原因がわからない。。

同じような現象になった人っていますか?

103 デフォルトの名無しさん 2018/11/16(金) 23:58:30 ID:
おるわけないやろオマエのバグやのにw

104 デフォルトの名無しさん 2018/11/20(火) 17:31:14 ID:
Windowsフォームを閉じる際にMe.close()とMe.dispose()の両方を書いたら閉じる時の挙動がおかしい(後ろで開いてたエスクプローラーが一瞬だけ出てくる)のですが原因が分かる方いますか?

105 デフォルトの名無しさん 2018/11/24(土) 15:05:28 ID:
俺も今月からおかしいのに気が付いた。
Private Abc as String = "AAA"と設定しているのに、

ボタンイベントで下記のみ実行

Abc = "ABDEF"
TextBox1.Text = Abc
Dim S1 as String = Abc
Msgbox(S1)

上記のコードを実行すると Msgboxの表示は”AAA”
テキストボックス表示は”ABDEF”
今月になって発覚した。
仕方ないからクラスを追加してグローバル変数にして実行している。

プライベート変数 すべてに影響があって初期値に戻される事象。
vs2017の修正を試したがだめだった。

106 デフォルトの名無しさん 2018/11/24(土) 15:23:36 ID:
>>105の頭が目がおかしいのだろう
さすがにそんな言語レベルの根本的なバグがあったら自動テストで拾える
Msgboxのバグで以前表示した値が出ているとかならワンチャンないとも言い切れなくもないかもしれない可能性はゼロではないかもね

107 デフォルトの名無しさん 2018/11/24(土) 22:20:58 ID:
こいつらはどうしてちゃんと環境かかないんだろうねぇ

108 デフォルトの名無しさん 2018/11/25(日) 11:13:33 ID:
聞かれないからじゃね

109 102 2018/11/26(月) 08:57:51 ID:
Windows 10 Pro 1803 x64
VisualStudio 2013 + .NET Framework 4 + VB.Net
この環境で Windows.Forms アプリを開発してます。

110 デフォルトの名無しさん 2018/11/26(月) 09:23:13 ID:
.NET4はとっくにサポート期限切れてるから使っちゃダメ
もしWinのアップデートのせいだったとしても、サポート切れの.NET4なんか当然テストしてないだろうし、自己責任よ

111 102 2018/11/26(月) 15:59:12 ID:
当該の不具合が発生している環境は Window 7 Pro x86 です。
後だし情報ですんません。

112 102 2018/11/26(月) 16:02:59 ID:
連投になってしまってすんません。
Windows 7 は 2020年1月で切れるということは、まだ切れてないんじゃ
ないんですか?
この解釈は間違ってますか?
.NET Framework 4 のサポートが終わったってどこに記述ありました?

ここにはそこまで書いてないと思うのですが。
https://www.microsoft.com/ja-jp/download/details.aspx?id=17718

113 102 2018/11/26(月) 16:25:55 ID:
ライフサイクルについてはここで見つけることができました。
https://support.microsoft.com/ja-jp/help/17455/lifecycle-faq-net-framework
「2016 年 1 月 12 日に終了しました」とありますなorz

114 デフォルトの名無しさん 2018/11/27(火) 02:01:37 ID:
そもそもVS2013って、Win10で動作保証されているのか?

115 デフォルトの名無しさん 2018/11/27(火) 10:19:17 ID:
VB2013てWin8.1までだな。
Win10ならVS2015以降か。

116 デフォルトの名無しさん 2018/11/27(火) 16:09:13 ID:
もしかして、開発のプロパティが .NET2とか初期値になってない?
PCにインストールしていない下位バージョンの.NET開発は挙動がおかしいよ。
まれだが、バージョンを最新に指定するとなおることも多い。

117 102 2018/11/27(火) 19:10:09 ID:
>>116
対象のフレームワークは.NET Framework 4になってる。
ミニマムに再現確認しようと新規でプロジェクトを(.NET4で)作成しても問題なし。
でも既存のはListViewでView.TileにならずView.LargeIconだったりVisualStyleが適用されなかったりする。。
(Win7の実行環境でもWin10の開発環境でも。)

みんなはちゃんと最新の開発環境に移行できてるの!?
今回問題になってるアプリケーションはVS2003の頃に.NET1.1で開発初めて、途中で.NET2.0にして
いまはVS2013+.NET4で保守してきてるけど、そんなにポンポンと開発環境をMSの言うがままに
アップデートしてきてるの!?!?

118 デフォルトの名無しさん 2018/11/27(火) 20:05:39 ID:
こういう典型的な保守さんを見ると、そんなにあんたたちの作ったものは品質が高いのかとツッコミたくなる
クソ細かいこと気にする前にもっと他にいくらでも直さなきゃいけないところあるだろ?
やるべきことをやらないくせに「やらない」ことに対してだけオーバークォリティな典型的な無能

119 デフォルトの名無しさん 2018/11/27(火) 20:10:12 ID:
>>118
子供過ぎw

120 デフォルトの名無しさん 2018/11/27(火) 20:36:21 ID:
どうさ保障されてる環境でないとサポートされないからな

問題が起きたらまずサポートされてる環境で再現するか確かめるわ

121 デフォルトの名無しさん 2018/11/27(火) 23:40:16 ID:
>>117
manifestになんか書いてるとか

122 102 2018/11/28(水) 17:57:11 ID:
>>117
.manifestはないけど.exe.configならある。
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
<supportedRuntime version="v2.0" sku=".NETFramework,Version=v2.0"/>
</startup>
と書いてる。
このあたりをv2.0の行を削除してみたりuseLegacyV2RuntimeActivationPolicyを
なくしてみたりといじってみたけど解消されず。。

123 デフォルトの名無しさん 2018/11/29(木) 00:08:17 ID:
ListViewは.NET4で安定してるはず。
NET4以前は、ある一定行数を超えるとエラーで処理が止まるということがあった。
だから、WIN32APIを使ってWM_PAINTメッセージを処理するコードを使わないと
ほぼ動かない状態だった。だが、.NET4でWIN32API呼び出しがいらなくなった。

多分だが、ビルド関係のPC固有のバグも含まれると思う。
なので、VSを終了してデバックされたものではない<開発中のアプリEXE>を
直接動かしてみてね。それでどうか?
VS2008の頃は、VSのデバック使わないで開発してた経緯がある。

124 102 2018/11/29(木) 08:25:18 ID:
>>123
.NET4 以前の不具合は知らなかった。ありがとう。

今回の現象は、.NET1.1の頃に開発したソースをそのままずっと引き継いでいて
VS2003~2005~2008~2010~2013、.NET1.1~2.0~3.5~4と変遷しながらも
そのまま使用している。
いま起きている不具合は Releaseビルドした実行ファイルを、別PCで実行しても
発生するし、VSでのデバッグ実行でも発生している。

125 デフォルトの名無しさん 2018/11/29(木) 16:27:06 ID:
確か、そのころVS2003とかDLL出力できないものだよね。
多分 .resxファイルとか残ってるでしょ?

サポート対象のバージョンで動くかどうかではなく、昔から流用してきたコードやメソッドを
見直すほうが先だと思う。古いメソッドとか使ってると微妙なものがある。

126 102 2018/11/29(木) 19:16:02 ID:
>>125
開発当初から.resxファイル使ってるよ。
これマズいの?

確かに過去に.NETを新しいものに変更したときそれまで使用していたメソッドが
使えなくなってメンテした記憶はある。
でも.NET4で作成したアプリがついこの間までは普通に使えていたのに
急に挙動(見た目)が変わるって変じゃない?
単純に ListView の View を Tile にしても LargeIcon になってしまうのって気持ち悪いし。
enum定数の値が変わったとかならわからなくもないけど、実際にはenumのView.Tileを
指定しているし。
ステップ実行してもそのタイミングでViewはTileになっている。
けれども実際の見た目はLargeIconになっている...

まあサポートの切れた.NET4を使っていて文句言うなと指摘されそうだけど。

127 デフォルトの名無しさん 2018/11/29(木) 20:42:47 ID:
デバッグ実行で再現するならミニマムコード作って晒せよ

128 デフォルトの名無しさん 2018/11/30(金) 00:40:56 ID:
あ! そうか・・  LargeIconの設定はコードで書いてるの?
リストビューのツールプロパティに設定項目なかったかな?
それで試してみた? 設定変更のコードを削除してから試してね。

ただ、頻繁に変更するとか、あとバグるメソッドじゃないんだよね。

なんどもすまん!



  
  
  

新着レスの表示
■トップページに戻る■ お問い合わせ/削除依頼