5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

VB.NET質問スレ(Part34)

1 :デフォルトの名無しさん:2010/04/12(月) 00:08:01
前スレ

VB.NET質問スレ(Part33)
http://pc12.2ch.net/test/read.cgi/tech/1263738929/

テンプレは >>2-4 あたり


2 :デフォルトの名無しさん:2010/04/12(月) 01:24:11
MSDN
  http://msdn.microsoft.com/ja-jp/library/ms229284.aspx
どぼん!のVB道のトップページとTipsページ
  http://dobon.net/vb/
  http://dobon.net/vb/dotnet/index.html
Insider.NET
  http://www.atmarkit.co.jp/fdotnet/index.html
宇宙仮面の C# プログラミング
  http://uchukamen.com/
.NET TIPS
  http://www.atmarkit.co.jp/fdotnet/dotnettips/index/index.html
緑のバイク ★ 初めてのC# プログラム全般
  http://homepage3.nifty.com/midori_no_bike/CS/
VB.NETとC#でデザインパターン
  http://hccweb1.bai.ne.jp/tsune-1/
匣の向こう側
  http://www.ne.jp/asahi/nami/mei/index.html
WisdomSoft
  http://wisdom.sakura.ne.jp/
じゃんぬねっと
  http://jeanne.wankuma.com/
どっとねっとふぁん - C# Tips And Samples -
  http://homepage3.nifty.com/dotnetfan/index.html
  http://dotnetfan.org/
C#プログラミングTips
  http://www.atmarkit.co.jp/fdotnet/csharptips/index/csharptips_index.html

3 :デフォルトの名無しさん:2010/04/12(月) 01:24:53
CodeProject
  http://www.codeproject.com/vb/net/
the GotDotNet Home Page
  http://www.gotdotnet.com/
KEN's .NET
  http://www5b.biglobe.ne.jp/~yone-ken/VBNET/index.html
Cetus Links: 19,498 Links on Objects and Components / .NET
  http://www.cetus-links.org/oo_dotnet.html
HIRO's.NET
  http://vbdotnet.fc2web.com/index.html
@IT:特集 .NET開発者のためのオンライン・リソース・ガイド
  http://www.atmarkit.co.jp/fdotnet/special/onlineres/onlineres_01.html
.NETでいきまっしょい!
  http://santamartadotnet.hp.infoseek.co.jp/
これがほしかった!厳選サンプルツール集
  http://anetm.com/dev/tools/vbdotnet.htm
ぬーやんのdotNET講座
  http://www.geocities.jp/nuu_yan/dotNET/index.html
PINVOKE.NET
  http://www.pinvoke.net/
WinAPI Database for VB Programmer
  http://www.winapi-database.com/

4 :デフォルトの名無しさん:2010/04/12(月) 01:25:38
Windows Api programming in C# , VB.NET, and VB6. Examples of P/Invoke and DllImport with Source code
  http://custom.programming-in.net/
CodeZine
  http://codezine.jp/
ConvertCSharp2VB
  http://www.kamalpatel.net/ConvertCSharp2VB.aspx
@IT:.NET Tools
  http://www.atmarkit.co.jp/fdotnet/tools/index/index.html
SharpLibrary Redirector
  http://www.sharplibrary.com/
MSDN アカデミック アライアンス 技術資料
  http://www.microsoft.com/japan/msdn/academic/articles/
「300 秒でズバリ !!」&「10 行でズバリ !!」シリーズ
  (VS2005) http://www.microsoft.com/japan/msdn/thisweek/300x10/
  (VS.NET 2003) http://www.microsoft.com/japan/msdn/thisweek/wednesday/
PAPA'n VB
  http://papanvb.i-love-vb.net/
  (旧コンテンツ) http://www.mitene.or.jp/~sugisita/index_old.html
VB レスキュー花ちゃん
  http://www.bcap.co.jp/hanafusa/dotnet/index.html
VB中学校
  http://homepage1.nifty.com/rucio/main/main.htm
初心者から中級者のためのVB
  http://www7b.biglobe.ne.jp/~vb_beginner2008/

テンプレここまで

5 :デフォルトの名無しさん:2010/04/12(月) 01:29:09
パチンコ勝って飲んで帰って来たぞ〜
つか
テンプレ貼ってねえから貼っといてやったぞ
寝る

6 :デフォルトの名無しさん:2010/04/12(月) 01:55:22
せっかくの新スレの最初からアレなんだけど

http://pc12.2ch.net/test/read.cgi/tech/1263738929/994
>ともかく、横断的な観点で何らかの処理を行いたいとき、
>クラスを拡張して各クラスに書くってのは、もはや一般的にもあまり推奨されないやり方になってる。

馬鹿の一つ覚え的だなあ。

継承よりコンポジションを重視する最近(でもないけど)の流れは俺も正しいと思うんだけど、
コントロールに関しては前にも書いたとおりダメ。

デコレーターパターンとか使えないんだからさあコントロールは。

ToolTipがどうのとか言ってるけど、あれはIDEの支援があるのと、
あの手の機能がそうはない(ツールチップを出す機能を負ってるのははToolTipに決まってる!)
から成立しているのであって、あんなものを一般化してどうするんだ。

というか、意地でもコードを再利用したいのなら、コンポジションでも
「TextBoxを」ユーティリティクラスが持つのではなく、「TextBoxの派生クラスが」
ユーティリティクラスを持つようにしてよ。

そうすれば前に簡単に説明したような弊害は起こらないから。

7 :デフォルトの名無しさん:2010/04/12(月) 03:16:38
何言ってんのこの人


8 :デフォルトの名無しさん:2010/04/12(月) 03:17:45
>コントロールに関しては前にも書いたとおりダメ。
馬鹿の一つ覚え的だなあ


9 :デフォルトの名無しさん:2010/04/12(月) 03:18:37
>ToolTipがどうのとか言ってるけど、あれはIDEの支援があるのと、
>あの手の機能がそうはない(ツールチップを出す機能を負ってるのははToolTipに決まってる!)

横断的な処理とかつまりそういうことじゃないの?


10 :デフォルトの名無しさん:2010/04/12(月) 03:20:26
>「TextBoxを」ユーティリティクラスが持つのではなく、「TextBoxの派生クラスが」
>ユーティリティクラスを持つようにしてよ。

それをやると何かするコントロールはみんな派生する必要があるわけだ。


11 :デフォルトの名無しさん:2010/04/12(月) 03:22:04
例えばフリーとかサードパーティのテキストボックスコントロールとか使いたくなった時、
全部派生クラスを作る必要がある。
拡張プロバイダとかでできる範囲ならそんな必要はない。


12 :デフォルトの名無しさん:2010/04/12(月) 03:53:44
>継承よりコンポジションを重視する最近(でもないけど)の流れは俺も正しいと思うんだけど、
>コントロールに関しては前にも書いたとおりダメ。

>デコレーターパターンとか使えないんだからさあコントロールは。

ホントに意味分かって書いてるのか?君は


13 :デフォルトの名無しさん:2010/04/12(月) 03:54:46
>>6
ttp://pc12.2ch.net/test/read.cgi/tech/1263738929/993
なんでこっちに触れない?


14 :デフォルトの名無しさん:2010/04/12(月) 07:20:30
あ〜眠い
つか
お前ら新スレになってもま〜だやってんのか
この手の論争は長引くな

なんかVBスレっぽくねぇけど、こうゆうのも活気があって悪くねぇか
もう思う存分やれ〜

今日は真面目に仕事だ

15 :デフォルトの名無しさん:2010/04/12(月) 08:24:41
コンポジションて、何がコンポジション?

拡張プロバイダならややAOP的な考え方だと思うけどな。
横断的って言ってるのはつまりそういう事だろう。

単なるユーティリティはそれだけじゃパターンも何も無いと思うが。


16 :デフォルトの名無しさん:2010/04/12(月) 22:33:25



17 :デフォルトの名無しさん:2010/04/13(火) 00:03:51
配列を要素数0に変更したい場合どうしてます?
何か推奨の書き方とかあったら教えてください。

ReDim Me.Elements(-1) ' 負の数でReDimする
Me.Elements = New Object() {} ' 空の配列を与える
Me.Elements = Nothing ' ← NG (参照をなくしたい訳ではなく0個の配列にしたい)

18 :デフォルトの名無しさん:2010/04/13(火) 00:11:00
そもそも配列の要素数は変更不可ですけど.....

19 :デフォルトの名無しさん:2010/04/13(火) 00:15:16
>>18
そう言う内部的な話ではなくて…

20 :デフォルトの名無しさん:2010/04/13(火) 00:20:56
redim

21 :デフォルトの名無しさん:2010/04/13(火) 10:34:57
いつもの流れに戻ったな

>>17
俺の場合は
データが保持不要→空の配列
データ保持必須→Redim
かな
昔は Nothing の代わりに Erase なんてのもあったな

22 :デフォルトの名無しさん:2010/04/13(火) 11:53:58
巷はVS2010で盛り上がっていますが
2010でVBは何か変わるのでしょうか?

何も変わらないのであればVerUPする必要もないかな、と思いまして。。。

23 :デフォルトの名無しさん:2010/04/13(火) 12:05:20
>>17
一応ArrayにResizeってのが用意されているが
Me.Elementsの中身(配列の参照)を
何処かで保持してるって事はないよな?

配列はサイズ変更したら別インスタンスになるから
全ロジックでMe.Elements経由で参照してないと…


24 :デフォルトの名無しさん:2010/04/13(火) 12:10:58
新機能はASP.NET、Silverlight、WCFのようなWeb周りやWPFが中心
基本的にWinFormsは放置
VB自体は言語仕様が変わってプロパティを定義するのが楽になったり
行継続の_が不要になったりする

25 :デフォルトの名無しさん:2010/04/13(火) 12:34:50
リリースコンパイルはデバッグコンパイルの実行ファイルより
速いですか?

26 :デフォルトの名無しさん:2010/04/13(火) 12:45:20
画面をキャプってサムネを作りたいのですが
ちょっとつまっています

写真のような画像であれば保存先からピクチャボックス、フォームに移して
CopyFromScreenで解決しそうですが

webや動画みたいものはその方法が使えません
その場合はAPIに頼る他ないでしょうか?
写真のように切り取りたいのです

print Screenで画面まるごと取得って手はアレすぎますし・・・

27 :デフォルトの名無しさん:2010/04/13(火) 13:03:46
>>21
redimも別のインスタンスになるから空の配列と同じ

>>25
速い

>>26
>写真のような画像であれば保存先からピクチャボックス、フォームに移して
>CopyFromScreenで解決しそうですが
これが何がしたいのか分からない

28 :デフォルトの名無しさん:2010/04/13(火) 13:06:40
WinFormsは放置ですか
でも逆に今までのソースが流用出来そうな感じですね

今後はWPFが主流になっていくのかな?

29 :デフォルトの名無しさん:2010/04/13(火) 13:15:34
MEF(DIコンテナ)とかParallel(非常に抽象度が高い並列処理)とか
VBerには無縁な新機能もいろいろ

30 :デフォルトの名無しさん:2010/04/13(火) 13:20:58
VB.netで並列化プログラミングってのは無理なのか?

31 :デフォルトの名無しさん:2010/04/13(火) 13:26:12
できるけどできるのとユーザが使えるかは別だろ
VBでDIとかParallel.Forとかw

32 :デフォルトの名無しさん:2010/04/13(火) 14:05:10
まじかよ、そんなの使ってる人間も書籍(Webネタ)も見たこと無いから正直びっくりだ。

まあ、使うことは無いだろうが。

33 :デフォルトの名無しさん:2010/04/13(火) 14:15:52
MEFはVS2010のプラグインに使われてるよ
機能の割にはとっても使いやすいフレームワーク

34 :デフォルトの名無しさん:2010/04/13(火) 14:45:53
System.AddInのこと時々でいいから思い出してください

35 :デフォルトの名無しさん:2010/04/13(火) 15:43:18
LINQ to SQLも即死
Entity Frameworkを使いましょう

36 :デフォルトの名無しさん:2010/04/13(火) 19:12:28
マウスホイールを回したいんだけど、これ↓で動かないの?
mouse_event(&H800, 0, 0, 120, 0)
ググッってサンプルで見かけたけど、うんともすんとも言わないんだけど。

何か知ってる人いたら教えて下さい><

37 :デフォルトの名無しさん:2010/04/13(火) 22:33:16
教えてください
Interfaceって、どういう状況で使うのですか?


38 :デフォルトの名無しさん:2010/04/13(火) 22:41:51
>>17
Me.Elements.Resize(0) だな
ただし、Me.Elements が既に作られていることが前提だ
最初から要素数 0 にしたければ
Me.Elements = New Integer() {} で

>>23
Resize で別インスタンスにはなんないよ

39 :デフォルトの名無しさん:2010/04/13(火) 22:43:05
>>37
メソッドを持つことを強制したいときとか。

40 :デフォルトの名無しさん:2010/04/13(火) 22:47:24
>Resize で別インスタンスにはなんないよ
なるよ


41 :デフォルトの名無しさん:2010/04/13(火) 22:49:19
つぎからつぎへと新しい技術が生まれ枯れる前に捨てられて行く
もう覚えるのいやだお…

42 :デフォルトの名無しさん:2010/04/13(火) 22:52:10
なっても、ならなくても
大した問題なく使えるならどっちでも良いよ

43 :デフォルトの名無しさん:2010/04/13(火) 22:53:53
メンバ変数使ったら実体が変わるとかあり得るのか?
まあ配列の再確保はされるだろうけど・・・

44 :デフォルトの名無しさん:2010/04/13(火) 22:55:05
×メンバ変数
△メンバ関数
○メソッド

ボケてた

45 :デフォルトの名無しさん:2010/04/13(火) 23:03:11
いやResizeはインスタンスメソッドじゃなくてArrayクラスの静的メソッド
だから>>38みたいな書き方は意味的に間違い

46 :デフォルトの名無しさん:2010/04/13(火) 23:17:26
つか>>38の内容ほとんど間違いだな。


47 :デフォルトの名無しさん:2010/04/13(火) 23:26:10
あ、そうだっけ・・・
最近使ってないから忘れてた

48 :デフォルトの名無しさん:2010/04/13(火) 23:27:21
ReDim使おうが新しく作って代入しようがArray.Resize使おうが
既に作った配列のサイズはどうやっても絶対に変えられません

49 :デフォルトの名無しさん:2010/04/14(水) 10:25:03
vb.netで常駐型アプリケーションを作成しています。
アプリケーションが終了する時に一度だけ処理をさせたいと思い
調べてみたのですが、以下の方法があることがわかりました。

1)エントリポイントに記述する方法
2)My.Applicationを使用する方法
3)Application.ApplicationExitイベントを使用する方法

webで調べていると、3)の記述する場所がサンプルでは
form_load内に記述されていて、注意書きで
「できればエントリポイントの適当な位置で記述したほうがよい」
と書かれていました。

できればform_load内で記述したかったのですが、form内に記述すると
何か問題が発生する可能性があるということなのでしょうか。

50 :デフォルトの名無しさん:2010/04/14(水) 10:31:19
>>49
アプリの作りによっては同じフォームを複数回開くことになるから、
ApplicationExitイベントを多重登録する場合がある。

51 :デフォルトの名無しさん:2010/04/14(水) 10:47:55
>>50
なるほど。すっかり頭から抜けてました。
ありがとうございます。

52 :デフォルトの名無しさん:2010/04/14(水) 19:14:28
TableAdapterとDataAdapterの決定的な違いって何ですか?
DataAdapterの機能はTableAdapterでカバーされている様にも見えます
それならDataAdapterいらねーじゃんって事なんですが
存在しているので何かしら意味はあるんだろーなと

53 :デフォルトの名無しさん:2010/04/14(水) 19:41:38
DataAdapterなかったらTableAdapter作れねーよ


54 :デフォルトの名無しさん:2010/04/14(水) 19:58:52
>>53
そうゆう事じゃなくて違いを知りたい
2つを分けている理由ってやつ

55 :デフォルトの名無しさん:2010/04/14(水) 20:11:56
君は例えば自アプリケーションのフォームはフォームとしての機能をカバーしているから
基底クラスのFormなんてなんで別にあるの?って疑問がわいたりする?


56 :デフォルトの名無しさん:2010/04/14(水) 20:25:13
>>55
フォームは色々とコントロールを配置するという理由があるよね?
DataAdapterの場合はDataAdapterのみで完了しちゃうじゃん
わざわざTableAdapterを用意する理由が知りたい
俺はデザイナで手軽に扱える?くらいしか思いつかない

57 :デフォルトの名無しさん:2010/04/14(水) 20:52:51
>>49
常駐型なら、サービスにしなよ。

58 :デフォルトの名無しさん:2010/04/14(水) 20:54:35
>>55
例えが悪い
TableAdapter の基底クラスは System.ComponentModel.Component

59 :デフォルトの名無しさん:2010/04/14(水) 21:02:39
そんなことはどうでもいい。
似たような役割を果たしてるだろ?


60 :デフォルトの名無しさん:2010/04/14(水) 21:06:24
TableAdapterには独自のクエリ(に対応するメソッド)を追加したり、
自分でメソッドを追加したりできる。
UpdateやDelete などの操作に対応するメソッドを自動で作成させることもある。
型指定されたDataSetやDataTableだけを渡せるUpdateラッパーも作ってくれる。
まあ別にこの辺含めて一切不要なら使わなくてもいいんじゃない?


61 :デフォルトの名無しさん:2010/04/14(水) 21:07:40
>>59
じゃ >>55 こんなレスすんなよw

62 :52:2010/04/14(水) 21:23:46
>>60
複数のクエリを扱い易くした、というか扱えるのがTableAdapterという事ですね。
確かに自動作成されたメソッドは楽です^^
DataAdapterでもSqlCommandBuilderで自動化は出来るけど複数は面倒…って事ですね。

いや〜実はテーブルが増えてデザイナが超混雑してて、違いも理解せずに
DataAdapterで出来るところはDataAdapterに置き換えてたんです。
疑問が解決しました。とっても、ありがとう〜!!

63 :デフォルトの名無しさん:2010/04/14(水) 21:27:13
>>61意味不明


64 :デフォルトの名無しさん:2010/04/14(水) 21:28:47
環境はVS2008です
ipアドレスを変更するツールを作ろうと思っています。dhcpと静的IPアドレス(192.168.0.5など)を切り替えたいのですが、うまく行きません
WMIというSDKが必要だと思うのですが、DLできる場所が分かりません・・
別の方法ではコマンドプロンプトの機能を使うと思われるのですが、うまくいきませんでした、どうすればよいでしようか?
コードは↓です。解決方法を教えてください!よろしくお願いします。
Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click
Dim results As String
Dim psi As New System.Diagnostics.ProcessStartInfo()
'ComSpecのパスを取得する
psi.FileName = System.Environment.GetEnvironmentVariable("ComSpec")
'出力を読み取れるようにする
psi.RedirectStandardInput = False
psi.RedirectStandardOutput = True
psi.UseShellExecute = False
'ウィンドウを表示しないようにする
psi.CreateNoWindow = True
'コマンドラインを指定("/c"は実行後閉じるために必要)
psi.Arguments = "pushd interface ip" & vbCrLf & _
"set address ""ローカル エリア接続 2"" static 192.168.0.5 255.255.255.0 192.168.0.5" & vbCrLf & _
"set dns ""ローカル エリア接続 2"" static 192.168.0.5 primary" & vbCrLf & _
"set wins ""ローカル エリア接続 2"" static none"
Dim p As System.Diagnostics.Process = System.Diagnostics.Process.Start(psi)
'出力を読み取る
results = p.StandardOutput.ReadToEnd
'出力された結果を表示
TextBox1.Text = results
'WaitForExitはReadToEndの後である必要がある
'(親プロセス、子プロセスでブロック防止のため)
p.WaitForExit()
End Sub


65 :デフォルトの名無しさん:2010/04/14(水) 21:34:38
WMI は別に落とす必要もなく、Windows 2000 以降なら使えるよ。
とりあえず、Win32_NetworkAdapterConfiguration.EnableDHCP() メソッドで
DHCP を有効にはできるみたいだね。

で、静的なアドレスの方を有効にするには、EnableStatic() メソッドか。

そのコマンドラインがなんなのか知らんけど、コマンドプロンプトで
実行して動くの? netsh とかでなく?

66 :デフォルトの名無しさん:2010/04/14(水) 21:36:25
あれ、netshではじめてたはずなのになくなっていました、ゴメンナサイ
もうだめです・・

67 :デフォルトの名無しさん:2010/04/14(水) 21:36:48
VS2008 使わなくても WSH だけでほとんどおんなじこと出来ると思う

68 :デフォルトの名無しさん:2010/04/14(水) 21:37:25
>>63
無知を晒しちゃったけどw
もう解決したみたいだからいいじゃないw

69 :デフォルトの名無しさん:2010/04/14(水) 21:45:46
>>65
ありがとうございます
ちなみに名前空間は何になるんでしょうか?
> 'Win32_NetworkAdapterConfiguration' は宣言されていません
と言われてしまいます。Imports System.Management.Instrumentationあたりかと思いましたが違うようです
>>67
なんとー!やってみます。

70 :デフォルトの名無しさん:2010/04/14(水) 21:54:16
GetObject("winmgmts:\\COMPUTERNAME\root\cimv2").ExecQuery("select * from Win32_NetworkAdapterConfiguration")

71 :デフォルトの名無しさん:2010/04/14(水) 21:58:56
>>68
また詰まらんことを嬉しそうに、お前最近にキチガイか?

>そんなことはどうでもいい。
>似たような役割を果たしてるだろ?

Form基底クラスもDataAdapterも似たような役割って言ってるんだが何が無知なの?
基底クラスであることと部品として使ってることの違いはどうでもいいって意味で言ってるんだよ。
ついでにどうでもいいが>>60も俺なわけだが。


72 :デフォルトの名無しさん:2010/04/14(水) 22:00:16
>>70
linuxでしょうか?windowsだとrootという名前のフォルダがないです・・

73 :デフォルトの名無しさん:2010/04/14(水) 22:01:23
少しはWMIについて学んだら?

74 :デフォルトの名無しさん:2010/04/14(水) 22:02:32
ああ、今度は基底クラスがComponentであることを知らなかったとでも言いたそうだな。
俺はTableAdapterの基底クラスを自作してデザイナで指定するやり方をよく使うから、
デフォルトがそれだってことなんぞ最初から知っとるわい。


75 :デフォルトの名無しさん:2010/04/14(水) 22:04:32
>>71
おっとそれは失礼

76 :64:2010/04/14(水) 22:18:50
挫折しました
ベクターでソフト落とします;;

77 :デフォルトの名無しさん:2010/04/14(水) 22:26:28
あきらめ早いなぁ。

78 :デフォルトの名無しさん:2010/04/14(水) 22:33:48
きっと明日の午前中納品とかで生産性を重視したんだよ!
もしくは寝る時間

79 :デフォルトの名無しさん:2010/04/14(水) 22:38:32
おやすみ!

80 :デフォルトの名無しさん:2010/04/18(日) 07:27:07
うんこ

81 :デフォルトの名無しさん:2010/04/19(月) 21:23:31
まんこ

82 :デフォルトの名無しさん:2010/04/19(月) 22:51:19
ちんこ

83 :デフォルトの名無しさん:2010/04/19(月) 23:09:51
既存のアプリにフォームを追加して処理待ちダイアログを実現したいと思います。
既存の処理を実行するフォームは、ボタンクリックで処理しているので、終わるまで何もできません。
また、事情があり、この処理をスレッドにしたくもありません。
追加するフォームを表示/非表示するだけで処理待ちを実現したいです。
現状、このようなことをすると、追加したフォーム(Form2とします)は、クライアント領域が再描画されず真っ白になってしまいます。
かといって、Form2内で、再描画処理をスレッド化して数ms置きにInvokeやPostMessageで無理やり表示しようとしても、異なるスレッドから呼び出された、と言って文句を垂れて表示してくれません。
何とかならないものでしょうか?



84 :デフォルトの名無しさん:2010/04/19(月) 23:12:48
なんともなりません。

処理の方をスレッドに分けて、そっちから Invoke() するようにしましょう。

85 :デフォルトの名無しさん:2010/04/19(月) 23:18:49
>>83
下らない小細工を考えるより、素直にスレッド使おうよ。

事情がある?
単に横着なだけじゃないの?

というか、そんな下らない策を弄する元気があるのなら、
素直にスレッド使った方がずっと楽だし簡単だと思うけど。

86 :デフォルトの名無しさん:2010/04/19(月) 23:18:58
>かといって、Form2内で、再描画処理をスレッド化して数ms置きにInvokeやPostMessageで無理やり表示しようとしても、異なるスレッドから呼び出された、と言って文句を垂れて表示してくれません。

そんなことやるくらいなら別スレッド作ってから
そのスレッドでForm2表示しろよ。
まあ俺はやらんけどな。


87 :デフォルトの名無しさん:2010/04/19(月) 23:21:52
これがVB厨たる所以か

88 :デフォルトの名無しさん:2010/04/19(月) 23:27:34
>84-86
ありがとうございます。スレッド化するのも視野に入れて考え直してみます。

>87
そんなことイワンでくれよ。
「仕事で」.NETのくそったれクラスを使ってやたら迂遠な書き方をしなきゃならんのだぜ。
ストレスたまりまくり。


89 :デフォルトの名無しさん:2010/04/19(月) 23:33:25
>>88
これ読んで悔い改めた方がいいかもね
http://blogs.wankuma.com/jeanne/archive/2006/08/02/34597.aspx

VB6上がりの人っぽい感じだけど、VB6にも一応クラスの機能はあったんだよ。
使ってなかったの?

90 :デフォルトの名無しさん:2010/04/19(月) 23:37:50
>89
使わせていただきました。
継承できないハンチクな奴でしたね。


91 :デフォルトの名無しさん:2010/04/19(月) 23:40:08
えーそれなら普通.NETになって超快適になったと感じると思うけどな

92 :デフォルトの名無しさん:2010/04/19(月) 23:44:37
そーお???
快適かどうかが問題なら、あのデザイナの遅さは筆舌に尽くしがたい。
ボタン100個程度の再表示でコーヒーが飲み干せる。
開発用マシンがあんましメモリないせいかも試練が。


93 :デフォルトの名無しさん:2010/04/19(月) 23:46:03
ボタン100個とかはさすがにインターフェイスの設計に問題有りだな

94 :デフォルトの名無しさん:2010/04/19(月) 23:46:32
マシンがしょぼい&ボタンを100個も置くな

って話だな。

95 :デフォルトの名無しさん:2010/04/19(月) 23:52:47
仕事のためにしょうがなくやってるプログラマなんでしょ。
そんな人間に何を期待してもダメ。

96 :デフォルトの名無しさん:2010/04/20(火) 00:19:24
>>88
今回の話は.NET以外だともっと大変だろ…
少なくとも.NETより楽にはならんだろどう考えても。


97 :デフォルトの名無しさん:2010/04/21(水) 01:07:29
.NETで客先で業務アプリケーションを開発しています。
アセンブリのバージョン管理ってみなさんやっていますか?
パッケージ開発とかであればやったほうがいいんだろうけど、
管理コストに比べ、やるメリットがあまり思いつかないんですが・・・。
だれか教えてください

98 :デフォルトの名無しさん:2010/04/21(水) 01:52:58
あんたひとりで開発してるなら必要性は薄いかもしれんけど
いやそれでも使った方がいろいろ洛だと思うけど

99 :デフォルトの名無しさん:2010/04/21(水) 07:04:52
>>97
ひとりで出来るような規模なら
バージョン毎にディレクトリ作って
プロジェクトフォルダ全部ぶちこめ

100 :デフォルトの名無しさん:2010/04/21(水) 09:17:47
.netを投げ捨ててCVSだ

101 :デフォルトの名無しさん:2010/04/22(木) 06:18:43
VB.NET初心者です

WebClient.UploadFileを使ってFTPにファイルをアップロードし
それが完了するまで待機というものを実現したいのですが

アップロード完了を確認する方法はありますか?

よろしくお願いします

102 :デフォルトの名無しさん:2010/04/22(木) 16:46:28
ないんじゃなかったっけ?

103 :デフォルトの名無しさん:2010/04/22(木) 16:58:48
つかそれって非同期じゃ無くね?

104 :デフォルトの名無しさん:2010/04/22(木) 16:59:39
wininet使ったほうがいい

105 :デフォルトの名無しさん:2010/04/22(木) 17:53:09
C#でも同じ質問が進行中だが同一人物かな。


106 :デフォルトの名無しさん:2010/04/23(金) 09:04:33
FTPコマンド使えばどうよ?

107 :デフォルトの名無しさん:2010/04/23(金) 21:06:47
そもそもWebClient.UploadFileは完了まで戻らないから

108 :デフォルトの名無しさん:2010/04/24(土) 12:03:24
はじめまして
先週からVB.netを勉強しだしたんですが
フォームのチェックやテキストボックスの中身などの状態を保存しておくにはどうすればいいでしょうか?

次起動したときにもその状態が維持されてるようにしたいです

お願いします

109 :デフォルトの名無しさん:2010/04/24(土) 12:05:09
"永続化"で調べる

110 :デフォルトの名無しさん:2010/04/24(土) 15:14:01
質問スレでそれはなくねーか?

111 :デフォルトの名無しさん:2010/04/24(土) 17:11:13
「チュートリアル: オブジェクトの永続化」
に一通り書いてあるしなあ。

112 :デフォルトの名無しさん:2010/04/24(土) 18:53:45
キーワードがわかんないレベルなんだろうから、>>109で充分。
下手に説明するより、ドキュメント読んだ方が早い場合もあるし。

113 :108:2010/04/25(日) 00:06:39
みなさんありがとうございます

調べてみます

114 :デフォルトの名無しさん:2010/04/25(日) 00:17:49
objFile = objFSO.OpenTextFile("C:\aaaa.dat", 2)
というふうに、OpenTextFileで上書きモードでファイルを開きたいんですが、
「HRESULT からの例外: 0x800A0046 (CTL_E_PERMISSIONDENIED)」
というエラーが出ます。
C:\aaaa.datのアクセス許可はeveryoneでフルコントロールにしてます。

XPでは普通に動いたんですが、Vistaではエラーがでます。


115 :デフォルトの名無しさん:2010/04/25(日) 00:24:13
>>114
C:\ の直下だからかな?

116 :デフォルトの名無しさん:2010/04/25(日) 00:25:45
ファイルを書くのはマイドキュメントにしる!

117 :デフォルトの名無しさん:2010/04/25(日) 00:35:37
>>115-116
わ、ほんとだ。上書きモードで開けました。
ありがとうございます。

118 :デフォルトの名無しさん:2010/04/25(日) 02:43:47
Dim aibon As New Musume("加護亜依", New DateTime(1988, 2, 7), 4)
Dim konkon As New Musume("紺野あさ美", New DateTime(1987, 5, 7), 5)
Dim nacchi As New Musume("安部なつみ", New DateTime(1981, 8, 10), 1)
Dim mikitty As New Girl("藤本美貴", New DateTime(1985, 2, 26))
Dim ayaya As New Girl("松浦亜弥", New DateTime(1986, 6, 25))
http://smdn.invisiblefulmoon.net/programming/netfx2/overview/serialization/

永続化でググったら、これは・・・

119 :デフォルトの名無しさん:2010/04/25(日) 03:01:05
下手なプログラミングの典型だな
JavaやVBみたいな糞文法の言語使ってると馬鹿になる例

120 :デフォルトの名無しさん:2010/04/25(日) 04:05:48
市販のゲームかアプリでハロプロの名前使ってるやつあったよなw

121 :リリン ◆HRL8aliaJ2 :2010/04/25(日) 07:22:36 ?PLT(44544)
VBでインベーダーゲーム作ってるんだけど、左右の矢印キーで移動、スペースで弾撃つのに矢印キー押しながらスペース押すと
矢印キーが効かなくなる。なんとかする方法教えてケロ・ω・

122 :デフォルトの名無しさん:2010/04/25(日) 10:36:25
and つかえ。


123 :リリン ◆HRL8aliaJ2 :2010/04/25(日) 10:41:49 ?PLT(44544)
andなんかひゃくまんかい試したは

124 :デフォルトの名無しさん:2010/04/25(日) 10:57:30
Spaceをやめて、ShiftとかCtrlとかAltにする。

125 :デフォルトの名無しさん:2010/04/25(日) 11:37:24
一桁の数値を「0」で埋めて「06」のような形にしたいのですが
String.Format("{0:00}", DropDownList1.SelectedValue)


126 :デフォルトの名無しさん:2010/04/25(日) 11:43:23
DropDownListで選択した一桁の数値を、「0」で埋めて「06」のような形にしたいのですが
TextBox1.Text = String.Format("{0:00}", DropDownList1.SelectedValue)
だと「6」のようになり、ゼロで埋まってくれません。

Dim num As Integer = DropDownList1.SelectedValue
TextBox1.Text = String.Format("{0:00}", num)
だと「06」のようになり、成功します。

String.FormatでDropDownList1.SelectedValueを指定する場合、どのように指定すればいいのでしょうか?

127 :デフォルトの名無しさん:2010/04/25(日) 11:46:19
Int32.Parse

128 :デフォルトの名無しさん:2010/04/25(日) 12:11:24
SelectedValue は String だから直接 "00" のフォーマットを使うのは無理なんじゃない
String なら Right("00" & DropDownList1.SelectedValue, 2) という方法がある
美しい方法とは言えないが、それなりによく見かける

129 :デフォルトの名無しさん:2010/04/25(日) 12:43:39
DropDownListってwebコントロール?
いずれにせよ、Itemsに突っ込む値をちゃんと数値にすれば>>126のコードで
期待するような動作をするはずだと思うけど。


130 :デフォルトの名無しさん:2010/04/25(日) 14:39:42
>>121
インベーダーならMSDNにサンプルあったはず

131 :デフォルトの名無しさん:2010/04/25(日) 18:56:33
>>121
今どきインベーダー作るの禁止。


132 :デフォルトの名無しさん:2010/04/25(日) 19:53:20
今だからこそインベーダーさ

133 :デフォルトの名無しさん:2010/04/25(日) 19:56:12
ある行にジャンプするのもコロンだし
複数のステートメントを1行に書くのもコロンだし
じゃぁ
Jump1:Dim i As integer
のようにジャンプ先の行に別のステートメントを書いた場合はどうなる?

134 :デフォルトの名無しさん:2010/04/25(日) 20:03:06
何がじゃあなのか意味が分かりません真面目に

135 :デフォルトの名無しさん:2010/04/25(日) 20:52:36
( ゚Д゚)ポカーン

136 :デフォルトの名無しさん:2010/04/25(日) 21:23:55
.jar のことか

137 :デフォルトの名無しさん:2010/04/26(月) 04:35:55
Date.Now.Dateに7日足した結果を表示したいんですが
どうすればいいでしょうか?

138 :デフォルトの名無しさん:2010/04/26(月) 07:06:07
Dim dtBirth As DateTime = DateTime.Parse("2010/04/26")

' 7日加算する
dtBirth = dtBirth.AddDays(8)

MessageBox.Show(dtBirth.ToString("yyyy/MM/dd"))


139 :リリン ◆HRL8aliaJ2 :2010/04/26(月) 12:34:55 ?PLT(44544)
>>124
>>130
>>131
ありがとう・ω・*





役に立たなかったけどプッ

140 :137:2010/04/27(火) 11:56:27
>>138
返事遅くなりました

答えまで書いていただきありがとうございます!

141 :デフォルトの名無しさん:2010/04/27(火) 13:28:16
DateAdd("D",7,DateValue("2010/04/27")).ToString("yyyy/MM/dd")
の方がVBらしいかなと

142 :デフォルトの名無しさん:2010/04/27(火) 15:52:05
そんなんするんだったらいっそToStringもFormatにしろよ

143 :デフォルトの名無しさん:2010/04/27(火) 17:46:59
日付とかは馬鹿の一つ覚えでメソッド使わず
毎回ベタに自前で計算するのがVBらしい

144 :デフォルトの名無しさん:2010/04/27(火) 22:13:52
MouseEnterイベントでマウスのボタンが押されているかどうかを判断する方法を教えてください。

145 :デフォルトの名無しさん:2010/04/27(火) 22:20:03
Control.MouseButtons

146 :デフォルトの名無しさん:2010/04/27(火) 22:37:44
ありがと

147 :デフォルトの名無しさん:2010/04/27(火) 22:38:47
> Date.Now.Date
DateTime.Now.Date だとして、これもVBらしさだろうか?


148 :デフォルトの名無しさん:2010/04/27(火) 23:12:15
VBらしさを狙うなら、#M/d/yyyy#の日付定数表記だろ。
実際にやったら混乱を招くだけだろうけどw

149 :デフォルトの名無しさん:2010/04/28(水) 11:45:26
VS2008です
textboxに
「あいう
えお
かきく」
とある場合、特定の行(例えば2行目の「えお」)を抜き出す簡単な
方法はありますか?
indexofで改行の場所を取得し、midで抜き出すしかないでしょうか

150 :デフォルトの名無しさん:2010/04/28(水) 11:48:55
Linesプロパティでも使えば

151 :デフォルトの名無しさん:2010/04/28(水) 12:09:50
>>150
ありがとうごぜぇます!

152 :デフォルトの名無しさん:2010/04/28(水) 12:10:27
>>149
Dim part As String() = TextBox1.Text.Split(vbCrLf)

153 :デフォルトの名無しさん:2010/04/28(水) 12:18:19
>>152
助かります!!

154 :デフォルトの名無しさん:2010/04/29(木) 12:12:49
環境:VS2008です。
他のアプリのDatagird(datagirdView?)に表示されているデータを取得したいです。
ListViewならSendmessageでLVM_GETITEM等を投げて取得できるようですが、
Datagird(datagirdView?)ではどうやって取得すれば良いのか判りません。
どなたか情報をお持ちの方、教えて頂けないでしょうか。


155 :デフォルトの名無しさん:2010/04/29(木) 12:21:39
>>154
基本無理。

156 :デフォルトの名無しさん:2010/04/29(木) 15:16:09
Microsoft Chart Controls(.NET 3.5版)で、一つのチャートに棒グラフと線グラフを表示しているのですが、
Seriesコレクションエディタで棒グラフのメンバを上に持ってきても、プログラムを動作させると
線グラフの上に棒グラフが表示されてしまい、線グラフが見えにくくなってしまいます。

表示する順番を設定するには、何を指定すれば良いのでしょうか?

157 :デフォルトの名無しさん:2010/04/29(木) 16:57:02
キャッシュファイルのキャッシュは
Cashu
でいいんだっけ

158 :デフォルトの名無しさん:2010/04/29(木) 17:06:51
cacheだな。

159 :デフォルトの名無しさん:2010/04/29(木) 17:22:25
さんんくす

160 :デフォルトの名無しさん:2010/04/29(木) 21:31:28
ボタンの色を金色やシルバーに光らせるには
RGBまたは#16進
でどの値をとれば

161 :デフォルトの名無しさん:2010/04/29(木) 21:38:45
>>160
金や銀は、黄土色とか灰色でしかない。
金や銀に見えるのは、金属光沢とか映り込みがあるから
そう見えるだけなので、金属っぽく見せたいなら、
そういうビットマップを貼り付けるのがいい。

162 :デフォルトの名無しさん:2010/04/29(木) 22:08:55
むずかしす

163 :デフォルトの名無しさん:2010/04/30(金) 00:39:58
いまどきならモニタに自画撮りカメラ搭載したPCが出回ってるから
映り込みをプログラムで再現してみるのも面白いかもしれない

164 :デフォルトの名無しさん:2010/04/30(金) 09:27:37
>>155
やっぱり無理ですかね・・・
EnumWindow&GetText、
EnumProp&GetProp、
ダメでした。

そういうツールでもあれば良いのですが。
需要あると思うんだけど、見つからないのは無理だからかな・・・


165 :デフォルトの名無しさん:2010/04/30(金) 13:20:13
質問です。
以下のサイトでは、CLRについての知識が必要であると書かれていますが、
その系統の事を身につけるにはどうしたらよいのでしょうか?
.NET Framework関連だと思いますが、そのようなタイトルのスレは
この板にはありませんでしたので、とりあえずここで質問してみました。
自分なりに検索してみたところでは、「CLRは複数の言語をサポートする。」
など概要的な説明のサイトくらいしか見つけることが出来ませんでした。
解説サイトや書籍の紹介でもかまいませんのでお願い致します。

http://www.atmarkit.co.jp/fdotnet/vblab/opensemi_06/opensemi_06_01.html
> 配置の知識は特に重要だと思います。グレープシティでも.NETが
> 製品として世に出てきた当初は、「従来あったレジストリ登録は
> 必要ないのか?」「どの場所に配置するのが適切なのか?」など、
> 配置に関するサポートへの質問がとても多かったと記憶しています。

166 :デフォルトの名無しさん:2010/04/30(金) 14:53:40
そのサイトにVBだとはっきりかいてるじゃねーかw
勉強したいならテンプレぐら読め

167 :デフォルトの名無しさん:2010/04/30(金) 15:31:38
>>166
テンプレのどれですか?

168 :デフォルトの名無しさん:2010/04/30(金) 15:40:26
.netで、スクリーンセイバー起動/終了を検知して
バッチファイルを動かすプログラムを作成したいと考えています。

そこで、スクリーンセイバーが現在起動中かどうかを調べる方法が必要となる訳ですが、
MSDNで調べたのですが、見つけれませんでした。

どなたか方法をご教授いただけないでしょうか。

169 :デフォルトの名無しさん:2010/04/30(金) 15:43:13
http://www.geocities.jp/masa7251/tips/api/api00018.html

170 :デフォルトの名無しさん:2010/04/30(金) 15:45:17
コピペ君って馬鹿だな、まで読んだ。

171 :デフォルトの名無しさん:2010/04/30(金) 15:50:20
>>170
ばかでいいので、サイトを教えてほしい、と思った。

172 :デフォルトの名無しさん:2010/04/30(金) 15:59:31
>>169
Win32APIを利用する訳ですね。
ありがとうございました。

173 :デフォルトの名無しさん:2010/04/30(金) 16:32:54
formを矢印キーを押したら押した方向に1ドットづつ移動するようにしたいんですけど
どうしたらいいですか

174 :デフォルトの名無しさん:2010/04/30(金) 16:34:47
me.left = me.left + 1

175 :デフォルトの名無しさん:2010/04/30(金) 17:11:10
せめて+=使っといてやれ

176 :デフォルトの名無しさん:2010/04/30(金) 17:26:40
すべてのAPIは.NETのクラスになってるの?

177 :デフォルトの名無しさん:2010/04/30(金) 17:44:44
なってないよ

178 :デフォルトの名無しさん:2010/04/30(金) 17:52:54
Excelファイル作成などはCOM経由で行うしかなかったりする。
.NETですべてがというモットーではあるようだが、
すべてが行えるわけでもない。

179 :デフォルトの名無しさん:2010/05/02(日) 22:11:43
リストボックスの項目入れ替えについて質問です。
VB6.0で同様の関数を組んでた時は上手く行ったのですが、
VB.NETに移行してから複数時にアイテムの中身を書き換えると選択状態が外れてしまいます・・・。
ちなみに、最後の項目の中身入れ替えをコメントアウトしたら、選択された状態そのものは入れ替わりました。
実用としては、選択された状態の項目を上下に1つずつ移動・・・というのが目的です。
行数の関係上、テキストに一部抜粋して上げさせて頂きました。

10項目あった内、1,2番目を選択してBTDOWNを押すと、最終的に
元3番目が1番目に来て、その下に元1,2番目が移動し、元1番目のみ選択状態で元2番目の選択が外れる…と言った具合です。ご教授よろしくお願いします。
(SelectionMode=MultiExtendedです)

ttp://www.rupan.net/uploader/download/1272805481.txt

180 :デフォルトの名無しさん:2010/05/02(日) 23:38:13
選択したらええだけちゃうんかと・・・

181 :デフォルトの名無しさん:2010/05/03(月) 16:43:49
レスありがとうございます。
もちろん選択する処理内容は含ませてます(txt参照)。
が、何故かitemの中身を書き換える処理の前後で選択状態がどれか単一状態になってしまいます。
上述の通り、itemを何も書き換えないで選択状態だけを移動した場合はちゃんと複数選択の状態が移動してくれます・・・

半分自己解決ですが・・・item中身の書き換え直後に再度選択処理を入れてやったら改善されました。
もっと効率的な方法が無いか自信が無いですが、もし何か別の手段がありましたらご指摘よろしくお願いします。
ttp://www.rupan.net/uploader/download/1272872486.txt

182 :デフォルトの名無しさん:2010/05/04(火) 03:58:18
Visual Studio (のコントロールオブジェクト)も万能ではない、ということです。
あまり統合開発環境に頼りっぱなしのプログラミングは良くないよ。
技術力というより、ソフトの使い勝手しか身につかない。


183 :デフォルトの名無しさん:2010/05/04(火) 04:21:44
vb.netで作ったプログラムに入力した文字列をウェブ上(javascript、php)で読み込むにはどうしたらいいでしょうか?

よろしくお願いいたします

184 :デフォルトの名無しさん:2010/05/04(火) 04:41:16
JavaScriptとPHPって同列に並べられても困る。
とりあえずHTTPで見える所へ置いとけばどうにかなるだろ。

185 :デフォルトの名無しさん:2010/05/04(火) 05:42:12
その方法がわからなく質問させていただきました
vb.netで作ったプログラムのtextboxなどに入力した文字列を
Web上に出力するにはどうすればいいのか教えていただけないでしょうか?

186 :デフォルトの名無しさん:2010/05/04(火) 07:27:42
accessでもSQLでもお好きなもんを

187 :デフォルトの名無しさん:2010/05/04(火) 10:26:23
ところでそれって念のために聞くけどクライアントアプリだよね

188 :デフォルトの名無しさん:2010/05/04(火) 11:06:40
>>187
そうです
プログラムで商品名、金額を入力するとウェブ上にそれが表示されるものを作りたいと思って質問しました

とりあえずMySQLを入れてみたのですが
SQLもaccessもまったくわからないので苦戦してます・・・

189 :デフォルトの名無しさん:2010/05/04(火) 11:18:23
ウェブって、ウェブブラウザのことを指してるのかしら

190 :183:2010/05/04(火) 11:25:44
>>189
ええとHTMLと言ったらいいんでしょうか・・・phpと言ったらいいんでしょうか・・・
入力したものをウェブサイト上で更新したいんです

191 :デフォルトの名無しさん:2010/05/04(火) 11:34:32
Webアプリについて勉強してから出直せ。

192 :デフォルトの名無しさん:2010/05/04(火) 16:03:19
Webアプリを作りたいのかWebページを作りたいのか

193 :デフォルトの名無しさん:2010/05/04(火) 16:35:52
ローカルアプリから、ローカルでブラウザで開いてるページに入力したいだけじゃないのか?
とりあえずSendKeysでも調べてやってみたら?

194 :デフォルトの名無しさん:2010/05/04(火) 16:49:12
ローカルから入力したものをWEB上に表示させたいんでね?

195 :デフォルトの名無しさん:2010/05/04(火) 17:40:52
あぁ…癒されるね

>>190
あなたの言っている『ウェブサイト』をブラウザで開いた時のアドレスが『http://〜』か?『C:\〜』とか?
で変わってきます

196 :183:2010/05/04(火) 20:48:15
みなさんレスありがとうございます
なんとなくですが多分僕のやりたいことは

プログラムで入力→データーベースへ保存→ウェブ上でPHPで読み込みし表示

てな感じで出来るんじゃないかなと思うんですがVB.NETでのデーターベースの扱い
データーベースの使い方、PHPでのデーターベースの扱いが分かっておらず混乱しています

>>192
この場合Webページなんですかね・・・

>>193
ローカルでひらいてるページではなく
別サーバーに置かれているページ内に表示したいです
もちろんそのサーバーも自分の運営しているもので、です

>>194
そうです!

>>195
http://〜ですね

言葉足らずで勉強不足ですがどうかよろしくお願いします

197 :デフォルトの名無しさん:2010/05/04(火) 21:02:07
まず、Webサーバーの種類・OSの種類を確認することからどうぞ。
次に、運営しているWebサーバーとローカルがどうつながってるのか。
その辺から。

つまり、VB.NETが出てくるのは大分先。WebProg板でもいった方がいいよ。

198 :デフォルトの名無しさん:2010/05/04(火) 21:02:37
>>196
データベースのサーバーはVBのプログラムを動かしている
パソコン上で動かしているのか、ウェブサーバーと同じマシン上
で動かしているのか、あるいはそれらとはまた別のマシンなのか?


199 :デフォルトの名無しさん:2010/05/04(火) 21:12:54
    以下 無能なループ

    === 開始 ===



200 :183:2010/05/04(火) 21:41:40
>>197
WindowsXPでXAMPPでMySQLを動かしています

まずVB.NETでデーターベースを扱えるようにと思っているのですが
WebProg板に行った方がいいんでしょうか・・・

>>198
LAN内にある別マシンです
SQLを扱うサイトを参考に

http://codepad.org/5CQvl2t7

こんな感じで書いて見たのですが
con.Open()でどうしてもエラーが発生してしまいます

MySQLの設定ミスだろうとは思うのですがいまいち原因がわからずじまいです・・・

201 :デフォルトの名無しさん:2010/05/04(火) 21:43:29
>>196
> プログラムで入力→データーベースへ保存→ウェブ上でPHPで読み込みし表示
おそらくVBが係わってくるのは『データーベースへ保存』までですね

データベースの種類『MySQL』という事なので
ttp://www.atmarkit.co.jp/fdotnet/dotnettips/789adomysql/adomysql.html
まずはこの辺りからでしょうか

202 :183:2010/05/04(火) 21:48:22
>>197
すいませんWebサーバーでしたね・・・
WebサーバーはApacheです

そのPCでApache + MySQLを動かしています

>>201
ありがとうございます!
見てみます!

203 :デフォルトの名無しさん:2010/05/04(火) 22:13:26
HTML生成してWebサーバーにFTPするだけで充分じゃね?

204 :デフォルトの名無しさん:2010/05/04(火) 22:50:26
はじめまして

Visual Studio 2008でVBをするのと
Visual Basic 2008 Express Editionでするのはどう違うんでしょうか?



205 :デフォルトの名無しさん:2010/05/04(火) 22:52:17
開発環境の機能が少ないだけ
作れるもの自体は全く同じ

206 :デフォルトの名無しさん:2010/05/04(火) 22:52:48
Expressは機能が制限されたおまけ版です。
上位製品の機能を使わないなら、Expressで充分。

207 :デフォルトの名無しさん:2010/05/04(火) 23:07:38
vb.netで作成した常駐型アプリケーションを2つ同時に
起動していて、それぞれが終了する際にログファイルとして
ファイル出力を行っているのですが、OSのシャットダウンを
行った際、片方は出力されていてもう片方は出力されないと
いう現象が起こっています。

アプリケーションは同じexeを利用していて、設定ファイルで
別々のディレクトリにファイルを出力させるようになっているのですが、
片方しか出力されていません。

手動でそれぞれアプリケーションを終了させてあげると、それぞれ両方
ファイルが出力されます。

ログを書き出す契機はform_closedイベントを使っているのですが
これは、OSのシャットダウン処理時にファイル出力処理が間に合わなくて
片方だけ出力されているのか、それとも同じexeファイルを同時に起動
する事が問題なのか、原因がわかりません。
想定できる原因もしくは調べる方法として何かありますか?

208 :デフォルトの名無しさん:2010/05/04(火) 23:10:15
Closingでやれば?

209 :デフォルトの名無しさん:2010/05/04(火) 23:17:06
>>208
プログラム終了時に1回だけ行いたいので
closingは無理ですよね?


210 :デフォルトの名無しさん:2010/05/04(火) 23:19:09
ぜんぜん無理じゃないけど?

211 :デフォルトの名無しさん:2010/05/04(火) 23:20:47
異なるexeにして試してみれば?

212 :デフォルトの名無しさん:2010/05/04(火) 23:22:44
常駐型って何よ。サービス?

213 :デフォルトの名無しさん:2010/05/04(火) 23:45:56
>>212
タスクトレイに収まるタイプです。
notfyiconっていうのを使ってます。
以前closingでやってみたのですが、
タスクトレイに収まるたびにログが書かれてたので
closedに変更しました。

>>210
作りこみなしで簡単にclosingでもできるのですか?

>>211
早速テストしてみます。ありがとうございます。
原因はやはり同じプログラム名でイベントが通知されていない
ってことがありうるということでしょうか。

214 :デフォルトの名無しさん:2010/05/04(火) 23:59:26
そんなん聞いたことないなぁ。

215 :デフォルトの名無しさん:2010/05/05(水) 04:22:48
質問なんですが

DataGridViewを配置して
データソースの選択→プロジェクトデータソースの追加→データソース構成ウィザードでデーターベース
→データベースを選択して次へ→接続文字列をアプリケーション構成ファイルに保存するの画面で次へを押すと

エラーメッセージ: アセンブリ 'Microsoft.VisualStudio.DataDesign.SyncDesigner.DeslPackage, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f11d50a3a'から型
'Microsoft.VisualStudio.DataDesign.SyncDesigner.SyncFacade.SyncManager' を読み込めませんでした。

というエラーが出て進みません・・・

調べても
http://connect.microsoft.com/SQLServer/feedback/details/354419/vs
このようなものしか出てこず解決にもなっていません

どうしたら解決できますでしょうか?
よろしくお願いします

WindowsXP
VS2008

です

216 :213:2010/05/05(水) 08:39:31
プログラム名を変えて試してみたのですが、
だめでしたorz
アプリケーションの作り方の問題なのかなぁ。
もう一度ソース見直してみます。

217 :デフォルトの名無しさん:2010/05/05(水) 15:00:17
exeとdllの格納を別にしたいため、
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<probing privatePath="DLLの場所" />
</assemblyBinding>
</runtime>
をapp.configファイルに記載しています。
今度、このapp.configファイルのDLLのパスをvb.netのプログラム内に
埋め込みたいと思っていますが、どこに記述したらよいかわかりません。
ご存じの方教えてください。よろしくお願いします。


218 :デフォルトの名無しさん:2010/05/05(水) 15:04:07
無理じゃね? 動的にアセンブリをロードするようにすればできるかも。

219 :デフォルトの名無しさん:2010/05/05(水) 15:19:30
217です。
>>218
そうですね。無理そうです。
内部に埋め込むことはあきらめます。
ありがとうございました。

220 :デフォルトの名無しさん:2010/05/05(水) 21:37:14
217です。たびたびすみません。
app.configに記載した
<probing privatePath="DLLの場所" />
というのはいつのタイミングで読み込まれるのでしょうか?
この読み込みする命令のところをprobing privatePathではなく、
固定でDLLの場所を指定すればよいのではないのでしょうか?

221 :デフォルトの名無しさん:2010/05/05(水) 21:39:24
読み込み命令なんてないから、考えるだけ無駄。
やりたければ、>>218にあるように、動的にロード。

222 :デフォルトの名無しさん:2010/05/06(木) 04:21:49
215は自己解決しました

もうひとつ質問なのですが
Connector/Netを使ってSQL文でデータの登録

'SQL文
sqlStr = "INSERT INTO `test`.`test1` (`a`, `b`, `c`, `d`) VALUES ('おはようございます', 'こんにちは', 'こんばんわ', 'Hello');"

'MySQLCommand作成
cmd = New MySqlCommand(sqlStr, con)

'SQL文実行
dr = cmd.ExecuteReader

とすると ?????? ?????? ?????? Hello というように文字化けしてしまいます
phpmyadminで同じSQL文を実行すると正常に日本語が反映されるのですが
VB.NETからの実行だとこのような症状が出てしまいます

尚元々登録してあるデータをDateGridViewに読み込みするのは正常に出来ます

文字コードもutf8で統一しているつもりなのですがなにが原因でしょうか?
よろしくお願いいたします

223 :デフォルトの名無しさん:2010/05/06(木) 09:04:25
事故解決しました。

224 :デフォルトの名無しさん:2010/05/06(木) 17:47:49
接続文字列で文字コード指定してなかったとか?

225 :222:2010/05/07(金) 03:42:04
ID出ない板なので仕方ないのですが
出来れば勝手に自己解決にしないで頂きたいです・・・

>>222はまだ解決しておりませんよろしくお願いいたします

>>224
接続文字列の設定もちゃんとutf8にしているのですが文字化けしてしまいます・・・


226 :デフォルトの名無しさん:2010/05/07(金) 06:08:28
質問といて、「自己解決しました」とか言うようなやつだしなぁ・・・。

普通は、「こう解決しました」とかってのを書くのがマナーなんだが。
所詮2chだし。

227 :222:2010/05/07(金) 06:10:57
>>226
すいませんでした。

>>215に関してはVS2008の再インストールにて解決しました

228 :デフォルトの名無しさん:2010/05/07(金) 06:27:59
軽くググってみたら、「Server characterset EUC-JP」にしろ、ってのがあったな。
その辺の問題で、VBはあんまり関係なさそう。

229 :デフォルトの名無しさん:2010/05/07(金) 16:41:37
WebBrowserコントロールでURLが
NotFoundのエラーになったのを知ることって出来ますか?


230 :デフォルトの名無しさん:2010/05/07(金) 17:06:43
httpレスポンスコードを見ればいいんじゃね

231 :デフォルトの名無しさん:2010/05/07(金) 22:18:48
NavigateErrorイベント
ただしSystem.Windows.Forms.WebBrowserでは直接は扱えない

232 :デフォルトの名無しさん:2010/05/08(土) 17:47:54
質問です。
1. あるアプリケーションがインストールされているかどうかチェック
2. インストールされていたら、そのアプリケーションのファイルパスを取得
という処理は、どのようにしたら良いでしょうか?
パス決め打ちなら簡単ですが、それ以外にも対応したいのです

233 :デフォルトの名無しさん:2010/05/08(土) 17:54:47
>>232
「インストール」の定義は?

234 :デフォルトの名無しさん:2010/05/08(土) 18:17:21
"windowsinstaller.Installer"を使えばよい

235 :232:2010/05/08(土) 18:25:14
>>233
「プログラムの変更と削除」のリストに載るような、よくある形態でのインストールを想定しています

>>234
ありがとうございます。ちょっと調べてみます

236 :デフォルトの名無しさん:2010/05/09(日) 07:28:44
VB2008Pro使ってます。
ClickOnceで発行したプログラムで初回インストール以降で立ち上げて更新あった時に「インストールしますか?」ってのが出ますが、
これを表示せず無条件でインストールする方法ってありますか?
プログラムをスタートアップに入れて、PC起動時に色々処理を行いたいんですが、「インストールしますか?」の確認画面が出て、
そこでOKおさないと当然先に進まないので、イマイチ使いづらくて。。。


237 :デフォルトの名無しさん:2010/05/09(日) 07:49:15
どんだけ更新してるんだよ

238 :デフォルトの名無しさん:2010/05/09(日) 08:23:25
VB.NETで起動中のプログラムのメモリを書き変えるソフトウェアは作れますでしょうか


239 :デフォルトの名無しさん:2010/05/09(日) 11:00:24
VB.netで、電源オプションのプロパティの電源設定を変更する
プログラムを作成したいと思っています。「

電源設定の「最小の電源管理」や「常にオン」等に設定を変更にするのには、
どの様な手段があるのでしょうか?

外部のバッチファイルを使って、powercfgコマンドで電源設定を変更するバッチファイルを
呼び出す方法はわかったのですが、出来ればバッチファイル無しでAPIのみで作成したいと思っています。

やりたい事は、
・電源オプションの設定一覧を取得する事
・適用する電源オプションの設定を変更する事
です。

また、OSはWindowsXPです。

240 :デフォルトの名無しさん:2010/05/09(日) 11:15:05
>>236
部分更新&手動更新にすればいいんじゃね?

>>238
できないことはないと思うけど、C/C++の方が楽

>>239
Power Scheme系のAPIを使う。

241 :デフォルトの名無しさん:2010/05/09(日) 11:55:47
>>240
>Power Scheme系のAPIを使う。

ありがとうございます。
、、、が、調べてもたもののどういうAPIがあるかわかりませんでした。
もう少しヒントを頂けないでしょうか?

242 :デフォルトの名無しさん:2010/05/09(日) 12:57:48
>>241
ここら辺を読め。
http://msdn.microsoft.com/en-us/library/aa373182(v=VS.85).aspx

243 :デフォルトの名無しさん:2010/05/09(日) 13:04:42
命令口調クンって馬鹿だな、まで読んだ。

244 :デフォルトの名無しさん:2010/05/09(日) 13:09:02
どこにかいてあるんだろう・・・

245 :デフォルトの名無しさん:2010/05/09(日) 13:16:41
http://logsoku.com/thread/pc12.2ch.net/tech/1267348401/226
まさか一字一句違わないレスがあるとは思わなかったw

246 :デフォルトの名無しさん:2010/05/09(日) 21:46:54
コピペだし。この程度の情報でわからないなら、あきらめた方がいいよ。>>241

247 :デフォルトの名無しさん:2010/05/10(月) 00:27:50
>>242
Win32APIを使わないといけないんですね。
面倒なので、powercfgで実装することにします。

248 :デフォルトの名無しさん:2010/05/12(水) 05:09:02
vbnetの勉強を兼ねて
http://www.atmarkit.co.jp/fdotnet/dotnettips/658geckobrowserctrl/geckobrowserctrl.html
ここを見ながらGeckoエンジンでブラウザを作ってみたのですが
作ったPC以外ではエラーが出て動作しません

ビルドしたときに出てきたAxInterop.MOZILLACONTROLLib.dllとInterop.MOZILLACONTROLLib.dll
もちゃんと同梱していますが動作しません・・・

どうすれば他のPCでも動くようになるでしょうか?

249 :デフォルトの名無しさん:2010/05/12(水) 07:14:48
Geckoエンジンがインストールされていない環境で動かそうとした、
というオチと見た。

250 :デフォルトの名無しさん:2010/05/12(水) 09:07:07
なんでこういうときに発生したエラーを書かないのかねぇ…
なにをしたときに発生するとか、どこで止まるとか・・・

HogeHogeExceptionだけでも判れば少しは範囲が絞れるだろうに



251 :デフォルトの名無しさん:2010/05/12(水) 13:52:09
だいたいなんで勉強でわざわざそんなマニアックな題材を選ぶのか
現にVBと全く関係ないところで詰まってるじゃん

252 :デフォルトの名無しさん:2010/05/12(水) 15:52:38
ブラウザなんてコントロールおいて終わりだろ?
勉強なら簡単なテキストエディタあたりがおすすめ

253 :デフォルトの名無しさん:2010/05/12(水) 15:55:49
テキストエディタは前スレで良いサンプルがあったな

254 :デフォルトの名無しさん:2010/05/12(水) 16:01:25
.NETがちゃんとわかってないのにCOMはいかん

255 :デフォルトの名無しさん:2010/05/12(水) 20:14:57
NETでどうのこうのって、まったくメリットがないよ。
入り口で、いいように見えても根本的に構造的に欠陥があるから、
跡で困って、時間と金を使ったぶ損するだけ。人生を棒に振るよ。
マイクロソフトの開発言語は、ほんとうに要注意だよ。


256 :デフォルトの名無しさん:2010/05/12(水) 20:21:36
>>255
まあお前が人生棒に振ってるのは分かった

257 :デフォルトの名無しさん:2010/05/13(木) 06:34:38
MSDNライブラリのメンバーにあるアイコンの意味を
説明しているページ教えてください。

物体がピューと飛んでいたり(メソッド?メッセージ送信のこと?w)、
Xマークだったりというものです。
鍵のマーク(private)と指差し(プロパティ)はわかりましたが。

258 :デフォルトの名無しさん:2010/05/13(木) 15:13:54
この辺?
ttp://msdn.microsoft.com/ja-jp/library/y47ychfe.aspx

259 :デフォルトの名無しさん:2010/05/13(木) 19:09:33
http://blogs.yahoo.co.jp/masa66kawasaki/folder/308845.html
こちらの記事を読みながらiTunesをコントロールするソフトを作っています

この通り作るとiTunesが起動していない状況で作ったプログラムを起動すると
iTunesも一緒に自動で起動しようとしてしまい、iTunesが起動するまで作ったプログラムがフリーズします

プログラムを起動してもiTunesが一緒に起動せず
iTunesが起動しているときだけコントロールできるようにするにはどうすればいいでしょうかl?

.NET初心者ですがよろしくお願いします

260 :デフォルトの名無しさん:2010/05/13(木) 19:18:08
パッと見アウトプロセスで制御しているみたいだし、
プロセスを列挙してiTunesの実行ファイル名が無かったら中止、とか。
逆に言うと、ここで使っているライブラリはCOMのアウトプロセスが前提っぽいから、
起動せずにライブラリでどうのこうのは多分無理なんじゃないかなあ。

261 :デフォルトの名無しさん:2010/05/13(木) 22:15:53
GetObject()で取れればそれで。

262 :デフォルトの名無しさん:2010/05/16(日) 04:31:20
>>259
何のためにそんなプログラムを作ってるの?
完成したらいくらになるのか。
もしかしてタダで情報得て自分の著作物にしようとしてない?

263 :デフォルトの名無しさん:2010/05/16(日) 04:39:00
>>262
何のためにそんなレスしてんの?
いくらになるの???????

264 :デフォルトの名無しさん:2010/05/16(日) 12:50:57
>>262
この手のソフトなら公開されたら大体コイツだってのがわかるだろwww
せいぜい使えるものを頼む iPADも出ることだしな

265 :デフォルトの名無しさん:2010/05/17(月) 21:33:11
VB.netのアルゴリズムについての質問です。

CSVを6列*1000行の配列のソート方法に頭を悩ませています。
一度DBに格納してから抽出すれば工数的には少なくてすむのですが
いかんせん非常に遅い処理になります。

やりたいことは上記csvの4列目と5列目でソートしてTop20を取得し
1,2,5列を書き出すことです。
やはりDBを使わずに実装するには、ArrayListをArrayListに格納する
という、無理矢理なやり方しかないのでしょうか・・・。

ナイスな方法をご存じの方、いらっしゃいましたら教えて下さい。

266 :デフォルトの名無しさん:2010/05/17(月) 21:37:38
>>265
なんでDLLつかってC/C++にやらせないの?

267 :デフォルトの名無しさん:2010/05/17(月) 21:41:03
>>266
俺Javaしか触ったことなくて、C書けない+dll連携の方法を知らない
しかし知識として、そういう方法を使うと早いってのは憶えておきます。


268 :デフォルトの名無しさん:2010/05/17(月) 21:53:04
普通にクラスにして、4番目、5番目のメンバでソートすればいいんじゃね?

269 :デフォルトの名無しさん:2010/05/17(月) 21:54:06
>>267
ちょっとぐぐれば出てくるのに・・・

270 :デフォルトの名無しさん:2010/05/17(月) 21:57:16
C/C++ のDLLと連携するくらいなら、sort を Process.Start した方が速いかも。

271 :デフォルトの名無しさん:2010/05/17(月) 22:01:46
おkkkとりあえず、DataTable使ってみるわ。
クラスって作ったことなかった。あんなの上級SEが仕様書に沿って作るもの
だと思ってたわ。

とりあえずDataTableで実装してみるぜ

DataSetとDataTableで実装
http://hiros-dot.net/VBNET2005/Control/DataSetMenu.htm
http://msdn.microsoft.com/ja-jp/library/system.data.datatable_methods(v=VS.80).aspx

クラスでソート
http://202.218.219.147/fdotnet/dotnettips/218classsort/classsort.html


272 :デフォルトの名無しさん:2010/05/17(月) 22:04:40
Linqの出番っぽい気もするけど俺はあまり詳しくないので、
DataTableに無理やり突っ込む方法を書いてみる。
1.New System.Data.DataTable
2.先にColumnsプロパティに必要な列を突っ込む
3.Rowsプロパティに行を突っ込みまくる
4.Selectメソッドで選択+ソートでDataRow配列ゲット (゚Д゚)ウマー
あくまで内部処理なので、使える機能とか制限ありまくりだけど、
条件さえ合っていれば意外と使える。

273 :デフォルトの名無しさん:2010/05/17(月) 22:07:54
>>272
本当に助かる。書き方の丁寧さに愛を感じるわ

オンメモリで処理できるから
1000回insert文発行してからSelectするより
処理速度100倍くらい向上しそうだな

特2の発想はなかった。

274 :デフォルトの名無しさん:2010/05/17(月) 22:19:23
>>265
ナイスな方法も糞も、既に指摘されているように普通にやるだけでしょ。

CSVのレコード(行)をクラス化して、Comparison(Of T)にシグネチャが一致するメソッドを
ソートのキーに使うカラムごとに用意するだけ。

あとはArrayか何かのSortメソッドを使うだけでしょ。
これかなり程度の低い話だと思うよマジで。

275 :デフォルトの名無しさん:2010/05/17(月) 22:22:49
1000行くらいバブルソートでも一瞬だけど

276 :デフォルトの名無しさん:2010/05/17(月) 22:26:50
>>274
ご指摘の通り、サンデープログラマ気分で2年間今の所でやってきて
そろそろ上流工程も・・・みたいな話なってきてるのに
本当にやばいよな。やっぱ仕事だけじゃ身につかんな。


277 :デフォルトの名無しさん:2010/05/17(月) 22:34:15
Comparison(Of T)にシグネチャが一致するメソッドを
ソートのキーに使うカラムごとに用意するだけ。

意味不明すぎwwwwwwww
グーグルなかったら死んでるな、おれ

訳すと
同じ列を比較演算するメソッドを、カラム毎に用意するわけか。

正直class(1000)をフィールド2に格納されたint型の値でソートしろって言われたら
無理なんだよなwwwww技術的に

278 :デフォルトの名無しさん:2010/05/17(月) 23:09:51
オブジェクト指向なんかそんなに難しいものでもないんだからちょっとだけ我慢して勉強すればいいのに
わかってるかわかってないかで全然世界が違うよ

279 :デフォルトの名無しさん:2010/05/17(月) 23:30:27
GetCurrentHwProfile()で取得できるGUIDは実行する毎に値が変わりますか?

280 :デフォルトの名無しさん:2010/05/17(月) 23:55:06
VBと全く関係ない

281 :デフォルトの名無しさん:2010/05/18(火) 06:19:23
まぁいいじゃない

282 :デフォルトの名無しさん:2010/05/18(火) 08:55:59
Java使えて探せばすぐ出てくる程度の事が判らないって・・・
それって使えてないんじゃ・・・

触ったことがある程度じゃないの?

283 :デフォルトの名無しさん:2010/05/18(火) 20:47:25
Javaなんかそれこそ>>274のようなやり方が大好きな世界だろ
Java分かってるとは全く言えないね

284 :デフォルトの名無しさん:2010/05/18(火) 21:57:22
亀レスだが
>>265
俺なら20行分の領域だけ確保して、CSV読み込んだ行ごとにを確保した領域と比べる
DB使わない実装なんていくらでも考えられる。頭かたすぎるんじゃね

285 :デフォルトの名無しさん:2010/05/19(水) 00:09:16
MicrosoftのVB.NET expressのページでWebダウンロードのリンクをクリックしても
検索画面がでるだけでダウンロード出来ないんですけど今ダウンロード出来ないようになっているんでしょうか?
私だけ?

下記のページです
ttp://www.microsoft.com/japan/msdn/vstudio/express/

286 :デフォルトの名無しさん:2010/05/19(水) 00:20:24
>>285
今試してみたけど、普通にvb_web.exeのダウンロードになるぞ。
とりあえず一時キャッシュ消してみたら?

287 :デフォルトの名無しさん:2010/05/19(水) 02:38:26
おkkkkkkkkkkkkkkk

288 :デフォルトの名無しさん:2010/05/19(水) 03:21:50
vb.net 2010 って今評価版しかない?

289 :デフォルトの名無しさん:2010/05/19(水) 03:41:29
expressのことならオンラインで登録汁

290 :デフォルトの名無しさん:2010/05/19(水) 03:45:30
>>271,287

291 :デフォルトの名無しさん:2010/05/19(水) 06:33:06
>>289
d

292 :デフォルトの名無しさん:2010/05/19(水) 17:37:01
RichTextBoxに書いた

あああああああああ
いいいいいいいいい
うううううううううううう
えええええええええ
おおおおおおおおお

という5行の文字列の最初にボタンを押すと

1.あああああああああ
2.いいいいいいいいい
3.うううううううううううう
4.えええええええええ
5.おおおおおおおおお

という感じで数字をつけたいのですがどうすれば実現できるでしょうか?
出来れば正規表現を使ってつけたいです

293 :デフォルトの名無しさん:2010/05/19(水) 19:22:18
行の先頭に数字付けるだけなのに正規表現使うの?
どうして?
っていうか、正規表現ってテンプレートに自動でインクリメントした値を
突っ込む機能なんてあったっけ。

294 :デフォルトの名無しさん:2010/05/19(水) 19:42:57
Regex.Replaceのデリゲート版を使えば出来なくもないけど、
匿名メソッドが使えないVB.NETだと色々面倒だなあ。
VB2010で追加された複数行のラムダ式なら多少マシか。

295 :デフォルトの名無しさん:2010/05/19(水) 20:59:35
>>293
正規表現でなくても大丈夫でした
どうすれば実現出来ますでしょうか?

296 :デフォルトの名無しさん:2010/05/19(水) 21:53:39
改行で一度分割すれば?

297 :デフォルトの名無しさん:2010/05/19(水) 22:12:14
>>292

 - スタイル(文字の修飾)は無視していい
 - 超巨大ファイルは考慮しない

以上でよければたったこれだけでしょ。何が難しいんだ?

Dim lines = RichTextBox1.Lines
For i As Integer = 0 To lines.Length - 1
  lines(i) = String.Format("{0}. {1}", i + 1, lines(i))
Next
RichTextBox1.Lines = lines

298 :デフォルトの名無しさん:2010/05/19(水) 23:32:50
複数のテキストボックスの内容をテキストで出力して、「保存」「読み込み」ボタンで
テキストボックスに反映させるプログラムを作成しました。
ここまでは問題なかったのですが、作成したプログラムの起動時に自動的に読み込み
を行うにはどのようにしたらよいのでしょうか?
初回起動時には参照ファイルがないので、作成するコードも追加したいと思います。
宜しくお願いします。


299 :298:2010/05/19(水) 23:35:20
詳細を追加します。
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Using writer As New System.IO.StreamWriter("C:\a.txt", False)
With writer
.WriteLine(TextBox1.Text)
.WriteLine(TextBox2.Text)
.WriteLine(TextBox3.Text)
.Close()
End With
End Using
End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Using reader As New System.IO.StreamReader("C:\a.txt")
With reader
TextBox1.Text = .ReadLine()
TextBox2.Text = .ReadLine()
TextBox3.Text = .ReadLine()
.Close()
End With
End Using
End Sub

といった感じなんですけど…お願いします。

300 :デフォルトの名無しさん:2010/05/19(水) 23:40:16
もっとがんばれよ

301 :デフォルトの名無しさん:2010/05/20(木) 00:13:59
Form_Load で PerformClick すればいい。

302 :298:2010/05/20(木) 00:32:36
できました!!!
感動です。ありがとうございました。

303 :298:2010/05/20(木) 00:35:56
あっ初回の起動時に参照ファイルがない場合のエラーメッセージは
Form_Loadの部分に条件を書くのでしょうか?

304 :298:2010/05/20(木) 03:15:53
自己解決しました。ありがとうございました。

305 :デフォルトの名無しさん:2010/05/20(木) 07:29:51
何度も言われているが、自己解決したのなら
何をどうやったら自己解決したのかちゃんと書くヨロシ。

306 :デフォルトの名無しさん:2010/05/20(木) 09:34:59
>>298と同じようなことで悩んでる人がいたら
参考になるからね

307 :デフォルトの名無しさん:2010/05/20(木) 09:49:40
いないだろ

308 :デフォルトの名無しさん:2010/05/20(木) 10:01:43
てかこいつVB6の掲示板にも書き込んでたのね

309 :デフォルトの名無しさん:2010/05/20(木) 10:58:54
ToolTipに文字列だけでなく画像を埋め込み、画像+テキストの形で表示したいのですが、
どのようにすればよいでしょうか?

宜しくお願いいたします。

310 :デフォルトの名無しさん:2010/05/20(木) 11:10:10
オーナードローしてくだしあ

311 :デフォルトの名無しさん:2010/05/20(木) 19:47:20
オーナードローっていうか、ToolTipを継承して拡張するより
ゼロベースで自作した方が早いよ恐らく。

312 :デフォルトの名無しさん:2010/05/20(木) 21:12:38
そんなわけない
描画処理はどっちみち書かないといけないわけで、
ゼロから自作するとそれ以外の部分も作る必要がある

ちなみにWPF使えばコードいらない

313 :デフォルトの名無しさん:2010/05/20(木) 21:36:44
>>312
なんかお馬鹿さんみたいね。
既存のToolTipに再利用できる部分なんてある?
ないよそんなの。

むしろ表示領域(ウィンドウのサイズ)を処理を乗っ取ったりするような
本来必要のない手間が増えるだけ。

普通に考えて枠なしのウィンドウで自前で実装した方がずっと楽。

314 :デフォルトの名無しさん:2010/05/20(木) 21:47:30
開いたり閉じたりはどうするんだよ
SetToolTipはどう実装する?
ToolTipならDrawとPopup実装するだけだぞ

315 :デフォルトの名無しさん:2010/05/20(木) 22:40:00
311はToolTipにオーナードローの仕組みがちゃんと用意されてるって知らなかっただけなんだよ
そんなに責めてあげるなよ

316 :デフォルトの名無しさん:2010/05/20(木) 23:10:14
>>314
画像も表示しよう、っていうのに既存のSetToolTipなんか流用できるかよw
ちったあ頭使って考えてよ。

DrawとPopup実装するだけ?
だからウィンドウのサイズは誰が決めるの?
大丈夫かよ

317 :デフォルトの名無しさん:2010/05/20(木) 23:12:31
自分で描画するんだからウィンドウサイズくらいわかるだろw

318 :デフォルトの名無しさん:2010/05/20(木) 23:16:06
わかるわからんじゃなくて、誰が「決める(適切な値に設定する)か」の問題なんだけど...
君本当にプログラマか?

まあこういう見通しが甘い奴っているよな

319 :デフォルトの名無しさん:2010/05/20(木) 23:18:11
だれがってそりゃ描画する奴が

320 :デフォルトの名無しさん:2010/05/20(木) 23:19:32
少なくとも自分で表示するタイミングを管理したりするのに比べたら
サイズの見積もりくらい簡単だと思うけど

321 :デフォルトの名無しさん:2010/05/20(木) 23:19:36
DrawとPopup実装するだけ、じゃなかったんでしょうか。
プログラミングの才能がないだけじゃなくて鳥頭でもあるのねw

322 :デフォルトの名無しさん:2010/05/20(木) 23:21:08
Popupの実装のうちだよ?>サイズ決定

323 :デフォルトの名無しさん:2010/05/20(木) 23:21:10
>>320
まあいいからそう思うなら実際やってみたら?
こんなのぐらいどっちが手が抜けるかやる前に分かって欲しいけど。

324 :デフォルトの名無しさん:2010/05/20(木) 23:49:40
http://www.codeproject.com/KB/dialog/ToolTip_With_Image.aspx
難しいか?

325 :デフォルトの名無しさん:2010/05/21(金) 01:21:30
おkkkkkkkkkkkkkkkkkkkkkkk

326 :デフォルトの名無しさん:2010/05/21(金) 12:10:57
お助けくださいまし〜

TCPでの通信プログラムなんですが、プロシージャー内で全部処理するなら下記のような感じでいけますよね
これを接続と受信(送信)を別のプロシージャーで行うには、どのように書けばいいんでしょうか?
以前に自力解決したことはあるんですが、すっかり忘れてしまって思い出せません
ソースもHDDクラッシュで喪失しました。

この際だから正しいお作法も知りたいと思い質問してみました


Dim tcp As New System.Net.Sockets.TcpClient(host, port) ’接続
Dim ns As System.Net.Sockets.NetworkStream = tcp.GetStream() ’受信

327 :デフォルトの名無しさん:2010/05/21(金) 12:12:36
どこでこねくとしてるんだ?

328 :デフォルトの名無しさん:2010/05/21(金) 12:31:58
TcpClientのコンストラクタに渡すのはローカルのエンドポイント。
つまり自分がどのIPとポートを使って通信するかであって、通信相手のIPとポートを指定するモンじゃない。
ついでに言うと普通はローカルエンドポイントは指定しない。システムが勝手に割り振ってくれる。

329 :デフォルトの名無しさん:2010/05/21(金) 13:10:06
>>327
一行目でコネクト完了しますESTABLISHEDまで行きます。


330 :デフォルトの名無しさん:2010/05/21(金) 13:13:18
>>328
そうすると、このコードで相手先のホストとポートを指定して接続できてしまうのがおかしいということですか?


331 :デフォルトの名無しさん:2010/05/21(金) 13:26:13
ExcelのシートをCallbyNameを使用して、新規で作成するにはどうすればいいですか?

ファイル自体は

Dim objApp As Object = Nothing
Dim objBooks As Object = Nothing
Dim objSheets As Object = Nothing
Dim objSheet1 As Object = Nothing
Dim objSheet2 As Object = Nothing

objApp = CreateObject("Excel.Application")
objBooks = CallByName(objApp, "Workbooks", CallType.Get)

↑で作成できたのですが、新規でシートを作成する方法がわかりません。
どんな文言で書けば作成できますか?

CallByName(オブジェクト, コマンド, CallType)
↑のExcel関連の一覧が載っているページがあれば教えていただきたいです。
自分でも調べましたが、調べ方が悪いのか、CallByNameを使っているものの例が少なくて
お手上げ状態になっています。

332 :デフォルトの名無しさん:2010/05/21(金) 13:32:30
とりあえずEXCELのCOM参照して大人しく書いとけば?
取りあえずそれができるようになってからだと思うんだが

333 :デフォルトの名無しさん:2010/05/21(金) 14:37:10
>>332
すみません、それはすでにできているのでCallByNameを使用した遅延バインディングにてやりたいのです

334 :デフォルトの名無しさん:2010/05/21(金) 15:17:42
横レスだが
その出来上がったプロパティ使ってやればいいんじゃないかとおもうのですが・・・

>新規でシートを作成する方法がわかりません。
出来てるんだからやり方とか名前もわかってるのではないでしょうか?

>↑のExcel関連の一覧が載っているページが
一体どんな調べ方をされたのでしょうか?
単純にEXCELのプロパティを文字列で書いたりするだけじゃないかとおもうのです。

335 :331:2010/05/21(金) 15:34:12
objApp = CreateObject("Excel.Application")
objBooks = CallByName(objApp, "Workbooks", CallType.Get)
objBook = CallByName(objBooks, "Add", CallType.Method)
objSheets = CallByName(objBook, "Worksheets", CallType.Get)

いけました。3行目のAddがなかったからダメだったようです
お邪魔しました

336 :デフォルトの名無しさん:2010/05/21(金) 19:46:08
素直に遅延バインディングを許可すれば良いのに。
CallByNameとかMプレイ過ぎる。

337 :デフォルトの名無しさん:2010/05/21(金) 20:17:29
質問させてください!
いろんなサイトを見ながらヤフーサイトの自動ログインソフトを作ろうと試行錯誤したのですが

Imports SHDocVw
Imports mshtml

Public Class Form1

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim IE As New SHDocVw.InternetExplorer()
IE.Visible = True
IE.Navigate("https://login.yahoo.co.jp/config/login?.src=www&.v=0&.u=7brp2jl0o60ss&.last=&promo=&.intl=jp&.bypass=&.partner=&.protoctl=&pkg=&stepid=&.done=http%3a//www.yahoo.co.jp")

Dim doc As mshtml.HTMLDocument = CType(IE.Document, mshtml.HTMLDocument)
While IE.Busy
CType(doc.all.item("login", 0), mshtml.HTMLInputTextElement).value = "*****"
CType(doc.all.item("passwd", 0), mshtml.HTMLInputTextElement).value = "*****"
CType(doc.forms.item("login_form", 0), mshtml.HTMLFormElement).submit()
End While

End Sub
End Class

これでエラー出ずに起動まで出来たんですが
実際にButtonを押してログインしようとすると
Dim doc As mshtml.HTMLDocument = CType(IE.Document, mshtml.HTMLDocument)
この部分で
エラー HRESULT E_FAIL が COM コンポーネントの呼び出しから返されました。
というエラーが出てしまいヤフーのログインページは開くんですがログインまで至りません!

どうすればいいのでしょうか?
VB.NET始めて5日目で至らぬところも多いと思いますがどうぞよろしくお願い足します!

338 :デフォルトの名無しさん:2010/05/21(金) 20:37:03
Navigateの呼び出しはすぐに制御が返ってくる。
つまりNavigateはナビゲート自体は別のスレッドで行っている。
で、ナビゲートが完了してないのにDocument参照しようとするから失敗する。

IEオブジェクトのDocumentCompleteイベントでHTMLDocument操作の処理を行うのが妥当。
AddHandlerキーワード調べてみ。
始めて五日目で手を出すにはいささか難しい分野かもしれんね。

339 :デフォルトの名無しさん:2010/05/21(金) 20:56:52
レスありがとうございます!
難しい分野・・・ですか・・・

プログラミングを始めた理由がこのログインツールを作ろう!
という思いからだったのでどうしても完成させたいです・・・

>>338さんが教えてくれたキーワード等を調べて試行錯誤してみます!

また壁にぶち当たったら質問させてください!

340 :337:2010/05/21(金) 21:12:20
While IE.Busy
End While

Dim doc As mshtml.HTMLDocument = CType(IE.Document, mshtml.HTMLDocument)

CType(doc.all.item("login", 0), mshtml.HTMLInputTextElement).value = "*****"
CType(doc.all.item("passwd", 0), mshtml.HTMLInputTextElement).value = "*****"
CType(doc.forms.item("login_form", 0), mshtml.HTMLFormElement).submit()

参考にしたサイトではWhileでこのDim〜CTypeを挟んでいたのですが
よく考えるとこのWhileはIE.Busyから抜けるまでを待機で使ってるんではないのかと思い

上のようにすると
Dim doc As mshtml.HTMLDocument = CType(IE.Document, mshtml.HTMLDocument)
ここは通過し
CType(doc.all.item("login", 0), mshtml.HTMLInputTextElement).value = "*****"
ここでエラーが出るようになりました・・・・

エラー内容
NullReferenceException はハンドルされませんでした。
オブジェクト参照がオブジェクト インスタンスに設定されていません。

>>338さんが教えてくれたAddHandlerについては調べているのですが
難しいですね・・・;;

341 :デフォルトの名無しさん:2010/05/21(金) 21:13:14
まあ俺みたいにゲーム作りたくてなぜかVBで初めて泣いてるアホもいるからマシな方だろう。

342 :デフォルトの名無しさん:2010/05/21(金) 21:27:15
Public Class Form1
  Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    WebBrowser1.Navigate("https://login.yahoo.co.jp/")
    While WebBrowser1.IsBusy
    End While
  End Sub
  Private Sub WebBrowser1_DocumentCompleted(ByVal sender As System.Object, ByVal e As System.Windows.Forms.WebBrowserDocumentCompletedEventArgs) Handles WebBrowser1.DocumentCompleted
    Dim doc As HtmlDocument
    doc = WebBrowser1.Document
    Dim col As HtmlElementCollection
    col = doc.GetElementsByTagName("input")
    For i = 0 To col.Count - 1
      If col.Item(i).Name = "login" Then
        col.Item(i).SetAttribute("value", "xxx")
      End If
      If col.Item(i).Name = "passwd" Then
        col.Item(i).SetAttribute("value", "xxx")
      End If
    Next
    Dim formElements As HtmlElementCollection = doc.GetElementsByTagName("form")
    For Each form As HtmlElement In formElements
      form.InvokeMember("submit")
    Next
  End Sub
End Class


343 :デフォルトの名無しさん:2010/05/21(金) 21:38:24
>>342
レスありがとうございます!
342さんの書いてくれたコードでログインすることが出来ました!

今の知識じゃ理解出来ないのでゆっくりと一行ずつ意味を知っていこうと思います!
ありがとうございました

>>340のソースでGmailで試したところなぜかGmailではID、PWの入力が出来たのですが
Submit()部でエラーが出ました

とりあえずやりたいことが出来ましたので解決です
みなさまありがとうございました!

344 :デフォルトの名無しさん:2010/05/21(金) 22:53:36
C#の!=に対応するものはvb.netではなんなんでしょうか?

345 :デフォルトの名無しさん:2010/05/21(金) 22:54:38
<>

346 :デフォルトの名無しさん:2010/05/22(土) 00:11:56
おkkkkk

347 :デフォルトの名無しさん:2010/05/22(土) 10:58:47
>>326
自己レスです

なんとか動きました


tcとnsはグローバル変数


Dim tcp As New System.Net.Sockets.TcpClient(host, port)’接続

tc = tcp
ns = tc.GetStream()


これで、他のプロシージャから tcを使ってクローズ、nsを使ってリード、ライト、できるようになりました。

私、オブジェクト指向はとんと理解できておりませんw
こんなんで、お作法的にはどうなの?って思ってます。
こうやったほうがいいってのがあったら教えてください。



348 :デフォルトの名無しさん:2010/05/22(土) 14:11:39
趣味で VB やるなら oop にこだわらなくても良いんじゃない?
それに、本格的にやりたいなら C# でやりなよ〜ってなるよ

349 :デフォルトの名無しさん:2010/05/22(土) 17:10:12
HTMLで日本語の単語毎に個別のHTMLファイルを出力します。
そのため、日本語を一意の半角英数に変換する必要があるのですが
下記処理で漏れはないでしょうか?


Dim input As String = "16進数に変換してメッセージボックスに表す。"
Dim output As String = ""

For idx As Integer = 0 To Input.Length - 1

'1文字ずつ16進数の文字コードを取得する
output &= AscW(input.Substring(idx, 1)).ToString("X")

'文字と文字コードを出力
Debug.WriteLine(input.Substring(idx, 1) + " = " + output)

Next

MsgBox(output)

350 :349:2010/05/22(土) 17:12:31
age忘れ

出力結果は下記の通りになります。
"305F65875B573092313690326570306B590963DB3057306630E130C330BB30FC30B830DC30C330AF30B9306B8868"


351 :デフォルトの名無しさん:2010/05/22(土) 17:17:05
>>349
> HTMLで日本語の単語毎に個別のHTMLファイルを出力します。
単語ごと? 文字ごとじゃなくて?

> そのため、日本語を一意の半角英数に変換する必要があるのですが
なにが「そのため」なのか全然つながらない
一意の半角英数って具体的にどういう物を指すの?

> 下記処理で漏れはないでしょうか?
何を望んでるのか分からないけど、サロゲートペアとか考慮してる?

なんか出力結果見る限り、
あるエンコーディング(UTF-16?)でのバイト表現が欲しいだけっぽく見えるが

352 :デフォルトの名無しさん:2010/05/22(土) 18:48:36
>>348
oopにこだわってるわけではないですよ、ほとんど構造化プログラミングしてます

が、TCPで通信しようとするとwinsockで長々とコード書いてたのがたった一行で済んじゃったりするので
楽しちゃいたいなあというとこです
そうするとoop無視では使えないしで、四苦八苦してます




353 :デフォルトの名無しさん:2010/05/22(土) 19:58:46
クラス使うだけだったらOOPなんて
HogeRun(hogeHandle, arg)をhoge.Run(arg)と書くようにしましょうっていうだけのこと

354 :デフォルトの名無しさん:2010/05/23(日) 02:48:02
おkkkkk

355 :デフォルトの名無しさん:2010/05/27(木) 00:09:08
VB.NET初心者です。
VB.NETのクラスライブラリで作成したdllを、
ASPから呼び出そうとしていますが、
Server.CreatObjectに失敗しましたというエラーが出てしまい、
うまく動作しません。

以下のようにASPに記述していますが、他にタグや宣言など、
記述する処理などありますでしょうか?
Set obj = Server.CreatObject("xxx.yyy")


356 :デフォルトの名無しさん:2010/05/27(木) 00:15:30
ASP.NETじゃなくてASPなの?

357 :355:2010/05/27(木) 00:19:40
>>356
そうです。

358 :デフォルトの名無しさん:2010/05/27(木) 00:38:21
なんでそんな猟奇的なことをするのやら

プロジェクトのプロパティでCOM参照可能にチェック
ビルドしたらDLLをregasmで/codebaseつけて登録
(開発時はプロジェクトのプロパティのCOM相互運用の登録で自動的に登録してくれる)

359 :デフォルトの名無しさん:2010/05/27(木) 00:46:09
>>358
ありがとうございます。
regasmで登録する際は、アセンブリの署名にチェックを付けないと
登録できませんよね?署名して確認しましたが、
同じ結果でした…。

360 :デフォルトの名無しさん:2010/05/27(木) 00:54:35
あとはOLE-COM Object Viewer使って.NET Categoryの中に入ってるか確認
命名の勘違いとかよくある話

361 :デフォルトの名無しさん:2010/05/27(木) 07:16:56
まずVBSで呼べるか確認。

362 :デフォルトの名無しさん:2010/05/27(木) 07:38:46
おkkkkkkkkkkkkkkkkkkkkkkkk

363 :デフォルトの名無しさん:2010/05/27(木) 07:49:26
>>360-361
ありがとうございます。
見てみます。

364 :デフォルトの名無しさん:2010/05/28(金) 01:37:06
「書籍分類テキストボックス」と「書籍名テキストボックス」と「著者名テキストボックス」に
検索条件を入力してもらって(検索条件は一つだけでもいいし、全部でもいい)
書籍データベースから条件に合う一覧を取得する画面を作っているのですが

最初、それぞれにstring変数を作り、テキストボックスに入力があれば
If Not TextBox1.Text = Nothing Then
sqltitle = "title = " & TextBox1.Text
End If
なかんじで検索条件の文を作り、それを
Dim sql As String = "SELECT * FROM bookdata WHERE " & sqlcategory & " AND " & sqltitle & " AND " & sqlname
というように一つのSQL文にしようと考えたんですが
コレだと、どれか条件が空だった場合、動作しないと気がつきました。

どうしたらいいか思いつかないのですが、誰かアドバイスをお願いします。


365 :デフォルトの名無しさん:2010/05/28(金) 01:52:34
全部入力されてたらそれをそのまま使い、
どれかが空だったら入力されてる分に合わせて別処理にするのは不可能なの?

366 :364:2010/05/28(金) 01:58:21
自己解決しました。(たぶん)

>>365
検索条件が少ない時はそれでも良いと思うんですが
多くなった場合、あまりスマートじゃない気がしたので質問してみました。

367 :デフォルトの名無しさん:2010/05/28(金) 22:48:44

初心者です。
HTMLの中にVBとJavaScriptのコードが混在しています。
VBの変数の値を、JavaScriptの変数に格納するにはどうすれば良いでしょうか?

ちょっと考えて思いついたのは、タグ作って値を挿入し、
その後にJavaScriptで拾い直すというやり方です。

そもそもスクリプトが混在してること自体がおかしいのかもしれませんが、
VBでは、JavaScriptへの代入とか、何かそういう機能をサポートしていないのでしょうか?
 

368 :デフォルトの名無しさん:2010/05/28(金) 23:37:34
VB.NETでwebアプリを作った事無いから分からないけど
セッションに格納してHTMLロード時に取り出すとかで行けない?

369 :デフォルトの名無しさん:2010/05/29(土) 00:12:10
ASP.NETなら、そういうスクリプトをはき出せばいい。

370 :デフォルトの名無しさん:2010/05/29(土) 02:01:08
>>367
ちょっと書いてる意味が分からんが、<%=hoge %> とかか?


371 :デフォルトの名無しさん:2010/05/29(土) 04:09:20
>>367
サーバで動いてるコードとクライアントで動くコードの違いが理解できてるか?
JavaScriptの変数はクライアントの変数だぞ。それに直接サーバ側の変数を突っ込んだりはできない

372 :デフォルトの名無しさん:2010/05/29(土) 05:43:52
おkkkk
ありがとうございました。

373 :364:2010/05/29(土) 12:00:32
SQL server 2005でbit型のreturnedという列を持ったテーブルを作り
VWD2008でUPDATE命令でTrueをFalseにしたいんですが
returned = falseだと「列名 'false' が無効です。」とエラーがでるし
returned = 0だとエラーは出ないんですが、テーブルを確認してもfalseになってくれません。

どうしてでしょうか?

374 :364:2010/05/29(土) 12:11:02
自己解決しました。

375 :デフォルトの名無しさん:2010/05/29(土) 17:26:10
超初心者です。
OS XP SP3
VB2010評価版
VBの勉強をしようと思って本を見ながら
伝票管理のサンプルプログラムを作っているんですが
BindingNavigatorの保存ボタン(SaveItem)のコードを、サンプルの通り丸写してもエラーが出てしまいます

DirectCast(e, FormClosedEventArgs).Cancel = True のCancelが
System.Windows.Forms.FormClosedEventargsのメンバーではありません
となります。
ヘルプで探してみたんですがClickイベントで保存する方法は見つかるんですが
「保存しない」とか「キャンセルする」とかのキーワードでは見つかりません。



Private Sub KooujimeiBindingNavigatorSaveItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles KooujimeiBindingNavigatorSaveItem.Click, MyBase.FormClosing
Me.Validate()

'入力エラーがある場合は保存しない
If HandleInputError() = False Then

'フォームを閉じる前の場合、閉じる処理をキャンセルする
If TypeName(e) = "FormClosingEventArgs" Then
DirectCast(e, FormClosedEventArgs).Cancel = True
End If
Return

どなたか、参考になるヘルプ記事の場所だけでも、教えていただけませんでしょうか。
お願いします。


376 :デフォルトの名無しさん:2010/05/29(土) 19:21:56
サンプルでDirectCastさせんのか。親切なんだか危ういんだか分からんな
ぶっちゃけまだ知識が足りてないと思う。もっと基礎の部分を覚えて基礎的なサンプルでなれたほうが良いんじゃないかな


DirectCastはObject型
エラーメッセージは、「Object型にはCancelってメンバーはないから出来る気がしないよ!」って意味

DirectCastの結果を一度FromClosingEventArgsクラスの変数に入れてから
その変数.Cancel = True
にしてみ

377 :デフォルトの名無しさん:2010/05/29(土) 21:59:52
>>375
If TypeName(e) = "FormClosingEventArgs" Then
なのに
FormClosedEventArgsにキャストしてるのが間違い
FormClosingEventArgsにキャストしないと

つか、(おそらくボタンの)ClickイベントとFormClosing を同じイベントハンドラに
処理させるとか、そのハンドラの中で引数の型みて処理分岐させるとか...
あまり参考にしない方がいいサンプルかもしれん

378 :デフォルトの名無しさん:2010/05/29(土) 22:20:52
>>371
おっしゃるとおり
初歩的なこと失念してました

379 :デフォルトの名無しさん:2010/05/29(土) 23:55:51
>>376
どこからそんなでたらめが出てくるんだ…


380 :デフォルトの名無しさん:2010/05/30(日) 00:06:54
TypeNameも忘れていいよ
.NET的にはTypeOf(e) Is FormClosingEventArgsと書く

381 :デフォルトの名無しさん:2010/05/30(日) 00:21:09
TypeNameは古いからダメってわけじゃなくてキャストできるかどうかの判定に使うのは意味的に間違ってるんだよな
たとえばButtonはControlにキャストできるから

382 :デフォルトの名無しさん:2010/05/30(日) 02:04:02
普通TypeOf(e) Is FormClosingEventArgsこんな風りやるのが
いちばん基本で自然なはずなのに、なんでTypeNameとかで比較するんだろうな。
どっかで誰かが書いたのが元ネタになって広まっちまったのかな?
なんせよく見るんだよね。


383 :デフォルトの名無しさん:2010/05/30(日) 02:43:09
おkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk

384 :デフォルトの名無しさん:2010/05/30(日) 09:34:38
VB6脳をアップデートできてないだけでしょ
VB関数がダメだとは言わないがTypeNameを使った型比較に関しては.NETでは完全に「間違い」だ
継承関係が考慮されないし同名の型が存在する可能性もある

385 :デフォルトの名無しさん:2010/05/30(日) 11:44:29
謝れ!N88脳がアップデートできないままCOBOL業務やらされて
今、ポツーンな俺に謝れ!


386 :デフォルトの名無しさん:2010/05/30(日) 12:19:47
お前はそれでいいよ。

387 :デフォルトの名無しさん:2010/05/30(日) 12:29:25
更新しろよ

388 :デフォルトの名無しさん:2010/05/30(日) 13:20:13
むう、クマった、
ディレクトリが尽きたら他のファイルも拾ってきてしまうなり
.netのバグ?


Dim a As String
Dim d As String

d = System.Environment.GetFolderPath(Environment.SpecialFolder.Personal)

a = Dir(d + "\*.*", FileAttribute.Directory) 'ディレクトリを指定 
TextBox1.AppendText(a + vbCrLf)

Do
a = Dir()
TextBox1.AppendText(a + vbCrLf)

Loop Until a = ""

389 :デフォルトの名無しさん:2010/05/30(日) 13:35:35
>>388
おっと、書き忘れ
vbのバージョンは2008 Express Edition SP1
ディレクトリリスト取るときって、みんなどうやってんの?


390 :デフォルトの名無しさん:2010/05/30(日) 13:42:06
それってVB6のdir関数の仕様だと思いますけど....
なんでVB6互換関数なんか使うんだしかし

391 :デフォルトの名無しさん:2010/05/30(日) 14:20:32
>>390
なんでって、すでにやりかた知ってるから、お手軽なわけで・・w

.net的スマートなやり方を知ってるなら教えてくれろ

392 :デフォルトの名無しさん:2010/05/30(日) 14:48:48
>すでにやりかた知ってるから
知ってないじゃん全くw
頭大丈夫?

System.IO以下のクラスを使ってよ。

393 :デフォルトの名無しさん:2010/05/30(日) 15:01:38
知ってるものが知ってる通りの動作をしたらバグ扱いか。
支離滅裂だな。

394 :デフォルトの名無しさん:2010/05/30(日) 15:02:22
>>391
Directory.GetDirectoris()

395 :デフォルトの名無しさん:2010/05/30(日) 15:04:15
>>392
いや、VB6ならこれでいけてたはずだけどな

>>知ってないじゃん全くw
間違ってると言うなら動かして見せてちょ〜よぉ


>>System.IO以下のクラスを使ってよ。
もちょっと詳しくよろ



396 :デフォルトの名無しさん:2010/05/30(日) 15:04:28
用意されてるものは自由に使うべき。

但し業務外でおねがいします

397 :デフォルトの名無しさん:2010/05/30(日) 15:18:24
でもStrConv()とか便利だよね。

398 :デフォルトの名無しさん:2010/05/30(日) 15:19:35
動けば正義

399 :デフォルトの名無しさん:2010/05/30(日) 15:24:15
>>394
さんきゅ〜、やってみました
あっさりとリストは取れました・・・・が
フルパスなんですね
ま、ファイルを拾ってこないだけましですか





400 :デフォルトの名無しさん:2010/05/30(日) 15:24:43
replace関数はよく使う。
確か一番早かったよね?

401 :デフォルトの名無しさん:2010/05/30(日) 17:59:21
>>399
Path.GetDirectoryName

402 :デフォルトの名無しさん:2010/05/30(日) 18:55:48
>>401

え〜と、それだと一つ上までのフルパスが返ってきますね

そのキーワードで検索してPath.GetFileNameに辿りつきました
これでうまくいきました。

こんな物まで用意されてるんですね。
MIDで切り分けたの ポイッ

403 :デフォルトの名無しさん:2010/05/30(日) 19:07:33
dirName=fullPath.Substring(fullPath.LastIndexOf("\")+1)

まあルート返されるとアウトだけどw

404 :401:2010/05/30(日) 19:09:29
>>402
ああすまん。思いっきり勘違いしてた。

405 :デフォルトの名無しさん:2010/05/30(日) 22:18:05
コード上でDataTableを作成し、GridViewにバインドさせた時の
ページングのさせ方なのですが
ページ移動させると、GridViewが消えてしまう現象が起こります。
考えられる原因ってなにかあるでしょうか?

406 :デフォルトの名無しさん:2010/05/31(月) 00:14:03
ASP.netを使ってWebからバッチを実行させ、ツールを使ってWakeup On LANにてPCを起動したいのですがうまくいきません。
VisutlaStudio2005にてWin2008(ServerCore)でIISを利用しています。
仕組みとしてはバッチ(WOL.bat)を実行し、この中でフリーソフトに起動部分を任せています。
ツール本体はDefault.apsxと同一フォルダに格納してあります。
|+ツールのフォルダ
|-Default.aspx
|-WOL.bat
|-test.bat

起動ボタンの処理は下記のようになっています。
Dim myprocess As New System.Diagnostics.Process()
myprocess.StartInfo.FileName = Server.MapPath("./ファイル名.bat")
myprocess.Start()

まずファイル名の部分でtest.batと指定し、このファイル内で
「echo test>>パス\test.txt」としたところボタンを押すとtest.txtが作成されますので
Web経由でバッチが実行されていることは問題なしと考えています。
次に「WOL.bat」とし、ファイル名を本番のものに差し替えたところ
特にエラー等はでませんがPCが起動しません。
サーバー上でWOL.batをコマンドで起動したら問題なくPCが立ち上がります。

権限が怪しいと思ったためこのような権限を追加しましたが改善が見られません。
・Default.aspxのフォルダにeveryoneフルコントロールを付与
・AdministratorsグループにNetworkServiceを追加
(ASPアカウントは.netframeworksのバージョンの問題からかそもそも存在しません)

どこか見落としていると思うのですが何が悪いのでしょうか。

407 :デフォルトの名無しさん:2010/05/31(月) 00:23:46
とりあえず、AdministratorアカウントでIISを実行してみる。

408 :デフォルトの名無しさん:2010/05/31(月) 00:30:33
>>407
取り敢えずとは言え怖いことを

409 :デフォルトの名無しさん:2010/05/31(月) 00:36:11
何らかの特権(privilege)が必要なんでないの?

410 :406:2010/05/31(月) 00:37:26
とりあえずAdministratorアカウントで実行しましたが状況は変わりませんでした。
具体的には匿名認証で利用しているユーザーを「IUSR」からAdministratorに変更しました。
他に何か怪しいところはないでしょうか。

411 :デフォルトの名無しさん:2010/05/31(月) 00:41:59
バッチファイル内が怪しいな

412 :デフォルトの名無しさん:2010/05/31(月) 00:43:14
カレントフォルダとか

413 :デフォルトの名無しさん:2010/05/31(月) 00:55:41
だからIISの実行ユーザーをAdministratorにしてみろと。

414 :デフォルトの名無しさん:2010/05/31(月) 00:58:20
そのフリーウェアがユーザプロファイルがロードされてないと動かないとかじゃないの?

>>413
どういう意味があるわけ?


415 :406:2010/05/31(月) 01:38:43
動きました。
あまりにくだらない原因で言い出しにくいのですが
カレントフォルダはちゃんと変更していたのですが
「カレントディレクトリ」を変更していませんでした。
コマンドで実行する場合はまずバッチファイルのパスへ移動するために
カレントドライブを変更し、その後ディレクトリを移動していたのですが
暗黙のうちに「D:」としていたので気づきませんでした。
ありがとうございました。

416 :デフォルトの名無しさん:2010/05/31(月) 01:47:12
カレントドライブーっ

417 :デフォルトの名無しさん:2010/05/31(月) 08:17:54
>>405
バインドの仕方とページ移動のコードは?

418 :デフォルトの名無しさん:2010/06/01(火) 23:40:33
GridView.Columns(6).Visible = false
で7番目の列を非表示させたいのですが
sqldatasourceで関連付けたテーブルの場合は、上の方法で非表示になるのですが
GridView3.DataSource = dt
GridView3.DataBind()
で関連付けた場合は
「インデックスが範囲を超えています。負でない値で、コレクションのサイズよりも小さくなければなりません。」
とエラーが出てしまいます。

アドバイスをお願いします。

419 :デフォルトの名無しさん:2010/06/02(水) 08:57:36
一回デバッガで止めてDataGridview.Columns.Count
で列数取ってみれば?

420 :デフォルトの名無しさん:2010/06/02(水) 10:08:24
現在、WindowsXP にてVisual Web Developerを用いてweb アプリケーションの開発を行っています。

その中のある1ページの下部にボタンを配置したところ、
表示した段階でそのボタンにフォーカスが当たってしまい、
画面下部がメインに表示されてしまいます。
(縦スクロールが下にずれてしまっている状態)

フォーカスをボタンから外せれば問題が解決できると思ったのですが
その方法が分かりません。。
ご存知の方いらっしゃいましたら教えてください。

421 :デフォルトの名無しさん:2010/06/02(水) 11:39:15
少しは調べようぜ
ttp://www.atmarkit.co.jp/fdotnet/dotnettips/731aspajaxfocus/aspajaxfocus.html
こんなんじゃだめかい?

422 :418:2010/06/02(水) 16:51:25
>>419
Gridview.Columns.Countを見たら、やっぱり0でした。

ちなみにコードはこんな感じです。
ーーーーーーーーーーーーーーーーーーー
    'コネクションオブジェクトを作成する
Dim con As New SqlClient.SqlConnection(con_string)

'SQL文を生成する userdataから借りている本の数を取り出す
Dim sql As String = "SELECT * FROM M_ユーザー"

'コマンドオブジェクト
Dim ad As New SqlClient.SqlDataAdapter(sql, con)

'Fillするデータテーブル
Dim dt As New DataTable

'Fillする
ad.Fill(dt)

'GlidView1にデータバインド
GridView1.DataSource = dt
GridView1.DataBind()

'非表示設定 1列目を非表示に
GridView1.Columns(0).Visible = False  ←ここでエラーが出ちゃいます

423 :デフォルトの名無しさん:2010/06/02(水) 18:46:38
バインドしてるってことはASP.NETかな?

あんまそっちのDataGridView使わないけどバインド完了した時のイベントってなかったっけ?
そもそも、カラムを消す場合はカラムの数をチェックしてから消すべきだとは思うけど・・・

確認だけど、ページが表示された時はきちんとカラム表示されてるんだよね?

424 :デフォルトの名無しさん:2010/06/02(水) 18:47:19
ごめん、もともとVWDでWEBって書いてたorz

425 :デフォルトの名無しさん:2010/06/02(水) 23:34:43
>>422
とりあえずエラーが出る直前で
Gridview.AutoGenerateColumnsとdt.Columns.Countを確認してみろ

426 :418:2010/06/03(木) 00:10:27
>>425
Gridview.AutoGenerateColumnsはTrue
dt.Columns.Countは8でした。

427 :418:2010/06/03(木) 00:33:47
今、気がついたんですが
GridView1.Columns(0).Visible = Falseだとエラーがでるのに
GridView1.Rows(0).Cells(0).Visible = Falseだと
指定したセルの中身は消えます。
GridView1.Rows.Countも表示されるテーブルの行の数が入ってます
(今回だと18)

428 :デフォルトの名無しさん:2010/06/03(木) 00:37:56
vb.netでtextboxなどにhtmlタグを記述し
それをvb.net上でブラウザで見たときのように表示することは可能でしょうか?
可能であれば方法等教えて頂ければ幸いです
よろしくお願いします

429 :428:2010/06/03(木) 00:42:48
追記です

タグを表示したあと
タグ内の記述にこういうものがあるとして
<a href="http://hoge.com/?p=123">
これを
<a href="http://hoge.com/?p=" & TextBox1.Text & ">
こういう感じで操作したいのです



430 :418:2010/06/03(木) 00:52:20
解決しました

Protected Sub GridView1_RowCreated(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GridView1.RowCreated

'returned列を非表示
e.Row.Cells(7).Visible = False
'userID列を非表示
e.Row.Cells(8).Visible = False

End Sub

で非表示可能(列まるごと非表示)でした。

431 :デフォルトの名無しさん:2010/06/03(木) 01:18:15
Regionで折りたたんであるやつなんだけど
いっこいっこ自分で開くしかないのかな?

432 :デフォルトの名無しさん:2010/06/03(木) 01:49:29
MSDNによると
自動生成されたバインド済み列フィールドは、Columns コレクションに追加されません。
らしいので、Columns.Countがゼロなのは仕様通りの動作だな

つか表示してから消すんじゃなくて、select発行するときに初めから
列指定で必要な列だけにすればいいんじゃないかとおもうんだが

433 :418:2010/06/03(木) 02:20:49
>>432
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=41415&forum=7
こんなのも見つけました。

>列指定で必要な列だけ
GridViewに行を選択できるボタンを追加し、
そのボタンはbit型の列をバインドして
Falseの場合はボタンが押せないようにしたいんですが
bit型の列は表示させないようにしたかった、のでした。

434 :デフォルトの名無しさん:2010/06/03(木) 06:31:40
>>433
そもそも自動生成カラム使う必要ないんじゃね?
>そのボタンはbit型の列をバインドして
>Falseの場合はボタンが押せないようにしたいんですが
ボタン列をテンプレートで作っといて、ボタンのEnabledにデータバインドすれば?
            <asp:TemplateField HeaderText="選択">
                <ItemTemplate>
                    <asp:Button ID="Button1" runat="server" CommandName="Select" Text="選択" Enabled='<%# eval("FLG") %>' />
                </ItemTemplate>
            </asp:TemplateField>
こんな感じ

435 :デフォルトの名無しさん:2010/06/03(木) 12:07:27
おkkk

436 :デフォルトの名無しさん:2010/06/05(土) 23:01:05
VB初心者なんですけど、
1.データベースからある列をselectしてコンボボックスに
2.コンボボックスから選択するとその値をもつデータをリストボックスに追加する
3.リストボックスから選択すると詳細をテキストボックスに表示する。

というもので、

例えばデータベースに
名前    値段  在庫  種類
みかん  100   10   果物
りんご   100   20   果物
鉛筆    50    30   文房具

とあれば
1.ロード時にコンボボックスに果物、文房具を登録
2.果物を選択すると、リストボックスにみかん:100円、りんご:100円を登録
3.りんごを選択すると、テキストボックスにりんご、100円、在庫20、果物と表示される。

ということをしたいのですが、
リストボックスに表示まではうまくいくのですが、3の動作はどのようにしたらよいでしょうか?


437 :デフォルトの名無しさん:2010/06/05(土) 23:02:08
test

438 :デフォルトの名無しさん:2010/06/05(土) 23:05:14
テストするな
http://qb5.2ch.net/operate/

439 :デフォルトの名無しさん:2010/06/06(日) 16:30:48
>>436
単純に『3で表示する詳細』をテーブルで持ってるなら
『種類』と『名前』を条件にして select すれば良いと思う

テーブルで持ってないならどの様に持っているのか書いてね

440 :デフォルトの名無しさん:2010/06/06(日) 16:33:13
おっと、3の情報はテーブルで持ってたんだね
酒飲んでるとダメだなwごめんね
select で良いと思うよ

441 :デフォルトの名無しさん:2010/06/06(日) 18:09:27
>>439
レスありがとうございます。
そうしようと思ったんですが、

『種類』と『名前』を条件にして select すれば良いと思う

リストボックスから選択時にこの種類と名前はどうやって取得すればいいのかが分からなくて…

442 :デフォルトの名無しさん:2010/06/06(日) 18:11:37
種類なんかいらんだろ。名前は SelectedItem かなんかで取れる。

443 :デフォルトの名無しさん:2010/06/06(日) 18:53:15
リストボックスに
みかん:100円
と表示されている状態からSelectedItemで名前だけって取れますか?

いまちょっと調べていたら、ListViewというものがあるみたいで
名前  値段
でリストに表示すれば、名前だけ取得できるのかなと思ったので、試してみようかと思います。

444 :デフォルトの名無しさん:2010/06/06(日) 18:55:36
うぜー。「:」から左だけ取ればいいだけだろが。

445 :443:2010/06/06(日) 19:39:45
分からないならいいんで^^;

446 :デフォルトの名無しさん:2010/06/06(日) 19:41:51
>>444
なにがうぜー。だよ(笑)
SelectedItemで名前だけ取れるかつって聞いてんの
日本語読める?ん?

447 :デフォルトの名無しさん:2010/06/06(日) 19:42:57
SelectedItemではItemが取れます。

448 :443:2010/06/06(日) 19:44:50
事故解決しました。

449 :デフォルトの名無しさん:2010/06/06(日) 20:59:29
事故は事後に自己解決

450 :デフォルトの名無しさん:2010/06/06(日) 22:06:53
長いテキストファイルから最後の一行を読み取るのに一番早い方法を教えてください

451 :デフォルトの名無しさん:2010/06/06(日) 22:10:38
tailコマンド

452 :デフォルトの名無しさん:2010/06/06(日) 22:11:38
VB.netでっつってんだろこのダボハゼがァーーーーーッ!!!

453 :デフォルトの名無しさん:2010/06/06(日) 22:12:44
言ってないじゃん。下手なプログラム作るより、既存のツールを使った方がいい、って話。

454 :450:2010/06/06(日) 22:13:15
自己解決しました。

455 :デフォルトの名無しさん:2010/06/06(日) 22:54:38
444が必死な様です

456 :デフォルトの名無しさん:2010/06/06(日) 22:58:35
うぜー()笑

457 :デフォルトの名無しさん:2010/06/06(日) 23:45:50
質問者に成りすまして書き込み・・・かわいそうな人だ

458 :1-1000:2010/06/07(月) 01:24:07
>>1-1000ですが自己解決しました^^

459 :デフォルトの名無しさん:2010/06/07(月) 02:10:14
>>1-1000さんがログアウトしました

460 :デフォルトの名無しさん:2010/06/08(火) 10:33:26
Decimal型であるa1をテキストボックスに表示しようとすると、小数点が切り上げられて
正確に表示されません。

TextBox1.Text = Format(a1, "#.##0")

どうしたらよいでしょうか
型を変えたり、Formatしない方法とか色々試しているのですが…

461 :デフォルトの名無しさん:2010/06/08(火) 10:37:56
切り捨てがいいってことならFloorなりCeilingなり使えばいいと思う
http://jeanne.wankuma.com/tips/vb.net/math/ あたりを参照

462 :デフォルトの名無しさん:2010/06/08(火) 11:25:52
どう書式化されて欲しいのか分からないとどう書けとも言えないなー

463 :460:2010/06/08(火) 17:43:54
90.123
みたく小数点以下3桁を表示するようにしたいと思ってます。

464 :デフォルトの名無しさん:2010/06/08(火) 17:52:05
切り捨てたいなら>>461だな 書式指定文字列の丸めは四捨五入限定だ

465 :460:2010/06/08(火) 18:58:20
Dim a(7) As Decimal

If Decimal.TryParse(TextBox1.Text, True) Then
a(0) = Decimal.Parse(TextBox1.Text)
Else
a(0) = 0

の繰り返しでやると問題なし
functionを作ってやると、小数点以下が四捨五入されてしまします。
なぜですか?

466 :デフォルトの名無しさん:2010/06/08(火) 19:09:29
わかんねえよそれだけじゃ

467 :460:2010/06/08(火) 19:21:12
ん〜簡単に言うと、入力のテキストボックスが3つ、回答のテキストボックスが1つ
で入力された数値の平均を算出して回答する。といった感じです
それのちょっと複雑版です


468 :デフォルトの名無しさん:2010/06/08(火) 19:54:19
小数点以下を四捨五入するfunctionを作ったから。

>>465はなぞなぞで良いんだよな?w

469 :デフォルトの名無しさん:2010/06/08(火) 20:21:08
どうせどっかでIntegerとかにキャストでもしてんだろ。

470 :デフォルトの名無しさん:2010/06/08(火) 20:59:15
>>465
Function内で暗黙的な型変換が行われてると思うな

Option Strict On
Option Explicit On

追加してみよう

471 :デフォルトの名無しさん:2010/06/08(火) 22:17:55
>>470
ありがとう
調べてみます

472 :デフォルトの名無しさん:2010/06/09(水) 06:29:03
function 周りをなぜ出してこないのか・・・

473 :デフォルトの名無しさん:2010/06/09(水) 08:44:44
そんなことより
>If Decimal.TryParse(TextBox1.Text, True) Then 
のTrueが不思議でならない。

474 :デフォルトの名無しさん:2010/06/09(水) 08:53:03
VBでは参照わたしんあるんだっけ?
C#みたく明示的にoutつけないといけないような仕様にすりゃいいのに

475 :デフォルトの名無しさん:2010/06/09(水) 10:30:18
100万x100ピクセルくらいの横に長いグラフを表示したいのですが
スクロールバーなどでスクロールして、その内の一部を表示するようにしたいのですが、
処理が早くて負担の少ない方法を助言頂きたいです。

476 :デフォルトの名無しさん:2010/06/09(水) 11:21:17
>>474
過去の呪縛
C++に代表されるように昔は参照渡しと値渡しが同一に見えるのが格好いいと思われてたんだよ
>>475
そのグラフは動的に描いてるのか単なる画像なのかどっちだ

477 :デフォルトの名無しさん:2010/06/09(水) 11:29:39
>>474
byrefで参照わたしになるけど、そういう意味?


478 :デフォルトの名無しさん:2010/06/09(水) 11:50:46
>>477
一行目はそう
二行目は呼び出し側にもキーワード付けるべきだったってことだな
Dim a As B = c.D(ByRef e)
みたいになったのかなー

479 :デフォルトの名無しさん:2010/06/09(水) 12:14:03
>>478
え〜、呼び出し側にも?
めんどくさw


480 :デフォルトの名無しさん:2010/06/09(水) 13:09:29
C#やってる人からVBみると呼出側に明示しないの?となり
VBやってる人にはそんなの考えないから要らない、となる

ごく自然である

481 :デフォルトの名無しさん:2010/06/09(水) 14:32:16
>>475

そんなデータ読み込むだけでえらいことになるから動的に描画した方がいいんじゃね?
つうか、その画像サイズいくらだべ?

482 :デフォルトの名無しさん:2010/06/09(水) 17:07:22
引数に渡した変数が変更される可能性があるから
参照渡しは明示しないと読みづらいんだよ
少なくともMSの中の人は既存の言語を研究した結果そう考えてC#を作った

483 :デフォルトの名無しさん:2010/06/09(水) 17:25:40
>>482
VB使いにとっては、もともと参照渡しがデフォだったのでそれが当たり前で
別に読みにくくはない

逆に.netになってから値渡しがデフォになったので、byrefに変更し忘れて、はまることがあるなw



484 :デフォルトの名無しさん:2010/06/09(水) 21:08:12
>>483
そんなのではまる、なんてそりゃ言っちゃ悪いけど君の問題だわ。

今からでもいいから、VBでもC#のoutキーワードは導入すべきだと思う。
まあ、そもそもC#でもoutなんて邪道と言えば邪道なんだけど

485 :デフォルトの名無しさん:2010/06/09(水) 21:40:47
まぁ別にフレームワークで使ってるからいいんでは?

486 :デフォルトの名無しさん:2010/06/09(水) 21:52:20
outはいいけどrefはMSのガイドラインでは禁止だぞ
VBでoutにするにはByRefパラメータに<Out>属性を付けた上で
それに元々入っていた値にはアクセスしないようにしないといけない

487 :デフォルトの名無しさん:2010/06/09(水) 22:06:34
VBでは見た目上プロパティまで参照渡しできるからびっくりする



488 :デフォルトの名無しさん:2010/06/10(木) 00:35:57
>>484
そう?
ハマリって大概思い込みなんじゃねえ?

思い込みがなけりゃ、そんなにハマルもんじゃなし

489 :デフォルトの名無しさん:2010/06/10(木) 00:40:50
思い込みというと言葉は悪いけど人間の感覚にはすごく重要なことだよ
VBの仕様が人間にとって自然かどうかは別にして、
人間が使うものなんだから言語の方を人間の感覚に合わせるのは当然

490 :デフォルトの名無しさん:2010/06/10(木) 01:06:32
人間の自然な感覚、って奴が一人一人違うからやっかいなんだよな。

491 :デフォルトの名無しさん:2010/06/10(木) 05:30:18
「ああおもいみこ」って書いてあっても「ああおもいこみ」って読んじまうしな

492 :デフォルトの名無しさん:2010/06/10(木) 05:36:21
>>491
単語の最初と最後の文字が同じなら、だぞ

493 :デフォルトの名無しさん:2010/06/10(木) 07:51:49
しまったw
「おもこいみ」と「おもいこみ」ねwww


494 :デフォルトの名無しさん:2010/06/10(木) 17:14:53
datasetで、特定のフィールド名が存在するか確認する方法はありますでしょうか。
for〜nextで、全てのColumnsを検索し確認する事は出来るのですが
存在確認する項目が多いので、都度for〜nextで回すのも見苦しいと思い…。
どうかご教授お願いいたします。

495 :デフォルトの名無しさん:2010/06/10(木) 17:19:41
>>494
何故1回のループで全部のチェックをしようと思わないの?

496 :デフォルトの名無しさん:2010/06/10(木) 17:44:00
>>495
なるほど、確かにそうですね!
ありがとうございます。

497 :デフォルトの名無しさん:2010/06/10(木) 17:45:53
DataTableなら
Columns.Contains
があるんだけどなぁ・・・

つうかDataSetの中の全てからってことになるんだったらテーブル位は回してもらわないと無理じゃね?

498 :デフォルトの名無しさん:2010/06/10(木) 19:08:45
質問させてください
1〜100の数字から10個の数字をランダムで抽出しLabelに表示するにはどうすればいいでしょうか?

1〜100からランダムで表示させるのは出来るのですが
10個抽出した場合同じ数字が出てしまう場合が出てくると思うのです

同じ数字を出さずに10個抽出する方法はどうすればいいのでしょうか?
口足らずな質問ですがよろしくお願いいたします


499 :デフォルトの名無しさん:2010/06/10(木) 19:16:25
要素数100のInteger配列を用意して1〜100まで埋めておいて
シャッフルしてから先頭の10個を取り出す
シャッフルはググれ

500 :デフォルトの名無しさん:2010/06/10(木) 19:18:40
たとえばこんなのとか?

Dim cnt As Integer = 0

Dim list As New List(Of Integer)(10)
Dim rnd As New Random()

While True

Dim temp As Integer = rnd.[Next](1, 100)
'0-100まで
If list.Contains(temp) = True Then
Continue While
End If

list.Add(temp)

’保険
If list.Count >= 10 OrElse cnt > 10000 Then
Exit While
End If
End While

自分的には>>499のが性格だし安心だと思うけどw

501 :500:2010/06/10(木) 19:23:33
見直したらgdgdなコード過ぎて泣いた
吊ってくる

502 :デフォルトの名無しさん:2010/06/10(木) 19:56:17
>>499
>>500
レスありがとうございます。

このようなソースで実現できました

Imports System.Linq
Public Class Form1

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim num(99) As Integer
Dim num2(99) As Integer
Label1.Text = ""
For i = 1 To 100
num(i - 1) = i
Next i
num2 = num.OrderBy(Function(j) Guid.NewGuid()).ToArray()

For x = 0 To 9
Label1.Text &= num2(x) & vbCrLf
Next
End Sub
End Class

連続質問で申し訳ないのですが
シャッフルし、先頭から抽出した10個の数字を小さい順に並べ替えるにはどうしたらいいのでしょうか?

検索してみても文字列のソート方法等しか見つからず
初心者の私にはいまいち理解できませんでした・・・
よろしくお願いいたします

503 :デフォルトの名無しさん:2010/06/10(木) 20:01:36
配列 シャッフルでググったらいくらでも出てくるよ

JavaScriptとかのもあるけどアルゴリズム的にはかわらないっしょ

504 :デフォルトの名無しさん:2010/06/10(木) 20:05:04
ドボンにあったはずだ
それくらいは調べてみようぜ?

あのサイトの中の検索があったはずだからシャッフルだ入れて調べてみ?たぶんある

505 :デフォルトの名無しさん:2010/06/10(木) 20:10:29
GuidでOrderByとかいう正しくないコードは書けるのに
数値でOrderByはできないのか? よくわからん

506 :デフォルトの名無しさん:2010/06/11(金) 00:56:29
VS2005環境です

リリースビルドをした後にビルド対象のファイルを追加修正しました
修正後に再度ビルドをしたのですが、生成されるpdbファイルのサイズが小さくなっていました
サイズが大きくなるのならわかるのですが、小さくなっていることがどうも引っかかります
この事象に関して、どなたか教えて頂けないでしょうか?


507 :デフォルトの名無しさん:2010/06/11(金) 01:10:02
半分にでもなったか? でなきゃ気にすんなそんなもん

508 :デフォルトの名無しさん:2010/06/11(金) 01:54:49
VB2008環境です。

タイマーで1秒ごとにフォームに直線を描くプログラムです。
そこで1秒前に書いた直線だけを消すのはどうしたらいいでしょうか。

枠線みたいなものがあり、フォーム全部を塗りつぶしたり、
フォームにある線全てを消す事はできません。

お願いします。

509 :デフォルトの名無しさん:2010/06/11(金) 02:09:05
>>508
背景色で同じとこに線を引く

510 :デフォルトの名無しさん:2010/06/11(金) 03:37:44
508とは別人だけど、背景透過されてる場合はどうすればいいんだろう

511 :デフォルトの名無しさん:2010/06/11(金) 07:18:00
フォームの透過処理はOSの管理下だから、
描く側から見れば単なる非透過のフレームバッファに描画しているだけ。

>>508を真面目に実装するなら、どこに線を描画したかを記録しておいて、
1秒毎に背景色によるクリアを含めて一から全て再描画しなおす、って感じになるな。

512 :デフォルトの名無しさん:2010/06/11(金) 07:30:59
ゲームなんて1秒間に60回も全面書き換えしてるんだから

513 :デフォルトの名無しさん:2010/06/11(金) 08:26:24
1秒前の画像を保持しとけばいいだけなのでは?

現在の画像をビットマップAに退避
1秒前の画像(ビットマップB)で作業用ビットマップクリア
作業用ビットマップに直線描画(そしてフォームに転送)
1秒前の画像更新(ビットマップA→ビットマップB)

514 :デフォルトの名無しさん:2010/06/11(金) 08:46:25
枠線は誰が書くんだろうな
でもやっぱり基本はダブルバッファリングだな

515 :508:2010/06/11(金) 12:31:21
いろいろありがとうございます。
簡単に消すことは出来ないんですね。

画像で保持しておく方法、
どこに描画したか記録しておく方法の
二つを検証して進めていきたいと思います。

516 :デフォルトの名無しさん:2010/06/11(金) 13:43:19
もし線が移動していく(現在値だけあればいい)のならフォームなり
ピクチャボックスなりのバックグラウンドに背景描画してフォアグラウンドに
線だけ描画するのが一番簡単かな
描画の負荷も軽いし

517 :デフォルトの名無しさん:2010/06/11(金) 14:55:14
古い線を描画しなければいいだけじゃないの?
まともに実装していれば、これくらいにはなっているはずだろ

・タイマーイベントで、線分を計算→Invalidate
・OnPaint(Paintイベント)で線分を描画

まあ、タイマーイベントでGDI描画とか阿呆なことしてると予想してるが


518 :デフォルトの名無しさん:2010/06/11(金) 20:28:12
タイマーイベントでCDI処理とか泣けてくる

519 :デフォルトの名無しさん:2010/06/11(金) 23:17:35
文字列で、A<…Z<AA<AB…な場合どの様に比較すればよろしいのでしょうか。
String.Compareを使用した場合、AA<Zになってしまいます。
どうか教えて頂きたく…。

520 :デフォルトの名無しさん:2010/06/11(金) 23:27:59
なんとなく何も考えずに書いてみる

アスキーコードだけだと判断して

1桁目のAだと 65
2桁目のAだと 65+(255*(2-1)) = 65+255

こんな感じで・・・・てだめすか?w


521 :デフォルトの名無しさん:2010/06/11(金) 23:28:39
>>519
その例なら頭にスペースくっつけて_A…_Z…AA…ZZってやれば?

522 :デフォルトの名無しさん:2010/06/11(金) 23:29:07
>>519
Comparisonジェネリックデリゲートのサンプルをそのままパクっとけ。
……意外な所に答えそのものがあって吃驚した

523 :デフォルトの名無しさん:2010/06/11(金) 23:32:10
>>520
早速のレスありがとうございます。
文字列には、AAAもあればABBBなど文字の長さは変動します。
3桁の場合は255*(桁数-1)すればいいのかな…
ちょっと色々試してみます。

524 :デフォルトの名無しさん:2010/06/11(金) 23:33:48
>>521-522
続けてレスありがとうございます。
そういう方法&サンプルがあるのですね。
早速、探索&試してみます。

525 :508:2010/06/12(土) 07:53:43
>>517
おっしゃる通りアホな事していました。
そのやり方で出来ました。

独学で周りにも聞く人もいないためここだけが頼りなんです。
すいません。

526 :デフォルトの名無しさん:2010/06/12(土) 09:11:59
Vista以降でAeroが有効だと、
他のウィンドウに隠されて領域が無効化されることが無くなっているから、
イベント毎に描画でもそれなりに作れるからなあ。

527 :デフォルトの名無しさん:2010/06/12(土) 14:59:40
>Vista以降でAeroが有効だと、
>他のウィンドウに隠されて領域が無効化されることが無くなっているから、

本当かそれ?
何か勘違いしてると思うけど....

528 :デフォルトの名無しさん:2010/06/12(土) 15:04:13
>>527
何を疑ってるのか知らんが
ボタン押下とかでCreateGraphicsで描画して他のウィンドウ重ねた後アクティブにしても消えないよ
最小化>元に戻すとかなら再描画が発生して消えるけど

529 :デフォルトの名無しさん:2010/06/12(土) 15:06:26
そんなの特殊ケースだけだと思うけど....

530 :デフォルトの名無しさん:2010/06/12(土) 16:27:44
>>527
FormのOnPaintでデバッグ出力してみればわかるよ。

531 :530:2010/06/12(土) 16:29:51
ああ、だからって「イベント毎に描画でもそれなりに作れる」とは
言ってないからね。

532 :デフォルトの名無しさん:2010/06/12(土) 16:35:09
だから、特殊ケースだけでしょってそんなの。
それを実現するためにはウィンドウごとにバックバッファを持たせる必要があるけど
そんな無駄が多いことをするわけがない。

単に最前面のウィンドウが隠してる領域を保存してるだけ
(ツールチップもそんな仕組みだと思ったけど)ってオチじゃないの?

533 :デフォルトの名無しさん:2010/06/12(土) 16:40:27
>>532
いや、それが実際にウィンドウ全部のバックバッファを持っているんだよ。
http://d.hatena.ne.jp/NyaRuRu/20070127/p2

534 :533:2010/06/12(土) 16:43:17
すまん。「ウィンドウ全部」というと語弊があるな。
「トップレベルウィンドウ全部」ね。
従来はディスプレイデバイスに直接描画していたから、バックバッファを持つ必要はなかったけど、
Direct3DのサーフェイスにはGDIで直接描画できないから、いったんバックバッファに
描画するようになったと言うこと。

535 :デフォルトの名無しさん:2010/06/13(日) 01:52:00
Formに書いた線や円は最小化などで画面から隠すと消えるけど、
これってVB6でも同じですか?
自分で検証した結果VB6では消えないんですが、
なんで消えるようになったんですかねぇ?

536 :デフォルトの名無しさん:2010/06/13(日) 02:10:15
そうなんじゃないですかねぇ?

537 :デフォルトの名無しさん:2010/06/13(日) 10:09:33
vb.netをはじめてまだ間もない者です。

sendkeyを使って、自分自身内に組み込んであるwebbrowserに
対してタブキー、エンターキーを送信していたのですが、
ウィンドウがアクティブじゃないと正しく機能しないことに気づきました。

ウィンドウが非アクティブ時でも、ちゃんとそのウィンドウに対して
キーを送信するには、win32apiのsendmessage関数を使用すれば
いいのでしょうか。

538 :デフォルトの名無しさん:2010/06/13(日) 12:12:37
>>535
vb6 はプロパティの設定で再描画するようにも、しないようにもできるよ
.netになって不便になったよね
なんで再描画しなくなったのかというと、.netフレームワークの仕様?



539 :デフォルトの名無しさん:2010/06/13(日) 12:17:51
どうせほとんどの場合リサイズなどで再描画は必要だから

540 :デフォルトの名無しさん:2010/06/14(月) 11:58:45
ListViewのCheckBoxesを有効にしてチェックを使用する時に、列をダブルクリックすると
チェックが入ってしまうのですが、入らない様にする方法はありますでしょうか。

列をダブルクリックすると別処理を行いたいのですが、チェックが入ってしまうので…

541 :デフォルトの名無しさん:2010/06/14(月) 12:36:32
クリックイベントでチェックいれるとか

542 :デフォルトの名無しさん:2010/06/14(月) 14:36:33
おkkk

543 :デフォルトの名無しさん:2010/06/15(火) 19:20:13
ValidationGroup プロパティに複数のグループを指定するにはどうしたらいいですか?

544 :デフォルトの名無しさん:2010/06/15(火) 22:55:30
アンマネージドのWin32関数を使う場合、
Friend Shared Function ShellExecuteEx(・・・)
などと静的メソッドとして宣言しないといけないようなのですが、
これをインスタンスメソッドとして利用するような方法はあるでしょうか?

たとえば、上記の場合だと、コピーなどは並行して複数行いたい場合などのため
その都度インスタンスを作成してそのメソッドを使うなどしたいのですが、
これは無理でしょうか?御指導をお願いします!

545 :544:2010/06/15(火) 23:02:42
コピーなどの場合は SHFileOperation() でした、すみません。

546 :デフォルトの名無しさん:2010/06/16(水) 00:22:32
>>544
なんでAPI部分がstaticメソッドだと複数使えないわけ?
っていうかインスタンスメソッドだと複数使えるようになるわけ?

例えばFileStreamなんかCreateFile系とかその他いろいろなAPIの
ラッパーみたいなもんだが、ちゃんと複数使えるだろ?


547 :544:2010/06/16(水) 10:57:21
>>546
なるほど!宣言がStaticでもAPI側で再入可能になっていたんですね!
そうか、わかりました。御指導、ありがとうございました!!

548 :デフォルトの名無しさん:2010/06/16(水) 20:04:17
下手に再入してもI/Oがボトルネックになるから、並列動作できるケースとできないケースを
きちんと分けないと。

549 :デフォルトの名無しさん:2010/06/19(土) 09:20:07
VS2008でDataGridViewにComboBoxを各行違う内容のComboBoxを
出したいんですができません。
どこか参考になるサイトありませんか?
列A 列B 列C
1 A B ComboBox1
2 C D ComboBox2
. . . .
. . . .

550 :デフォルトの名無しさん:2010/06/20(日) 04:09:23
VS2008はメモリ食いすぎるし、
作成されるアプリもメモリ食いすぎるからオススメしない。

551 :デフォルトの名無しさん:2010/06/20(日) 08:32:52
VS2010がお勧めですね。わかります。

552 :デフォルトの名無しさん:2010/06/20(日) 10:48:57
>>550-551
そうなんですか。
初心者ですみません。VS2010使ってみます。

553 :デフォルトの名無しさん:2010/06/20(日) 10:53:13
>>550-551を信じてはいけないが仕事でもないのにわざわざ古いものを使う理由はない

554 :デフォルトの名無しさん:2010/06/22(火) 01:35:02
VS2008です

FormのX軸の真ん中に
Labelに表示された文字列の真ん中が来るようにしたいのですが
つまづいています。


どなたかお願いします

555 :デフォルトの名無しさん:2010/06/22(火) 02:13:17
未だにメモリ256MBのデスクトップ使ってる乞食いますか?


556 :デフォルトの名無しさん:2010/06/22(火) 05:47:11
>>774
いないでしょ。
乞食ってのは物を恵んでもらったり
拾う事に抵抗がない人だから
もっといいもの使ってるよ。


557 :デフォルトの名無しさん:2010/06/22(火) 07:42:26
>>554
1.LabelをX軸中央に置く(IDEの書式メニューとか使う)
2.AnchorプロパティからLeftとRightを除く
3.TextAlignプロパティを〜Centerにセットする
これで完了。

558 :デフォルトの名無しさん:2010/06/22(火) 16:18:33
Form1にLabel1.text貼り付けてマウスムーブでデスクトップの座標取りたいんだけど
フォーム外れたところの座標がとれません
どうすればいいですか??

559 :デフォルトの名無しさん:2010/06/22(火) 20:35:30
Capture

560 :554:2010/06/23(水) 01:34:09
>>557
ありがとうございます!!
早速試してみます。

561 :デフォルトの名無しさん:2010/06/23(水) 02:34:13
クレ>>556
確かに774はまだいない。


562 :554:2010/06/23(水) 02:43:54
>>557
失礼しました、質問が下手だったので誤解を与えていたようです。

通常、文字を打つと

    始
    ↓
    |あ
    |あいう
    |あいうえお

・・・の様に「文字は新しい順に、左から右に表示される」のですが

    始
    ↓
    あ
   あいう
  あいうえお
    |

「文字列の中心」が開始線から動かないように出来ないか
悩んでいました。

563 :554:2010/06/23(水) 02:49:48
>>557
何とか自己解決しました
LabelのAutoSizeをFalseで解除、
あらかじめLabelのサイズを指定して
アドバイスにあったように
LabelのTextAlignをContentAlignment.MiddleCenterにしたら解決しました。

アドバイスも今作っているものに使えそうです、
御教授ありがとうございました。

564 :デフォルトの名無しさん:2010/06/23(水) 16:35:12
すいません。教えてください。
C++のバイト配列(char配列)をWM_COPYDATAで送って、VB.NETで受け取りたいです。
VB.NET側ではどのようにしたらよいのでしょうか。


565 :デフォルトの名無しさん:2010/06/23(水) 16:41:08
socketで送ったほうがいいよ

566 :デフォルトの名無しさん:2010/06/23(水) 16:48:40
取り敢えず検索しろ

567 :デフォルトの名無しさん:2010/06/23(水) 21:28:05
asp.netでセッション変数にも値を保持出来ない程度の、
文字列を保持しながら画面を遷移したいのですが

何かいい方法ありませんか?

568 :デフォルトの名無しさん:2010/06/23(水) 21:41:29
ファイル使えば

569 :デフォルトの名無しさん:2010/06/24(木) 01:01:05
>セッション変数にも値を保持出来ない程度の、文字列
意味がよくわからんが、でかい文字列ってこと?


570 :デフォルトの名無しさん:2010/06/24(木) 13:22:38
ASP.Net の質問もこちらでよろしいでしょうか?

571 :デフォルトの名無しさん:2010/06/24(木) 13:35:57
あ、ASP.Net の質問されてたりしていますね(^^;

VB2005 で ASP.Net の GridView コントロールで困っていることがあります。

<asp:TemplateField HeaderText="なまえ">
 <ItemTemplate>
  <%#CType(Container.DataItem, Data.DataRowView)("なまえ")%>
 </ItemTemplate>
</asp:TemplateField>

としている箇所があるのですが、このフィールドに自作関数の戻り値を表示したいのです。

<asp:TemplateField HeaderText="なまえ">
 <ItemTemplate>
  <%=Hoge(<%#CType(Container.DataItem, Data.DataRowView)("なまえ")%>)%> <--ココ
 </ItemTemplate>
</asp:TemplateField>

Public Function Hoge(inputString As String) As String
 Dim outputString As String
 outputString = inputString + "xxx"
 Return outputString
End Function

としたいところなのですが、<--ココ と記載した行の <%# で「式が必要です」との
エラーが出てしまいます。
いろいろとググッてみたつもりなのですが、このような場合の記述方法がわかりません。
ご教示いただきたく思います。
宜しくお願いいたします。

572 :デフォルトの名無しさん:2010/06/24(木) 14:01:52
<%#Hoge(CType(Container.DataItem, Data.DataRowView)("なまえ"))%>
とする

573 :571:2010/06/24(木) 14:09:06
>>572
ありがとうございます!そのように記述するんですね。
助かりました。

参考に、そのような記述方法(基本なのかもしれませんが...)はどこかのサイトに
解説されていたりするでしょうか?
ググろうにもキーワードが思い浮かばなくて苦労しました。

574 :デフォルトの名無しさん:2010/06/24(木) 14:28:49
こんにちわー
Visual basic 2010 express を使用しています。

簡単な戦闘プログラムを作成しています。
主人公のHPをプログレスバーで表して、MPもプログレスバーで表そうとしていますが、
バーの色が緑色からかえられません。

できれば、HPの色はそのまま緑色で
MPの色は青色にしたいのですが、どのようにしたらいいでしょうか?

575 :デフォルトの名無しさん:2010/06/24(木) 14:36:47
WinFormでやる必要あるの?

576 :デフォルトの名無しさん:2010/06/24(木) 14:41:57
forecolorじゃだめってこと?

577 :デフォルトの名無しさん:2010/06/24(木) 14:45:36
>>576
forecolorじゃ青色に変えても、変わらないんです><

578 :デフォルトの名無しさん:2010/06/24(木) 14:51:56
そっか。
まあProgressbarくらい自分で描画すればいいでね?

579 :デフォルトの名無しさん:2010/06/24(木) 15:06:10
>>578 
Progressbar くらい・・・
初心者の私には難しすぎる(ぁ
しかたないから、ピクチャーボックスを配置してXの値を変更してMPゲージにしました。

ありがとうございました

580 :デフォルトの名無しさん:2010/06/24(木) 18:59:05
Visual Studio 2005 は秀逸。
使用メモリも少なく、低いスペックのマシンでもいいものが作れる。


581 :デフォルトの名無しさん:2010/06/24(木) 19:32:12
.NET2.0ならそれほど悪くはないしな。
とはいえ、俺みたいな面倒臭がりには
OptionInferとか拡張メソッドが無いのが一寸辛い。

582 :デフォルトの名無しさん:2010/06/24(木) 20:56:40
2008の方が速い気がする
2010は出たばかりの頃の2005くらいに感じる

583 :567:2010/06/24(木) 21:03:52
>>569
>意味がよくわからんが、でかい文字列ってこと?

旅費精算システムで使います
文字の他にいろいろなIDを持たせるので、
将来的には結構でかい文字列になる可能性が高いです

584 :デフォルトの名無しさん:2010/06/24(木) 21:07:44
セッション変数をわかってないみたいだな

585 :デフォルトの名無しさん:2010/06/24(木) 21:57:21
>>583
いや、
>asp.netでセッション変数にも値を保持出来ない程度の、
これがどういう意味なのかを教えてくれよ。


586 :デフォルトの名無しさん:2010/06/24(木) 22:32:23
>>583
マジレスしていい?

セッション変数で渡すのはセッションIDは1個だけでいい。

このIDをローカルのデータベースを使ったりして、
いろいろなIDや文字に関連付けさせておけばいい。

でかい文字列はローカルのデータベースとかに
入れておいて、対応するセッションIDのデータを
見ればいいんだよ。

587 :デフォルトの名無しさん:2010/06/24(木) 23:19:27
作ったソフトをvectorとかでフリーで公開したいんですがどうすればいいですか?
vectorに送付するのは開発したアプリだけでいいんですか?ソースとかもアップしなきゃだめ?


588 :デフォルトの名無しさん:2010/06/24(木) 23:20:35
ソースはアップしなくていいよ。

589 :デフォルトの名無しさん:2010/06/24(木) 23:21:10
http://www.vector.co.jp/for_authors/upload/soft_reg_1.html

にやり方が書いてある。

590 :デフォルトの名無しさん:2010/06/24(木) 23:27:12
作ったものに自身が無いならソース付けときなよ
実用性がゼロでもソースが付いてたらサンプルとしての価値はある
.NETならソースはどうせ覗こうと思えばソース付いてなくても覗けるんだから

591 :デフォルトの名無しさん:2010/06/24(木) 23:28:29
LZHはダメだからね
それとメアドの入ったドキュメント(readmeとか)必須

592 :デフォルトの名無しさん:2010/06/25(金) 17:11:41
お願いします。

Cのchar配列からVB.NETのStringに変換したいです。
下記のように書いていて、Cからは"123"と送っています。
Bのところでブレークしてcds.lpDataをメモリウィンドウで見ると「0x31,0x32,0x33」とはいっているのでここまでは意図どおりです。
しかし、Bの行を実行するとrecCには文字化けした文字が入ってしまいます。
CでrecStrに"123"といれるには、どのようにしたらよいでしょうか。

@ Dim cds As COPYDATASTRUCT = DirectCast(Marshal.PtrToStructure(m.LParam, GetType(COPYDATASTRUCT)), COPYDATASTRUCT)
A Dim recC As Char() = New Char(cds.cbData) {}
B Marshal.Copy(cds.lpData, recC, 0, cds.cbData)
CDim recStr as String = recC

593 :デフォルトの名無しさん:2010/06/25(金) 17:18:40
SByte()で受けれ

594 :デフォルトの名無しさん:2010/06/25(金) 17:20:42
と、SByte()はNew Stringには渡せないか
Byte()で受けてEncodingでStringに変換 Chr(0)でSplit

595 :592:2010/06/25(金) 17:25:17
>>594
できました!ありがとうございます!!!

596 :デフォルトの名無しさん:2010/06/25(金) 18:40:04
おkkkkw

597 :デフォルトの名無しさん:2010/06/25(金) 18:44:48
質問です。
以前、VB2005 で作ったデスクトップアプリが、起動してもフォームが現われなくなりました。
「最大化」のボタンを押すと、最大化して現われるのですが、「元のサイズに戻す」と、
また消えてしまいます。
一応、タスクバーには現われているんですが・・・。
1ヶ月ほど前までは、普通に動いていたのですが、
こういう場合、どういう原因が考えられるのでしょうか。

WinXP SP2 です。

598 :597:2010/06/25(金) 18:47:29
追加です。
同じく、VB2005、WinXP SP2で作ったデスクトップアプリなのですが、
ファイルメニューの終了を選ぶと Application.Exit() で終了する仕組みで、
終了しなくなってしまいました。(終了選んでも反応しません。)
こちらも、少し前までは普通に終了できていたのですが・・・。
(597 とは別のアプリです。)
何が原因なのかさっぱりです。
どなたか、何かヒントでもありましたらご教示下さい。

599 :597:2010/06/25(金) 18:58:54
原因は不明のままですが、

>>597
ビルド→リビルドをしたところ、
元のサイズのフォームが現われるようになりました。
何か、ファイルが壊れていたのでしょうか・・・。

>>598
こちらは、何故かコードがぬけていました。
今まで終了していたと思っていたのは勘違いだったようです。
大変失礼しました。


597について、exe を起動してもフォームが表示されず、
最大化した時のみ表示される現象の原因は不明のままです。
最大化した後、「元のサイズに戻す」と、またフォームが消えてしまいます。
タスクバーには残ったままです。
(以前は、確かに元のサイズで正常表示されていました。)
ビルド、リビルドをやってみたところ直ったのですが、、、なんでだろ。

600 :デフォルトの名無しさん:2010/06/25(金) 19:32:33
他PCでも発生するか試せばいい

601 :デフォルトの名無しさん:2010/06/26(土) 07:47:21
>>549
結局これはDataGridViewではできないのでしょうか?

602 :デフォルトの名無しさん:2010/06/26(土) 08:26:14
>>601
DataGridViewComboBoxColumnとDataSourceをうまく組み合わせるか、
DataGridViewComboBoxCellに直接選択肢を入れるかすればできる。

603 :デフォルトの名無しさん:2010/06/26(土) 13:28:17
VB.NET2002以前にはソリューションファイルという概念はなかったのでしょうか?

604 :デフォルトの名無しさん:2010/06/26(土) 13:34:24
うん。

605 :デフォルトの名無しさん:2010/06/26(土) 15:39:14
>>602
直接入れる方法で参考になるサイトありませんか?


606 :デフォルトの名無しさん:2010/06/26(土) 16:12:24
元質問じゃないんだが
>>602
DataSouce設定するにしても、Cellに直接設定するにしても、データバウンドさせた場合
全件データバウンド−>全行を1行ずつなめて設定 の流れしか思いつかなかったんだが
もうちょっとスマートなやり方ある?
WEB系のコントロールだとItemDataBoundとか使うのが常套なんだが
WinFormには該当するイベントがなさそうな感じなんだが

>>605
>>2

607 :デフォルトの名無しさん:2010/06/28(月) 14:43:37
むしろ
> 全件データバウンド−>全行を1行ずつなめて設定 の流れしか思いつかなかったんだが
コレがスマートじゃなくて
> WEB系のコントロールだとItemDataBoundとか使うのが常套なんだが
コレがスマートであると考えた理由が知りたい

608 :デフォルトの名無しさん:2010/06/28(月) 15:21:12
>>607
データバウンドで全行処理した後に、もう1度全行に設定
 全行に対して2回づつ処理
ItemDataBound=各行のデータバウンド時に処理
 全行に対して1回の処理

ってことなんだが
グリッドの各行に対して処理するのに
全行をループする処理を書くのがスマートじゃないと思うんだ
んで自分でループさせない方法はないのかと思ったわけ

609 :デフォルトの名無しさん:2010/06/29(火) 22:27:57
>>DataGridViewComboBoxCellに直接選択肢を入れるかすればできる。
お願いします。この方法の例文提示してほしいです。

610 :デフォルトの名無しさん:2010/06/30(水) 22:51:53
>>609
        For Each r As DataGridViewRow In DataGridView1.Rows
            If r.IsNewRow Then Continue For
            CType(r.Cells(2), DataGridViewComboBoxCell).Items.Clear()
            Select Case r.Cells(1).Value.ToString
                Case "B"
                    CType(r.Cells(2), DataGridViewComboBoxCell).Items.AddRange("あ", "い", "う")
                Case "D"
                    CType(r.Cells(2), DataGridViewComboBoxCell).Items.AddRange("A", "B", "C")
            End Select
        Next


611 :デフォルトの名無しさん:2010/07/01(木) 00:09:31
すみません課題での質問なのですが

乱数の範囲を代入するInteger型のモジュール変数を定義する

この部分が分からないのですがヒント頂けないでしょうか?

612 :デフォルトの名無しさん:2010/07/01(木) 00:12:29
すいません自己解決いたしました

613 :デフォルトの名無しさん:2010/07/01(木) 00:13:32
課題でモジュール変数なんか教えるなよ…

614 :デフォルトの名無しさん:2010/07/01(木) 07:54:08
>>610
ありがとうございました。

615 :デフォルトの名無しさん:2010/07/01(木) 19:29:00
Randomize()
x = Int(Rnd() * (100 - 5))

こういう事って可能ですか?

616 :デフォルトの名無しさん:2010/07/01(木) 19:39:59
>こういうこと
馬鹿な子っていつもこれだよな。
自分以外の人間はエスパーだと思ってるのか何なのか知らんけど

617 :デフォルトの名無しさん:2010/07/01(木) 22:01:39
IntergerとInt64,32とかは何が違うの?

618 :デフォルトの名無しさん:2010/07/01(木) 22:05:10
IntegerとSystem.Int32が同じ

619 :デフォルトの名無しさん:2010/07/02(金) 04:58:21
もっとくわしく

620 :デフォルトの名無しさん:2010/07/02(金) 08:09:01
>>619
http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=bf32527d-187c-49fa-8c67-9e9105535550

621 :デフォルトの名無しさん:2010/07/03(土) 14:02:08
index.aspxでボタンをクリックするとイベントが発生して、
index.aspxからindex.aspxに画面が遷移します

なので、戻るボタンをクリックすると前のindex.aspxに戻れるわけですが
これを禁止するにはどうすればいいんですか?

622 :デフォルトの名無しさん:2010/07/03(土) 20:58:55
あるプログラムより test.exe というWindowsアプリを起動し、
起動時の引数に応じてWindows Formのタイトルに
指定された値を表示したいと思っています。

Process.Start("test.exe", "AAA")
⇒これを実行したら Windowsフォームには、"AAAが渡されました。" と表示する。

Process.Start("test.exe", "BBB")
⇒これを実行したら Windowsフォームには、"BBBが渡されました。" と表示する。


この場合に、呼出される側の test.exe 側ではどの様にして引数を受け取れば良いのでしょうか?
Consoleアプリケーションの場合の引数の受け取り方は分かるのですが、
WindowsアプリでForm_Loadイベントの中でどの様に取得すれば良いのかわかりません。

623 :デフォルトの名無しさん:2010/07/03(土) 21:06:16
>>622
http://msdn.microsoft.com/ja-jp/library/system.environment.getcommandlineargs(VS.80).aspx

624 :デフォルトの名無しさん:2010/07/03(土) 21:11:32
>>622
まずどぼん調べろよ
http://dobon.net/vb/dotnet/programing/commandline.html

625 :デフォルトの名無しさん:2010/07/03(土) 21:15:09
>>622
Environment.CommandLineでとれねえ?

626 :デフォルトの名無しさん:2010/07/03(土) 21:21:22
>>623 >>624 >>625
皆さんどうもありがとうございます。
やりたい事が出来ました☆

サンクスです。


627 :デフォルトの名無しさん:2010/07/04(日) 02:07:05

フォーム間でコントロールの値を取得しようとして
たとえばform2の中で

CheckBox2.Checked = Form1.CheckBox2.Checked

なんてことをやると

普通にウインドウズアプリケーションとしてビルドした場合は動くんだが
クラスライブラリとしてビルドすると

非共有メンバーを参照するには、オブジェクト参照が必要です。

というエラーを吐いてしまうんだが、このへんの理屈を教えてたもれ



628 :デフォルトの名無しさん:2010/07/04(日) 02:50:17
>>627
Windowsフォームアプリケーションとしてビルドしたときは、
フォームのクラスは特例として既定のインスタンスが用意される。
Form1.CheckBox2.Checkedでアクセスできるのは、
実際にはその既定のインスタンスにアクセスしているから。
クラスライブラリの場合はそういう特例は無いため、
そのままForm1クラスのプロパティへのアクセスと解釈されエラーが返される。

そこら辺は、できた実行ファイルをIL逆アセンブラで見れば直ぐに解る。
test1.My.MyProject.MyForms.Forms.Form1
って感じのプロパティで既定のインスタンスにアクセスしているのが確認できる。

629 :デフォルトの名無しさん:2010/07/04(日) 02:53:13
>>627
>普通にウインドウズアプリケーションとしてビルドした場合
Form1がスタートアップになっているので、Form1のインスタンスが自動的に作成される
>クラスライブラリとしてビルドすると
クラスライブラリだと誰もForm1のインスタンスを作成してないのでエラーになる

おそらくこういうことだと推測

630 :629:2010/07/04(日) 03:10:28
こんな夜中にかぶるのか

既定のインスタンスについて知らないのかと言う突っ込みを受けないために補足しとく
VB.NETの初期のバージョンには既定のインスタンスは存在しない

もしかしたらForm1という変数が自分でnewしたインスタンス持ってるかもしれない
だから、元のコードが動いている理由はバージョンとソース出さないとはっきりしない



ま、そんな古いバージョン使ってるぐらい昔からやってるならエラーの理由ぐらいわかるだろうけど

631 :デフォルトの名無しさん:2010/07/04(日) 04:39:52
>>628
>>629

なるほど〜、なんとなく見えてきました
カキコしてからイロイロいじってみてたけど
form1からform2.showもエラーになるんですが、これも
ウインドウズアプリケーションの場合は
全フォームのインスタンスが自動で作成されているということなんですねたぶん?

で、form1からform2への参照もあったので、お互いのフォームで fm1 = new form1
てなことをするとビルドでループしてエラーなるので
モジュールのほうに両方入れてやると
Public fm1 As Form1 = New Form1
Public fm2 As Form2 = New Form2

なんとか動くようになりました。
と、思ったら×で閉じるとインスタンスが破棄されて、showで再表示できない、orz
fm2 = New Form2 を足してと・・、いけたようです。

もしかして、もっとスマートなやりかた有ります?








632 :デフォルトの名無しさん:2010/07/04(日) 04:49:18
>>630
う〜ん、いまいじってるのは2010です
バリバリいじってたのはvb6くらいまで
.net登場あたりで、ん〜なにそれオブジェクト指向?よくわかんねえ〜
隣のフォームが、、いじれねえ〜、なんで〜、・・・・・撃沈

最近になって浮上、2010無料だし〜チャレ〜ンジ!!
あれ?隣のフォーム、いじれるじゃ〜ん、ふんふん〜〜
DLLつくってみよ〜っと、あれ?えら〜だって、なんで?
てなわけでした


633 :デフォルトの名無しさん:2010/07/04(日) 05:46:15
>>631
追加の疑問
fm2.showして×で閉じてfm2.showすると、破棄されたインスタンスに云々となるのに
fm2に有るプロシージャーを call fm2.untara()って呼んでもエラーになんないんですね
も〜わけわかんない

634 :デフォルトの名無しさん:2010/07/04(日) 07:10:46
>>633
失礼
破棄されたインスタンスじゃなくて破棄されたオブジェクトだった・・・・
もう頭まわんね、寝る・・・って朝だ・・・むぅ

635 :デフォルトの名無しさん:2010/07/04(日) 08:48:34
フォームが閉じられるとDisposeは呼ばれるけど、
インスタンスが解放されるわけじゃないからな。
メソッド呼び出し自体がエラーにならなかったのは、
Disposeされた状態とは無関係の操作だけで完結していたからだろう。
メソッド内で、Me.Showとかやれば同様のエラーが発生するはず。

636 :デフォルトの名無しさん:2010/07/05(月) 11:56:07
>621
クライアントポストバック

637 :デフォルトの名無しさん:2010/07/05(月) 21:46:02
ユーザがListViewに1行ずつデータを追加できるプログラムを作っています。
このListViewのデータをまとめて1つのテキストファイルに保存したいのですがどうすればよいでしょうか?
どなたかよろしくお願いします。

638 :デフォルトの名無しさん:2010/07/05(月) 21:48:54
一行ずつ読み出して書き込んでいけばいいよ

639 :デフォルトの名無しさん:2010/07/05(月) 21:58:59
>>638
ありがとうございます。
Itemを1行ずつ取得して末尾までループ、ということでしょうか。

申し訳ないのですがn行目のアイテムを取得する方法を教えていただけたら幸いです。

640 :デフォルトの名無しさん:2010/07/05(月) 22:01:16
ヘルプ見ろよ

641 :デフォルトの名無しさん:2010/07/05(月) 22:04:08
>>640
ごめんなさいです
見なおしてきます

642 :デフォルトの名無しさん:2010/07/05(月) 22:09:01
データ構造を持つようにして、ユーザーはそっちに登録。
登録されたデータ構造をListViewに表示、って手もある。

ファイルに吐き出したければ、データを直接吐けばいい。

643 :デフォルトの名無しさん:2010/07/06(火) 00:03:38
VS2010です
PictureBoxに表示した画像の特定座標の色を取得したいのですが、どのように記述すれば良いのでしょうか?
よろしくお願いします。

644 :デフォルトの名無しさん:2010/07/06(火) 00:10:25
Bitmap.GetPixel
ただし画像処理みたいなことする場合は遅くて全く使い物にならないのでLockBits使う

645 :デフォルトの名無しさん:2010/07/06(火) 15:35:21
WebBrowser で表示していたU-Streamのサイトで、動画の再生が終了したときに
FlushPlayerのアドオンがメモリー違反とかのエラーを出し、そのままアプリケーション
が異常終了してしまいました。WebBrowserのイベントではError関係のものはないようでしたが、
アドオンのエラーや例外を把捉してアプリケーションがクラッシュしないようにできるでしょうか。

IEで同じURLを出して確かめると、やはり同じエラーでIEが飛んでしまいました。
複数回やってみましたが同じでした。IEでこうなっているということはこの手のエラーでのクラッシュは
避けられないのでしょうか?

646 :デフォルトの名無しさん:2010/07/06(火) 20:00:34
中身がどれだけ壊されたかも判らないのに無理に実行継続するほうが危険。
プロセス単位でさっさと落としたほうが良い。

647 :デフォルトの名無しさん:2010/07/06(火) 22:19:36
某スレに載ってたんですけど、
Jane Style 3.4 を使って2chに書込みをすると
C:\\Document And Setting\【スズキ タロウ】
という部分の文字列までパケット送信してるらしいのですが、
誰か逆アセンブルして解析した方はいますか?


※前々から2ch専用ブラウザは怪しいと言われていたのですが・・・

場合によっては警視庁ハイテク化にアプリとソースを引き渡します。



648 :デフォルトの名無しさん:2010/07/06(火) 22:23:49
スレ違い

649 :デフォルトの名無しさん:2010/07/06(火) 22:38:23
関係ないけどIE6でファイルをアップロードしてみろよ
そんでハイテク化に通報しとけ


650 :デフォルトの名無しさん:2010/07/07(水) 01:08:46
>>644
ありがと−!
getpixelにて無事に実装できました

651 :デフォルトの名無しさん:2010/07/08(木) 13:32:05
■Jane Style 3.4 はスパイウェア
http://namidame.2ch.net/test/read.cgi/poverty/1278496905/


652 :デフォルトの名無しさん:2010/07/09(金) 15:39:06
今、VB.NET独習中で苦労してます。もしよろしければご教授ください。

配列や構造体の内容をバイナリでファイルに保存したいんですが、
C言語なんかだとキャストするだけで

long myArray[4];

struct st {
long a;
short b;
short c;
} mySt;

size_t done;

done = fwrite((void*)myArray, sizeof(myArray), 1, fp);
done = fwrite((void*)&mySt, sizeof(mySt), 1, fp);

と書けてしまったりするわけですが、VB.NETでこのように簡単に
ファイルに書くにはどのようにすればいいんでしょうか? 

いろいろネットで調べてるんですが、なんかみんなややこしい
方法でByte配列等に変換してから書いてるようで・・・。

実験的にファイルに書き出したいだけなんで、数行で書けるような
方法があればいいなと思っています。

653 :デフォルトの名無しさん:2010/07/09(金) 16:05:00
XmlSerializerとか使う

654 :デフォルトの名無しさん:2010/07/09(金) 17:53:25
バイナリファイルはトレンドじゃないからなー

655 :デフォルトの名無しさん:2010/07/09(金) 18:28:27
お返事ありがとうございます。

>>653
やっぱりそういう変換のためのクラスなるものを使用しないとだめなん
ですね・・・。ご回答は大変参考になります。使用させていただくかも
しれません。

>>654
うーむ、でも画像処理、音声処理なんかはバイナリを当たり前のように
使うんですよ。やっぱりC/C++を使うほうがいいんですかね。

経験豊富な高スキルの方の多いこのスレッドでもそのものずばりの回答
がないということは、やっぱりVB.NETでは無理なんでしょうかねぇ。

メモリ上のデータを、ファイルシステムをちょこっと叩いて書き込む
だけなのに・・・。手続き指向な言語じゃないのはわかるんですが、
そのぐらいのベタな方法はあってもいいのに。

もし他にもアドバイスお持ちの方がいらっしゃいましたら、
よろしくお願いいたします。

656 :デフォルトの名無しさん:2010/07/09(金) 18:38:29
http://dobon.net/vb/dotnet/file/filestream.html#write

657 :デフォルトの名無しさん:2010/07/09(金) 18:59:52
>>656
さっそくありがとうございます!

Byte型配列を書き込むならこれでよかったんですが、UShort型の配列を
引数で与えるとエラーになってしまうんです。

「型'UShortの1次元配列'の値を'Byte'に変換できません。」

だそうです。(そりゃそうですよね。)

C言語のようにキャストしてそのまま渡すにはどうすればよろしいでしょ
うか?(実はこの方法を探して苦労しています。)

それとも、別のByte配列を用意し、MSB/LSB分割してコピーしてから渡す
しかないでしょうか。

お手数をおかけします。

658 :デフォルトの名無しさん:2010/07/09(金) 20:04:45
>>657
酔っ払ってるから質問良く読まずに回答。
たぶん方法は少なくとも2つあると思う。

■ Byte()に変換する

メンバがプリミティブな値型のみの構造体の配列ならCopyMemoryとかでByte()に
コピーできる。


■ VB6互換関数のFileXXXを使う。

明示的にドキュメント化されてないけど、VB6互換のFilePut、FileGet関数は
構造体の配列をそのままファイルに読み書きできる。

659 :デフォルトの名無しさん:2010/07/09(金) 20:43:13
>>658
おおお、FilePutってのがあるんですか。気づきませんでした。
イメージしていた解に近そうな手段をご提示いただきありがとうございます。
試してみたいと思います。

さすがVB6ですね、未だにファンが多いと聞くのも納得です。
もうVB6買えないからな〜(涙)

660 :デフォルトの名無しさん:2010/07/09(金) 21:37:52
やめとけ
とんでもなく遅いよそれ

661 :デフォルトの名無しさん:2010/07/09(金) 21:40:59
>>658
FilePut()、まさに望みどおりのものでした。
型を気にせずに引数に渡せるところもいいです。
知らなかった私が未熟者でした。
大変助かりました。厚く御礼申し上げます。

お礼と言ってはなんですが、結果報告を。

Byte配列・・・1要素1byteでファイルに書かれる。
Short配列・・・1要素2byte
UShort配列・・・1要素4byte
Long配列・・・1要素8byte
ULong配列・・・1要素8byteだが、データ値 x 10000(10進)という値で書かれる。
       ULong(){1,2,3,4}という配列なら10000,20000,30000,40000となる。
Decimal配列・・・ULong配列に同じ。

うーむ、C/C++とはやはり感覚が違いますね。気をつけなければ。



662 :デフォルトの名無しさん:2010/07/09(金) 21:47:24
>>660
ありがとうございます。

あらら、遅いんですか・・・。
今度また速度を測定して、どの程度まで実用になるか確認しておきます。

Windows上だから厳密な結果は出ませんが、汎用入出力ボードなどを
使ってパルスをON/OFFしてオシロでざっくり実測してみます。

663 :デフォルトの名無しさん:2010/07/09(金) 21:47:29
いやプリミティブ型の配列を出力するだけなら
わざわざ頭悪そうな関数使わなくてもBinaryWriterを使えばいいだろ

664 :デフォルトの名無しさん:2010/07/09(金) 22:09:26
>>663
達人の方が続々といらっしゃる。(嬉)
ありがとうございます。
私がいかにVB.NET未熟者かと。

BinaryWriterですね、これも試してみます。
VB.NETの場合、本道はこれですかね。

そういえば、これ構造体も書けるんでしょうか。
FilePutとともに試してみます。

665 :デフォルトの名無しさん:2010/07/09(金) 22:41:34
本日最後の報告です。

20MBのByte配列を一挙にwriteすると
BinaryWriter・・・0.5秒未満
FilePut・・・約4秒

めちゃくちゃアバウトですみませんが、やはりFilePutは遅いですね。
当方、WindowsXP SP2、Core 2 Duo E8500 3.16GHz、RAM 1GB、HDD 500GB/7200rpmです。

ただし、
BinaryWriterでは構造体をうまく渡す方法がまだ見つかっていません。
FilePutでは構造体をそのまま渡せました。

あとは何とか自分で調査していけそうです。
ご教授くださったみなさんに感謝します。
ありがとうございました。

666 :デフォルトの名無しさん:2010/07/09(金) 22:47:12
Byte配列でもそんなに遅いのか
それなら構造体の配列の場合はリフレクション全開だから数百〜数千倍くらいかな

667 :デフォルトの名無しさん:2010/07/09(金) 22:47:42
>>653
今どきそんなあほなことはあんましないと思うが。


668 :デフォルトの名無しさん:2010/07/09(金) 23:01:31
スパイウェアを仕込んでるJane Styleは危険です。

Google Adsense違反報告スレ Part10
http://pc12.2ch.net/test/read.cgi/affiliate/1267346244/

JaneStyleがスパイウェアみたいな動作するらしい件
http://namidame.2ch.net/test/read.cgi/poverty/1278496905/

【スパイウェア?】JaneStyleで書き込みしようとしたら、○○に情報が送信されていた件
http://tsushima.2ch.net/test/read.cgi/news/1278681871/


669 :デフォルトの名無しさん:2010/07/09(金) 23:15:51
コピペ君って馬鹿だな、まで読んだ。

670 :名無しさん@そうだ選挙に行こう:2010/07/10(土) 07:55:08



671 :名無しさん@そうだ選挙に行こう:2010/07/11(日) 12:53:33
javascriputのライブラリをvb.netでも参照できるようにすることって出来ますか?

672 :名無しさん@そうだ選挙に行こう:2010/07/11(日) 12:55:59
無理
C#に移植するのが早い

673 :名無しさん@そうだ選挙に行こう:2010/07/11(日) 13:02:52
何がしたいかによるな
ブラウザの中でスクリプトを動かしたいのであればDOM経由でスクリプトを呼ぶことは可能
javascriptで書かれた一般的なユーティリティ的なものをVBで使いたいということであれば
JScript.NETが使える場合があるが一般的には難しいしあまり意味が無いし移植した方が早い

674 :名無しさん@そうだ選挙に行こう:2010/07/11(日) 14:19:59
>>673
http://developers.face.com/
ここにあるAPIを使ってwebアプリを作りたいんだけど
提供されているアプリがjavascriptとPHPしかないので困ってます
なんとかしてvb.netで開発出来る方法はないものかなぁと・・・

675 :名無しさん@そうだ選挙に行こう:2010/07/11(日) 14:28:32
RESTらしいからJavaScriptやPHP使わなくてもVBから普通にWebサービスとして使えるはず。
javascriptでもPHPでもどっちでもいいからクライアントライブラリのソースコードを読んで
自分で移植する。自分では無理だと思うならスレ違い。

676 :名無しさん@そうだ選挙に行こう:2010/07/11(日) 14:30:03
JavaScriptでやってパケット見て、それにあわせたリクエストを投げればOK

677 :名無しさん@そうだ選挙に行こう:2010/07/11(日) 14:34:58
公開されてるものをなんでわざわざ自分で解析する必要がある
JavaScriptのライブラリのソースを読めばいいだけだろw

678 :名無しさん@そうだ選挙に行こう:2010/07/11(日) 14:45:31
ソース読めるなら、わざわざこんな質問しないだろ。

679 :名無しさん@そうだ選挙に行こう:2010/07/11(日) 14:48:31
JavaScriptわからなくてWebアプリなんかどうせ無理

680 :名無しさん@そうだ選挙に行こう:2010/07/11(日) 14:53:57
みなさんいろいろとありがとうございます。
うーん・・・
知識不足なのでまだ詳しいことは分かりませんが
とりあえずvb.netでも実現は可能だということは解りました

javascript勉強しながら頑張って移植してみます。
ありがとうございました。

>>678
>>679
うっさいボケ!シネ!

681 :名無しさん@そうだ選挙に行こう:2010/07/11(日) 15:10:29
とりあえずREST APIの所を読んでおくと良いよ。
VB.NETからだと、これを使うことになるだろうから。

682 :名無しさん@そうだ選挙に行こう:2010/07/11(日) 15:10:33
はぁ〜(´・ω・`)
質問するやつにこんなのがいると、俺が質問しにくいじゃまいか

683 :名無しさん@そうだ選挙に行こう:2010/07/11(日) 15:12:53
気にせず質問しなよ。

684 :デフォルトの名無しさん:2010/07/12(月) 17:19:57
失礼します、質問です(・ω・`)
ある関数で画像ファイルのパスを渡して処理を行うものがあるのですが
その関数にリソースにあるファイルを渡したいのです。

そこで
My.Resources.ファイル名  を渡すとbitmap型が帰ってきてエラーになってしまいます。

どうにかリソースをstring型のパスで渡す方法はないでしょうか?
よろしくお願いいたします

685 :デフォルトの名無しさん:2010/07/12(月) 19:39:26
マジなのか釣りなのか判断に苦しむな

686 :デフォルトの名無しさん:2010/07/12(月) 21:29:29
ない。

687 :デフォルトの名無しさん:2010/07/13(火) 11:32:29
VB2008,Excel2007環境にて、
VBからExcel出力を行っています。

Microsoft.Office.Core.XlConstants.xlRight
このコードが、環境によりエラーになってしまいます。
'xlRight'は'Microsoft.Office.Core.XlConstants'のメンバではありません。

参照設定を見たのですがエラーの出ない環境と同じでした。
調べてみたのですが見当がつかず…
よろしくお願いいたします。

688 :デフォルトの名無しさん:2010/07/13(火) 13:26:52
なにを?

689 :デフォルトの名無しさん:2010/07/13(火) 18:05:58
vb2008で勤怠管理を作ってます。
出勤ボタンを押すと一覧表に時間が表示され、退勤ボタンを押すと同じ列の退勤の場所に退勤時間を表示させたいのですが、どのようにしたらよろしいでしょうか?

690 :デフォルトの名無しさん:2010/07/13(火) 18:23:11
なにを?

691 :デフォルトの名無しさん:2010/07/13(火) 18:35:58
>>690退勤時間を退勤のセルに表示させるには

692 :デフォルトの名無しさん:2010/07/13(火) 21:55:34
保存しているデータを取得とかして
DataGridViewでも使って表示すればいいんじゃない?


693 :デフォルトの名無しさん:2010/07/14(水) 02:30:44
vb.netで作ったDLLからコールバックしてもらう方法ってないもんですかねえ?
delegateでいけるのかと思ったら、プロジェクト内でしか使えないみたいでクマってしまった・・・


694 :デフォルトの名無しさん:2010/07/14(水) 02:35:34
dll側にdelegate作ったらいいんじゃね?

695 :デフォルトの名無しさん:2010/07/14(水) 02:54:58
DLL側でデリゲートを公開しておけばいい。

696 :デフォルトの名無しさん:2010/07/14(水) 03:39:31
>>694
>>695
それでいけると思ってやってみたんだけど

DLL側ではデリゲートで呼ばれるべきメソッドがどこにあるのか分からんので
ダメポって感じだったんだけど、根本的に勘違いしてるんだろうか?


delegate自体は、ここを参考にやってみた
ttp://www.geocities.jp/hatanero/delegate.html

デリゲートでいけるんなら、とりあえず動くサンプルどっかに落ちてないですかね?


697 :デフォルトの名無しさん:2010/07/14(水) 03:48:30
' callee
Public Delegate Sub HogeCallback(ByVal arg As String)
Public Class Piyo
    Public Shared Sub Test(ByVal callback As HogeCallback)
        callback("callback")
    End Sub
End Class

' caller
Private Shared Sub Callback(ByVal arg As String)
    Debug.WriteLine(arg)
End Sub
Private Shared Sub Exec()
    Piyo.Test(AddressOf Callback)
End Sub

698 :デフォルトの名無しさん:2010/07/14(水) 06:33:36
>>697
サンキュー、感謝感激

なるほど〜、そうやったらいいんんだぁ
やりたかったことと、ちょっと違うけど
コールバックって言っちゃいけなかったのかな?

DLL側から好き勝手なタイミングで何度でも呼ばれるようにしたかったので、
ちょっといじってみました


Public callbackproc As HogeCallback を宣言しといて

Public Shared Sub Test(ByVal callback As HogeCallback)
 callback("callback")
End Sub
   
   ↓変更

Public Shared Sub Test(ByVal callback As HogeCallback)
 callbackproc = callback
End Sub

これでexecを実行した後でDLL側で callbackproc("hogehoge") とすることでうまくいきました。


699 :デフォルトの名無しさん:2010/07/14(水) 12:31:34
Yahoo に自動でログインするツールを作っているのですが、
次のコードを記述し実行した場合、
IEがデスクトップ上に表示されてしまい困っています。

objeBrowser.Navigate("http://yahoo.co.jp/", Nothing, Nothing, Nothing, Nothing)

このコードを実行した時にIEがタスクバーに格納(縮小された状態)で
ログイン可能にするにはどうすれば良いでしょうか?

※Windows アプリの場合ですと【Show In Task Bar】といったプロパティがあるのですが、
IEを操作する場合にはどうすれば良いのか見当が付きません。

700 :デフォルトの名無しさん:2010/07/14(水) 14:15:03
>>699
フォームにブラウザコントロールを貼り付けて
そこで操作したほうがいろいろ自由が利くよ。
ログイン状態はIEと共有されるし。

701 :デフォルトの名無しさん:2010/07/14(水) 14:43:00
>>700
確かにWindows フォームにブラウザコントロールを
貼り付けて行った方が良いかもしれませんね。

そしたら、態々タスクバーに縮小して操作する必要
が無くなりますしね。

でもそうなるとまた作り直しか・・・

因みに、>>699 の方法はご存知ではありませんか?

702 :デフォルトの名無しさん:2010/07/14(水) 19:53:52
>>698
C/C++じゃあるまいし、(生の)コールバックなんて本当に必要かね?

君がやろうとしていることは、イベントでやった方が分かりやすいんじゃないの?
何をやろうとしてるのかわからんから何とも言えんが....

703 :デフォルトの名無しさん:2010/07/14(水) 20:51:25
むしろイベントとコールバックの使い分け皆どうやってるんだろ

704 :デフォルトの名無しさん:2010/07/14(水) 21:03:00
イベントはコールバックの一種だけどそれは置いといて
デリゲートをそのまま渡すのはちょっとしたコード片をメソッドの引数に渡してその場で使う場合
でもVBでそういうことやると理解できない人が多くて非常に嫌われるから正直使わなくていいよ

705 :デフォルトの名無しさん:2010/07/14(水) 21:14:21
イベントは、伝えるだけ伝えたから後はどうでも良いや、って感じのときに使うな。
別にハンドルされなくても特に困らないようなものとか。

706 :デフォルトの名無しさん:2010/07/14(水) 21:20:39
イベントを使う意味があるのは
・きちんとカプセル化されたクラスを自作している
・そのクラスはイベントの受信先のクラスに直接依存していない(させたくない)
前提としてこういう場合なのでVBでは非現実的ですね
どっちもいらん

707 :デフォルトの名無しさん:2010/07/14(水) 21:23:49
VB.NETだと、理解できないと言うより読み辛いんだよなあ。
C#の匿名メソッドおいしいです^q^

708 :デフォルトの名無しさん:2010/07/14(水) 22:14:24
バルーンヒントの表示時間を制御したいのですが、
常時表示されたままになってしまいます。
指定秒数後にバルーンヒント閉じる方法はありますか?

[コードなど]
VB2008Pro、.NET Framework 3.5 、VISTA Ultimate SP1 32bit

Form1にNotifyIcon1を貼付け後、NotifyIcon1のIconを適当にセット。

Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
With NotifyIcon1
.BalloonTipTitle = "たいとる"
.BalloonTipIcon = ToolTipIcon.Info
.BalloonTipText = "てきすと"
'1000ms表示
.ShowBalloonTip(1000)
End With
End Sub
End Class

709 :デフォルトの名無しさん:2010/07/14(水) 23:12:46
>>702
イベントも試そうとしたんだけど、今回みたいにDLLが絡んだ場合の
記述がわかんなかったので、頓挫しました。

コールバックしたかったのは、DLLを使う人が楽をするためです

DLLがすぐ返事を返すならば、DLL内のファンクショを呼んで値を受け取るというのも有りなんですが
DLL側のデーターが準備完了するのが全く何時になるか分からないのでファンクションを呼んでしまうと
返ってくるまでメインの処理が待たされるので、それじゃあ、むこうから呼んでもらっちゃおうと言うわけです。
(マルチスレッドにしろというのは、ちょっと置いといてくださいねw)

ポーリングという手もありますが、DLLを使って楽をしようとしてる人に
ポーリングしてね、なんて言ったら、面倒がるだろうなと思うわけです
スマートさにも欠けますしねw

今回の方法で、使う側は、数行の、おまじないコードをコピペしてやれば
初心者でも普段どおりの感覚で開発ができる状態になりましたので、めでたしめでたし・・・カナ?



710 :デフォルトの名無しさん:2010/07/14(水) 23:39:11
>>709
ちょっと意味がわからないんだが、マルチスレッドになってないってことは
DLL側のメソッドは値を返すまで制御を戻さないってことだろ。違うのか?

711 :デフォルトの名無しさん:2010/07/14(水) 23:58:49
>>709
だから、何かの処理が完了した時にそれを通知して欲しい、と。
そういうことでしょ?

だったらやっぱりイベントを使った方がいいよ。せっかくある仕組みなんだから。
DLLってのはクラスライブラリのアセンブリって意味だと思うけど、
それがなんでイベントを避ける理由になるんだ?

同じプロジェクト内でイベントを使うのと何も変わらないよ。

712 :デフォルトの名無しさん:2010/07/15(木) 00:25:27
>>708
ttp://msdn.microsoft.com/ja-jp/library/ms160064.aspx

10秒以下は設定できないみたいね
しかもなんか操作してないとカウントダウンしないらしいw

試してみたら、ほったらかしとくと1分くらいかかった


アイコンがちょっとちらつくけどvisibleを false にしてすぐtrueにしてやるとすぐ消せるね
タイマーで切り替えてやったらいいんじゃないかな
アイコンも消えてよいなら、showするときにturuにして消すときにfalseでmでいいかも



713 :デフォルトの名無しさん:2010/07/15(木) 00:47:40
>>710
>>711

>>DLL側のメソッドは値を返すまで制御を戻さないってことだろ。違うのか?

DLLからこちらのメソッドを呼び出してもらう感じです
DLL側には外部とのインターフェイスが実装されていて
こちら側にメインの処理があります

そのメインの処理を開発するために
めんどくさいインターフェイス処理をDLLにして提供し楽をしてもらおうという考えなのですが
もしかしたら考えすぎというオチかもですねw

で、余力のある人は勝手にマルチスレッドにして並行処理してもらってハイパフォーマンスなものを目指してもらい
そうでない人は難しいことを考えなくても普通にコーディングすりゃ、とりあえずできちゃいますよと言う感じです




>>それがなんでイベントを避ける理由になるんだ?

べつに避けてるわけじゃなくて、イベントでいいんですけど
イロイロと良く分からなかったので、成功しなかったと(汗・・・・
そんだけですw





714 :708:2010/07/15(木) 01:06:04
>>712
レスありがとうございます。
テストしたところ、チラツキはそれほど気にならないので
「タイマー+visible」案でやってみます。

715 :デフォルトの名無しさん:2010/07/15(木) 11:24:52
WebBrowserコントロールを使用した独自ブラウザを作成しているのですが、
これを使用して、以下の処理を行おうとしているのですが、

  【A画面】文字列入力 > 実行 > 【B画面】結果表示

【B画面】ではリファラを取得する事が出来ません。

そこで、調べてみたところ以下の記事が見つかったのですが(リファラの送信はできない)
http://vsug.jp/tabid/63/forumid/72/threadid/8050/scope/posts/Default.aspx
何か良い解決策はありませんでしょうか?

716 :デフォルトの名無しさん:2010/07/15(木) 15:47:19
デリゲートわかるのにイベントわからないとか意味不明
それと、きちんと意識して作ってない限り並列処理には絶対に対応できない

717 :デフォルトの名無しさん:2010/07/15(木) 18:18:12
>>715
の質問に誰か答えてやれや

718 :デフォルトの名無しさん:2010/07/15(木) 18:25:00
ブラウザコントロールは飽きた

719 :デフォルトの名無しさん:2010/07/15(木) 19:41:52
Formの左上に出てるアイコンだけを消したいんだけどそういうプロパティは無いですよね
コントロールボックスをfalseにすると右上も消えちゃうしなー

720 :デフォルトの名無しさん:2010/07/15(木) 19:59:52
>>719

http://dobon.net/vb/dotnet/form/maximizebox.html
>NET Framework 2.0からは、Form.ShowIconプロパティにより、
>コントロールボックス(キャプションバーのアイコン)だけを非表示にできます。


721 :デフォルトの名無しさん:2010/07/15(木) 20:37:55
>>720
ありがてぇありがてぇ!

722 :デフォルトの名無しさん:2010/07/15(木) 21:39:41
>>715
その記事にある4番目の引数にリファラセットして試してみたら普通に送れちゃったけど?



723 :デフォルトの名無しさん:2010/07/15(木) 22:20:59
>>722
すみませんがコードをおみせ頂けませんでしょうか?
私の方でコードを書くと、なぜかエラーが出ちゃいます。

また、>>715の記事は嘘という事でしょうか?

724 :デフォルトの名無しさん:2010/07/15(木) 22:33:53
>>723ですが出来ました。 >>722さんどうもありがとうございました。

725 :デフォルトの名無しさん:2010/07/15(木) 22:43:21
>>723
ほい

Dim a() As Byte
webBrowser1.Navigate("http://www.plustar.jp/lab/env.php", "", a, "Referer: http://hogehoge.com/test.html")

記事が嘘というか、質問者と回答者がかみ合ってないっぽい

その回答者が言ってるのはHTTPプロトコルのお約束の話で
プログラム上の話じゃないのよ



726 :デフォルトの名無しさん:2010/07/15(木) 23:18:46
>>725
ご丁寧にどうもありがとうございます。

因みに WebBrowser コントロールを使用した時にセッションやクッキーが残る様なのですが
全て削除(初期化)するにはどうすれば良いでしょうか?

次のコードをを記述したところ同一Window内で同一WEBページを開き,
同一処理を再び行おうとすると画面が白くなってしまいます。

WebBrowser1 = New WebBrowser()

727 :デフォルトの名無しさん:2010/07/16(金) 01:27:52
>>726
WebBrowser コントロール自体はじめて触ったので、そこらへんは、わかんね〜
ほかの人のレスに期待しておくれ(汗

728 :デフォルトの名無しさん:2010/07/16(金) 02:10:39
>>727
りょーかいです。

729 :デフォルトの名無しさん:2010/07/16(金) 11:48:02
InternetSetCookieで消せばいいよ

730 :デフォルトの名無しさん:2010/07/16(金) 12:34:16
>>729
Code  Please

731 :デフォルトの名無しさん:2010/07/16(金) 13:16:28
ほい
Public Declare Function InternetSetCookie Lib "wininet.dll" _
Alias "InternetSetCookieA" _
(ByVal lpszUrlName As String, _
ByVal lpszCookieName As String, _
ByVal lpszCookieData As String) As Boolean


732 :デフォルトの名無しさん:2010/07/16(金) 14:52:27
>>731
THAN YOU VERY MATTYO

733 :デフォルトの名無しさん:2010/07/16(金) 16:43:33
VB2008です。
Form1で、FormBorderStyleをSizable、TransparencyKeyとBackColorを同じ色にしてフォーム内部だけを透過させているのですが、
実行してからフォームのサイズを変更させると、タイトルバーまで透過しているかのような振る舞いになってしまいます。
(タイトルバーは表示されているのに、タイトルバーをクリックするとその下(デスクトップなど)がクリックされる。
よってフォームの移動もできなくなる。)

フォームの右下や左下をつかんでサイズ変更する場合はなりませんが、
右上や左上をつかんでサイズ変更すると百発百中でなります。解決方法などありませんでしょうか?


734 :デフォルトの名無しさん:2010/07/16(金) 16:47:54
>>733
俺のコードだとならんよ

735 :デフォルトの名無しさん:2010/07/16(金) 16:50:46
変数宣言

Try
  上で宣言した変数をインスタンス化
Catch
  
Finally
  ここで変数を安全に閉じたい
End Try

Finallyでインスタンス化されてるか調べればいいと思うんだけど、どうやるんですかね?

736 :デフォルトの名無しさん:2010/07/16(金) 16:59:45
if obj is nothing then
 obj.close
end if

737 :733:2010/07/16(金) 17:00:47
何か一回すべてプロジェクトを削除して改めて作り直したら解決しました。
原因は分かりませんが・・・。

あともう一つ質問があるのですが、フォーム内部の座標を取得する方法ってありますかね?
普通に取得するとタイトルバーとフォーム枠分が余計なので・・・。

738 :デフォルトの名無しさん:2010/07/16(金) 17:21:22
>>736
その時点で
変数 'stw' は、値が割り当てられる前に使用されています。Null 参照の例外が実行時に発生する可能性があります。
の警告が出るんです

739 :デフォルトの名無しさん:2010/07/16(金) 17:24:00
じゃあfinallyの中でもう一回try ctachすればいいじゃまいか

740 :デフォルトの名無しさん:2010/07/16(金) 17:29:19
インスタンス化されてないから結局警告は出るんですけど・・・

741 :デフォルトの名無しさん:2010/07/16(金) 17:34:09
変数宣言の所で
Dim obj as XXX = Nothing
みたいにしちゃダメなんだっけ?

742 :デフォルトの名無しさん:2010/07/16(金) 17:38:48
>>741
それだ!
超愛してる

743 :デフォルトの名無しさん:2010/07/16(金) 17:45:53
>>740
インスタンス化が実行時に失敗するのってどういう場合?

744 :デフォルトの名無しさん:2010/07/16(金) 17:53:50
コンストラクタで例外、とか

745 :デフォルトの名無しさん:2010/07/16(金) 18:25:04

なるほど〜

746 :デフォルトの名無しさん:2010/07/16(金) 18:30:41
>>737です。
わかりやすく説明します。

ウィンドウ内部を透過させてその表示範囲をキャプチャするソフトを作りたいのですが、

Dim xposition As Integer = Me.Location.X
Dim yposition As Integer = Me.Location.Y

Dim bmp As New Bitmap(Me.Bounds.Width, Me.Bounds.Height, PixelFormat.Format32bppArgb)
Using g As Graphics = Graphics.FromImage(bmp)
g.CopyFromScreen(xposition, yposition, 0, 0, Me.Size, CopyPixelOperation.SourceCopy)
End Using

(xposition,ypositionは事前に指定済み)
上記コードのようにするとウィンドウのタイトルバーやフレームもキャプチャされてしまいます。
これらを除外してキャプチャする、または除外した座標を取得する方法はありますか?

747 :デフォルトの名無しさん:2010/07/16(金) 18:31:36
>>746
そんなソフト既にあるしお前の作ったソフトなんて
誰もつかいたくねーからあきらめろ

748 :デフォルトの名無しさん:2010/07/16(金) 18:31:53
>>746
(xposition,ypositionは事前に指定済み)
の一文は余計でした・・・。すみません。

749 :デフォルトの名無しさん:2010/07/16(金) 18:32:04
CreateRectangle

750 :デフォルトの名無しさん:2010/07/16(金) 18:32:58
なんか無意識に変なの書いた
ClientRectangle

751 :デフォルトの名無しさん:2010/07/16(金) 18:38:54
>>750
それでやってたんですけど、Me.ClientRectangle.Location.XとY のようにしても
デスクトップに左上だけがキャプチャされる、つまり 0,0 となってしまうんですよね・・・。

752 :デフォルトの名無しさん:2010/07/16(金) 18:44:25
いちどデバッガでブレークしてどのプロパティにどんな値が入ってるか確認すればいいよ

753 :デフォルトの名無しさん:2010/07/16(金) 18:52:10
あー、もうわからん。あきらめます。
アドバイスしてくれた方、ありがとうございました。

754 :デフォルトの名無しさん:2010/07/16(金) 19:30:19
こんな感じじゃないの。間違ってたらごめんよ。

Dim formRect As Rectangle = Me.Bounds
Dim clientRect As Rectangle = Me.ClientRectangle
Dim captureRect As New Rectangle( _
(formRect.Width - clientRect.Width) / 2, _
((formRect.Height - clientRect.Height) / 2) + SystemInformation.CaptionHeight, _
clientRect.Width, clientRect.Height)


755 :デフォルトの名無しさん:2010/07/16(金) 22:17:55
今見たら間違えてたわ

Dim formRect As Rectangle = Me.Bounds
Dim clientRect As Rectangle = Me.ClientRectangle
Dim captureRect As New Rectangle( _
(formRect.Width - clientRect.Width) / 2, _
((formRect.Height - clientRect.Height - SystemInformation.CaptionHeight) / 2) + SystemInformation.CaptionHeight, _
clientRect.Width, clientRect.Height)


756 :デフォルトの名無しさん:2010/07/16(金) 22:46:23
Control.RectangleToScreen使えば良いんじゃないの?

757 :デフォルトの名無しさん:2010/07/17(土) 10:14:55
>>755
サンプルまで書いていただきありがとうございます。
コード消してたんで改めて試してみたんですが、それは
g.CopyFromScreen(captureRect.X, captureRect.Y, 0, 0, Me.ClientSize, CopyPixelOperation.SourceCopy)
という感じで使うんですかね?

>>756
使い方がよく分かりませんでした・・・。

758 :757:2010/07/17(土) 10:41:39
>>757です。何度もすみません。
範囲なキャプチャの件については解決しましたが、透過させるとやはりウィンドウサイズ変更をしたときに
ウィンドウ枠まで透けているかのような振る舞い(実際には表示されているのに)になってしまいます。
透過させたらほかにこれを回避するためにすることとかあるんですかね?

759 :758:2010/07/17(土) 10:56:15
Windows の設定をクラシックスタイルにするとならないから、
どうもAero系が関係しているみたい・・・。

760 :デフォルトの名無しさん:2010/07/17(土) 18:14:52
>>759
それならプロジェクトのプロパティでXP Visualスタイルを有効にするのチェックをはずしてみたら?

761 :デフォルトの名無しさん:2010/07/18(日) 18:03:35
>>760
そうしても変わりませんでしたので、応急処置としてステータスバーをウィンドウにつけました。
枠からサイズ変更できなくても、ステータスバーの右下で大きさ変更ができますので・・・。

762 :デフォルトの名無しさん:2010/07/21(水) 00:30:06
DataGridView内の列数を取得するにはどういう記述をすれば良いでしょうか?

DataGridView.Columuns.Count とか使えないのですが

763 :デフォルトの名無しさん:2010/07/21(水) 00:33:05
タイミングによる
フォーム表示時ならLoad以降で

764 :デフォルトの名無しさん:2010/07/21(水) 01:48:17
>>763
ボタンクリックイベントでDataGridView内の値のチェックをしたい
のですが

DataGridView.Columuns.Count  

と記述すると文法エラーになります。

765 :デフォルトの名無しさん:2010/07/21(水) 02:13:17
>>764です。
自己解決しました。お騒がせしました。

766 :デフォルトの名無しさん:2010/07/21(水) 11:13:55
結果を書けと

767 :デフォルトの名無しさん:2010/07/21(水) 14:04:34
>>764 でOK

768 :デフォルトの名無しさん:2010/07/21(水) 18:04:55
原因を書けと

769 :デフォルトの名無しさん:2010/07/21(水) 18:35:57
ExcelのXLSファイルフォーマットを取り込む簡単な方法は無いでしょうか・・・。
言語はVB.netです。

770 :デフォルトの名無しさん:2010/07/21(水) 18:43:37
>>769
createobject

771 :デフォルトの名無しさん:2010/07/21(水) 19:05:58
>>770
ありがとうございます。

CreateObjectってこれVBScriptで使ったことがあるのですが、
考え方とか書式って全く同じですか?

772 :デフォルトの名無しさん:2010/07/21(水) 19:59:09
>>771
ほぼ同じ


773 :デフォルトの名無しさん:2010/07/21(水) 21:37:11
糞なぜかボンボンハウスに飛ばされる

774 :デフォルトの名無しさん:2010/07/23(金) 09:47:13
DBとWebの連携を行ったWebを作成せよ。
データベースはAccessを用いる。
会員管理・在庫管理・書籍管理などなど テーマは問わないがレコードの
「追加」「表示」「更新」「削除」ができること。
という課題が学校ででました。

どなたかできたらアップしていただけるでしょうか?
本当に今できなくて困っています。
データベースをアクセスで作りレコードの「追加」「表示」「更新」「削除」をVBで
できるだけでいいです。
VBAで新規で作る際はASP.NET webアプリーションで作成お願いします。
簡単なもので大丈夫です。
本当にできなくて困っているのでよろしくお願いします。
できたらプロジェクトファイルをzipでUPしていただけたらありがたいです。





775 :デフォルトの名無しさん:2010/07/23(金) 10:12:09
学校に行く意味がねぇ

776 :デフォルトの名無しさん:2010/07/23(金) 10:14:34
見積書出そうか?

777 :デフォルトの名無しさん:2010/07/23(金) 10:22:35
>>774
学校って何のためにあるかしってる?
高校の必須科目の情報Aとかで嫌々習っているものならまだしも、そのような高度な課題があると言うことは
将来そういう系の道に進みたくてそういう学校に行ってるわけだよね?
せめて指南程度をお願いするか、自分でググるなりする方が身のためかと・・・。
分からないのなら分かるようにならなければいけないわけで、課題が終わればいいというものではない・

778 :デフォルトの名無しさん:2010/07/23(金) 10:24:20
>>774
「なれる!SE―2週間でわかる?SE入門 (電撃文庫)」
読むべきだな


779 :デフォルトの名無しさん:2010/07/23(金) 10:29:44
実務的ではあるが高度ではないなw
やり方わかってりゃExcelで表作る程度のレベル

780 :デフォルトの名無しさん:2010/07/23(金) 10:36:24
少なくとも学校で何かしらやってるんだろ?
VisualStudioを買ってきたらコードレスで何かしらできることはできるだろ。
出来は知らんけど。

781 :デフォルトの名無しさん:2010/07/23(金) 10:38:53
VisualStudioは無料だぜ

782 :デフォルトの名無しさん:2010/07/23(金) 10:41:22
ExpressでやるならVBじゃなくてVWDが必要

783 :デフォルトの名無しさん:2010/07/23(金) 10:42:41
学校・・・、
学ぶために通ってるやつ1%
肩書きのために通ってるやつ5%
みんな通ってるから通ってるやつ94%


784 :デフォルトの名無しさん:2010/07/23(金) 10:49:32
とにかく落ちこぼれるべき人間はちゃんと落ちこぼれないとな


785 :デフォルトの名無しさん:2010/07/23(金) 10:49:47
教えてくれるような友達もいないならせめて勉強しろ

786 :デフォルトの名無しさん:2010/07/23(金) 10:58:47
>>774
そんな高度な事、上のやつらじゃ出来ない。出来たとしても糞コード

787 :デフォルトの名無しさん:2010/07/23(金) 11:00:34
いやコードなんか書かなくてもできるぞ

788 :デフォルトの名無しさん:2010/07/23(金) 11:19:03
夏の到来を実感

789 :デフォルトの名無しさん:2010/07/23(金) 11:21:11
できないから聞かないでよ。

790 :デフォルトの名無しさん:2010/07/23(金) 19:06:12
「ポイント位置の文字列取得」
http://mt-soft.sakura.ne.jp/web_dl/petit_tool/get_string/
の機能を持ったソフトを作りたいのですが、
ブラウザ内でJavaScriptによって表示された文字を文字列型として取得する方法が知りたいです。
ソースの表示を行っても、JavaScriptの命令が羅列しているだけで、
実際の画面に表示されている文字列が取得できませんでした。
マウスの右クリックでコピー&ペーストはできるのですが、必要な部分だけを繰り返し
コピー&ペーストするだけの作業なので、自動化させたいと思い・・・。

上記のソフト「ポイント位置の文字列取得」は、
どのように実現しているのか知りたいです。

どこか、参考になるサイトなどありましたらご教示頂けないでしょうか。

791 :デフォルトの名無しさん:2010/07/24(土) 09:40:15
>>790
http://mt-soft.sakura.ne.jp/mt/archives/2009/09/iaccessible.html

792 :デフォルトの名無しさん:2010/07/24(土) 11:57:36
>>791
ありがとうございます。まさに知りたかった方法です。
もう手がかりがなくて諦めていたのですが、一気に近づきました。

さらに欲を言うと、上記の方法では、
文字列を取得したい位置にマウスポインタを
持っていかなければなりませんが、
できれば、自動で文字列を取得したいため、
ブラウザウインドウ(あるいはJavaScriptで表示された小ウインドウ)内の位置を指定して
取得できたら良いのですが、そのようなことはできそうでしょうか。
そのためには、どの辺りを変えたらよいか、見当つきますでしょうか?

793 :デフォルトの名無しさん:2010/07/25(日) 22:45:02
©

794 :デフォルトの名無しさん:2010/07/27(火) 20:43:06
プロポーショナルフォントに関連する処理なんですが、
任意の1文字とフォント名・サイズを指定して、その文字のピクセル数を算出する方法を知りたいです。
フォームのラベルに文字を入れてその幅を調べるっていう方法だとスマートじゃないので
もしそれ以外の手段があれば・・・

795 :デフォルトの名無しさん:2010/07/27(火) 20:44:42
APIを使っても、似たようなやり方しかできないよ。

796 :デフォルトの名無しさん:2010/07/27(火) 21:12:53
MeasureString

797 :デフォルトの名無しさん:2010/07/27(火) 21:56:15
>>795
てっきりTextWidthがあると思っていたら無くて愕然とした・・・

↓ちょっと調べてみてこれで試してみたんですが余白のせいか大きめの数値が出てくる><

x = TextRenderer.MeasureText(Label1.Text, Label1.Font).Width
MsgBox(x)

798 :デフォルトの名無しさん:2010/07/29(木) 10:07:10
excelにデータを一括入力するプログラムを作ったんですが、実行中、Excel.exeのCPU使用率上がるのはわかるんですが、同じくらいexplorer.exeのCPU使用率が跳ね上がります。
あと、1500個ぐらいのxlsファイルを一括入力してるんですが、途中でCPUが休憩入るかのように止まってしまって、数十秒後また動き出す、といった現象が一回の処理中に2〜3度発生します。

これはこういうものなのでしょうか?

799 :デフォルトの名無しさん:2010/07/29(木) 12:01:39
スワップアウトしてんじゃね?

800 :デフォルトの名無しさん:2010/07/29(木) 15:19:43
SplitterPanel のSplitter上のマウスカーソルを別のものに変えたい。
通常だとSplit用の小さいカーソルになるので見づらい。これをOS上で
選択した普通のおおきな両矢印型のものに変更したい。どうすればできますか?


801 :デフォルトの名無しさん:2010/07/29(木) 16:45:40
>>800
http://penguinlab.jp/blog/post/115

802 :デフォルトの名無しさん:2010/07/30(金) 11:00:10
>>801
どうもです!参考にします。OSでサポートしていないカーソルに変える場合
その方法が必要なんですね。ところで、>>800ですが、継承した側で

Protected Overrides Sub OnCursorChanged(ByVal e As EventArgs)
 If Me.Cursor = Cursors.HSplit Then
  Me.Cursor = Cursors.SizeWE
 ElseIf Me.Cursor = Cursors.VSplit Then
  Me.Cursor = Cursors.SizeNS
 End If
 MyBase.OnCursorChanged(e)
End Sub

こんなことをしてみたのですが、ユーザーやプログラムで明示的に変更した
場合でないとこのイベントでは引っ掛けられなかった。SplitContainer の場合、
自動的にカーソルが変わるのでこの方法では対応できないもよう。

803 :デフォルトの名無しさん:2010/07/30(金) 11:15:33
>>802
FormLoad時に変えればいいだけじゃないの?

804 :デフォルトの名無しさん:2010/07/30(金) 19:57:55
If Me.Cursor = Cursors.HSplit て......

805 :デフォルトの名無しさん:2010/07/30(金) 20:40:23
>>802
っていうか、試してみるとSplitContainer1のマウスイベントが発生するのは
スプリッターの上だけのようだから、それを利用すれば簡単に出来るみたいだけど....

言っちゃ悪いけどこんなの人に質問する前に最初に確認することじゃないのか

806 :デフォルトの名無しさん:2010/07/31(土) 22:29:01
>>803-805
どうもです!ご指導を参考にいろいろやってみて解がわかりました。

初め、OnMouseMoveでわざわざ座標で分別してCursorを換えてやったんですが
どうも一回変わるとPanel1上でもPanel2上でもデフォルトに戻らずよく分からなくなって
こんがらがっていました。みなさんのご指導を見て、そうかと思って試しにOnMouseLeaveで
デフォルトに戻すことで解決しました。結局、内部で位置を見て判別する必要もない、のですね。

>SplitContainer1のマウスイベントが発生するのはスプリッターの上だけ

ご教示大変ありがとうございました!

807 :デフォルトの名無しさん:2010/08/01(日) 01:39:02
マルチページTiff作るプログラム作ったんだが、
XPでは動くけどWindows7では動かない!
プロジェクトごとうpしたからおまいらの環境で動くか教えてくれ

■動いた環境
WindowsXP Professional SP3 + VisualStudio2005 + WindowsUpdateで入れた.NET4.0

■動かない環境
Windows7 HomePremium 64bit + VisualBasic2010Express

■何が動かないか
・ G4圧縮するとファイルサイズの増え方から見て1枚目だけG4で、2枚目以降はG3圧縮っぽい
・ 作成したマルチページTiffを分割すると1枚目だけが枚数分作成される

■使い方
binフォルダの下のimgフォルダの中に適当にイメージを突っ込む
実行ファイルを起動してボタンを押すと同じ場所にイメージが作成される

.NETかGDIのバグなのかな・・・

http://www.uproda.net/down/uproda121190.zip.html

808 :デフォルトの名無しさん:2010/08/01(日) 03:54:17
分割時の処理の方だが、
BitmapのコンストラクタでImageを引数に渡した時、
Image.SelectActiveFrameで選択されているページの画像が保存される、
という前提条件自体が間違っていたんじゃないか?
XP以前のGDI+1.0とVista以降のGDI+1.1に微妙な違いがあるのかもな。

809 :デフォルトの名無しさん:2010/08/01(日) 04:36:26
ウェブ上のあるページに文字があればボタンを押すというプログラムを書きたいんですが
「ボタンを押す」はわかるんですが 「文字がページ上にあるか判断してあれば実行する なければ実行しない」の部分をどう書けばいいかわかりません
教えてください

810 :デフォルトの名無しさん:2010/08/01(日) 09:11:01
DOM舐める

811 :デフォルトの名無しさん:2010/08/01(日) 13:42:00
>>808
ありがとう。
でも外人のサンプルコードもSelectActiveFrame使ってた。
Microsoftの一次情報があればいいんだけどどこだかわからん。

System.Windows.Media.ImagingでもTiff作れるっぽいから試してみる。
それはそうとしてMicorosoftに通報したいんだけど、どうしたらいい?
VisualStudio担当社員のBlogにコメント付ければいいの?

812 :デフォルトの名無しさん:2010/08/01(日) 13:49:36
connectにスレ立てろ

813 :デフォルトの名無しさん:2010/08/01(日) 17:43:16
VS2010です。
テキストボックスに読み込んだ、

あああ いいい ううう えええ
かかか ききき くくく けけけ


ららら りりり るるる れれれ

というテキストファイルへ、ボタンを押すと

<b>あああ</b> <span>いいい</span> <p>ううう えええ</p>
<b>かかか</b> <span>ききき</span> <p>くくく けけけ</p>


<b>ららら</b> <span>りりり</span> <p>るるる れれれ</p>

のようにhtmlタグを挿入するにはどのようにやればいいでしょうか?

814 :デフォルトの名無しさん:2010/08/01(日) 17:57:11
分割とタグ付けのパターンが決まってるなら
一行ごとに、
 分割パターンに従ってsplit。
 分割後の配列に対して、順番に前後にパターンどおりのタグ(文字列)を付ける
を繰り返すだけじゃないの?

815 :デフォルトの名無しさん:2010/08/01(日) 19:33:23
>>814
ありがとうございます
splitで分割しようとしましたが、Delimiterに半角スペースを指定すると、3つ目の要素
ううう ええ え
など、区切りたくない場所まで分割されてしまうのですが、どうすればいいでしょう
余計なスペースが含まれるのは最後の3つ目の要素だけなのですが…

816 :デフォルトの名無しさん:2010/08/01(日) 19:38:33
分割する時はスペースで区切って
タグ付ける時に文字の3個目と4個目を結合して間に半角スペース入れればいいじゃない

817 :デフォルトの名無しさん:2010/08/01(日) 19:40:31
そもそもSplitは分割数の最大数が指定できるだろ。

818 :デフォルトの名無しさん:2010/08/01(日) 20:02:06
>>816-817
なるほど!ありがとうございます


819 :デフォルトの名無しさん:2010/08/01(日) 22:09:47
Excelファイル(.xls)に、excelを使わずにdatasetの中身を書き込む方法が分かりません。
xls→datasetへの読み込みだけなら幾つも情報があるんですが、その逆の情報が見あたらず…
ADO.NET等を利用しての書き込みの方法はないんでしょうか?

820 :デフォルトの名無しさん:2010/08/01(日) 22:56:57
npoiは?

821 :デフォルトの名無しさん:2010/08/02(月) 08:21:54
データ吐くだけならcsvでいいんじゃないの

822 :デフォルトの名無しさん:2010/08/02(月) 15:38:27
java経由で互換Officeソフトという手も
あ中身はpoiか

823 :デフォルトの名無しさん:2010/08/02(月) 15:48:53
CreateObjectでXLSを読み書きしようとしても、
Excelが入って無い環境では動かないとか?

って、それOLEの勘違い?

824 :デフォルトの名無しさん:2010/08/02(月) 23:06:15
■Visual Basic .NET と ADO.NET を使用して Excel ブックのレコードの取得と変更を行う方法
http://support.microsoft.com/kb/316934/ja

こうゆう事なんじゃないかな?

825 :デフォルトの名無しさん:2010/08/02(月) 23:43:58
おかげ様で>>813の処理は出来るようになったのですが、
数百行の長いテキストを読み込むとハングアップしてしまいます。

解決手段にはどのような方法があるでしょうか?

826 :デフォルトの名無しさん:2010/08/02(月) 23:55:27
>>825
1行ずつ読んで処理する

827 :デフォルトの名無しさん:2010/08/03(火) 00:05:10
大雑把でいいから、今書いたプログラムの処理内容。もしくはコードをあげれ。

828 :デフォルトの名無しさん:2010/08/03(火) 00:18:12
>>827
プログラミングは昨日始めたばかりで、すごく恥ずかしいコードだと思いますがお願いします
ループ部分です
Dim Spt() As String
Dim ResultText2 As String = ""
For j As Integer = 1 To RichTextBox1.Lines.Length - 2
Spt = Split(RichTextBox1.Lines(j), " ", 5)
Dim lines As String() = Spt.Clone
For i As Integer = 0 To 0
lines(i) = String.Format("hidari1{1}migi1", i + 1, lines(i))
Next
For i As Integer = 1 To 1
lines(i) = String.Format("hidari2{1}migi2", i + 1, lines(i))
Next
For i As Integer = 2 To 2
lines(i) = String.Format("hidari3{1}migi3", i + 1, lines(i))
Next
For i As Integer = 3 To 3
lines(i) = String.Format("hidari4{1}migi4", i + 1, lines(i))
Next
For i As Integer = 4 To 4
lines(i) = String.Format("hidari5{1}migi5", i + 1, lines(i))
Next
Dim liness As String = String.Join(" ", lines)
liness = String.Format("hidari{1}migi", j, liness)
ResultText2 += liness + ControlChars.CrLf
RichTextBox2.Text = ResultText2
System.Threading.Thread.Sleep(10)
Next

829 :デフォルトの名無しさん:2010/08/03(火) 00:29:26
すみません
よく考えたらfor x5個が要らないことに気づいて消しましたがまだ大きいテキストだとハングアップしました

Dim Spt() As String
Dim ResultText2 As String = ""
For j As Integer = 1 To RichTextBox1.Lines.Length - 2
Spt = Split(RichTextBox1.Lines(j), " ", 5)
Dim lines As String() = Spt.Clone
lines(0) = String.Format("hidari1{1}migi1", 1, lines(0))
lines(1) = String.Format("hidari2{1}migi2", 2, lines(1))
lines(2) = String.Format("hidari3{1}migi3", 3, lines(2))
lines(3) = String.Format("hidari4{1}migi4", 4, lines(3))
lines(4) = String.Format("hidari5{1}migi5", 5, lines(4))
Dim liness As String = String.Join(" ", lines)
liness = String.Format("hidari{1}migi", j, liness)
ResultText2 += liness + ControlChars.CrLf
RichTextBox2.Text = ResultText2
System.Threading.Thread.Sleep(10)
Next

830 :デフォルトの名無しさん:2010/08/03(火) 00:51:36
http://dobon.net/vb/dotnet/string/stringbuilder.html
StringBuilderをつかってみる。

831 :819:2010/08/03(火) 00:53:18
>>820
npoiの存在を初めて知りました…これなら実現可能みたいですね。
とりあえずこれを使ってみようと思います。

>>821
csvファイルでも良いんですが、同じくADO.NETを使っての読み込みぐらいしか情報が見あたらなかったので…。

>>822
中身がpoi、と言うことですが、javaはさほど扱えるわけでもないのでnpoiで代用しようと思います。

>>823
まさしくその通りです。自分の環境にもexcelを入れてないので、何とかそれ以外の方法で書き込みがしたかったのです。

>>824
一度それも試したんですが、指示通りに設定してもパラメーターが足りない、と言われて全く動きませんでした。
恐らくは自分の理解不足なのでしょうが。とりあえずnpoiでいってみようと思います。


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

832 :デフォルトの名無しさん:2010/08/03(火) 01:13:02
>>829はきっと、説明書も読まずに自爆ボタンとか押しちゃうタイプだな

Linesプロパティは呼ぶたびにコピー(分割)される
O(N^2)とか発散して当然じゃないか

833 :デフォルトの名無しさん:2010/08/03(火) 08:43:21
>>829
System.Threading.Thread.Sleep(10)
これはなぜだ?

834 :デフォルトの名無しさん:2010/08/03(火) 10:11:32
おおかた
CPUが100%に張り付いてしまうからです
とかだろうよ

835 :デフォルトの名無しさん:2010/08/03(火) 16:42:14
半透明の合成を行った画像をPictureBox1に表示しているのですが、
Disposeしても元ファイルが削除できません。
どのようにすれば削除できるようになるのか教えてください。

サンプル)
・フォームにPictureBox1、Button1、Button2を貼付け、画像(tmp1.png,tmp2.png)を準備
・コード
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
'合成パターン)Disposeしてもtmp2.pngが削除できない
Dim SourceImage As Image = Image.FromFile(System.Windows.Forms.Application.StartupPath & "\tmp1.png")
Dim DestImage As Image = Image.FromFile(System.Windows.Forms.Application.StartupPath & "\tmp2.png")
Dim g As Graphics = Graphics.FromImage(DestImage)
Dim Attr As New Imaging.ImageAttributes
Dim M As New Imaging.ColorMatrix
M.Matrix00 = 1.0F
M.Matrix11 = 1.0F
M.Matrix22 = 1.0F
M.Matrix33 = 0.5F
M.Matrix44 = 1.0F
Attr.SetColorMatrix(M)
g.DrawImage(SourceImage, New Rectangle(New Point, SourceImage.Size), 0, 0, SourceImage.Width, SourceImage.Height, GraphicsUnit.Pixel, Attr)
PictureBox1.Image = DestImage
SourceImage.Dispose()

'単一パターン)Disposeすればtmp1.pngの削除可
'PictureBox1.Image = System.Drawing.Image.FromFile(System.Windows.Forms.Application.StartupPath & "\tmp1.png")
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
PictureBox1.Image.Dispose()
End Sub

836 :835:2010/08/03(火) 16:44:59
ちなみにVS2008PRO、.NET Framework3.5です。

837 :デフォルトの名無しさん:2010/08/03(火) 17:22:16
FileStreamおよびImage.FromStreamを使ってImageオブジェクトを作成するImageオブジェクト作成直後にFileStreamを閉じればOK

838 :835:2010/08/03(火) 17:33:55
>>837
無事、削除できました。
ありがとうございました。

839 :デフォルトの名無しさん:2010/08/03(火) 19:03:51
http://pc12.2ch.net/test/read.cgi/tech/1099112351/952
マルチすみません
勢い的にこちらが本スレかと思い質問です

今、VB2010でTIFファイルの印刷プログラムを作ろうとしているド素人なのですが
VB上から、TIFに関連付けられたアプリを使用して印刷する方法が分からず座礁しています
グーグル先生に聞いてみた所、ShellExecuteというコマンドを使用すれば出来るとの事だったのですが
無料のVB使ってるせいなのか分かりませんがうちの環境ではエラーになってしまいます
他に何か実現できる関数やコマンドがあったりするのでしょうか?

840 :デフォルトの名無しさん:2010/08/03(火) 19:13:55
Process.Start でいいよ

841 :デフォルトの名無しさん:2010/08/03(火) 19:42:59
>>840
ありがとうございます!そのコマンドでアプリ呼び出しまで確認できました
次はプリントする方法についてグーグル先生と相談しつつ調べてきます
再び座礁したら、すみませんがまたこちらで質問させてください。。

842 :デフォルトの名無しさん:2010/08/03(火) 21:19:13
ネットで
Dim startInfo As New ProcessStartInfo
With startInfo
.FileName = "..\" & FAX
.Verb = "print"
.CreateNoWindow = True
End With
Process.Start(startInfo)

というのを意味分からずパクってみたら上手く印刷できました
ありがとうございました

843 :デフォルトの名無しさん:2010/08/04(水) 01:36:16
Paintイベントについて質問です。
フォームアプリを作成し、実行するとForm_Loadイベント後の
Paintイベントが1回ではなくランダムにN回発生します。
Paintイベントで描画処理を行っているため、
1回のみPaintイベントが発生するのが理想なのですが、
ランダムなのは仕方ないことなのでしょうか?
Paintイベント内をSuspendLayout()〜ResumeLayout(False)で挟んでは
居るのですが、チラツキが気になっています。

844 :843:2010/08/04(水) 01:47:08
自己レスですが、
とりあえずPrivate変数を持たせて、初回Paint時のみ処理が走るようにしたところ
かなりチラツキが軽減されました。

845 :デフォルトの名無しさん:2010/08/04(水) 05:49:46
夏だなあ…

846 :デフォルトの名無しさん:2010/08/04(水) 07:12:15
体系立てて勉強しないからそういう行き当たりばったりな対応になるんだろうなぁ
夏だなぁ・・・

847 :デフォルトの名無しさん:2010/08/04(水) 08:43:08
三流のよくわからない情報系の大学を出て、
教育がOJTとか書いてる会社に就職してしまうとそんな感じになる。

848 :デフォルトの名無しさん:2010/08/04(水) 09:25:18
だったら素直に補正してやればイイのに、
ネチネチした暑苦しいやつが多いな

849 :デフォルトの名無しさん:2010/08/04(水) 09:48:08
>>848
回答ほしいからってそう煽るなよwww

850 :デフォルトの名無しさん:2010/08/04(水) 10:10:31
>>848
夏休みが終われば、仕事の傍らで2chやってる職業プログラマが回答してくれるさ。
夏休みの間は無理だ。この手のスレはみんな終わってる。

224 KB
■ このスレッドは過去ログ倉庫に格納されています

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)