VB.NET質問スレ (Part15)

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
スレタイトルの通りのスレッドである。
過去ログのリンクは事実上無意味だから省略。

【前スレ】
http://pc8.2ch.net/test/read.cgi/tech/1138670182/
2デフォルトの名無しさん:2006/03/29(水) 20:30:53
3デフォルトの名無しさん:2006/03/29(水) 20:33:39
どぼん!のVB道のトップページとTipsページ
http://dobon.net/vb/
http://dobon.net/vb/dotnet/index.html
Microsoftクイック スタート チュートリアル
http://ja.gotdotnet.com/quickstart/default.aspx
Insider.NET
http://www.atmarkit.co.jp/fdotnet/index.html
宇宙仮面の C# プログラミング
http://ukamen.hp.infoseek.co.jp/
.NET のつぼ
http://park16.wakwak.com/~mimi/dotnet/top.html
.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
C#プログラミングTips
http://www.atmarkit.co.jp/fdotnet/csharptips/index/csharptips_index.html
CodeProject
http://www.codeproject.com/vb/net/
4デフォルトの名無しさん:2006/03/29(水) 20:36:33
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.geocities.co.jp/SiliconValley-Cupertino/5872/
Windows Api programming in C# , VB.NET, and VB6. Examples of P/Invoke and DllImport with Source code
http://custom.programming-in.net/
5デフォルトの名無しさん:2006/03/29(水) 20:39:58
6デフォルトの名無しさん:2006/03/29(水) 20:51:27
>前スレの999と1000(http://pc8.2ch.net/test/read.cgi/tech/1138670182/999-1000



>周波数成分に分解して各周波数成分ごとにレベルの和を取り、また合成しなおすんだよ
わかってないね。そんなことはする必要はない。
じゃあ聞くが、アナログのミキサーがそんなことしてるかい?
そんなことしたら位相が回っちゃうじゃないか。

まあ多分ちょうど位相が180度ずれた波形を足したら音量0になってしまうじゃないか、
とか思ってるんだろうけどそれでいいんだよ。
こんなの電気系の大学出てなくても、高校物理の「重ね合わせの原理」で
理解できるでしょ。

単純に足し算するだけでいいんだよ。
7デフォルトの名無しさん:2006/03/29(水) 20:58:07
あと足して2で割るって言った人。
電圧次元で2で割ったらエネルギーレベルでは1/4に低下することになるわけだが、
そんなことに意味があるのかい?

エネルギーレベルで1/2にする、ってのはなら意味はないとまではいえないかもしれないけど。
この場合は電圧次元で1/√2にしなきゃだめでしょ。
P = E^2/Rなんだから。
8最凶VB厨房:2006/03/30(木) 00:31:10
P=E^2/R

の式でPは仕事、Rは抵抗、Eは電圧でいいの?
9デフォルトの名無しさん:2006/03/30(木) 00:40:04
スレ違いだが仕事率、ね。
つーか知ってるくせにとぼけちゃってw
10最凶VB厨房:2006/03/30(木) 00:50:59
あっ単位時間当たりが抜けてたか。
知ってるくせにって俺に対してのことか?
とぼけてねー!w しらねーよw

いやまじであまり知らんのだが、
Waveファイルとかの音声データって振幅のことなんよね?
>>6-7の言ってることは正しいような気がするが・・・
>>1000の言ってることが間違っているとも思えない・・・。
さてさてどうなんでしょ?生暖かく見守ります。
11デフォルトの名無しさん:2006/03/30(木) 02:10:34
普通基本はまず足すだけだろ…
レベル調整はまた別の話。
12デフォルトの名無しさん:2006/03/30(木) 10:35:02
VB2005Expressで、
文字列をURLエンコードしたくて、
System.Web.HttpUtilityクラス使おうとしたんだけど、
コードエディタでSystem.Web.まで入力しても、
インテリセンスの提示する候補の中に
HttpUtilityがない、どころか、
AspNetHostingPermission
AspNetHostingPermissionAttribute
AspNetHostingPermissionLevel
の三つしか存在しない
どうすればいいの?
13デフォルトの名無しさん:2006/03/30(木) 10:40:30
必要なDLLを参照に追加すれ
何が必要なのかオウム返しする前にMSDN調べろよ?
14デフォルトの名無しさん:2006/03/30(木) 10:42:31
投稿した直後に気付きました。
プロジェクト→参照の追加から追加しました。
ありがとうございました。
15デフォルトの名無しさん:2006/03/31(金) 07:36:20
2005ってデザイン時のフォームにグリッド表示
できないのでしょうかね?
16デフォルトの名無しさん:2006/03/31(金) 09:24:09
>>15
できる。
オプションを全て開いてきちんと見る。
17デフォルトの名無しさん:2006/03/31(金) 12:26:16
誰か解決方法知っている人いましたら、教えてください。

Ctrl + shift + F
で出てくる『ファイル内の検索』ウインドウの
検索対象の入力欄には、通常、
 すべての開かれているドキュメント
 ソリューション全体
 現在のプロジェクト
など候補がありますが、先日、間違えて、その入力欄に検索したい文字列そのものを
書き込んで検索ボタンを押してしまったら、
その後、その検索対象の入力欄に、私が間違えて入力した文字列が、候補として追加されて
しまったようで、いつも出てきます。
これを消す方法を知りたいのですが。
よろしく
18デフォルトの名無しさん:2006/03/31(金) 13:13:28
よっぽど恥ずかしいことを書いたのか・・・。w
仕事場で人格否定されるようなことを他のWindowのTextに書いたつもりで、VSの検索窓に。w
19デフォルトの名無しさん:2006/03/31(金) 14:01:25
>>17
2005ならHKEY_CURRENT_USER\Software\Microsoft\VisualStudio\8.0\Find
のQueryなんちゃらを消せばOK
20デフォルトの名無しさん:2006/03/31(金) 14:42:09
>19
ありがとうございました。
2週間くらい未解決だったのが、おかげさまで一発で解決しました。
これで、プログラム開発に専念できます。
21デフォルトの名無しさん:2006/04/02(日) 00:19:39
2005で質問です

メニューの項目にDELキーのショートカットを付け、
ListViewにラベルの編集を許可した場合、
ラベルの編集中にDELキーを押すと、
ラベルの文字を消さずにメニューのイベントが発生するんですが、
これってこういうモノなんですか?
2221:2006/04/02(日) 00:22:38
書き忘れましたが、メニューは、MenuStripです
23デフォルトの名無しさん:2006/04/02(日) 00:24:28
そういうもんだな
2421:2006/04/02(日) 00:31:37
VB6のソフトを移植してるんですが、VB6ではそんなこと起こらないです。。。
25デフォルトの名無しさん:2006/04/02(日) 01:46:12
WebBrowserコントロールで任意の文字列(テキストリンク等)を
クリックさせるにはどうしたら良いでしょうか?

getElementsByTagName("A").Item(0).Click()
ではなく直接リンク文字列をクリックさせたいのですが

vbのヴァージョンはvb2005です
26デフォルトの名無しさん:2006/04/02(日) 02:07:38
意味が分からん。文字列のクリック?
A 要素のクリックと何が違うんだ?
27デフォルトの名無しさん:2006/04/02(日) 02:20:31
ええと
WebBrowserコントロールに表示されたページ内で
任意の文字列を検索してクリックさせたいんです
28デフォルトの名無しさん:2006/04/02(日) 03:24:43
文字列をクリックする、でどんな結果を期待してるんだ?
複数の要素にまたがってたらどうするんだ?
29デフォルトの名無しさん:2006/04/02(日) 14:40:54
質問です。
データベースを使ったのプログラムを作ってるんですが(今回はAccess)、
ループをしているときにレコードが無くなったらループを抜ける方法がわかりません。
見苦しいコードですが、ご教授お願いします。(改行が多いと書き込めないので詰めてあります・・・)


Dim oleCn As New OleDb.OleDbConnection
Dim oleCmd As OleDb.OleDbCommand
Dim oleReader As OleDb.OleDbDataReader
    Dim str1 As String
'** 接続文字列を生成
oleCn.ConnectionString = _
"provider = Microsoft.Jet.OLEDB.4.0;" & _
"Data Source = Access.mdb;" & _
"Persist Security Info = false "
'** 接続
oleCn.Open()
'** SQLコマンド
oleCmd = New OleDb.OleDbCommand("SELECT aaa , iii , From uuu ", oleCn)
oleReader = oleCmd.ExecuteReader()
    '** ↓レコードが無くなったらループを抜ける条件が知りたい
Do Until [条件]
[処理]
str1 = oleReader("aaa")
      '** str1とoleReader("aaa")が違ったら抜ける
Do Until oleReader("aaa") <> str1
    [処理]
    '** 次のレコードに移動
    oleReader.Read()
Loop
      [処理]
Loop
30デフォルトの名無しさん:2006/04/02(日) 14:57:06
OleDbDataReader のドキュメントにサンプルがある
31デフォルトの名無しさん:2006/04/02(日) 15:35:38
>>30
早速調べて試します。
ありがとうございます。
32デフォルトの名無しさん:2006/04/02(日) 15:42:27
こちらが本スレのようなのでもう1度質問させてもらいます。

DataGridでデータ入力をしています。
エラーのチェックをRowChangingイベントで行っていますが
メッセージボックスを出そうとすると、「インデックスnに値がありません」
(nは不特定)というメッセージが出て、DataGridにでかい×印がつきます。

みなさんのところもそうですか?
33デフォルトの名無しさん:2006/04/02(日) 16:10:39
新規行作成したときに発生した RowChanging 中に再描画が実行されると駄目。
34前スレ983:2006/04/02(日) 16:36:15
waveファイルのミキシングについて質問した者です。
その後も色々と調べていたんですが、結果的には >6さんの考え方で
ミキシング出来ました。

レス頂いた方々ありがとうございました。
35デフォルトの名無しさん:2006/04/02(日) 18:20:29
XMLのシリアライズってインタフェースはできないですよね。
諦めてDMOを使ったほうがいいのでしょうか。
36デフォルトの名無しさん:2006/04/02(日) 18:33:53
というかインターフェイスを永続化って発想が狂ってないか?
37デフォルトの名無しさん:2006/04/02(日) 18:37:46
いや、継承したクラスですが。
メンバにあるインタフェースを持つようなクラスをシリアライズって変ですか?
インタフェースとの間にMustInheritでクラスかませばできるようですが、
それも何か変な気がする。。。
38デフォルトの名無しさん:2006/04/02(日) 19:13:06
それともインタフェースで振る舞いを持つようなものをシリアライズってのが間違い?
XMLの設定ファイルに動作方法を定義して、
起動時に読み込んで初期化という物なのですが。

DMO > DOMでした
39デフォルトの名無しさん:2006/04/02(日) 19:58:59
すいません、>>29さんのついでで教えてください。
レコードが無い場合は[処理]をするといった事をしたいのですが
レコードがない場合の条件式を教えてください。
----------------------------------
VB6では If rs.EOF then
[処理]
end if
----------------------------------
を.NETではどう記述すればよいのですか?
40デフォルトの名無しさん:2006/04/02(日) 20:11:52
>>38
インターフェイスはあくまでインターフェイスで実体は分からないという前提な訳だから、
それとシリアライズとはかみ合わないと言うか。
インターフェイスをメンバに持つようなオブジェクトは抽象化されてて形にできない、と言うのかな。
XmlIgnore属性で無視するか、
IXmlSerializable を実装するか……こいつは大変だが。

>>39
どうやってそのレコードとやらを取得したんだ?
4139:2006/04/02(日) 20:18:55
>>40さん

>>29さんと同じです。
↓は>>29さんのコピーです。

Dim oleCn As New OleDb.OleDbConnection
Dim oleCmd As OleDb.OleDbCommand
Dim oleReader As OleDb.OleDbDataReader
Dim str1 As String
'** 接続文字列を生成
oleCn.ConnectionString = _
"provider = Microsoft.Jet.OLEDB.4.0;" & _
"Data Source = Access.mdb;" & _
"Persist Security Info = false "
'** 接続
oleCn.Open()
'** SQLコマンド
oleCmd = New OleDb.OleDbCommand("SELECT aaa , iii , From uuu ", oleCn)
oleReader = oleCmd.ExecuteReader()

よろしくお願いします。
42デフォルトの名無しさん:2006/04/02(日) 20:29:32
HasRows か。.NET 1.0なら一番初めのReadみりゃいいだろ。
43デフォルトの名無しさん:2006/04/03(月) 10:36:50
>>7
8ビットのWavファイルをミキシングするのには、基本的に単純な
足し算だけでは出来ない。
なぜなら演算がオーバーフローして波形がクリップしてしまうから。
これを避けるには、16ビットで計算して結果を2で割るか、初めから
2で割ったものを重ねあわせるかだ。
各原音は1/2になってしまうが、それはボリュームで考えることだ。
従って、ミキシングには必ずフェーダーというかボリュームの調整が
必要で、単なる重ね合わせでは上手くいかないのだよ。
ただ手を抜くなら、波形がクリップしてすざましい音になる前に、
8ビットなら拡張して16ビット演算をした後2で割っておけと言ってるの。



44デフォルトの名無しさん:2006/04/03(月) 11:00:00
すざましい
45デフォルトの名無しさん:2006/04/03(月) 12:42:54
デフォで2で割るなんて普通はやらない。
46デフォルトの名無しさん:2006/04/03(月) 20:08:59
>>43
なんか頭悪いな。。
出力が飽和しないように入力各ソースのレベルを調整するのは
普通人間サマが自由に決めることであってソフトが勝手に一律で1/2にするような
類のものではない。

それとも何か、君の行きつけのカラオケ屋じゃマイクのスイッチ入れると
オケが電圧次元で1/2(音量次元で1/4)になるのかい?w
47デフォルトの名無しさん:2006/04/03(月) 22:08:27
>>33
亀レスになりましたが、情報ありがとうございます。
RowStateがDetachedの行はRowChangingで再描画できないんですね。
ところでこれって仕様なんでしょうか?
48デフォルトの名無しさん:2006/04/03(月) 22:27:59
ドキュメントには書いてないな。
まあサンプルコードとか読む限り、エラーの通知には DataRow.RowError を使えって言うことのようだが。
確かにデータ層が直接ユーザに通知するのは構造的におかしい。
49デフォルトの名無しさん:2006/04/04(火) 08:24:16
>>46
素人とこれ以上議論しても仕方が無いが、君は質問の内容を理解してるのかい。
2つのWavファイルをMixするにはどうしたら良いのかと言う質問なんだよ。
単に2つのWavファイルを足し合わせたら、波形のピークが重なるところは
演算がオーバーフローして、完全にクリップしてしまうではないか。
ヘッドルームを十分に取ったアナログのカラオケの機械とは根本的に違うのだよ。
そもそもカラオケの機械はAGC(AUTO GAIN CONTROL)と言う入力がオーバーに
ならない為のハードが付いているのだが。
通常のミキサーは入力毎にフェーダーというゲインコントロールがついていて、
Mixしたときの音量の調節と、音源ごとのゲイン配分を決めるのだけれど、
今回のようにゲイン調整の出来ない素材の場合はMix時に波形がクリップ
しないように加工しておくか、Mixの演算時にオーバーフローしない対策が
必要では無いかい。
そもそも8ビットの場合、10進法で0〜255の値を取るのだけれど、8ビットの
任意の数字を足し合わせると、最大値は255 x 2の値を取るでしょ、従って任意の
波形を足し合わせた物が8ビットでオーバーフローしない為には、あらかじめ
2つのデーターを2で割っておくか、足されたものを2で割というのが、波形の
原型を維持するための、最良の方法であることは容易に想像がつくではないか。

それと君は電圧、パワー、音量の関係を完全に誤解している。
音量は通常デシベル(dB)という単位を使うのだけれど、これはlog(P2/P1)
という事で、人間の音量に対する感覚は、音のパワーが10倍になった時に
2倍の音の大きさになったと感じるのだよ。
しかしそれは実際の電気回路とは関係はなく、音のMixはもちろんのこと、音を
コントロールする電子・電気回路は全てが電圧でコントロールされていて、
Wavのデーターの元のA/Dコンバーターも、電圧をサンプリングしたものなんだな。

最後に君の2で割ると音量が小さくなってしまうのではないかと心配に関しては
ノーマライズと言う方法でデジタル信号の音量の最適化をするのが普通なんだが。
50デフォルトの名無しさん:2006/04/04(火) 09:22:41
自分が凄い・正しいって思ってるよ・・・。
51デフォルトの名無しさん:2006/04/04(火) 09:25:51
いい加減スレ違いということに気付け
52デフォルトの名無しさん:2006/04/04(火) 09:41:45
実に すざましい
53デフォルトの名無しさん:2006/04/04(火) 11:48:02
デフォで2で割っといてから後でノーマライズってアフォですか?
54デフォルトの名無しさん:2006/04/04(火) 11:50:29
見ていたところオーバーフローが分かってないやつなどいない
そんなことは分かってる上でとにかく2で割るってところに突っ込んでる。
55デフォルトの名無しさん:2006/04/04(火) 12:43:00
>>49
あのさあ、高校レベルの数学ぐらいちゃんと習得しとけよ。
常用対数だろうが自然対数だろうがlog(x*10)は2*log(x)じゃないよ
2*log(x) = log(x^2)、なw

なんか自分の頭の悪さを棚に上げて恥ずかしいやっちゃなあ。。

それと、よく人間の感覚は対数カーブだといったり、電気の世界では
エネルギー(の時間微分)の値をdBで表現したりするが、それはあくまで
表現の便宜上そうしているだけであってdB値で二倍になったからって
リアルで人が2倍の強度を体感するわけじゃないよ。

だいいち人間の感覚なんて簡単に数値化できんでしょ。
56デフォルトの名無しさん:2006/04/04(火) 13:00:11
まあ、すれ違いを気付かずに続けるのはどっちも屑だな。
57デフォルトの名無しさん:2006/04/04(火) 13:12:34
VB2005です。初心者で恐縮ですが知恵をお貸し下さい。

フォームが2つあり、Form1にデータベースのデータを
(DataGridではなく)Labelなどのコントロールを使って表示しているのですが、
データの編集、削除は、Form1で現在表示されている行をForm2に表示して行いたいです。

指定した行の値をデータベースから直接取得する方法はわかったのですが、
Form1で選択した行の値をForm2に表示する方法がわかりません。
Form1に表示されている値からデータベースの位置を取得→
データベースから値を取得してForm2に表示
というスマートではない方法しか思いつきません・・・。

素人質問かと思いますが、よろしくお願いします。
58デフォルトの名無しさん:2006/04/04(火) 14:41:36
>>56
自己主張が激しい奴らがぶつかると周りは迷惑するのな
本人たちは俺の方が賢いぞって悦に入ってるんだろうけど、
ダラダラ長い文章読んでるのは自分たちだけなのに気付いてない
59デフォルトの名無しさん:2006/04/04(火) 17:47:26
>>57
Form2側にプロパティを設定、その中でForm2の各TextBoxなどの値設定、取得を。
もっと簡単にやるなら、Form2に配置した各コントロールをPublicスコープにしてしまう。

または、Form1側での選択値を構造体なりにして、Form2に受け渡す。

Formといっても単なるクラスですよ。
60デフォルトの名無しさん:2006/04/04(火) 18:26:41
DataGridの中の1行を選択したときに
その行の値を取得したいのですが、どうすればよろしいですか?
たとえば
   ---------------------------------
   | | 列名1 | 列名2 | 列名3 | 列名4 |
| | aaaaa | iiiiii | uuuuu | eee |
| | ooooo | kakak | kiki | kuk |
---------------------------------

aaaaの行の "aaaa iiii uuuu eee" を取得したい

よろしくおねがいします。
61デフォルトの名無しさん:2006/04/04(火) 18:30:29
6260:2006/04/04(火) 18:48:19
>>61
ありがとうございます。
でも、うまくできません・・・
行数の取得じゃなくて、選択した行に入っているデータを取得したいんですけど
>>60以外には何をすればいいですか?
63デフォルトの名無しさん:2006/04/04(火) 18:55:11
リンク先は行数じゃなくて行を取得する方法だし行を取得すれば各列のデータも取得できるだろ
で、まずそもそも ASP.NET なのか WinForms なのか、データソースに何つかってるのか。
うまくできないって何がどう巧くいかないのか。
ちゃんと説明せんと答えるのは難しい
64デフォルトの名無しさん:2006/04/04(火) 19:01:57
>>58
そういうい自分のレスが自己主張してないと思ってるんだから
君という人間はオメデタイことですなw

っていうか、スレ違いじゃないと思いますけど。
アルゴリズムの内容について討議してるんだから。
別に何十レスのオーダーでスレ消費してるわけでもなく、客観的にいって
「迷惑」の範疇に入らんと思うが。

まあもちろん、『俺様がウザいと思えばそれが迷惑行為だ』という
幼児性が抜けない自己中心的な人間にとってはこの限りではないだろうけどねw
65デフォルトの名無しさん:2006/04/04(火) 19:05:43
全くもってすざましい
66デフォルトの名無しさん:2006/04/04(火) 19:20:16
>>64
ここでやるならVB.NETでどう実装するかって話しろやボケ
67最凶VB厨房:2006/04/04(火) 22:00:38
>>49に質問。

>人間の音量に対する感覚は、音のパワーが10倍になった時に
>2倍の音の大きさになったと感じるのだよ。
の部分は間違いか?2倍ではなく、ルート10倍=約3.1倍じゃないか?
and この根拠はウェーバーの法則or感覚知覚の法則って奴か?
それともまったく別の何かか?

外野&素人の俺が議論を勝手に整理してみる。
足してオーバーフローするとMax値にする必要があって
これをクリップというらしい。
クリップというのは音が変わってしまうらしい。
これを見た。http://flawtips.ami.amigasa.jp/blog/050916.html
ノーマライズというのはこれを見た。
http://www.digion.com/dspark/effect/html/03norm/nom.htm

相違点は、
特に単に足したらオーバーフローする場合、
単にクリップ(Max値)すればよい派と
というのとノーマライズするんだ派がいるんだな?

クリップの
メリットは元の音の音量は変わらない。
デメリットは音が変わる可能性がある(オーバーフローするとき)

ノーマライズの方の
メリットは波形自体は変わらないので、音色が変わることが無い。
デメリットは元の音の音量は変わる。

両者はこのメリットデメリットについて納得か?
ここは間違ってるぜってのがあれば指摘よろしく。
68最凶VB厨房:2006/04/04(火) 22:03:28
もうちょっと追加。

クリップのメリットはミキシングしたい部分でだけの処理。

ノーマライズのデメリットはミキシングする部分以外も
つまり全部処理しなければならない。

これも間違っていたらよろしく。
69最凶VB厨房:2006/04/04(火) 22:23:23
クリップ派に質問です。

0〜255(無音128)と0〜255の値を取るものを足せば
0〜510(無音256)の値をとるものができると思うのだが、
足してあと128引いてからクリップするというのはおかしいの?
70デフォルトの名無しさん:2006/04/04(火) 22:36:49
>>64
お前らのタチの悪さは、
「自分が正しいということを相手が認めるまでやめない」
ってことだよ
それがいかに幼稚でくだらないことかそろそろ気付いたらどうよ?w
71デフォルトの名無しさん:2006/04/04(火) 22:42:41
いや、単にクリップすればいい派、なんて人はいないと思うよ。
単純に足し算する場合、飽和したらどうしようもないから
飽和したままにしておくわけで。

ノーマライズってのは合成波形のピーク値がある値になるように係数を掛ける、
って意味だと思うけど、それは一つの考え方でこれを否定する人もいないと思う。

まずありえないとしか言いようがないのは勝手に一律1/2にする処理だね。

あと量子化ビットが8bitの場合、Winだと0x80のオフセットがついた
符合なし整数扱いだったはずだから、一旦符合付き整数に変換してから
処理する必要があるね。
72デフォルトの名無しさん:2006/04/04(火) 22:57:19
おかしいんだ、10このWavファイルをミキシングしたら
ほとんど聞こえなくなっっちゃったんだ。
73最凶VB厨房:2006/04/04(火) 23:14:35
勝手に一律1/2にする処理も一つの考え方じゃないか?
音量が変わるという以外のデメリットはあるのか?

おっとそういえば、
周波数に直してから逆変換派もいたっけ?
74最凶VB厨房:2006/04/04(火) 23:23:30
>単純に足し算する場合、飽和したらどうしようもないから
飽和したままにしておくわけで。

これでいいのかどうかが議論の焦点じゃなかったのか?
これでいいってのがクリップ派。
そらあかん!ってのが(手抜き)ノーマライズ派。

補足。手抜きノーマライズ=1/2処理。
75デフォルトの名無しさん:2006/04/04(火) 23:33:41
どなたか解決方法知っている人いましたら、教えてください。

移動中のウィンドウ矩形のサイズを変更したいのですが、WM_MOVINGを
捕まえてlParamの中身を書き換える以外の方法はないでしょうか?

WM_MOVINGを取る方法が使えなくなって困っております。
よろしくお願いします。
76デフォルトの名無しさん:2006/04/04(火) 23:35:03
8ビットで2で割ったら無条件に精度が半分になるがな。
77デフォルトの名無しさん:2006/04/04(火) 23:35:47
8ビットで、じゃなくて8ビットだと無条件にやるには
劣化がちょっと大きすぎるって事ね。
78デフォルトの名無しさん:2006/04/04(火) 23:37:11
もともと音量の小さいソースだと、ただでさえ精度が悪いのに
さらに悪化させてしまう、音質への影響が大きすぎる。
79デフォルトの名無しさん:2006/04/04(火) 23:49:04
Wav厨うぜえ
80デフォルトの名無しさん:2006/04/04(火) 23:49:59
>>75
なんで使えなくなったんだ?
// 使いにくくはなったが。
81デフォルトの名無しさん:2006/04/04(火) 23:51:10
今日のミキシングスレはここですか?
82デフォルトの名無しさん:2006/04/04(火) 23:52:13
>厨房
うーんと誰もクリップしちゃうことを積極的に容認した覚えはないと思うよ。
なんかFFT的な操作が必要だ、みたいなわけのわからんこと言う奴がいたから
それに対する反論として単純に足せばいいんだ、といったまで。

もちろんこの言い方は合成結果が量子化ビット数の範囲内で飽和しないような
(前処理された)音源を前提としている。

ただ、合成結果が飽和しないような音源を前提とする場合でも、
プログラム的には「万が一」飽和してしまった場合の処理を考えておく必要はあるでしょ。
いわば例外処理だよ。

飽和しても問題はないんだ、と言っているのではなくて、
飽和しないようなソースを前提としているが、飽和した場合は飽和したままに
しておくしかない、という消極的容認だよ。
すくなくとも1の補数になっちゃうよりは被害が小さいのだから。

一律1/2がありえないのは、別にそれが絶対にダメって意味じゃなくて
そんなことをする積極的意味は何もないからだよ。

もちろん>>72的な問題は明確にあるんだけどね。
8bitだったら7回ダビングを重ねると最初の音源は完全に消えちゃうわけだ。
83デフォルトの名無しさん:2006/04/05(水) 01:49:44
はじめまして、現在VB.NET2003でWindowsアプリケーションを作成しているのですが、
ListViewクラスについて質問があります。
表示方法をDetailにして使用しているのですが文字色について選択されている行の文字が
黒色(選択行のバックカラーが灰色)になるのは仕様なのでしょうか?
BackColorやForeColor、Item単位での色設定など全てが反映されていません
(選択されていない行では問題なく色が設定されます)
どうかご教授お願いいたします
84デフォルトの名無しさん:2006/04/05(水) 07:57:51
>>55
通常スピーカーのインピーダンスは固定と考える。
オームの法則より、
電力は P1 = (I1)^2 x R
P2 = (I2)^1 x R
log(P1/P2) = log(I1^2/I2^2) = 2log(I1/I2)
ここで
I1 = V1/R I2 = V2/R
従って
log(P1/P2) = 2log(V1/V2)
となる。
    
>エネルギー(の時間微分)の値をdBで表現したりするが、それはあくまで
>表現の便宜上そうしているだけであってdB値で二倍になったからって
>リアルで人が2倍の強度を体感するわけじゃないよ。
宜上ではないグラハム・ベルによって証明されている。

>>56
すれ違いではない、Wavを扱う場合の根本的なアルゴリズムに関して議論してるのだ。

>>58
自己主張では無い、真実を求めようとする、技術者たちの議論である。

>>64
君の考えに100%同意します。

>>66
実装だけがプログラムだと思っている君は一生コーダーだろう。
85デフォルトの名無しさん:2006/04/05(水) 07:59:14
一回で書き込めなかったので続き
>>67
波形がクリップすると、高調波が発生して、原音が破壊される。
特にデジタル音楽の場合は、クリップに注意する必要がある。
一般的に音をデジタル化した場合、最適なサンプリングの状態は
その音楽の音量の最大値がわずかにクリップするところに
設定することであるが、これをリアルタイムに調節することは
難しい。
そこでWavファイルを始めに一なめして、最大値を探し、それを
基準にすべての音の音量を決定する方法がノーマライズである。

>>68
Yes

>>69
スマン、意味がわからない。m(__)m

>>70
おまえのタチの悪さは、真実を追究しないことだ。

>>71
かってに1/2するのではない、クリップを防止するために最小限の
処理をするだけだ。
計算は2のコンプリ(ツーズコンプ)の計算になる。
86デフォルトの名無しさん:2006/04/05(水) 07:59:52
ニ回で書き込めなかったので続き
>>72
何もしないで足していくと、波形は上限に張り付いてしまう。

>>73
ある、小さい音がマスクされて聞こえなくなる。

>>74
飽和は絶対に避けなければならない。

>>75
ウェーブファイルを単純に合成したい場合、それは仕方が無い、
その為に専用のミキサーがある。

>>82
最適化されたWavファイルを単純に足せば必ずクリップする。
7回もダビングするなら専用のミキサーを使いなさい。
単純なWavファイルの合成について議論してるのだから。
87デフォルトの名無しさん:2006/04/05(水) 11:08:25
端的にうざ。
88デフォルトの名無しさん:2006/04/05(水) 11:45:03
そんなに議論したきゃ専用スレ立ててやれやクズ
89デフォルトの名無しさん:2006/04/05(水) 12:30:04
>>83
具体的な色はさておき、選択行の色は基本的に変更不可だね。
それがいやなら、.NET 1.x だとカスタムドローと言うことになるか。
90デフォルトの名無しさん:2006/04/05(水) 12:44:05
>>84
悪いこと言わないからもう一度高校数学勉強しなおした方がいいよ。
一生懸命当たり前の数式展開してるけど、だから何?

>>49に、パワーが10倍になると人間は二倍の強度を感じるという旨の記述があるけど
その式からそんなことが言えるわけ?w

何度も言うけどパワーが10倍になってもdB値は2倍になんかならないよ。
10dB増えるだけね。
91デフォルトの名無しさん:2006/04/05(水) 13:00:54
>>90
お前もスレ違いを続ける基地害か?
92デフォルトの名無しさん:2006/04/05(水) 13:59:02
>>89
ありがとうございました。
1.1を使用しているのでカスタムドローというものを調べて考え直してみます
93デフォルトの名無しさん:2006/04/05(水) 21:01:57
パワー10倍は電圧換算で20dB。
ちなみに600Ωロード、0.775vを0dBmという。
94デフォルトの名無しさん:2006/04/05(水) 21:09:27
電圧換算って。。。
20dBって値の方が「換算」した値なんだよw
分かって言ってるのかな
95デフォルトの名無しさん:2006/04/05(水) 23:34:01
>>85
>おまえのタチの悪さは、真実を追究しないことだ。

俺が正しい
いや、俺のほうが正しい

こんなことやりあってて何が真実の追求なんだかw
お前らは永久に自分の間違いを認める日なんて来ないよw
96デフォルトの名無しさん:2006/04/05(水) 23:52:01
もうほっとけよ。どうせそのうち飽きるから。
97デフォルトの名無しさん:2006/04/06(木) 08:45:47
どうせ暇板なんだから、何か書き込んだ方がおもしろいのとちがう。。
98デフォルトの名無しさん:2006/04/06(木) 09:33:56
>>97
だったら暇でいいんだよ。
屑の書き込みの中に質問がうもれちゃうし、スレの密度が下がって検索の手間が増えるし。
99デフォルトの名無しさん:2006/04/06(木) 10:30:28
人の書き込みを屑扱いする、おまえの書き込みがいちばん屑。
100デフォルトの名無しさん:2006/04/06(木) 10:59:03
初心者なのですが、Newキーワードがよく分かりません。
StringとかはNewしないでもいいのに、Newしないと使えないクラスがあります。
Newでオブジェクトを作るのではないのでしょうか?
だとすれば、StringにもNewキーワードが必要なのではないでしょうか?
よく分かりません。
よろしくご教授願います。
101デフォルトの名無しさん:2006/04/06(木) 11:05:55
102デフォルトの名無しさん:2006/04/06(木) 11:27:43
最初に、スレ違いなら申し訳ありません。
[AAA.hoge.co.jp] というドメインに存在するサーバとクライアント間で
クライアントからWMIを使ってadmin権限で動かしているプログラムを、
WMIを使ってクライアントでプロセス監視する処理をしていました。
ところか、クライアントのドメインが [BBB.hoge.co.jp] に変更された結果
WMIでプロセスを監視する処理のところで
System.Management.ManagementException「アクセスは拒否されました」
といわれるようになりました。
エラーの内容から、WMIの実行権限が元々のドメインにしかなくて
変更されたドメインでは出来ないんだと思ったのですが、異なるドメイン間で
WMIを使ってプロセスを監視する処理は可能なのでしょうか?
方法としてはまずは[BBB.hoge.co.jp]ドメインのものをサーバのアカウントに追加すれば
いいのかな?と思ったのですが、アカウントの追加で、「場所の指定」をしても、
新しく増えたドメインは見えるても、「選択するオブジェクト名」のところで
adminとかuserって打って名前の確認しても何もでず、追加できませんでした。
また、runasコマンドを使えばアカウントが変更出来るので、これで何とかならないか?
とも思ったのですが、そもそも[BBB.hoge.co.jp]ドメインのアカウントが存在しないので
これも意味がないような気がして、手詰まりになってしまいmした。
何か良いお知恵を拝借できないでしょうか?
103デフォルトの名無しさん:2006/04/06(木) 11:43:28
>>100,>>101
俺もVB6から移行したとき、
すべてがオブジェクト型ってことは、
言い換えれば、すべてNewが必要じゃないかって思った

IntegerやLongは値型だからいいとしても、
Stringは参照型なんだから、Newを付けないと理が通らなくない?
104デフォルトの名無しさん:2006/04/06(木) 11:58:59
Newがあなたの書くコードに直接書かれるかという事と、
実際にNewが使用されてるかという事は別問題です。
例えば、何らかのオブジェクトを返すメソッドを作成して、
そのメソッドはNewでオブジェクトを作成してるとする。
オブジェクトは確かにNewされてるけど、呼び出し側にからは見えない。
これが標準ライブラリ内でやってる事なら、
使う側にはNewしてる事は全く見えないけど、確かにNewは実行されてる。
そういうこどだよ。

105デフォルトの名無しさん:2006/04/06(木) 12:10:50
=で返ってくるオブジェクトの話じゃなくて宣言のときの話だろ?
106デフォルトの名無しさん:2006/04/06(木) 12:31:31
リテラルの文字列はパフォーマンスの都合上 New しない。特別扱いする。
と明記されていたんだがさてどこに書いてあったか。
ちなみにコンストラクタ使って New することもできるぞ。文字列を引数に取るコンストラクタはないけど。
107デフォルトの名無しさん:2006/04/06(木) 12:33:30
プログラミングの便宜のために、"abc" で自動的にstring型のオブジェクトが生成される。
あえてnewを使うとこんな感じ(実際はこうじゃなけど)
string s;
s = "abc";
s = new string(new char[] {'a', 'b', 'c'});
最初のstring sをnewしなくていいのは当然でnewされたものの参照を格納できればいいから宣言だけでいい。
108デフォルトの名無しさん:2006/04/06(木) 12:44:43
>>103
参照とオブジェクトの区別がついてないんでしょ。

Newしなきゃ「使えない」のはオブジェクト(当然だ、そもそも存在しないのだから)
であって参照、つまり変数そのものじゃないよ。

参照型の変数には、型の一致する任意のオブジェクトへの参照を代入できる。
つまり「使える」。
当たり前だけど。

まあVBだとString型のNull参照( = Nothing)を自動的に空の文字列 ( = "")と
等価とみなす親切設計wになっていて、これがかえって誤解を生んでる可能性はあるね。
109デフォルトの名無しさん:2006/04/06(木) 12:56:27
>>108
Dim s As String
Set s = Nothing
Text1.Text = s
VB6だとこれでエラーになるけどね。
Dim s As String で初期値が "" になるのを勘違いしてない?
110デフォルトの名無しさん:2006/04/06(木) 13:16:19
全部オブジェクトなんて言いながら、
中途半端なことやってたら、初心者はこんがらがる罠
111デフォルトの名無しさん:2006/04/06(木) 17:21:36
フォームを丸にしたりすることはきないの?
112デフォルトの名無しさん:2006/04/06(木) 17:23:28
Region
113デフォルトの名無しさん:2006/04/06(木) 17:33:58
Private Sub Form1_Load(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles MyBase.Load
'フォームのサイズを適当に変更
Me.SetBounds(Me.Left, Me.Top, 201, 101, _
BoundsSpecified.Size)
'多角形の頂点の位置を設定
Dim points() As Point = _
{New Point(0, 0), _
New Point(100, 100), _
New Point(200, 100), _
New Point(100, 0)}
Dim types() As Byte = _
{Drawing.Drawing2D.PathPointType.Line, _
Drawing.Drawing2D.PathPointType.Line, _
Drawing.Drawing2D.PathPointType.Line, _
Drawing.Drawing2D.PathPointType.Line}
'GraphicsPathの作成
Dim path As New Drawing2D.GraphicsPath(points, types)
'形を変更
Me.Region = New Region(path)
End Sub

ヒントにこれを見つけたけどどこを変えたら丸になるの?
114デフォルトの名無しさん:2006/04/06(木) 18:30:38
>>109
分かってないw
あのねえ、Stringは(いや、参照型の変数はすべてそうだが)
変数を宣言するだけではNull参照なんだよ。
ヌルストリング( = "")ではないの。

だから言ってるでしょ?
VB.NETでは文字変数のNull参照は""と等価とみなすような仕様になってるだけだよ。
もちろん両者は本来、本質的に全然意味が違うんだけどね。
115デフォルトの名無しさん:2006/04/06(木) 18:35:34
>>114
VB.NETの話をしてたのか、VB6かと思ったよ。かみ合ってなくてごめんね。
11657:2006/04/06(木) 19:13:17
>>59
遅レスすいません。

おかげさまでできました。
教えて頂いた中のプロパティを設定する方法を使いました。
ありがとうございました!
117デフォルトの名無しさん:2006/04/06(木) 19:26:24
>>115
VB2005からはVB.NETの名称は使わなくなったので、
ただVBといった場合VB6以前とVB7以降の両方の可能性があるわけだ。

Microsoft(R) Visual Basic Compiler Version 8.0.50727.42
Microsoft(R) Visual Basic .NET Compiler version 7.10.6001.4
118デフォルトの名無しさん:2006/04/06(木) 19:37:27
>114
おれもVB6のこと言ってんだと思ったよ。
だけどVB.NETてnull参照空文字とみなされたっけ?
119デフォルトの名無しさん:2006/04/06(木) 19:39:44
>>117
いや俺108だけど、別にMS様の方針に唯々諾々と従わなきゃいかん理由はないでしょ。
>>108で「VBだと」と書いたのはC#との比較を念頭においたものだったけど、
ちょっと誤解を誘う不適切な表現だったかもしれない。
120デフォルトの名無しさん:2006/04/06(木) 19:40:32
= による比較では True 。
121デフォルトの名無しさん:2006/04/06(木) 21:10:20
122最凶VB厨房:2006/04/06(木) 22:06:12
ややっこしい話でんな。
123デフォルトの名無しさん:2006/04/06(木) 23:52:42
1,2年ほどJava等をやっていて、急遽VBでの作業が必要になった者です。
書籍・検索で半日ほど調べたのですが分からず、ここで質問させてもらいたいと思います。

指定したURLの画像を取得して、上下反転処理を加えた上で保存する
コマンドラインプログラムを作ろうと思っています。
GUIベースの似たようなサンプルを参考に書いてみたのですが、コンパイル時に

 型'Image'が定義されていません
 名前'Image'は宣言されていません
 名前'RotateFlipType'は宣言されていません。

とエラーが出てしまいます。
コマンドラインプロジェクトでImageクラスを使うにはどうしたらよいのでしょうか。
よろしくお願いします。

環境:WinXP Pro/VS.NET 2003
ソース
Module Module1

Sub Main(ByVal CmdArgs() As String)
Dim url As String = "http://www.hoge.com/hoge.jpg"
Dim wc As New System.Net.WebClient
Dim st As System.IO.Stream = wc.OpenRead(url)
Dim img As Image
img = Image.FromStream(st)
st.Close()
img.RotateFlip(RotateFlipType.RotateNoneFlipY)
img.Image.Save("C:\image.jpg")
End Sub

End Module
124デフォルトの名無しさん:2006/04/06(木) 23:58:49
DLL の参照を追加する
必要な DLL はドキュメントに書いてる
125123:2006/04/07(金) 00:11:49
>>124
おお、解決しました。
本当にありがとうございました!
126デフォルトの名無しさん:2006/04/07(金) 03:23:50
VB.NETで、制御構造のfor文で、C言語のcontinueに相当するもの
ってありますか?
for i=0 to 100
繰り返し処理1
continue
繰り返し処理2
next
繰り返し処理2をしないようにしたい

すみませんがよろしくお願いします
127デフォルトの名無しさん:2006/04/07(金) 03:27:24
2005 で追加された。
それまでは GoTo で対処する。
128デフォルトの名無しさん:2006/04/07(金) 03:50:27
>127
ありがとうございました。
朝までに完成させたいコードがあったので、、、
たすかります。
129デフォルトの名無しさん:2006/04/07(金) 19:09:03
VB.NET 2005のToolStripComboBoxで、
コンボ内でEnterキーを押したときの処理を書いてるんですが、
Enterキーを押すたびにビープ音が鳴ります
これを鳴らないようにする方法ってないでしょうか?
それらしいプロパティは見当たらないんです
130デフォルトの名無しさん:2006/04/07(金) 20:05:56
>>129
KeyPressイベントハンドラで e.Handled = True にする
131デフォルトの名無しさん:2006/04/07(金) 20:26:00
>>130
うわああ
うまくいきました。ありがとうございます。
ずっとKeyDownばかり見てました。
こんなの思いつきません(><)
132デフォルトの名無しさん:2006/04/08(土) 17:50:59
多言語対応の単語帳みたいなソフトを作ってるんですがtextboxにfocusが入ったときにIMEを切りかえたいんです。
とりあえずハングルに対応させようと思ってIMEモードをいじってみたんですけど言語は切り替わらないんです。

誰かIMEの言語の切り替え方をご存知の方がいたら教えてください。
133デフォルトの名無しさん:2006/04/08(土) 18:02:06
取りあえず Application.CurrentCulture や Application.CurrentUICulture でも変更してみたらどうだ。
134デフォルトの名無しさん:2006/04/09(日) 03:51:35
WIN32APIをVB.NETようにマーシャリングしたいのですが、
良い書籍、サイトなどございましたらお知らせください。
135デフォルトの名無しさん:2006/04/09(日) 03:52:28
MSDN
136デフォルトの名無しさん:2006/04/09(日) 04:41:44
webサイトからhtmlを取得し、テキストをそのまま表示させるにはどうしたらいいのでしょうか?
137デフォルトの名無しさん:2006/04/09(日) 04:49:55
WebClient と Encoding と TextBox でよかんべ
138デフォルトの名無しさん:2006/04/09(日) 04:55:42
ありがとうございました。
139デフォルトの名無しさん:2006/04/09(日) 08:30:50
素朴な疑問なんですけど
Microsoft Visual Basic 2005 Express Edition
って.netなの?
140デフォルトの名無しさん:2006/04/09(日) 08:33:31
取りあえず「.NET で動くもの」を作れるな。
141デフォルトの名無しさん:2006/04/09(日) 09:12:38
>>139
> 素朴な疑問なんですけど
> Microsoft Visual Basic 2005 Express Edition
> って.netなの?

Microsoft Visual Basic 2005 Express Edition は .NET ですよ。
142デフォルトの名無しさん:2006/04/09(日) 09:42:31
Microsoft Visual Basic 2005 Express Edition は .NET です。

だから、この言語で作成したアプリケーションは、.NET Frameworkがインストールしていない
PCでは、可動しません。
しかも、Microsoft Visual Basic 2005 Express Edition ユーザには、ランタイムの再領布する権利が有りません。
完全に起動出来るアプリケーションにするためには、下記参照のこと
http://www.microsoft.com/japan/msdn/howtobuy/vs2005/editions/pro/#pro_feature ←機能と価格表
http://www.microsoft.com/japan/msdn/vstudio/productinfo/productline/default.aspx ←製品機能概要

.NET Framework の再頒布
.NET Framework 用に作成されたアプリケーションおよびコントロールでは、
アプリケーションやコントロールを実行するコンピュータ上に .NET Framework を
インストールする必要があります。Microsoft では、.NET Framework アプリケーションの実行に必要な
共通言語ランタイムと .NET Framework コンポーネントを含む再領布可能なインストーラである Dotnetfx.exe を提供しています。
ソース: .NET Framework
143デフォルトの名無しさん:2006/04/09(日) 11:02:35
おいおい思い込みの激しいトンデモさんが来たなw
つーか、日本語読めないのかな
144デフォルトの名無しさん:2006/04/09(日) 20:15:40
VB.NET 2005で、教えてください。

あるチェックボックスをクリックしたら、
関連するデータをListViewに一覧表示するという処理をやりたいんですが、
そのデータが1000個を超えるため、表示するのに30秒ほど時間が掛かります。
データを表示している間もメニューなどをクリックできるようにしたいので、
チェックボックスがクリックされたら、
別スレッドを作ってその中で表示(Invokeを使って、ListViewにAdd)
させるようにしても、状況が変わりませんでした。

何か、根本的に考え方が間違ってるのでしょうか?
他に対処する方法ありますか?
145デフォルトの名無しさん:2006/04/09(日) 20:22:13
もし ListViewItem 一個ずつ Add してるなら、BeginUpdate & EndUpdate
146デフォルトの名無しさん:2006/04/09(日) 20:36:36
>>145
レスありがとうございます。

BeginUpdateとEndUpdateも入れてみましたが、同じでした。

というより、別スレッドでListViewを表示させているのに、
ListViewの表示どころか、メニューもクリックできない状態が
同じなんです。
147デフォルトの名無しさん:2006/04/09(日) 20:43:15
まさか Add するたびに BeginUpdate と EndUpdate 呼び出したりしてないだろうな?
あとは別スレッドってどう実装させてるかが分からんことには。
2005 なら BackgroundWorker マジお勧め。
148デフォルトの名無しさん:2006/04/09(日) 21:34:15
>>147
全体でやっても1回Addしたときにやっても同じでした。
ソース付けます。
lvFileというのがListViewです。

' デリゲートの宣言
Private Delegate Sub delAddFile(ByRef pFile As CDataFile)
Private Delegate Sub delEndUpdate()

' チェックボックスのクリックイベント
Sub clbFilter_ItemCheck(長いのでパラメータは省略)

lvFile.Items.Clear()
lvFile.BeginUpdate()

Dim thList As Thread = New Thread(AddressOf ListAllFiles)
thList.Start()
End SUb
149デフォルトの名無しさん:2006/04/09(日) 21:35:27
続き

' ListViewを表示させる別スレッド
Sub ListAllFiles()
Dim pData As CDataFile

' コレクションのデータを全部表示
For Each pFile As DictionaryEntry In mpLDB
pData = DirectCast(pFile.Value, CDataFile)
' ここでInvoke(アイテム追加)
lvFile.Invoke(New delAddFile(AddressOf AddFileToView), pData)
Next

If lvFile.InvokeRequired = True Then
lvFile.Invoke(New delEndUpdate(AddressOf DoEndUpdate))
End If
End Sub

' ListViewに1アイテムを追加する処理
Private Sub AddFileToView(ByRef pFile As CDataFile)
Dim pItem As ListViewItem

With lvFile
pItem = lvFile.Items.Add(pFile.Info.Name) pItem.Name = pFile.Key
' その他SubItemsへの追加処理
End With
End Sub
150デフォルトの名無しさん:2006/04/09(日) 21:44:18
普通は一千件のアイテムの追加程度なら一秒未満で完了するんだが……。
まずどこで時間が掛かってるのか確かめる必要があるな。
各処理ごとに回数ループして時間を出力し、どの処理で時間が掛かっているか確認してみたら?
151デフォルトの名無しさん:2006/04/09(日) 21:58:56
>>150
SubItemsに6つ追加してるので、それが掛かってるのかもしれません。。。
152デフォルトの名無しさん:2006/04/09(日) 22:14:08
DataRowState.Modified は
グリッドにしか使用できないのでしょうか?

153デフォルトの名無しさん:2006/04/09(日) 22:20:24
どう使いたいのさ
154152:2006/04/09(日) 22:37:06
ヘッダー部(1件)と明細部(n件)
の内容が変更されたかどうかをチェックしたいんです。

明細部はDataRowState.Modifiedで確認できますが、
テキストボックスのヘッダー部は有効じゃないみたいなんで。
155デフォルトの名無しさん:2006/04/10(月) 01:13:11
>>148
追加中でも操作できるようにするってのが無茶だなあ…
別スレッドでInvokeしながら追加ってのが無茶。
ただ、別スレッドにしなくてもそんなに遅いんなら難しいかな…
追加処理そのものが重過ぎるんでね?

ちなみに、別スレッドにしないでBeginUpdateとEndUpdate使ったらどうなる?
156デフォルトの名無しさん:2006/04/10(月) 20:02:15
>>155
>追加中でも操作できるようにするってのが無茶だなあ…

これって無茶なんでしょうか?
よく考えるとInvoke使ってるので、(使うしかないので)
どのみちListViewへの追加はメインフォームのスレッドで行われるんですよね?
だったら、別スレッドにしようが何しようが、やはり意味ないのでしょうか?

イメージとしては、ListViewが、ちらついてもかまわないので、
メニューや他のコントロールの操作は普通にやりながら、
ListViewに、次々とアイテムが追加されていく(ListView自身の操作も可能)
ような感じなんですが。。。

>ちなみに、別スレッドにしないでBeginUpdateとEndUpdate使ったらどうなる?

同じです。症状としては、まったく変わりません。
157デフォルトの名無しさん:2006/04/10(月) 20:41:48
>>156
あんまり頭良くない(それは自覚してるでしょ?)んだから、
デリゲートだのなんだの欲張って一度にやろうとせずに
まずオーソドックスな方法で一度やってみたら?

それでどうにもパフォーマンスが悪いようなら、そこで初めてパフォーマンスの
改善を考えればいい。
今回のケースならオーソドックスにやれば何も問題ないはずだと思うけど。

それと、クラスのメソッドやプロパティの使い方は面倒臭がらずに
ちゃんと読んだほうがいいよ。

読んでないでしょ?BeginUpdate、EndUpdateの使い方も。
ListViewItemのコンストラクタにどんなのがあるかも。
158デフォルトの名無しさん:2006/04/10(月) 21:49:24
オーソドックスというのが、シングルスレッドでの速度の改善なら、
それは既にマシになりましたし、今も色々試してます。

それでも数秒で終わらせられそうにないので、
別スレッドで出来ないかと考えたわけですが、
知りたかったのは、別スレッドでの表示の方法が理論的に正しいのか、
間違ってるのかってことで、僕の頭が良いか悪いかではありません。

ちなみに、パフォーマンスを上げるように改善したら、
メニューは少し反応するようになりましたが、それでも
数秒に一回程度で、スムーズに動いてくれません。。。
159デフォルトの名無しさん:2006/04/10(月) 22:00:13
普通1000件ごときでパフォーマンスが問題にはならないわけ。
だから何がボトルネックになってるのかまず確認しろって話。
160デフォルトの名無しさん:2006/04/10(月) 22:08:41
>>158
ずばり間違ってる。
コントロールのメソッド(一部例外を除く)はUIスレッド以外から触れない。
だからそもそもワーカースレッドでアイテム追加するなんてできない。
MSDNに書いてあるでしょ。

どうしてもレスポンス(スループットじゃないよ)を改善したいのなら、
タイマ等を使って処理を分割するしかないね。

まあ、そもそも1000程度のアイテムの追加にそんなに時間がかかるのは
他にどっかおかしいんだと思うけど。
161デフォルトの名無しさん:2006/04/10(月) 22:15:12
ん、>>158
>メニューは少し反応するようになりましたが、それでも
>数秒に一回程度で、スムーズに動いてくれません。。。

なんて書いてある。
ひょっとして158は組み込みとかメインでやってる人で、
コントロールの表示を定期的に更新するようなコード書いてるんじゃないのかな?
まあまさかとは思うけど
162デフォルトの名無しさん:2006/04/10(月) 22:22:10
>>160よ、さすがによく読めと言いたい。
ていうか、ひょっとしてInvokeの意味が分かってないのか?
163デフォルトの名無しさん:2006/04/10(月) 22:29:05
>>162
分かってないのは君の方だと思うよ悪いけど。
164162:2006/04/10(月) 23:16:43
んーおれが読み違えた?
>>160で書いてるのってどういう意味?

別スレッドにしても追加の時点でUIスレッドに同期するんだから
少なくとも1項目単位でそういうことするのは発想が間違ってる
って意味なら同意だ。

ってか>>155で書いたのはそういうニュアンスを含んでるんだが、
>>160はぱっと呼んでそういうような意味には読めなかった。
単にUIスレッドからしかアクセスしちゃだめってことを
分かってないって書いてるだけに見えたんだ。

だから読み違えなら悪かったよ。

165160:2006/04/10(月) 23:23:48
要するに話の肝は、たとえどんな方法をとろうと、
ListViewにアイテム追加している間はUIスレッドで他の仕事はできないってことだね。

つまり158の最終的な目的はUIのレスポンスを改善したいと思っているわけだから、
「別スレッドでリストービューのアイテムを追加する」ってのは目的に合致してないわけだ。
166158:2006/04/10(月) 23:34:47
>>160

>どうしてもレスポンス(スループットじゃないよ)を改善したいのなら、
>タイマ等を使って処理を分割するしかないね。

これは何か、VB6っぽくて嫌なんですよね。。。
何ワガママ言ってんだって思われそうですがw

>まあ、そもそも1000程度のアイテムの追加にそんなに時間がかかるのは
>他にどっかおかしいんだと思うけど。

他の人にも前から指摘されてるので、色々いじってる最中です。

>>161
定期的に更新って訳ではないです。

>>165
>要するに話の肝は、たとえどんな方法をとろうと、
>ListViewにアイテム追加している間はUIスレッドで他の仕事はできないってことだね。

やっぱりそういうことなんですよね。。。

そこでどうしても疑問なのが、僕の場合はListViewにアイテムを追加する方法を
改善すれば、何とかなるとは思うんですが、
じゃあ、コントロールに対してすごく時間のかかる処理をするような
プログラムがあった場合、みんな、どうやって対処してるんでしょう?
そもそも、そんなプログラムは組まないのか、
それともあきらめて砂時計でも出すのか、
それともやっぱりVB6っぽくタイマーを使うのか。。。w
167デフォルトの名無しさん:2006/04/10(月) 23:40:14
> じゃあ、コントロールに対してすごく時間のかかる処理をするような

それはコントロールに対してじゃなくて、なにか他の計算なりをしてるんだろう?
コントロールは入出力する部品に過ぎないんだから。
168デフォルトの名無しさん:2006/04/10(月) 23:40:53
まず、
>これは何か、VB6っぽくて嫌なんですよね。。。
これが分からない。
169166:2006/04/11(火) 00:02:30
>>167
コントロールに対して大量のデータ書き込みや
表示をするような処理という意味です。
そういうこと自体少ないかもしれませんが。。。

>>168
VB6の頃はポーリングやコントロールに定期的な書き込みを
タイマーでやってて、それがあまり気に入らなかったのを思い出したもんで。。。
170160:2006/04/11(火) 00:02:41
実際試さずに断定はいかんかな、と思って簡単なサンプルを作ってみた。

  Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

    Const NumRow As Integer = 1000
    Dim lvItems As ListViewItem() = New ListViewItem(NumRow - 1) {}

    For row As Integer = 1 To NumRow
      Dim cells As String() = New String(8) {}

      For col As Integer = 1 To 9
        cells(col - 1) = (row * col).ToString
      Next
      lvItems(row - 1) = New ListViewItem(cells)
    Next

    ListView1.Items.AddRange(lvItems)

  End Sub

Pen4 2.8G、mem = 1G、VB2005 Expressの環境で
8列×1000行の追加にかかる時間がだいたい1.5秒ぐらいかな。
171デフォルトの名無しさん:2006/04/11(火) 00:32:23
VB.net初心者なんですが。
2度スレ違いで書いてしまった質問をここで書き直しますすみません。
ほんっとーに申し訳ない!

Function DecStr(ByVal str As String) As String '10進数のSUMの下位2桁
Dim DecStr1 As String
Dim DecStr2 As String

For i = 1 To 8
DecStr = DecStr + (Asc(Mid(str, i)))
Next
DecStr = Hex(DecStr)

DecStr1 = Mid(DecStr, 2, 2)
DecStr1 = Hex(DecStr1)

DecStr2 = Mid(DecStr, 3, 3)
DecStr2 = Hex(DecStr2)

この様にFunctionの中で2つの変数を設定することはできますか?
またできるとしたら外部から呼び出すときはどうすればいいんでしょうか。。。
ネットで調べてもVB.netについての情報は少なくて
MSDN見ても詳しくは書いてありません。。。
教えていただけませんでしょうか。
172デフォルトの名無しさん:2006/04/11(火) 00:35:19
ByRef
しかしなんというか…
173デフォルトの名無しさん:2006/04/11(火) 00:40:04
くらくらするコードだな
そもそも何故文字列ベースなのか
174デフォルトの名無しさん:2006/04/11(火) 00:42:13
てかVB.netの情報すくなくないw
いっぱいあるやん。
175171:2006/04/11(火) 00:59:37
仕様なんです・・・VB初めて触るんで・・・
てゆーかプログラム自体ほとんどはじめてなんで(´;ω;`)
こんななんですけど・・・↓

16進数に変換する以前に任意の文字列
たとえば GETCOMとすると ASCII→((71 69 84 67 79 77)(10))
参照:ttp://e-words.jp/p/r-ascii.html
となりまして、それをすべて足すと447(10)になるんですが
この数字の下位2ビット 4 と 7 を抽出してさらに16進数に変換して
4 → 34(16) 7 → 37(16) 
接尾辞以前に加えて出力
例えば→((71 69 84 67 79 77)(10))→((47 45 54 43 4F 4D)(16))
となりますので、接頭、接尾辞を加えまして
# 47 45 54 43 4F 4D H
これの接尾辞H 以前に 4 → 34(16) 7 → 37(16)を加えて
# 47 45 54 43 4F 4D 34 37 H

これの接尾辞H 以前に 4 → 34(16) 7 → 37(16)を加えて
の下りをひとつのファンクションじゃできないと思ったんで
ひとつのファンクションで二つの変数を得ようと思ったんですが。。。

ほかに何かいい方法ありますでしょうか
176デフォルトの名無しさん:2006/04/11(火) 01:11:59
あーできれば日本語でお願い。
177デフォルトの名無しさん:2006/04/11(火) 01:16:15
学校の宿題は自分でやらなきゃダメでしょ。
それ以前に、まあ一生懸命説明してるのは分かるけど
イマイチ処理の内容がつかみきれない。

特にここは何言っているかさっぱりわからん
>447(10)になるんですが
>この数字の下位2ビット 4 と 7 を抽出してさらに16進数に変換して
178171:2006/04/11(火) 01:33:02
あははw;
すみません;

447(10) は 71 69 84 67 79 77 をすべて足した値のつもりで・・・
447の4(47)の部分を16進数に変換したいって意味のつもりだったんです。
179171:2006/04/11(火) 01:33:45
もう一度最初から自分で考えなおしてみます。
ありがとうございました。
180デフォルトの名無しさん:2006/04/11(火) 06:43:40
Windowsサービスなのですが、開始時にパラメータを渡す方法を探しています。
管理ツールのサービス>対象のサービス>プロパティで指定できる
「開始パラメータ」はプロパティ画面での開始時のみっぽく、
自動起動などのWindows開始時には渡せませんでした。
直接レジストリを弄って「ImagePath」に「ファイルパス 引数」とすることはできるのですが、
これを他の方法でやることはできないのでしょうか。
InstallUtil.exeやsc.exe等を試して見たのですが。
181デフォルトの名無しさん:2006/04/11(火) 07:43:18
ファイルに書いてそれを読み出すんじゃ駄目なの?
// 構成ファイル使えるよね、サービスでも
182180:2006/04/11(火) 10:19:19
同じ物を設定を変えて同時に動かしたいんです。
今はモジュール名を変えて複数サービス登録して、
モジュール名で構成ファイル持ってきて中身替えてます。
自分でも頭痛いのですがもっとスマートなやり方ないですかね。。
183デフォルトの名無しさん:2006/04/11(火) 10:50:16
>>182
ない
つうかその方法で良いだろ
184デフォルトの名無しさん:2006/04/11(火) 12:09:24
詳しくないが、そもそも同じサービスを複数起動できるもんなのか?
185デフォルトの名無しさん:2006/04/11(火) 17:44:49
こんにちは。javaから最近転向してきました。
プロパティのネーミングで困っています。

例えば
Private PropName As String
というようなメンバ変数があったとします。

そのとき、そのメンバ変数に対応するプロパティはどんな名前で定義するのが一般的なのでしょうか?
Property PropName()
Get
Return PropName
End Get
Set(ByVal Value)
Me.PropName = Value
End Set
End Property
とやってしまうと、変数とプロパティの名前がかぶって怒られます。
VBのコミュニティーの中で一般的なネーミング規約などありましたら、教えていただけないでしょうか?
186デフォルトの名無しさん:2006/04/11(火) 17:53:10
フィールドの方をアンダースコア付きにするとか。
187デフォルトの名無しさん:2006/04/11(火) 19:05:21
>>168
まあ何が一般的かって言われればそれが一番一般的かな。
でも俺的には却下だけど。
188デフォルトの名無しさん:2006/04/11(火) 19:51:51
プリベートフィールドの先頭にmを付けてみるとか。
189デフォルトの名無しさん:2006/04/11(火) 19:52:48
プライベートフィールドね・・・。打ち間違えた覚えは無いのにorz
190185:2006/04/12(水) 09:15:11
みなさんありがとうございます。
特にこれといった暗黙的なルールというようなものはないのですね。
186さんと188さんの言うように、「フィールドの方の名称の先頭に
なにか記号をつける」という方針で考えようと思います。

できれば187さんのやり方も教えていただきたいです。。。
191デフォルトの名無しさん:2006/04/12(水) 21:26:43
VB.NETで、文字列の最後のコンマを削除したいのです。
trim(char配列)を使うと非破壊的に削除できましたが、
dim s1, s2 as String
s1="AAAB"
s2=s1.trim("B")
→これでs1="AAAB"、s2が"AAA"

破壊的に出来るメソッドってありませんか?
上で言うと、s1.XXX("B")とすれば、s1="AAA"となるような。。。

もしくは無条件に文字列の最後尾の1文字を削除するメソッドでも
よいのですが。

どうかよろしくお願いします。
192デフォルトの名無しさん:2006/04/12(水) 21:32:23
String は変更不可オブジェクト。
193デフォルトの名無しさん:2006/04/12(水) 21:33:10
s1=s1.Trim("B")でいいじゃん
194デフォルトの名無しさん:2006/04/12(水) 22:09:15
192>
なるほど。
193>
あ、そうか。
変更はだめとしても代入ならできる、ということですね。
実際できることを確認しました。
ありがとうございました。

195デフォルトの名無しさん:2006/04/12(水) 22:51:23
ピクチャーボックスに読み込んだイメージをバイナリ変換する方法がわかりません。
以下の方法では駄目でした。
お知恵拝借お願いします。

Dim ms As New MemoryStream
hoge.Image.Save(ms, Imaging.ImageFormat.Png)
Dim buf(ms.Length - 1) As Byte
ms.Write(buf, 0, b.Length)
ms.Close()
196デフォルトの名無しさん:2006/04/12(水) 22:57:27
バイナリ変換ってどんなバイナリが欲しいのさ。
そのコードで何がどう駄目だったのさ。
197デフォルトの名無しさん:2006/04/12(水) 23:02:16
VB.NETで下のような認証が必要なUNCパスにアクセスするにはどのようにすればよいでしょうか?

\\アドレス\パス

このアドレスのマシンにはユーザIDを作成することができません。

少し調べて見たところWNetAddConnection2などでネットワークドライブ割り当てをしアクセスすることも
できるみたいなのですが、.NETでこれに相当するクラスなどはないのでしょうか?

また、ドライブ割り当てを行わず直接参照することは可能ですか?もし、よろしければ、ヒントだけでも
教えていただけませんでしょうか。仕様環境はVB.NET2005です。よろしくお願いします。
198デフォルトの名無しさん:2006/04/12(水) 23:35:46
>>196
簡単に言えば、これの逆をやりたいんですわ。

Dim f As New FileStream("c:\hoge.png", FileMode.Open, FileAccess.Read)
Dim bs(f.Length - 1) As Byte
f.Read(bs, 0, bs.Length)
f.Close()
Dim ms As New MemoryStream(bs)
hoge.Image = Image.FromStream(ms)
199デフォルトの名無しさん:2006/04/12(水) 23:48:45
> そのコードで何がどう駄目だったのさ。
200デフォルトの名無しさん:2006/04/13(木) 01:09:31
>>198
簡単に言えば、画像の保存がしたいということ?

hoge.Image.Save("C:\hoge.png", Imaging.ImageFormat.Png)
201デフォルトの名無しさん:2006/04/13(木) 02:00:31
Function GetTextFromHtml(ByVal htmlText As String) As String
Dim output As String = Regex.Replace(htmlText, "\<[^\>]+\>", "\n")
Return output
End Function

これはヘルプの例を一部変えたものです。
htmlタグを改行コードに置換しようとしたのですが、そのまま\nと置換されてしまいました。
"\n"がどうして改行にならないか教えてください。
202デフォルトの名無しさん:2006/04/13(木) 02:03:57
C# じゃないから。
改行は Environment.NewLine とか vbNewLine とか使いな、
203201:2006/04/13(木) 03:02:59
>>202
ご回答ありがとうございました。
visual studioのヘルプには\nは改行だと書いてあったのですが、visual basicでは使えないんですね。
204デフォルトの名無しさん:2006/04/13(木) 03:18:13
結構涙ぐましく VB では〜 って書いてる印象だが、どこぞに漏れでもあったか。
205デフォルトの名無しさん:2006/04/13(木) 08:36:24
>>199
pngだと、byteのデータがすべて0になってしまうっす。
bmpだとデータがあるんすけど。

>>200
元々は「.resx」のMSDN部分を読んでて、XMLに画像を保存するためにはどうすりゃいいんだろというのがきっかけで、いろいろ試してたんで
そのまま保存が目的でないっす。
206デフォルトの名無しさん:2006/04/13(木) 11:19:53
> Dim ms As New MemoryStream
> hoge.Image.Save(ms, Imaging.ImageFormat.Png)
> Dim buf(ms.Length - 1) As Byte
> ms.Write(buf, 0, b.Length)
> ms.Close()
これさ、Save した後さらに同じ長さだけ初期化したばかりのバイト配列を「ストリームに書き込んでる」んだけど。
バイト配列にしたいなら ms.ToArray() でいいよ。
207デフォルトの名無しさん:2006/04/13(木) 11:32:39
VB2005使って、1週間目のプログラム超初心者ですが、
おすすめの参考書って、ありますか?

株式売買用のアプリを作ろうと思ってます
現在、データの呼び出し、抽出のところで、苦戦中
ちなみに、「VB2005 ビギナー編 BY 林晴比古」
をもってます 
208デフォルトの名無しさん:2006/04/13(木) 11:35:45
プログラミング VisualBasic.net Vol1,Vol2

初期バージョンのだけどマジお勧め
209デフォルトの名無しさん:2006/04/13(木) 18:02:57
Visual Studio 2005で、デバッグビルドってどうやって指定するのでしょうか?
2003のころは、「メニュー」→「ビルド」で、指定できたはずだけど、2005ではできない。
だから、debugオブジェクトを配置しても、「出力」ウィンドウに結果が表示されないんですよね。
何故なのでしょうか?
調べてみたのですが、見つかりませんでした。
ご存知の方、よろしくご教授願います。
210デフォルトの名無しさん:2006/04/13(木) 18:16:47
普通に F5 押せばデバッグビルドになるはずだが。
211デフォルトの名無しさん:2006/04/13(木) 18:30:50
>>209
VBのデフォルト設定ではDebugはイミディエイトウィンドウに出力される。
出力ウィンドウにしたいのならオプションですべての設定を表示して
デバッグ-出力ウィンドウの文字をすべてイミディエイトウィンドウに…をOFFに。

ビルドのDebug/Releaseはプロジェクトのプロパティで切り替えられるが、
オプションのプロジェクトおよびソリューション-ビルド構成の詳細を表示をONにした後
ユーザー設定でコマンドのビルドにあるソリューション構成をツールバーに置くと
簡単に切り替えできるようになる。
212デフォルトの名無しさん:2006/04/13(木) 21:00:25
>>206
いけました。
ども、ありがとうございました。
213デフォルトの名無しさん:2006/04/14(金) 01:22:52
C言語で書かれているWIN32APIのヘッダの定数をVB.NET用に変換するには
どうしたらいいですか?
具体的な方法を教えてくださいませんか?
214デフォルトの名無しさん:2006/04/14(金) 01:27:44
自分の手でごりごり書いていくのさ。定数も構造体も。
ひょっとしたら PINVOKE.NET に既にあるかもしれんがね。
215デフォルトの名無しさん:2006/04/14(金) 01:32:08
214さん
 たとえばC言語で定数が8だったらVB.NETでは&h0040みたいになるんですよね
これの具体的な導きだし方はどうしたらいいんでしょうか?
216デフォルトの名無しさん:2006/04/14(金) 01:35:16
8って?8って?
217デフォルトの名無しさん:2006/04/14(金) 01:36:10
0xならそのまま&hにすりゃいいし、
普通に10進ならそのまま10進で定義すりゃいいやん。
218デフォルトの名無しさん:2006/04/14(金) 01:38:18
8 が何故 &H40 に……?
ていうかまず 16 進数の基本的な考え方から勉強した方が良くないか?
そんなこと言ってるレベルで P/Invoke は早すぎると思うぞ。
219デフォルトの名無しさん:2006/04/14(金) 01:45:29
 だから例えばですって。
その16進数の変換の仕方がいまいちわからないです。
どこかいいサイトあります?
220デフォルトの名無しさん:2006/04/14(金) 01:49:14
>>217で書いてることが分からんか?
サイトだって16進数とかで検索したらいくらでも出てくるだろ、多分。
ついでに>>218も書いてるけどそれでPInvokeは無茶だぞ。
221デフォルトの名無しさん:2006/04/14(金) 02:08:11
textのn行目を削除する方法を教えてください。
よろしくお願いします。
222デフォルトの名無しさん:2006/04/14(金) 02:19:40
text なるものが何なのか分からない以上答えるのは困難だな。
223221:2006/04/14(金) 02:22:43
すみません、質問をちょっと変えます。


abcfagr ewarghww trhgwrfge wrgwaehtrw thwthgwth jthdefg
hijkrgg reqgq wargqw rgqwag rghqrhlmn

上のようなtextで、1行目を正規表現を使って削除するにはどのようにしたらいいのでしょうか?
それとも他の削除方法はありますか?
ご回答お願いいたします。
224デフォルトの名無しさん:2006/04/14(金) 02:35:21
n 行目じゃめんどくさそうだな。
StringReader と StringWriter 使った方が手っ取り早そうだ。
225デフォルトの名無しさん:2006/04/14(金) 03:29:01
Regex.Replace、MatchEvaluator辺りを使ってごにょごにょとか。
226デフォルトの名無しさん:2006/04/14(金) 08:27:21
>>223
すぐ正規表現使いたがる人多いけど
そういうことならデリミタでSplitしといてそいつを利用した方が
あらゆる意味で「使える」と思う。
227デフォルトの名無しさん:2006/04/14(金) 09:24:25
>>210
>>211
イミディエイトウィンドウに出てきました。
オプションで「ビルド構成の詳細表示」をチェックすると、VS2003のようになりました。
ありがとうございました。
228デフォルトの名無しさん:2006/04/14(金) 09:45:31
>>223

一行目を消すってーと

abcfagr ewarghww trhgwrfge wrgwaehtrw thwthgwth jthdefg
hijkrgg reqgq wargqw rgqwag rghqrhlmn

↓↓↓↓

hijkrgg reqgq wargqw rgqwag rghqrhlmn

こゆふうにしたいと?
229デフォルトの名無しさん:2006/04/14(金) 17:03:07
初心者です。
Visual Studio 2005でデータベースプログラミングをしています。
DataGridViewを使っているのですが、検索機能を付けたいと考えています。
どのコントロールにどんな操作をさせたらいいのでしょうか?
いくら調べても、よく分かりません。
どなたかご教授願います。
よろしくお願いします。
230デフォルトの名無しさん:2006/04/14(金) 18:06:30
>>229
その検索機能はどんな操作を行った時に実行したいのか?
231221:2006/04/14(金) 20:17:46
>>224-226
ご回答ありがとうございます。いずれの方法も調べてみます。

>>228
そうです。改行コードも含めて削除したいんです。
何か他に手法があったら教えてください。
232デフォルトの名無しさん:2006/04/14(金) 20:53:19
>>230
検索条件をテキストボックスに入れて、
ボタンを押したらDataGridViewの表示が変わるというようなやつです。
233デフォルトの名無しさん:2006/04/14(金) 20:56:00
で、どの部分が分からないんだ?
こっち的には表示が変わるというようなやつってのが分からんがね
234デフォルトの名無しさん:2006/04/14(金) 21:10:53
>>232
何となく分かった
ボタンの押下イベント内にDataGridViewのデータソースの元となるSQLを変更するロジックを作りなさい
235デフォルトの名無しさん:2006/04/14(金) 21:18:07
>>234
試してみます。
ありがとうござます。
236デフォルトの名無しさん:2006/04/15(土) 02:07:56
Visual Studio 2005の特にC++環境において,
エディタの文字コードはShift-JIS固定なんでしょうか?
EUCが使えるとうれしいのですが...
237デフォルトの名無しさん:2006/04/15(土) 02:13:13
UTF ならまだしも EUC はないだろー。
ていうかここは VS スレではない。
238デフォルトの名無しさん:2006/04/15(土) 02:39:43
VSスレと.netスレが別だったとはΣ( ̄□ ̄;)
スマソ.

EUCは無理ですか.
UNIX環境だとEUCだったりするんですよねぇ...
VSのエディタ使えたらいいかなぁーとか思ってたんですけど...残念.
239デフォルトの名無しさん:2006/04/15(土) 13:40:13
Visual Basic 2005 Express Edision の質問は、このスレでいいの?
240デフォルトの名無しさん:2006/04/15(土) 13:47:30
言語やフレームワークの問題ならここ。
IDE の問題なら Vistual Studio スレの方が良いかもね。
241デフォルトの名無しさん:2006/04/15(土) 14:21:10
フォームだと frm とか、チェックボックスだと chk
みたいなVBとかでよく使うプレフィックスの一覧表
とかって公開されていますかね?
242デフォルトの名無しさん:2006/04/15(土) 14:28:47
ドトネトはプレフィックス非推奨じゃない?

VB6のなら見つかったよ
http://www.microsoft.com/japan/developer/library/VBCon98/vbconobjectnamingconventions.htm
243デフォルトの名無しさん:2006/04/15(土) 14:43:48
>>242
ありがとう。
古いやつでも十分です。
244239:2006/04/15(土) 18:01:27
>>240
超初心者でその辺のところ区別がつかないけど、VB2005 Express Edision の第9章に
Webサービスの気象データを取得して、誰でも解る表示に加工しするサンプルソフト
作成が有るけど、Webからユーザネームとパスワード取得し入れても、旨く動作しないので
どなたか成功した人が居りましたら、やり方教えてください。

ちなみに、自己作成ソフトはもちろん、サンプル取得したソフトに取得ユーザネームとパスワードを入れても旨く行かない。
ユーザネームとパスワードの指定のやり方が間違えていると思い色々試すがダメでした。
たぶん、簡単なミスなのでしょうが、原因究明出来ないのです。
参照ページは、182ページです。


245239:2006/04/15(土) 18:15:49
182ページ
1行目そのまま
2行目
Username  String ユーザー     [email protected]
Password  String ユーザー     KXW8o2oVq234
CurrentZipCode  String ユーザー     98052

でやってみましたがダメでした。
成功した人よろしくです。


246デフォルトの名無しさん:2006/04/15(土) 23:53:19
ねー
vbって大文字小文字の区別ないんだよね?
アクセサの時、不便感じない?
247デフォルトの名無しさん:2006/04/16(日) 00:57:58
ケースセンシティブじゃないのが問題点と思うか利点と思うかは趣味の問題だろうね。
俺はむしろ利点だと思うけど。

それより配列の括弧の問題の方が大きいと思う。
248デフォルトの名無しさん:2006/04/17(月) 01:24:54
初心者です。
Visual Studio 2005 Standardエディションで、Windowsサービスを作成しました。
セットアップウィザードでセットアップぷロジェクトも作成したのですが、出来上がったインストーラを使ってインストールしても、「サービス」の一覧に作成したサービスが表示されません。
ServiceName属性もちゃんと設定したのに、何故なのでしょうか?
いくら調べても、他の原因が見当たりません。
どなたか、ご存知の方、ご教授願います。
よろしくお願いします。
249デフォルトの名無しさん:2006/04/17(月) 01:29:30
マルチ氏ね
250デフォルトの名無しさん:2006/04/17(月) 09:24:37
初心者です・・・と書かれた時点で読み飛ばす。それは免罪符にはなりません。
251239:2006/04/17(月) 10:04:29
>>250
言いたいことは、新バージョン持ってないから対応出来ない。
降参と言う事ですよね。

実は初心者ほど最先端のVB機能活用にチャレンジしてるから、ベテランは、基本言語仕様にしか対応出来ないのよ。
初心者の皆さんご免ね。
252デフォルトの名無しさん:2006/04/17(月) 10:44:09
>>248
セットアップとか作る前にちゃんと動く事を確認した?

とりあえず、ビルドしてそれをInstallUtilでインストールできるかどうかを確認しろ
253デフォルトの名無しさん:2006/04/17(月) 10:46:30
いいよ、エスパーの相手は。別に2005で普通に開発中だけど。

初心者って言う奴は間違いなく言語の初心者じゃなく、日本語とか対人コミュニケーションの初心者。w
254デフォルトの名無しさん:2006/04/17(月) 12:19:57
何でそうまでして初心者を嫌う?
だいたい質問なんてほとんど初心者がやるもんだろw
255239:2006/04/17(月) 12:22:16
>>253
成る程そう言う意味?
僕は2月に初めてVisual Basic 2005 Express Edition 買って「以前のバージョンはやってない」
第1章から第8章まで一通りのソフト作りをクリアしてきましたが、言語仕様とかは、かじっただけでうっすら
としか解らないけど、相対的に、VBって凄くソフト作り効率が良い言語開発環境だと理解しました。

第8章の車両データの検索加工ソフト作りまでをクリアし、最終章の第9章のWebからデータ取得して加工する気象トラッカ
ソフト作りで躓いた感じです。第9章マスターすれば付属マニアルは一応卒業ですので、何とかクリアしたいです。

簡単なソフト作りを積み重ねて将来的には、自分の頭に描いた通りのソフトが自由に作れるようになりたいです。
その為には、開発環境のマスターと言語仕様のマスターを合わせて修得する必要を感じてます。

256デフォルトの名無しさん:2006/04/17(月) 12:43:35
くだらないことに突っかかる奴がまともなレスなんかするわけないんだから
ほっとけば良いんだよ。

少しは冷静に知恵を使え。大人になれ
257デフォルトの名無しさん:2006/04/17(月) 12:58:26
>>254
技術的初心者と、そもそも説明能力の初心者は違うだろ?
どういうエラーが発生してとか、何処まで調べてとか、そういう基本が出来ない質問の書き出しはかなりの確率で、初心者なんですが。w
258デフォルトの名無しさん:2006/04/18(火) 07:43:22
>>257
> >>254
> 技術的初心者と、そもそも説明能力の初心者は違うだろ?
> どういうエラーが発生してとか、何処まで調べてとか、そういう基本が出来ない質問の書き出しはかなりの確率で、初心者なんですが。w

言えてる。
>>255 彼なんか初心者だ、しかしやってることは凄いことだ。
言語仕様の勉強では3ヶ月ではデータ加工ソフトなど絶対に出来ない。
統合開発環境が有るから出来るのだ。
VBの良いところは、統合開発環境であり、度素人がとんでも無いソフトを開発できると言う証明だ。

259デフォルトの名無しさん:2006/04/18(火) 10:35:03
>>258
と言うかね、世の中の人すべてが自分と同じ程度の頭の中身と思わないほうが良いよ
コンピュータの基礎が数学的な概念でほぼ占められてるから頭の良い人は一瞬で理解するよ
260デフォルトの名無しさん:2006/04/18(火) 13:15:17
WebBrowserコントロールの表示されている内容を、Bitmapとか、GetPixel可能な形式にするには
キーストロークでPrintScreen→ClipBoardから取得ってやるしかないんでしょうか?

CreateGraphics → GetHdc → GetPixel(WinAPI)だと、どうあがいても失敗してしまいます。
261デフォルトの名無しさん:2006/04/18(火) 18:26:38
>>260
GetDC(IntPtr.Zero) とか使ってデスクトップのデバイスコンテキストからやれば行けると思う。
262デフォルトの名無しさん:2006/04/19(水) 17:02:48
VB2005EX初心者ですが、
参考書にある、サンプルをデバッグすると

Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' から型 'System.Windows.Forms.WindowsFormsApplicationBase' を読み込めませんでした。

という、エラーがでてデバッグ中止されてしまうんですが、この対処法ご存知ないですか?
263デフォルトの名無しさん:2006/04/19(水) 17:07:40
なんか『ムー』の投書欄みたいだなw
264デフォルトの名無しさん:2006/04/19(水) 18:48:05
エスパーばかりのスレはここですか?

>>262
参考書って世の中にどんだけあるだろう。
なにをするサンプルなのかとかも書かないと誰もわからんよ。
265デフォルトの名無しさん:2006/04/19(水) 21:23:35
>>264
Visual Vasicパーフェクトマスター
にあるサンプルファイルで

http://shuwasystem.co.jp/books/vbperfectm/
からダウンロードしたものです
266デフォルトの名無しさん:2006/04/20(木) 02:23:25
>>265
どういうわけか知らんがプロジェクト設定が間違ったまま配布されてるみたいだね。

とりあえずプロジェクトファイルをVSで開いて、ソリューションエクスプローラの「マイプロジェクト」をダブルクリック。
出てきたプロジェクト設定のスタートアップフォームを *.Form1 から Form1 に選択し直せばコンパイル通るよ。

というか言わせてもらいたい。Hello,world!って表示するプログラムくらい、自分で書けっつの。
267デフォルトの名無しさん:2006/04/20(木) 04:59:40
>>262
> という、エラーがでてデバッグ中止されてしまうんですが、この対処法ご存知ないですか?

第7章 壊れたブロックの修復
と言う、デバックのテクニックを説明した章では無いですか?
それならば、サンプルは正常に稼働していて、停止したところの、バクを修正すれば良いと思うけどね。
何頁でのデバックでしょうか?
268デフォルトの名無しさん:2006/04/20(木) 08:40:03
ドロップダウンリストに複数のテーブルのデータを
割り付けたいのですが、どのようにやればいいのでしょうか
269デフォルトの名無しさん:2006/04/20(木) 11:06:20
>268
地道に
DropDownList.Items.Add("aaa") 'テーブル1のデータ
DropDownList.Items.Add("bbb") 'テーブル2のデータ
って必要な分だけやる
270デフォルトの名無しさん:2006/04/20(木) 11:18:12
ベジエ曲線と直線との交点座標を求めたいんですが、用意されてるものを使ってできるでしょうか?
もう一つ、ベジエ曲線の内側を塗る事はできるでしょうか?
271デフォルトの名無しさん:2006/04/20(木) 13:14:13
特定のファイルを使用しているプロセスを強制的に殺す手法を調べているのですが
見つかりません。どなたかいい方法をご存じないでしょうか?
教えて下さい。
よろしくおねがいします。
272デフォルトの名無しさん:2006/04/20(木) 13:20:16
無理無理
273デフォルトの名無しさん:2006/04/20(木) 13:47:29
>>268
その複数のテーブル間になんらかの関連(リレーションシップ)があるなら、
1つのDataSetにまとめて処理することも可能
274デフォルトの名無しさん:2006/04/20(木) 20:37:49
>>266
アドバイスありがとう
無事、ビルドし直したらエラーでなくなりました

PS.自分でHello,Word
という、プログラム書いて,違いを見つけ
たぶんMy application.designe.vb
のところ書き直して、力技で動かしました
275デフォルトの名無しさん:2006/04/20(木) 20:49:29
>>267
アドバイスサンクスです
全てのサンプルプログラムでエラーがでて、デバッグできませんでした
第7章は、ファイル操作と印刷になってますが、、、
第8章が、デバッグ関連になってます

”メンバ変数が定義されていません”
”フォームデザイナがビルドできません”
等の沢山のエラーです

まだ、全部は実行していませんが、

>>266さんの
やり方で、無事デバッグできました
276デフォルトの名無しさん:2006/04/20(木) 22:41:26
Visual Studio 2005 Express Editionの無償提供期間が
1年から無期限へ変更

http://www.forest.impress.co.jp/article/2006/04/20/visualstudioex.html
277デフォルトの名無しさん:2006/04/21(金) 00:56:19
SoundFileName = """D:\abccccc.mp3"""
で音が出たので、次に、abccccc という部分をクリップボードに入れておき、

SoundFileName = """D:\(Clipboard.GetText).mp3"""
のようにしたいのですが、うまくいきません。
クリップボードの場合、どのようにしたらよいのかご教授ください
278デフォルトの名無しさん:2006/04/21(金) 01:01:29
リテラルとそれ以外をごっちゃにしちゃったら駄目だろう。
"""D:\" & Clipbaord.GetText() & ".mp3"""
とかして分けろ。
て言うか何このマニアックなの。
279デフォルトの名無しさん:2006/04/21(金) 01:03:07
"""D:\" & Clipboard.GetText & ".mp3"""
280デフォルトの名無しさん:2006/04/21(金) 01:04:16
おお!!
できたできた ありがとうございます!
昨日VB始めましたw
281デフォルトの名無しさん:2006/04/21(金) 01:04:58
質問したいのですが
リストボックスのコレクションを変更する方法(関数,2003)を教えて下さい。
282デフォルトの名無しさん:2006/04/21(金) 01:22:21
>>281
とりあえず、質問の方法がそれで良いのか考えろってのはおいといて
AddとRemoveを使えばできるだろ
283デフォルトの名無しさん:2006/04/21(金) 01:23:34
>>282
わかりました、ありがとうございました。
284デフォルトの名無しさん:2006/04/23(日) 01:17:28
Microsoft Visual Basic 2005 Express Edition Betaを使っていますが、
INETコントロールを貼り付けようとしたところ、エラーメッセージ(このActiveXを使用するにはライセンスが必要です。)が
でたんですけど、これはExpress Editionだからでしょうか。
285デフォルトの名無しさん:2006/04/23(日) 01:24:00
VB6以前を入れてないからじゃね
つかそんなもん使わないで.NETで実現しろよ
286デフォルトの名無しさん:2006/04/23(日) 01:36:36
>>285
VB6以前は入ってない
.NETの体験版はあるのかな、みてくるか。期限あんのかな・・
287デフォルトの名無しさん:2006/04/23(日) 08:44:01
今度、VB.NET2005を使用することになりました。(.NET開発は初めてです)
勉強のため、ExpressEditionを入れてますが、質問があります。

VB6などでは、関数にカーソル合わせて、Shift+F2でその関数に移動したり、
移動先で Ctrl+Shift+F2で移動元に戻ったり出来たと思うのですが、
VB.NET2005ではこの動作は無くなったのですか?

288デフォルトの名無しさん:2006/04/23(日) 16:22:41
質問です。(.Net 1.1です)
リッチテキストボックス内の文章に、読み込んだ画像データを挿入したいのですが、その方法がよくわかりません。
どなたか、ご教授お願いします。
289デフォルトの名無しさん:2006/04/23(日) 17:09:58
>197 と同じ事でつまずいています。

別ドメインのサーバにあるファイルを操作したいのですが、
事前にアカウントの認証をする方法がわかりません。

エクスプローラーだと「(接続したいPC)に接続」というダイアログが出て
ユーザー認証を行えているので、なんとなく可能だと思っているのですが・・・

PSDKにある「LogonUser」だとローカルのユーザーしか駄目みたい。
「WNetAddConnection3」でネットワークドライブの割り当てをするのもちょっと避けたい。

理想はダイアログも出さないで、設定してある情報を使って認証をすませたいです。
エクスプローラーと同じダイアログの出し方など、ご存じの方いらっしゃいませんか?
よろしくお願いします。
290デフォルトの名無しさん:2006/04/23(日) 17:13:32
>WNetAddConnection3

...おしいなw
291デフォルトの名無しさん:2006/04/23(日) 22:25:41
すんません、どなたかご存知だったらご教示ください。

MDB内テーブルへのDataGridViewがあります。
こいつに、他DLL内から新規行を追加し、かつ、OnUserAddedRowイベントを
起こさせたいのです。
OnUserAddedRow関数はProtectedなため、大難儀しております。

DataGridViewを派生させCustomDataGridViewを作成し、そこで上記関数を呼ぼうかとも
考えたのですが、.NETで派生先クラスへインスタンスをつっこむやりかたもイマイチわからず。

よろしくお願いします。
292デフォルトの名無しさん:2006/04/23(日) 22:40:29
OnUserAddedRow はイベントじゃなくてメソッドだ、と。

なんかイベントの意味を勘違いしてるな。
イベントってのは利用者が起こすもんじゃない。

RowsAdded でも使え。
293デフォルトの名無しさん:2006/04/23(日) 23:25:00
>>292
そのとおりで、OnUserAddedRowはUserAddedRowを発生させる関数でした。

問題なのは、MDBにBindingSourceとTableAdapterとDatSet経由でバインドしているDataGridViewの
Rows.Addは実行不可例外が送出され、コード側から行追加できないこと。
この場合の行追加はBindingSourceへAddNewしなくてはならない。
しかし、この方法ではUserAddedRowイベントが発生せず、開発者が記述するUserAddedRowにハンドルした
関数を呼び起こせないこと、です。

RowsAddedが何を意味しているのか不勉強でわかりませんが、
引き続き、ご教示ください。



294デフォルトの名無しさん:2006/04/23(日) 23:38:10
だから、行が追加されたときに実行を期待されるメソッドを UserAddedRow イベントに追加するのが間違ってる。
UserAddedRow はあくまでユーザが DataGridView に直接行を追加したときに発生するイベントであって、
コードから行追加したときにまで発生しちゃいけない。

で、データソースに行が追加されたときに発生するのが RowsAdded イベントだ。
295デフォルトの名無しさん:2006/04/24(月) 00:01:27
>>294
なるほど。
しかし、すでに多数の画面に記述されているUserAddedRowにハンドルされたコードを
呼び出すことが目的で、その記述自体が概念的に誤りだとしても、(政治的にも)改修できないのです。

.NETの考え方的にあやまりだとしても、なんとかこの関数を叩く方法はないでしょうか。

296デフォルトの名無しさん:2006/04/24(月) 00:11:05
よくわからんけど、
Public Class CustomDataGridView
  Inherits DataGridView

  Private Sub DoSomething
    ……
    Mybase.OnUserAddedRow()
    ……
  End Sub

End Class

じゃいかんの?
297デフォルトの名無しさん:2006/04/24(月) 00:33:47
>>296
その方法が>291後半の方法なのですが、
CustomDataGridViewクラスへのダウンキャストが成功せず‥。

Private Class CustomDataGridView
Inherits DataGridView

Public Sub CallOnUserAddedRow(ByVal e As DataGridViewRowEventArgs)
MyBase.OnUserAddedRow(e)
End Sub
End Class

public Sub Hoge(ByRef p as DataGridView)
Dim X As CustomDataGridView = CType(p, CustomDataGridView)
'↑ここでキャスト例外が発生


End Sub
298デフォルトの名無しさん:2006/04/24(月) 00:39:35
リフレクション


しかしまあアレだな
こんなん納品されるところが可哀想だ
299デフォルトの名無しさん:2006/04/24(月) 00:41:25
>>297
意味わからんなあ。いったい何がしたいのか。
ダウンキャストが成功しないのはpが参照してるオブジェクトが
キャストしようとしている型じゃないからでしょ?
300デフォルトの名無しさん:2006/04/24(月) 00:49:45
>>299
多分、既存インスタンスは変更できないんだろう政治的に
派生先クラスへインスタンスを突っ込むとか言うぐらいだから技術的にもだろうけど
301デフォルトの名無しさん:2006/04/24(月) 01:33:11
tableAdapterにクエリを追加しようとしてるんだけど、
LIKE 検索したいときワイルドカードをどう記述すればいいの?

WHERE 変数名 LIKE '<パラメータ>%'

としたいんだけど。
もしかしてパラメータに%入れなきゃ無理?

あと、@Pram とかが使えないみたいだけど@パラメータ名は使えなくなってる?
302デフォルトの名無しさん:2006/04/24(月) 01:38:06
>>298
ありがとう、なんとかなりそうです。
そりゃわたしもきっちりコード書きたいですが、時間やお金は無尽蔵にないですしね‥。
303デフォルトの名無しさん:2006/04/24(月) 02:16:45
>>302
時間も金も無いからこそ事前に構造の設計を行う事と実装の実現性を確認する事が重要なんだな
まあ、一つ賢くなったと思って骨を埋めて来い
304デフォルトの名無しさん:2006/04/24(月) 14:54:13
非アクティブ時、
キーを押したらタイプライターのような音を出す
アプリをVBで作成することは可能ですか?
305デフォルトの名無しさん:2006/04/24(月) 14:56:15
不可能ではない
306デフォルトの名無しさん:2006/04/24(月) 15:12:14
反応が命だからDirectSoundが必要だな
307304:2006/04/24(月) 15:29:03
>>305
>不可能ではない

というと、非アクティブ動作だと一般的には無理という回答だけど、
技?を使えばokということでしょうか?
308デフォルトの名無しさん:2006/04/24(月) 17:53:27
今、VBのソースをDelphiに移植しようとしているのですが、
Helpを読んでも意味が分からないことがあるので、教えてください。

For Each A in B
hoge
Next
ってどういう意味なのでしょうか?

ヘルプを見てもループ制御変数とか色々小難しいことが書いてて例が無いので分からないもんで、
すみませんが、どなたか教えてください。
309デフォルトの名無しさん:2006/04/24(月) 17:58:15
B コレクションの内容を列挙して A に取り出しそれぞれ処理を行う
ていうかいくらでも書いてるってのサンプル
310デフォルトの名無しさん:2006/04/24(月) 18:20:30
>>287
「ツール」の「設定のインポートとエクスポート」はExpressにはないか?
311デフォルトの名無しさん:2006/04/24(月) 18:46:48
SQL Serverのトランザクション管理は以下のコードでうまくいくのですが、

Using tx As New Transactions.TransactionScope()
ta.Update(ds)
tx.Complete()
End Using

これをMDBでやろうと思ったのですが、
MDBでTransactionScopeを使用することは出来ないのですか?
312デフォルトの名無しさん:2006/04/24(月) 19:38:40
>>309
ありがとうございました。
313デフォルトの名無しさん:2006/04/24(月) 21:47:47
>>311無理
314デフォルトの名無しさん:2006/04/24(月) 22:42:19
>>313
ということは、MDBを使用した場合には、
TableAdapterのUpdateCommandで指定した更新の際にトランザクション管理することは出来ないということですか?

System.TransactionsはMDBで使用できないというような記述がどこかにあった気がしますが。。。
315デフォルトの名無しさん:2006/04/24(月) 22:45:48
と言うかトランザクション管理が必要なのに mdb 使うなよ。
いつファイルが壊れるか知れたもんじゃないぞ。
せっかく SQL Server 2005 Express Edition もあるんだし。
316デフォルトの名無しさん:2006/04/24(月) 23:00:15
>>315
SQL Server 2005 Express Edition って商用利用できましたっけ?

実家の自営で使う軽いアプリを低コストで出来ないかと試しているんですが。
無理そうならMSDEにしようかと考えていますが、
EnterpriseManagerやクエリアナライザなどのツールがないといろいろと面倒かな?
317デフォルトの名無しさん:2006/04/24(月) 23:08:34
SQL Server 2005 Express Edition と MSDE はほぼ同じもん。
MSDE だと SQL Server だと分かってくれないから名称変更。
ttp://www.microsoft.com/japan/msdn/vstudio/express/faq/
MS は Edition によって利用法制限したりはしてないよ。
318デフォルトの名無しさん:2006/04/25(火) 00:05:29
>>317
ありがとうございます。
自分の中では余計ややこしくなってるんですけど。。。

とりあえずは、セットアップパッケージにExpress Editionのサイレントインストール(?)を含めるようにする方法を調べてみます。
319デフォルトの名無しさん:2006/04/25(火) 00:15:01
質問です。

VB.NETからQuickTimeをCOMから操作できることを知ったので,
やってみようとおもったのですが,具体的なコマンドとかがまったくわかりません。
私なりに検索してみましたが,さっぱりわからずこまっています。
どなたか詳しい方いらっしゃいませんか?

320デフォルトの名無しさん:2006/04/25(火) 00:59:05
正直TableAdapterでTransactionが外から触れなくなってるのは
何とかしてほしいな。
触らしてくれてもいいだろって感じ。
321デフォルトの名無しさん:2006/04/25(火) 00:59:48
>と言うかトランザクション管理が必要なのに mdb 使うなよ。
そりゃちょっと違うだろ。
322デフォルトの名無しさん:2006/04/25(火) 04:49:39
インタフェースのメソッドをクラスでPrivate実装にすると、
インスタンスをインタフェースにキャストすることでPrivateメソッドが呼べるようですが、
C++やJavaのようにPrivateなインタフェースの実装を
クラス外のスコープから呼べなくするにはどうすればよいでしょうか。
323デフォルトの名無しさん:2006/04/25(火) 08:13:46
"Interface"って言葉の意味を辞書等で確認された方がよろしいのでは?
繋げないコネクタは既にコネクタじゃないでしょw
324デフォルトの名無しさん:2006/04/25(火) 08:14:15
>>314
TableAdapterあきらめてOleDBConnectionのトランザクション使えば?
325310:2006/04/25(火) 08:59:44
ごめん>>287よ。夢の中で間違いに気がついた。

ツールのオプションのダイアログで「すべての設定を表示」にチェックをいれて
左のツリーの環境−キーボードを選んで
「次の追加キーボードマップスキームを適用」で「Visual Basic 6」を選んで「OK」すればよかと。

326デフォルトの名無しさん:2006/04/26(水) 01:23:28
イベントハンドラのインターフェイスの、
無名クラスでの実装辺りのことを言ってる気がするな…
表現がおかしいけど。
327デフォルトの名無しさん:2006/04/26(水) 09:11:36
イベントハンドラのインターフェイス?
初めて聞く概念だな・・・
328デフォルトの名無しさん:2006/04/26(水) 09:20:50
クラスの継承とスコープ、イベントというか、Delegateとかその辺りと知識がごっちゃになってるんじゃないの?

329デフォルトの名無しさん:2006/04/26(水) 09:27:10
無名クラスってんだから Java のことだろ。
330デフォルトの名無しさん:2006/04/26(水) 10:51:43
イベントアダプタとかだっけ?なんかそんなのあるじゃん。
調べてないから表現は間違ってると思うが。
あ、これ自体はjavaの話だよ。
それの無名クラスでの実装みたいのが、
.NETではどうなるの?て話じゃないかと思ったてこと。
331デフォルトの名無しさん:2006/04/26(水) 14:20:49
VB2005において、PrintPreviewControlとColumns、Rowsの
関係についての質問です。

今、PrintPreviewControlに5ページからなるPrintDocumentが
関連付けれらているとします。
この状態で、Columns、Rowsをそれぞれ2に設定すると
初期状態で1〜4ページまで同時にプレビューできますよね?

ここからが困っているのですが、上記の状態で
「次」ボタンを作成して、5ページ目以降を表示させたいと思ったときに
PrintPreviewControlのStartPageプロパティに5を設定しました。
そうすると、2〜5までの4ページが表示されてしまいます。

希望としては、
  ・初期状態:1〜4ページが表示される
  ・「次」ボタン押下:5ページのみが表示される
   ※この時、Columns、Rowsは2のままで、2x2のマス目の左上に
    5ページ目のみを表示させたい

としたいのですが、上記に書いたStartPageの設定方法だと
  ・初期状態:1〜4ページが表示される
  ・「次」ボタン押下:2〜5ページのみが表示される

希望通りの動作をさせるにはどうしたらいいでしょうか?
332デフォルトの名無しさん:2006/04/26(水) 18:30:49
そんなこと可能なのかな?無理な気もするけど。。

プレビューなんて自分で実装すればいいじゃん。
別にたいして難しくないよ。
PrintPreviewControlってモーダルだしモッサリしてるし
プリンタがインストールされてないと使えないしで激しく使えん奴なんで
俺は使わないなあ。
333デフォルトの名無しさん:2006/04/26(水) 19:31:21
Open File dialog boxから複数のファイルを選択して、
開き先頭から12バイト読込みたいのですができますか?
334デフォルトの名無しさん:2006/04/26(水) 19:49:13
テキストボックスにはみ出るくらい長い文字列を入力するとTextAlignプロパティが効かなくなる(デザイン時にも)のですがこういうもんなんでしょうか?
TextAlignプロパティを変える前にTextプロパティを空にしてもだめでした。
335デフォルトの名無しさん:2006/04/26(水) 20:47:29
>>333
できる。
>>334
そういうもん。つかはみ出る文字列に対して TextAlign がどう働いて欲しいんだ?
336デフォルトの名無しさん:2006/04/26(水) 23:21:49
Webブラウザを利用したHtmlエディタを作りたくて今製作中なのですが…
Webブラウザのツールが無いです。

.NET Freamworkが1.1だからですかね?
337デフォルトの名無しさん:2006/04/26(水) 23:24:36
表示させるだけなら IE を CreateObject して Navigate でも良いと思うけどね
338デフォルトの名無しさん:2006/04/27(木) 00:30:29
全然関係無い話なんだが、ココ見てると↓みたいな会話が多くて面白いな

○<こーゆーことがしたいんだけど、手は無いかな?
●<そもそもそれを使うのが間違いでこーするべき
○<いや、こーゆーことがしたいんだけど
●<俺はそれは使わない

営業とSEの間でもよくこんな話してるわ
339デフォルトの名無しさん:2006/04/27(木) 00:58:18
>>338
はてそんなパターンの展開は見たことないけどな。
まあ多分338はよく人から「俺はそんなこと言ってない」って突っ込まれるんだろうけど、
実際君の理解力はきっとどこかおかしいんだと思うよw
340デフォルトの名無しさん:2006/04/27(木) 01:35:52
客がいうとおりはいはいできますいっちゃって
後でSEに無理って言われてふぁびょってる営業さんですか?
341デフォルトの名無しさん:2006/04/27(木) 07:44:29
>>337
IEを使わない場合(ツールのWebブラウザ)はVerを更新しないと無理?
342デフォルトの名無しさん:2006/04/27(木) 09:07:13
2.0ならIEコントロール付いてくるだろ
343デフォルトの名無しさん:2006/04/27(木) 09:43:00
>>342
所持してるのは1.1です。
ちなみにPCはオフライン、ネットカフェでファイルをダウン可能と言う状況です。

出来ますかね、アップロード?
344デフォルトの名無しさん:2006/04/27(木) 10:18:12
開発系の雑誌買ったら付いてこないか?SDK2.0
345デフォルトの名無しさん:2006/04/27(木) 10:47:35
>>344
探してみます、ありがとうございました。
346デフォルトの名無しさん:2006/04/27(木) 14:48:48
Wordファイル対象のgrepみたいなコマンドを作ろうとしてます。
Rangeで文字列を見つけるのは出来ましたが、その位置をページ番号と行番号で表示出来ません。どうすれば出来ますか?
347デフォルトの名無しさん:2006/04/27(木) 15:40:46
それはWordのVBAの話じゃまいか?
348346:2006/04/27(木) 21:27:41
VBやC#からWordクラス(オブジェクト)やExcelクラス(オブジェクト)
を操作できますが、
Wordクラスの使い方が判らなくて、試行錯誤状態です。
少しググって見ましたが、よくわかりません。
これらに詳しいサイトや本、あったら教えてください。
349デフォルトの名無しさん:2006/04/28(金) 20:28:32
プロパティとフィールドって、どう違うんですか?
スコープがPrivateかPublicかっていう以外は、違いが無いんじゃないんでしょうか?
Privateな変数を外に公開したいときにプロパティを使うっていうことなのでしょうか?
350デフォルトの名無しさん:2006/04/28(金) 20:39:53
プロパティなら値チェックとか色々できる
取得専用にもできる

> Privateな変数を外に公開したいときにプロパティを使うっていうことなのでしょうか?
そうすべき。
351デフォルトの名無しさん:2006/04/28(金) 20:40:16
>>349
どう違うって全然違うでしょ。
っていうかそんなレベルの話を自分で調べもせずにいちいち人に質問する人は
悪いけど多分プログラマ向いてないと思うよ。

まあ@ITのオブジェクト指向入門、みたいな連載が結構初心者にもわかりやすく
解説していたような記憶があるから読んでみたら?
352デフォルトの名無しさん:2006/04/28(金) 22:05:10
プロパティならすべてのフィールドを操作することができる
353デフォルトの名無しさん:2006/04/29(土) 10:35:17
>スコープがPrivateかPublicか
それはなんつーか初めて聞く発想だ。
大きく誤解しているようだが。
354デフォルトの名無しさん:2006/04/29(土) 11:27:09
だが実践的には
 フィールド・・・private
 プロパティ・・・public
で間違いないと思うぞ。
それ以外のスコープのつけかたは
あまり一般的とは思えないな。。。漏れは使うときあるけど
355デフォルトの名無しさん:2006/04/29(土) 11:39:20
そりゃ言ってることは分かるけど、
それが違いって言われちゃあ…
356デフォルトの名無しさん:2006/04/29(土) 12:09:50
プロパティなんて言葉使ってるのはMS製品だけ。
JavaやC++ではただのメソッドにすぎない。
357デフォルトの名無しさん:2006/04/29(土) 12:12:25
Delphi でも使われてるんだが……
358デフォルトの名無しさん:2006/04/29(土) 12:13:54
>>354
いや悪いけど間違いだよ。
もちろん用語の正しい意味用法を無視して、あえて「実践的な話」とやらをしたとしても。

例えばクラスにプライベートなプロパティーを持たせるのは別に普通のことだ。
359デフォルトの名無しさん:2006/04/29(土) 12:19:37
MS製品でもメソッドですが…
何が言いたいんだろ…
360デフォルトの名無しさん:2006/04/29(土) 12:30:18
プロパティはOOPには不要ってことだろ。
361デフォルトの名無しさん:2006/04/29(土) 13:26:26
>>358

 > 例えばクラスにプライベートなプロパティーを持たせるのは別に普通のことだ。

全然普通のことじゃないよ。
他のクラスからはもちろん派生クラスからさえ呼べないようなプロパティは、
もはやプロパティとして実装する必要はない。設計を間違えている。
362デフォルトの名無しさん:2006/04/29(土) 13:31:06
>>361
そりゃ君の経験または知恵が足りないだけだよ、悪いけど。
363デフォルトの名無しさん:2006/04/29(土) 15:28:42
>>362
君よりは知恵も経験もあると思うよ(・∀・)
364デフォルトの名無しさん:2006/04/29(土) 16:07:38
>>361
頻度としては高くはないが、別に有り得るだろ。
ていうか、それだけで設計が間違ってると言い切れる
お前の方がびっくりだ。
365デフォルトの名無しさん:2006/04/29(土) 16:35:47
だから、実践的には
 フィールド・・・private
 プロパティ・・・public
で間違いないと言っている。

>>349
あくまでごく一般的な使い方をするかぎりにおいての
話をしているんだと思うぞ。
このスレはやたらと細かいことにツッコミを入れて
得意がる奴が多すぎるな。(´・ω・`)
366デフォルトの名無しさん:2006/04/29(土) 16:47:15
プログラム初心者なんですが、

"1301""極洋""1000""東証"""
"1305""ダイワ上場投信−トピックス""100""東証"""
"1306""TOPIX連動型上場投資信託""100""東証"""
"1308""上場インデックスファンドTOPIX""1000""東証"""
"1310""ダイワ上場投信−トピックス・コア30""100""東証"""
"1311""TOPIX Core 30 連動型上場投資信託""100""東証"""
"1320""ダイワ上場投信−日経225""10""大証"""
"1321""日経225連動型上場投資信託""10""大証"""
"1329""iシェアーズ日経225""10""東証"""
"1330""上場インデックスファンド225""10""東証"""
"1331""ニチロ""1000""東証"""
"1332""日本水産""100""東証"""
"1334""マルハグループ本社""1000""東証"""
以降、延々と続く

このような、CSVファイルから、テキストボックスに例えば
1331と入力したら

ラベル1に、ニチロ
ラベル2に、1000
ラベル3に、東証

と、自動的に呼び出したいのですが、どのようにすればよいのでしょうか?

一度、これらをデータベース化したほうが良いのか?
使うならDictionaryメソッド?
よろしくお願いします

かれこれ、1週間近く悩んでます
367デフォルトの名無しさん:2006/04/29(土) 16:52:22
DataTable に突っ込んで、DataBindings 。
368デフォルトの名無しさん:2006/04/29(土) 17:07:59
>>365
だから間違いだって。
別に2ch的なガキっぽいのりで突っかかってるわけじゃない。

まあ一応少しフォローすると、プロパティの効用は
値の設定あるいは取得の際に、同時に何らかの処理を強制できる点にある。

そしてこの「値の設定あるいは取得の際に、同時に何らかの処理を強制」
する必要があるかどうかは、必ずしもその値のアクセスレベルとは関係がない。
369デフォルトの名無しさん:2006/04/29(土) 17:14:27
大抵そういう使い方になるってのはいいが、
違いはprivateかpublicかしかないんじゃ?とか思ってんだから、
それは間違いとしか言いようがないだろ。
370デフォルトの名無しさん:2006/04/29(土) 17:20:49
「メソッドでも別に問題ないけど、あったほうが便利かな」的な機能ってことで、おk?>プロパティ

ついでに、C#のプロパティは、

xxx hoge
{
get{}
set{}
}
だから、メッサコンパクトでわかりやすいね・・・。
readonly,writeonlyも必要ないし。
371デフォルトの名無しさん:2006/04/29(土) 17:45:58
おk。
それを熱く語るのは定義厨だけ。
372デフォルトの名無しさん:2006/04/29(土) 19:09:39
vb.net 2005 で質問です。

TabControlにTabPageを動的に割り当て、
さらに、コンテキストメニューに"閉じる"という項目を作って、
"閉じる"をクリックしたら、そのページを選択してる、していないに関わらず、
マウスの位置にあるページを動的に閉じるという処理をしたいんですが、
各ページのLeftやWidthは、親コンテナのTabControlの値しか入ってないようです。
現在のマウスの位置から、どのページが選択されているかを判別する方法って
ないでしょうか?
373デフォルトの名無しさん:2006/04/29(土) 19:37:34
TabPage の管轄にタブそのものは含まれてないからな。TabControl の管轄だ。
マネージドでやるなら TabControl の GetTabRect を回して合致するタブインデックスを調べる。
374372:2006/04/29(土) 19:59:26
>>373
わーい
判定できました。
ありがとうございます。ヽ(´ー`)ノ
375デフォルトの名無しさん:2006/04/29(土) 20:57:20
このようなユーザー定義型で、createTimeの項目でソートをする方法を教えてください。

Private Structure searchFile
Dim filePath As String
Dim createTime As DateTime
End Structure
376デフォルトの名無しさん:2006/04/29(土) 21:08:11
IComparable 実装させろ
377デフォルトの名無しさん:2006/04/29(土) 21:11:44
最近のプログラマは言語側でソート関数用意しないといけないのか?

少なくても10年前とかは、アルゴリズムの勉強やらで、交換法やら選択法やらクイックソートやら
ヒープソートってもんを勉強したもんだが・・・
378デフォルトの名無しさん:2006/04/29(土) 21:13:47
>>375
ICompareインターフェイスの比較関数を自分で書いて、Array.Sort(Array, IComparer) でソート。
379デフォルトの名無しさん:2006/04/29(土) 21:21:18
>>377
今、大学生だけど、普通にやるよ>アルゴリズム

というか、せっかく2005にジェネリックがあるんだから、
汎用ソート関数でも書いてみたらどうでせう。
380デフォルトの名無しさん:2006/04/29(土) 21:28:33
>>377
.NET では用意するのは比較関数。
それを使ってのクイックソートはフレームワークがやってくれる。
Array とか List<T> とか使うぶんにはな。
381デフォルトの名無しさん:2006/04/29(土) 21:32:10
みなさんどうもです。
ICompareインターフェイスがよくわからないので、強引にソート関数作ってみます。
382デフォルトの名無しさん:2006/04/29(土) 21:35:29
プログラムの世界も、かなり『ゆとり教育』なんですね。
383デフォルトの名無しさん:2006/04/29(土) 22:01:12
>ICompareインターフェイスがよくわからないので

「よくわからない」じゃなくて、
MSDNライブラリを読めよ。
インタフェースがわからないんだったら、勉強汁
384デフォルトの名無しさん:2006/04/29(土) 22:04:55
VB.net初めてまだ2日なんでご勘弁をww
385デフォルトの名無しさん:2006/04/29(土) 22:11:06
ジェネリックでソート処理を共有しようとしたら、
タイプパラメータの制約を定義したり色々とめんどくなりそうだなw
最低限、ICompareを実装してるものに制約しなきゃならないな。
386デフォルトの名無しさん:2006/04/29(土) 22:15:45
ICompare なんて無いってば
387デフォルトの名無しさん:2006/04/29(土) 22:24:03
>>366
レスを無視した上にマルチかよ。
388デフォルトの名無しさん:2006/04/30(日) 12:18:19
EXEファイルのアイコンにエクスプローラからDNDしてプログラムを起動したとき
何のイベントが発生しますか?デバックできなくて困ってます。
OnLoadが発生して起動時のコマンドライン引数にDNDのデータが来ると思ったのですが
デバッガの起動時のコマンドライン引数に全角文字を入れても問題がないのですが、
アイコンにDNDするときに全角文字が入っていると例外が発生します。
よろしくお願いします。
389デフォルトの名無しさん:2006/04/30(日) 12:21:26
意味がよく分からんが、取りあえず Main メソッドを自前で定義したらどうだ。
390デフォルトの名無しさん:2006/04/30(日) 15:05:24
キーバッファの取得とクリアってどうすればよいですか?
391デフォルトの名無しさん:2006/04/30(日) 15:34:30
dosの時代でもあるまいし、そもそもキーバッファなんてものは
存在しないんですが。。
392デフォルトの名無しさん:2006/04/30(日) 16:28:29
Microsoft Visual Basic 2005 Express で、アプリケーションの発行をFTPでWeb鯖上へ行ったとき、
HTMLが作られて、その中に .application という拡張子のファイルへのリンクがあり、インストール
となっていますが、IEでこれをクリックしてもXMLの内容が表示されるだけでインストールできません・・。

アプリを起動したときにバージョンチェックとかもできるようで、Webへの発行は便利そうなんですが、
なんかうまく動かないです。

この機能って具体的にどうやって使うのでしょうか?
やはり、IISとかが必要になるのかしら?
393デフォルトの名無しさん:2006/04/30(日) 16:50:39
392です。
ClickOnceってなまえの機能みたいですね。
これ、証明書とか書いてあるけど、なんか登録しないとだめなのかな?
394デフォルトの名無しさん:2006/04/30(日) 17:01:27
VSで発行したなら、勝手に作られてる
395デフォルトの名無しさん:2006/04/30(日) 18:35:03
VB.NET 2005の質問です

MDIフォームから
子フォームを呼び出したときに親の方にはスクロールバーが出ますが
なぜかホウスのホイールが効きません。
ホイールでスクロールさせるにはどのプロパティをいじったらいいでしょう

馬鹿っぽい質問でごめんなさい
396デフォルトの名無しさん:2006/05/01(月) 21:16:33
アプリケーションのインストールされたディレクトリのパスを得るには?
なんか、関数ないかしら?
397デフォルトの名無しさん:2006/05/01(月) 21:20:44
>>396
少しは調べろ。

.NETFramework関数だろうがMyだろうが調べりゃ出てくる。
398デフォルトの名無しさん:2006/05/01(月) 23:09:17
>>396
Path.GetDirectoryName

System.Reflection.Assembly.GetExecutingAssembly().Location

を組み合わせるとか?

ふと、VB6だと、App.Pathとかで取得できたなぁとか、懐かしくなる。
399デフォルトの名無しさん:2006/05/01(月) 23:12:46
やってみます。
なんか、いっぱいあってどれが目的の動作をしてくれるのかよくわからんね。
400デフォルトの名無しさん:2006/05/01(月) 23:19:53
初めて取り組むもんはなんでもそうさ
401デフォルトの名無しさん:2006/05/01(月) 23:52:49
質問です。
問題1
文字列→数値の変換は標準関数を使用していたが、変換関数を自分で作成せよ。

問題2
100個要素を持つ配列整数変数を宣言し、その中に1,2,3、・・・100の値を入れる
402デフォルトの名無しさん:2006/05/01(月) 23:54:07
>>401は誤爆です。
403デフォルトの名無しさん:2006/05/01(月) 23:54:32
質問じゃなくて宿題だろ
404デフォルトの名無しさん:2006/05/02(火) 15:06:27
フォント名に対応するフォントファイルのファイル名を取得する方法はありますか?
フォントフォルダの場所はSHGetSpecialFolderPath関数で取得できたので、
あとはファイル名だけがわかればいいのですが。
405デフォルトの名無しさん:2006/05/02(火) 15:57:13
>>401
ヒントだけやろう。

> 問題1

Convert.ToInt32


> 問題2

int hairetu = new int[100];

for(int i=0; i<100; i++)
{
// この中の処理くらいは考えろ。
}
406デフォルトの名無しさん:2006/05/02(火) 15:58:51
>>405
C# で、大体は書いた。あとは VB.NET で書き直せ。
407デフォルトの名無しさん:2006/05/02(火) 18:56:00
現在ASP.NETでメールの受信を作っていますが、Quoted Printable形式
のデータをデコードしたいのですが、うまくいきません。
bace64はなんとかクリアしたのですが、Quoted Printable形式だと、C++
だとデコードするプロパティがあるようですが、言語がVBだと無いのでしょうか?

408デフォルトの名無しさん:2006/05/02(火) 19:01:42
なんかつっこみどころ満載だぞ
409デフォルトの名無しさん:2006/05/03(水) 03:27:42
質問させてください。
VB2005を使用しています

WebBrowserからサイトを表示、フォームにID,パスワードを入力、
ログインボタンを押下という手順にしたいのですが、
どのプロパティを使用したらいいのでしょうか?

どうやってもフォームに文字が入力できないのです。
410デフォルトの名無しさん:2006/05/03(水) 03:29:59
どこが分からんのだ
411デフォルトの名無しさん:2006/05/03(水) 07:35:37
>409
ttp://yaplog.jp/taka_mai_jp/ でそれらしき、コトしてるぞ。
412デフォルトの名無しさん:2006/05/03(水) 10:17:26
VB.NETを最近始めたばかりです。
コントロール名を文字列(String型)に格納しておいて、操作をする
コードはどのように記述したらよろしいのでしょうか。
MS-Accessの
dim str1 as string
str1="Text1"
me(str)="aaaaaa"
にあたるものです。
どうぞ宜しくお願いいたします。
413デフォルトの名無しさん:2006/05/03(水) 10:22:08
コントロール名を文字列変数に格納するのではなく、
コントロールへの参照をControl変数に入れておきましょう。

どうしても文字列でコントロール指定したいなら
HashTableでも使いましょう
414デフォルトの名無しさん:2006/05/03(水) 11:01:22
>>413
サンクスです。
415デフォルトの名無しさん:2006/05/03(水) 12:26:59
リフレクション使ったら?(・∀・)
416デフォルトの名無しさん:2006/05/03(水) 14:00:36
(・3・) エェー
417409:2006/05/03(水) 16:44:07
>>410
レスありがとうございます。
たとえばログインフォームに文字を入力する場合、

WebBrowser1.Document.GetElementsByTagName("input").Item(0).Value = "ログインID"

などとコードを書いても
「'Value' は 'System.Windows.Forms.HtmlElement' のメンバではありません。」
となってしまいます。

どんなコードであれば.Valueが使用できるのか教えていただけませんか?
もしくは別のアプローチでフォームに文字を入れるのでしょうか

>>411
レスありがとうございます。
リンクの方はWebBrowserを使用していないみたいです
418デフォルトの名無しさん:2006/05/03(水) 17:11:29
ドキュメントで HtmlElement のクラスメンバ見れば分かるように Value なんてない。
.NET 2.0 の HTML DOM は、HTML 要素は全て HtmlElement 型で扱い、要素特有のメンバは扱わない。
で、value だろうが結局は属性に過ぎないわけで。
HtmlElement 調べれば属性を操作するメソッドはすぐ見つかる。
419デフォルトの名無しさん:2006/05/03(水) 18:36:14
レガシーなWebBrowserコントロール使ってるのならHtmlElementクラスの
エラーなんか出ずに正常動作するお。
420デフォルトの名無しさん:2006/05/03(水) 18:39:43
解放されない COM オブジェクトの海に沈んで溺れてしまえ
421デフォルトの名無しさん:2006/05/03(水) 18:56:16
CreateObjectでIE起動すればよいだけの話
422デフォルトの名無しさん:2006/05/03(水) 21:58:15
423デフォルトの名無しさん:2006/05/03(水) 23:55:04
ドキッ
424デフォルトの名無しさん:2006/05/04(木) 00:57:24
openFileDialog1->FileName
だとフルパスでファイル名を取得することになるんだけど
ファイル名だけ取得したい場合はどうやたらいいのかな?
425デフォルトの名無しさん:2006/05/04(木) 01:00:20
Path クラスのメソッド使え
426デフォルトの名無しさん:2006/05/04(木) 02:43:18
DataGridviewを使用しているのですが、行き詰ってしまいました。

2つのフォームを使用しており、form1にDataGridviewが配置されており
データを追加しています。

このDataGridviewのセルをクリックした時、クリックした行のデータをform2に
表示させたいのですが、可能でしょうか?
どこを検索してもさっぱり見つからず、途方にくれております・・・
427デフォルトの名無しさん:2006/05/04(木) 02:46:53
何が分からないのかが分からない
まず順序立てて何が必要か考えてみろ
428VBの初心者:2006/05/04(木) 02:47:37
VBネットを始めたばかりの者です。こんばんわ。
実は、VBの教科書の問題ができなくて困っています。

サイズ10の配列Aのデータをウィンドウの
テキストボックスに表示したり、テキストボックスに入力したデータを配列Aに保
存したりするプログラムを完成させよ。
なお、それぞれの命令はあらかじめ用意されているボタンが
クリックされたときにのみ実行されるようにすること。

という問題なのですが、もしよろしければ教えてください。
429デフォルトの名無しさん:2006/05/04(木) 02:51:31
問題点をはっきりさせろ
430デフォルトの名無しさん:2006/05/04(木) 03:00:43
何が出来ないのだ
何が出来るのだ
431最凶VB厨房:2006/05/04(木) 07:23:30
  Private 配列A(9) As String
  Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    配列A(0) = TextBox1.Text
  End Sub

  Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
    TextBox1.Text = 配列A(0)
  End Sub

  Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load
    Dim i As Integer
    For i = 0 To 9
      配列A(i) = ""
    Next
  End Sub
432最凶VB厨房:2006/05/04(木) 07:24:15
Button1,Button2,TextBox1配置
433デフォルトの名無しさん:2006/05/04(木) 08:05:18
>426
>表示させたいのですが、可能でしょうか?
>どこを検索してもさっぱり見つからず、途方にくれております・・・
できないわけないだろうよ
ちゃんと調べたのか?

Windows フォームのプログラミング -DataGridView コントロール (Windows フォーム)
http://msdn2.microsoft.com/ja-jp/library/e0ywh3cz.aspx
をよく読め

多分やりたいことは
「DataGridViewのCurrentCellAddressを使って、DataGridViewのItemから要素を取り出す」
だろうから、そのコードをFormのDataGridViewのCellClick イベントに書け

Form1からForm2が見えないとか言うなよ
434デフォルトの名無しさん:2006/05/04(木) 12:25:08
windows forms で、

あるフォームを(FormA) ShowDialog で表示させ、そのフォームの中から別のフォーム(FormB)を
さらに ShwDialog で表示させたいのですが、この時、FormA → FormB が ShowDialog
されたタイミングで FormA は閉じたいのですが、それがうまくいきません。

ShowDialog された自分自身を閉じつつ、別の Form を ShowDialog させるには
どのようにすればよいでしょうか?

アドバイスよろしくお願いします。
435デフォルトの名無しさん:2006/05/04(木) 13:57:05
デジャビュを感じたが気のせいだろうか
436デフォルトの名無しさん:2006/05/04(木) 15:36:12
Hide()でいいんならできないか?
437デフォルトの名無しさん:2006/05/04(木) 17:20:35
VB.NETで値型の参照をコピーする方法はありますか?
dim a as integer
dim b as integer
a = 100
b = 100

aにbの参照をコピーしたい

で a = 300 としたらbも 300 となるようにa=Bとしたいんですが方法があれば
教えてください。
438デフォルトの名無しさん:2006/05/04(木) 17:37:43
Int32使え
439デフォルトの名無しさん:2006/05/04(木) 17:43:53
>>437
くだらない問題意識としかいいようがないな。
他にもっとやるべきことがあるだろうに。
まあオブジェクト型の変数にボックス化しとけばできないことはないんじゃない?


>>438
意味不明
440デフォルトの名無しさん:2006/05/04(木) 18:24:28
>>437
変数のエイリアスを使いたいのだろうが、VB.NETではその様な機能は今の所無い
まあ、メソッドやサブルーチン内であれば擬似的にエイリアスっぽいことが出来るが

重要なのはVB.NETに向いた設計をしていればその様な機能は必要がないって事だ
441デフォルトの名無しさん:2006/05/04(木) 20:23:25
Public Class ValueTypeRef(Of T As Structure)
Private v As T()
Public Sub New(ByVal v As T)
Me.v = New T() { v }
End Sub
Public Property Value As T
Get
Return Me.v(0)
End Get
Set(ByVal value As T)
Me.v(0) = value
End Set
End Property
End Class

Dim a As New ValueTypeRef(Of Integer)(1)
Dim b As New ValueTypeRef(Of Integer)(2)
a = b
b.Value = 100
Console.WriteLine("a = {0}", a.Value)
Console.WriteLine("b = {0}", b.Value)

配列をラップしてみた
かなり気持ち悪いが
442441:2006/05/04(木) 20:27:33
配列にする必要ないな
今気づいた
443デフォルトの名無しさん:2006/05/04(木) 21:16:51
>>439
Int32構造体も知らないのか???
444デフォルトの名無しさん:2006/05/04(木) 21:21:02
>>443
構造体の意味も知らないのか???
445443:2006/05/04(木) 21:30:56
>>444
知ってるよ
446デフォルトの名無しさん:2006/05/04(木) 22:28:20
構造体が値型なのも知らないのか
447デフォルトの名無しさん:2006/05/04(木) 22:58:49
>>446
誰にレス付けてんだよ?おまえ
448デフォルトの名無しさん:2006/05/04(木) 23:12:11
みなさん、ClickOnceって使ってます?
バージョンアップすると、アプリのパスとか変わってちょっとあせったけど、
今後はやるのかな?
449デフォルトの名無しさん:2006/05/05(金) 00:34:34
以前、MS-Accessで開発をしていたものです。
基本的な質問で申し訳ありませんが、VB.NETのフォームには、
Accessでいうフォームヘッダというものはないのでしょうか。
フォームをスクロールさせても、必ず上部にオブジェクトが
固定されて表示されるものなのですが。
450デフォルトの名無しさん:2006/05/05(金) 00:43:00
そう言う風に配置すればいいだけだろ。
Dock プロパティとか Panel クラスとか使え。
451デフォルトの名無しさん:2006/05/05(金) 01:04:56
>>450
調べてみます。ヒントありがとうございました。
452デフォルトの名無しさん:2006/05/05(金) 02:15:53
MSDNサブスクライバからダウンロードできるようだけど
MSDN library June2006 使ってる?インストールできますか?
453デフォルトの名無しさん:2006/05/05(金) 13:28:00
VB.NETを最近始めた物です。
印刷を行う方法について調べていたのですが、手元の書籍にはCrystalReportsを
使用する方法しかありませんでした。これは、VB.NET Standard Editionではサポート
されていないとのことでしたので、それを使用する以外の方法を探していて、
以下のサイトを見つけたのですが、以下のサイトの方法だと、印刷プレビューの
表示無しにいきなり出力されてしまいます。
http://www.atmarkit.co.jp/fdotnet/dotnettips/393printdoc/printdoc.html
印刷プレビューを表示させる一連のサンプルが書かれたサイト、もしくは
キーワードのヒントをいただけませんでしょうか。

どうぞ宜しくお願いします。
454デフォルトの名無しさん:2006/05/05(金) 13:39:13
455デフォルトの名無しさん:2006/05/05(金) 13:55:32
>>454
サンプルが載っているサイトに簡単にたどり着けました。
光ファイバーで首つってきます。
456デフォルトの名無しさん:2006/05/05(金) 17:04:21
ファイバーを折らないように上手く吊れよ
457デフォルトの名無しさん:2006/05/05(金) 17:12:06
VB5のときにたしかあったと思うLineオブシェクト?(VisioとかExcelによくある線の両端が動かせる棒線の部品)
あれのVB.net版はどれなんでしょうか?
458デフォルトの名無しさん:2006/05/05(金) 17:18:30
>>457
無くなった。
ラインだけでなくシェイプコントロールも無くなった。

.NETではGDI+を使用します。
459デフォルトの名無しさん:2006/05/05(金) 17:19:37
なるほど、ありがとうございます。
460デフォルトの名無しさん:2006/05/05(金) 18:15:06
っていうかMS様がわざわざVB厨向けに、園児の絵本なみにフレンドリーな
「移行ガイド」用意してくれてるんだから人様に質問する前にせめてそれぐらい読めよな。
MSDNライブラリのチュートリアルにだってそんなこと最初に書いてあるし。
461デフォルトの名無しさん:2006/05/06(土) 00:24:19
質問なのですが、運送会社とのEDIシステムを作りたいと考えています。
店のPCでのシステムは完成したのですが、運送会社へは何をどう送るのかがわかりません。
単純にCSV形式のファイルを送れば良いのでしょうか。
開発経験者の方や詳しい方がいらっしゃいましたら、回答宜しくお願いします。

開発環境はVB.NET2003です。
当方、独学による設計です。
462デフォルトの名無しさん:2006/05/06(土) 00:27:05
何を送るかなんてしらねーよw
運送会社へ聞けよボケ
463デフォルトの名無しさん:2006/05/06(土) 01:02:14
釣りなのかマジなのかどっちなんだろうなw
464デフォルトの名無しさん:2006/05/06(土) 01:11:46
来たなGW厨
465デフォルトの名無しさん:2006/05/06(土) 01:19:59
気分を害してしまったのなら申し訳ありませんでした。
運送会社が無料で提供しているものを使えばいいのですが、
現状では二度手間になってしまっています。
資格も持っていない私が相談に行って、相手をしてもらえるのか
心配だったので、こちらで質問させていただきました。

素人の私が突然出てきてしまい、申し訳ありませんでした。
466デフォルトの名無しさん:2006/05/06(土) 03:08:47
>>465
親切な>>462が適切な回答をしてるじゃねーか。
>>462を10回音読汁!
467デフォルトの名無しさん:2006/05/06(土) 08:52:05
>461
相手が運送会社なら取りに来てもらえよ
取りに来て送り届けるのが運送会社の仕事だよ

マジで聞いてるなら
465に書いているとおり、運送会社が無料で提供しているものがあるのなら
それを使って送るようにシステム組みなおすのが筋ではないかね

そもそも運送会社にとって上客ならセンターと連動した専用端末置いてくれるよ
上客でなければ相談に行っても営業所で軽くあしらわれるのがオチ
468デフォルトの名無しさん:2006/05/06(土) 08:56:45
>>465
ここはやりたいことをVB.NETで実現する方法を聞くところだから明らかに
スレ違いだと思うが、無料のものがなぜ二度手間になるのかは聞きたい
ところだ。
469デフォルトの名無しさん:2006/05/06(土) 09:40:29
実際にファイル送っているだけならEXCELでデータ入力してCSV保存して
FTPソフトでアップロードすればいい。プログラムなんかいらね
470デフォルトの名無しさん:2006/05/06(土) 21:18:45
Graphics.DrawString メソッドなどで物を描く際、
ドット単位になっていますが、これをミリメートル単位にする事は
可能なのでしょうか?
帳票があらかじめ指定されている際、長さを測って描く場合、
ミリメートル単位にしないと非常に時間がかかってしまいます。
471デフォルトの名無しさん:2006/05/06(土) 21:21:16
PageUnit 使えばいいような気がする
472デフォルトの名無しさん:2006/05/06(土) 21:45:23
>>471
解決しました。キーワードのヒントありがとうございました。
473デフォルトの名無しさん:2006/05/07(日) 02:55:58
avast が定義ファイルを更新した時に出てくるようなやつとか、
MSNのメッセンジャーで誰かがログインしたときにタスクバーから飛び出してくるあれ。
あんな感じのメッセージの出し方をしたいのだが、Windowsに専用のAPIのようなものがあるのかしら?

それとも、地道にフォームを描画するしかないのかな?
474デフォルトの名無しさん:2006/05/07(日) 14:01:02

ASP.NETでWebアプリをつくりたくて、
今、「ASP.NETでいってみよう」を読みながら弄くってみたんだけど、
この本だと、設計の方法とかがわからない。
一応オブジェクト指向の基本はわかっている(つもり)けどWebは初めてなんです。
ASP.NETで設計とかパターンのようなものが学べるよい本はありますか?
475デフォルトの名無しさん:2006/05/07(日) 14:59:06
476デフォルトの名無しさん:2006/05/07(日) 15:01:44
『.NETによるエンタープライズソリューションパターン』(日経BP)
477デフォルトの名無しさん:2006/05/07(日) 16:06:24
WindowsFormのDataGridでNULLを入力したいのですが、
どうすればいいでしょうか?
・何も入力しない→空文字
・「NULL」→「NULL」という文字列が入力される。
・「DBNull」→「DBNull」という文字列が入力される

478デフォルトの名無しさん:2006/05/07(日) 16:12:48
ひょっとしてそう言う文字列を代入してるとか……言わないよな?
479デフォルトの名無しさん:2006/05/07(日) 16:47:38
>>477
@DataColumn.DataTypeでString以外の型を指定する
ADataGridColumnStyle.NullTextにNullの代わりに表示したい文字列を指定する
480デフォルトの名無しさん:2006/05/07(日) 17:29:43
Label.text = "あ" & vbTab & "い"
なぜか間が開かず、
あい
となります。どうやればタブスペースをあけられるでしょうか?
481デフォルトの名無しさん:2006/05/07(日) 17:36:19
タブを半角空白に置換しておく
482デフォルトの名無しさん:2006/05/07(日) 17:45:54
>>481
よく分からないのですが、
Label.text = "あ" & " " & "い"
こういう事でしょうか?ならばそれでは駄目で、
列の位置を揃えるためタブスペースを入れたいのですが。
483デフォルトの名無しさん:2006/05/07(日) 17:47:59
タブだけ表示してみそ
484デフォルトの名無しさん:2006/05/07(日) 18:24:17
派生クラス作って OnPaint にごりごり書く つっても数行だけど
485デフォルトの名無しさん:2006/05/07(日) 18:58:19
LabelだとvbTabが使えなかったんで、TextBoxにReadOnlyプロパ
ティをTrueにしたやつで代用したことがあったなぁ。
486デフォルトの名無しさん:2006/05/07(日) 19:30:45
ほんとうは6.0の話題も入っているのですが、ここで質問させてもらいます。
6.0でpointというのはどのような機能なのですか。
そして、これを.NETで書き直そうしているのですが、できますか?
いろいろ調べたのですが、どうもはっきりしないのです。
いまやっているのは、VB6.0で書かれている本を全部.NETで書き直そうしているのです。
アルゴリズムの入門書なので言語自体には説明はないのです。
すいませんがお願いします。

半分ぐらいは直してみたんですけどね。
487デフォルトの名無しさん:2006/05/07(日) 19:35:27
何してるかも分からないコードを移植って凄いな
488デフォルトの名無しさん:2006/05/07(日) 19:35:59
付け加えますと、picture1.pointというときに使う
pointです。
よろしくお願いします。
489デフォルトの名無しさん:2006/05/07(日) 19:39:11
>>487
いやもちろん、画像ででるから何をしているかは
大体分かるのですが(w
これでも、本の半分ぐらいは.NETに直したのです。
BASICを少しだけやったことはあったのですが、極めてみようと
今やっているのです。6.0と.NETをまとめて勉強しようと思い始めました。
490デフォルトの名無しさん:2006/05/07(日) 19:46:57
本は多分皆さんご存知のものだとおもうのですが、
こういう場所でそのコードを書いて良いのかわからないので・・・。
491デフォルトの名無しさん:2006/05/07(日) 19:52:19
ヘルプでpointとGetPixelが見つけられないのなら
素直に.NETの初心者向け書籍を買ったほうがよい

492デフォルトの名無しさん:2006/05/07(日) 19:52:32
>>490
お前の読んでる本なんかわかるわけねーだろw
493デフォルトの名無しさん:2006/05/07(日) 19:55:31
>>491
一応、本片手でやっているのですが・・・。
載っていないのです。
VB6.0の本にもpicutr1.pointの機能を使った物は載ってないし・・。
getpixelでしょうかね?

>>492
すんません(w
494デフォルトの名無しさん:2006/05/07(日) 19:57:55
ヘルプも知らないのか?
495デフォルトの名無しさん:2006/05/07(日) 20:33:03
わからないときはF1キーを押せと学んだよ。
496デフォルトの名無しさん:2006/05/07(日) 20:33:05
このスレ本当馬鹿な質問者が現れると待ってましたとばかりに
叩く奴がワラワラ出てくるな。

まさに♪弱いものたちが夕暮れ〜を地で行っている感じw
そういう自分に虚しくならんのかね。

>>486
釣りでしょ?
君も虚しくないか
497デフォルトの名無しさん:2006/05/07(日) 20:45:29
質問者はPointに対応するGDI+のメソッドが知りたいだけなのだが
そんなことも知らないのかって言われるので初心者を装ったのでは
498デフォルトの名無しさん:2006/05/07(日) 20:49:21
VB.NETを勉強してからVB6をやったほうが絶対効率良い
499デフォルトの名無しさん:2006/05/07(日) 20:56:09
>>498
VB6の改造や移植を業務でするなら別だが、これから趣味でプログラム
しようという人にはVB6は覚える必要ないと思う。
500デフォルトの名無しさん:2006/05/07(日) 20:59:06
SJISにコード変換したいんだが、例えば以前は

StrConv(文字列, vbFromUnicode)

って使ってたのだが、netだと無理?
どうすればよいの?
501デフォルトの名無しさん:2006/05/07(日) 21:02:51
.NET では文字列は文字列。
内部でどうこうとか無いので、意味がない。
で、バイト配列との相互変換が欲しいのなら System.Text.Encoding 使う。
502デフォルトの名無しさん:2006/05/07(日) 21:19:22
先生、EncodingにShiftJISEncodingがのメンバがありません。







ていわれそうだ。
503デフォルトの名無しさん:2006/05/07(日) 21:23:40
>>496
釣りじゃないです。
少し分かってきました。pointというのは
VB6のときはその地点での色を認識するものですよね?
pictureboxでは色の認識をするものは無いのですね?
getpixelを使おうにもbitmapでないとだめだから、pictureboxのままでは
できないのですか?
pictureboxのままでないと、円を描いたり、四角を書いたりできないから
困りますし、何かうまい方法はないでしょうか?
504デフォルトの名無しさん:2006/05/07(日) 22:44:23
>>503
釣りにしか思えないけど。。
釣りじゃないなら、グラフィックに関してはこの命令をこう変えればいい、
っていう風にはいかないから(考え方がかなり違う)真面目に一から
勉強してくれとしか言いようがない。

っていうか、君VB6も分かってないんでしょ?
やっぱり釣りにしか思えんわ。
本気で言ってるならプログラミングなんて論外の馬鹿だと思う。
505デフォルトの名無しさん:2006/05/07(日) 22:51:55
>>501
そういう理屈なのか
結局一端バイト配列使うしかないのね

やりたいこと大体実現できた
有り
506デフォルトの名無しさん:2006/05/07(日) 22:52:40
>>503
Dim G As Graphics
Dim B As Bitmap
Dim C As Color

PictureBox1.Image = New Bitmap(...)
G = Graphics.FromImage(PictureBox1.Image)
G.DrawEllipse(...)
G.DrawRectangle(...)
B = PictureBox1.Image
C = B.GetPixel(...)


507デフォルトの名無しさん:2006/05/07(日) 23:17:00
>>506
ありがとうございます。
これで少し勉強が進みそうです。
508デフォルトの名無しさん:2006/05/08(月) 13:19:19
windowsサービスでActiveXコントロールは使用不可ですか?
509デフォルトの名無しさん:2006/05/08(月) 13:25:58
別につかえんと言うことはないが
510デフォルトの名無しさん:2006/05/08(月) 13:33:02
すごく初歩的な質問で申し訳ないのですが教えて下さい。

DataTableの項目をComboboxやListBoxに単純に追加する方法は無いでしょうか?
例えば[商品コード(int)]、[商品名(varchar(20)]というDataTable("商品リスト")の内容を
Combobox.DataSource=DataSet.DataTable("商品リスト")
Combobox.DisplayMember="商品名"
Combobox.ValueMember="商品コード"
を指定するのではなくて、
DataTableの内容を1行ずつ読み込み、非バインドモードでComboboxに追加していきたいと思います。
Combobox.items.addで追加するのかと思ったのですが、DisplayMemberとValueMemberが
指定できず困っています。
参考になるURLでも構いませんので教えて下さい。
511デフォルトの名無しさん:2006/05/08(月) 13:37:57
何がしたいのか読めん
その ComboBox のアイテムをどう扱いたいんだ?
Items.Add で追加するのと DisplayMember/ValueMember がどう関わる?
512デフォルトの名無しさん:2006/05/08(月) 13:43:39
>>511
うまく説明できず申し訳ないです。
DataTable("商品コード")の内容をComboboxの選択項目として単純に項目として追加したいだけです。
ComboboxにはDataBindings.Add(New Binding("ValueMember"・・・)で他のDataTableがバインドします。
Combobox.items.addが見当違いだったりごめんなさい。
513デフォルトの名無しさん:2006/05/08(月) 13:44:42
現在windowsアプリケーションでフォームに貼り付けるActiveXコントロールを使っています。
それをwindowsサービスに作りかえたいんですが、
そのままだとフォームがないのでどのようにしたらいいかさっぱりです。
どのようにすればいいでしょうか?

514デフォルトの名無しさん:2006/05/08(月) 13:59:15
>>510
SQLで重複無しソート済みの項目を抽出してから、ループでComboBox
に追加すれば? バインド関連は一切触らず、純粋にデータをAddする
感じ。

項目が頻繁に追加削除されるなら、タイミングをよく考えないとあかん
けど。
515デフォルトの名無しさん:2006/05/08(月) 14:03:02
>>513
サービスにする必要がないんだろう
516デフォルトの名無しさん:2006/05/08(月) 14:12:39
同じネットワーク内のコンピュータのNetBIOS名の一覧を取得するような
アプリケーションを作りたいのですが、方法が見つかりません。
System.Net.Sockets.TcpClientをつかって137番ポートや138番ポートに
接続しても拒否されてしまいます。
System.Net.Dnsを使うと、取得されるのはNetBIOS名ではなく
ドメインネームです。
みなさんは、WindowsのマイネットワークみたいにNetBIOS名の
一覧を取得する時、どうしていますか?
教えて頂けたら幸いです。
よろしくお願いします。

517デフォルトの名無しさん:2006/05/08(月) 14:22:07
>>514
レスサンクスです。
>ループでComboBoxに追加すれば?
問題はそこなんですよ。
For eachでループする予定なのですが、ValueMemberとDisplayMemberをそれぞれ指定して
Addする方法がわからないのです。

根本的に間違っているかもしれないので、もうちょっと自分でも調べてみます。
518デフォルトの名無しさん:2006/05/08(月) 14:43:32
>>516
.NET の標準ライブラリじゃ対応してないはず。
WNetOpenEnum ほかの Win32API で。
519デフォルトの名無しさん:2006/05/08(月) 16:11:39
>>517
ここのが参考になるんでないかと。

ttp://hpcgi1.nifty.com/MADIA/VBBBS2/wwwlng.cgi?print+200411/04110095.txt
520510:2006/05/08(月) 17:01:38
>>519
サンクスです。

これを参考にして作ってみました。
Comboboxの項目追加はこれで出来ました。

実際に使う時は、本来DataBindingしたかったDataTableのRows.Itemの値をComboboxにセットしたり、
DataTableに書き戻す際にComboboxからValueMember相当として扱っている値を取り出す必要がありますが、
Comboboxに値をセットする・ValueMember相当の値を取得する専用のクラス作って解決しました。

情報大変感謝です。助かりました。
521デフォルトの名無しさん:2006/05/08(月) 18:12:57
>>518
UDPパケットを137番ポートに送って、返って来たストリームから
名前を取得するという方法はどうなんでしょうか?
522デフォルトの名無しさん:2006/05/08(月) 18:16:20
>>521
多分凄く効率が悪い。
キャッシュを使えないわけだし。
523デフォルトの名無しさん:2006/05/08(月) 19:13:22
>>518
>>522
いろいろありがとうございます。
ネットワークアドレスが異なるローカルIPも名前解決の対称なので、
UDPパケットを137番ポートに送るしかないかなと思います。
それにしても、DNSサーバを入れていないVPNのWindoowsネットワークなんて、
うちの客以外にあるのかなー??
524523:2006/05/08(月) 19:15:43
ちなみに、WINSもない。
525デフォルトの名無しさん:2006/05/09(火) 03:07:26
定期的にマイネットワークの一覧をハードコピー取って
OCRに通してコンピュータ名を取得
526デフォルトの名無しさん:2006/05/09(火) 03:12:45
100台そこらじゃWINSは無くても大丈夫だが、200台ぐらいになってくるとやや微妙。
527デフォルトの名無しさん:2006/05/09(火) 15:08:24
.NET2003です。
アクセスをデータベースにしてリストビューに表示しようとしています
NULLの時に分岐させたいのですがIFで正確に判定をしてくれないです。
原因分かる方いましたらご教授願います。

Dim DataSet As DataSet = DataSet11
Dim iRow As Integer = DataSet.Tables("テーブル1").Rows.Count
For iCount As Integer = 0 To iRow - 1
If IsDBNull(DataSet.Tables("テーブル1").Rows(iCount).Item(0)) = True Then
lvwsoft.Items.Add("")
Else
lvwSoft.Items.Add(DataSet.Tables("テーブル1").Rows(iCount).Item("列1"))
End If

If IsDBNull(DataSet.Tables("テーブル1").Rows(iCount).Item(1)) = True Then
lvwSoft.Items(iCount).SubItems.Add("")
Else
lvwSoft.Items(iCount).SubItems.Add(DataSet.Tables("テーブル1").Rows(iCount).Item("列2"))
End If

If IsDBNull(DataSet.Tables("テーブル1").Rows(iCount)) = True Then
lvwSoft.Items(iCount).SubItems.Add("")
Else
lvwSoft.Items(iCount).SubItems.Add(DataSet.Tables("テーブル1").Rows(iCount).Item("列3"))
End If
528デフォルトの名無しさん:2006/05/09(火) 15:18:13
で、結局どこでどうなるの?
//毎回コレクション経由ってキモス
529527:2006/05/09(火) 15:30:09
初心者がいろいろ試してるもんで見苦しいのは申し訳ないです

データベースの列2と列3に一つNULLがあるとします
列2の一つのデータがNULLの場合は問題なく”NULL”だと判定してくれるのですが
列3の場合はデータはNULLなのに”NULL”だと判定してくれず
このIF文だとELSEを通過してしまいます
530デフォルトの名無しさん:2006/05/09(火) 15:35:27
>>529
釣りか?>>527だと3つ目のIf文でIsDBNullで列3じゃなくて、そのレコードがNullか見てるぞ
コーディングが終ったら一から自己ソースレビュー(ようするにコードの見直し)位やれ
531527:2006/05/09(火) 15:47:56
ごめんなさい、いろいろ試しながらコピペしたんでコピペミスでした
3つ目のソースは↓です

If IsDBNull(DataSet.Tables("テーブル1").Rows(iCount).Item(2)) = True Then
lvwSoft.Items(iCount).SubItems.Add("")
Else
lvwSoft.Items(iCount).SubItems.Add(DataSet.Tables("テーブル1").Rows(iCount).Item("列3"))
End If

これでもダメです
532デフォルトの名無しさん:2006/05/09(火) 16:02:05
DataSet.Tables("テーブル1").ColumnName(2)には何が出力される?
533デフォルトの名無しさん:2006/05/09(火) 16:04:45
DO AS INFINITY
534527:2006/05/09(火) 16:11:29
>DataSet.Tables("テーブル1").ColumnName(2)
これはリストビューの事でいいのですかね?
NULLの場合、エラーになって出力されないです

下位変換しないで呼び出せる、オーバーロードされたアクセス可能な
'ListViewSubItemCollection.Add' はありません。

と追加情報が出ます
535デフォルトの名無しさん:2006/05/10(水) 09:04:12
質問です。

テキストボックスの背景を透明にする方法を教えて下さい。
HTMLじゃなくて、フォームがコンテナのテキストボックスです。
536デフォルトの名無しさん:2006/05/11(木) 09:32:19
VC++って、IPアドレスコントロールがあるけど、VBにはありますか?
調べた限り、無いですよね?
みなさん、VBでIPアドレスを入力するときって、どうしていますか?
できればきれいなGUIを築きたいですよね。
ご教授願います。
よろしくお願いします。
537デフォルトの名無しさん:2006/05/11(木) 09:40:28
538デフォルトの名無しさん:2006/05/11(木) 11:23:27
どのように作ればよいかいいアイディアがでないので質問します。
現在、ある文字列の中から漢字が有れば返値をだすように考えています。
考えているのが、JISコードの[0020]〜[2576]以外が有る場合に戻り値を返すというのものです。
FindメソッドではDo untilなどで検索すればよいのかもしれないのですが、非常に多くの件数を
処理するのでもっと効率のよい方法があればと思います。よろしくお願いいたします
539デフォルトの名無しさん:2006/05/11(木) 11:25:20
正規表現
540デフォルトの名無しさん:2006/05/11(木) 14:41:40
.NetFrameworkって、ExcelやWordのクラスがあるんですか?
あるのなら、教えていただけませんか?
WindowsフォームからExcelファイルをVBAみたいな感じで作る
必要があるんですよ。
よろしくお願いします。
541デフォルトの名無しさん:2006/05/11(木) 14:55:52
情けないほどの初心者です。。
objDT = Session("ShoppingCart")
If (Request.QueryString("ProductID") <> "") Then
Dim objConn As New System.Data.OleDb.OleDbConnection("Provider=Microsoft.Jet.OleDb.4.0;Data Source=C:\Inetpub\wwwroot\fs.mdb")
Dim objDA As New System.Data.OleDb.OleDbDataAdapter("SELECT * FROM rs_product WHERE ProductID=" & Int32.Parse(Request.QueryString("ProductID")), objConn)
objDA.Fill(objDS, "SelectedProduct")
Else
Response.Redirect("product.htm")
End If
このページにじかにアクセスしようとすると、ショッピングカート内に値があってもproduct.htmのページにいってしまいます。
どのようにCODEを書き換えればよろしいでしょうか?
詳しい方がいらっしゃいましたら、教えてください。
542デフォルトの名無しさん:2006/05/11(木) 15:07:53
>>540
.NetFramwork自体は持っていない。
ExcelやWordがインストールされていれば
そのコントロールが.NETから呼べるから
それを使う。
とうぜんVBAで普通にやってるように
各種オブジェクトをVB.NETから呼び出して使える。
ExcelのワークシートやWord文書ファイルも作成できる。
543デフォルトの名無しさん:2006/05/11(木) 15:10:33
ただしきちんとやるのはめんどくさい。
544デフォルトの名無しさん:2006/05/11(木) 15:12:46
>>541
まず自分がなにやってるのか理解しようぜ。
クエリ文字列とかセッションとか理解してないだろ。
545デフォルトの名無しさん:2006/05/11(木) 15:15:39
>>541
他に product.htm にリダイレクトする条件がないのであれば
Request.QueryString("ProductID")
が空文字("")である以外に考えられない。
だからまずそのこと(条件)を確認する
546デフォルトの名無しさん:2006/05/11(木) 15:37:12
早速の回答ありがとうございます。
>>544さん
まだまだはじめたばかりなもので。すみません。
>>545さん
ご丁寧にありがとうございます。
ProductIDには確かに値がありません。
といいますのも値を入れてしまうと商品がカートに追加されてしまうからです。
ただ単純にカートの中身をチェックしたいだけなのです。
カートの中身をチェックするリンクがつくりたいのです。
逆に
Else
Response.Redirect("product.htm")
を消してしまいますとエラーになってしまいます。
547デフォルトの名無しさん:2006/05/11(木) 15:48:56
「ショッピングカート内に値がある」
ということは
"ProductID"で指定されるところのテキストボックスか何かに
「値が入力されている」ってことと同意なの?
548デフォルトの名無しさん:2006/05/11(木) 15:53:54
商品の一覧から買いたい商品の横にチェックを入れて[カートに入れる]ボタンを押すとか
買いたい商品のページを表示してからそのページにある[カートに入れる]ボタンを押すとかして
はじめてショッピングカートに追加されて欲しいなぁ・・・
ProductIDに値を入れただけでショッピングカートに追加されて欲しいくないなぁ・・・
549デフォルトの名無しさん:2006/05/11(木) 15:58:59
SQLサーバのデータベースのテーブルにcsvファイルを読み込んで
一気に書き込みたいのですが、どういうコードを書けばいいか分かりません。
どこか参考になるとこを教えてください。
550デフォルトの名無しさん:2006/05/11(木) 16:05:33
学校の宿題か新人の研修課題か知らんが、もうちょっと具体的に用件
を書いてくれるといいな。あと、テンプレの参考サイトを見に行って
るなら、そこでヒントなりなんなりが得られると思うんだが。

とりあえずCSV読み込みはこれが参考になるだろう。
ttp://www.microsoft.com/japan/msdn/vbasic/migration/tips/CSVFile/
551デフォルトの名無しさん:2006/05/11(木) 16:07:27
>>549
bcp -U user -P pass -f import.fmt -i data.csv
552デフォルトの名無しさん:2006/05/11(木) 16:11:07
>>550
書き方が曖昧すぎました。
とりあえずcsvファイルの読み込みはできていて、テーブルへの
レコードの追加、更新の方法が分からないのです。
553デフォルトの名無しさん:2006/05/11(木) 16:20:59
説明不足ですみません。
>>547さん
ショッピングカート内には実際のProductIDはありません。ProductIDをもとにデータベースからイメージ、価格等を引っ張ってきてそれがカートのDATAGRIDに
あります。
>>548さん
あ、いちよう商品詳細ページのカートに入れるというボタンをおすと、URLパラメーターにProductIDがviewcart.aspx?ProductID=001
という形で転送されるようになってます。。
554デフォルトの名無しさん:2006/05/11(木) 16:24:16
>>552
ttp://msdn2.microsoft.com/ja-JP/library/ms254937.aspx

そこ見てわからないレベルなら入門書買って読む。
掲示板で聴くのは質問の範囲が範囲が広すぎる気がするな。
555デフォルトの名無しさん:2006/05/11(木) 16:29:57
>>552
CSV以外で追加更新したことはあるの?
556デフォルトの名無しさん:2006/05/11(木) 16:32:03
>>553
とりあえずQueryStringに001が入るようになるまでがんばれ
557デフォルトの名無しさん:2006/05/11(木) 16:37:45
>>554,555
DAOの時代に一通りのことはやっていましたが、vb.netを使うのは
初めてで・・・ 恥ずかしい質問でしたね。
554を少しみたのですが、多分いけそうです。どうもありがとうございました。
558デフォルトの名無しさん:2006/05/11(木) 16:49:12
>>541

 > このページにじかにアクセスしようとすると、ショッピングカート内に値があってもproduct.htmのページにいってしまいます。

つうことは、ショッピングカートに商品がないときだけproduct.htmページに遷移してほしいってこと?
だとしたら、objDTがDataTableと仮定すると

CType(objDT, DataTable).Rows.Count > 0

かどうかの判定がどこかで必要になるんとちがう?
559デフォルトの名無しさん:2006/05/11(木) 17:14:03
漏れが推理するに、おそらく>>541で提示されているコードは
商品選択後にショッピングカートの中身を表示するページのコードの一部なんだろうな。
だとすると、前からの遷移でなく「直接」そのページにアクセスしちゃったら
"ProductID"は空だから、判定文でproduct.htmにいってしまうのは当然だな。

で、単にショッピングカートの中身を表示するだけの目的でもこのページを
使用したいというのなら、「カートの中身を表示する」みたいなボタンを作って
このボタンを押したときにもこのページに遷移するように実装したうえで、
このボタンによって遷移してきたかどうかの判定を付け加えてやる必要があるんじゃないかな。

そんで、ボタンによる遷移(=ただの中身表示)と判定されたときは
>>558のようにobjDTをキャストしてやって中身を一覧表示すればいいね。
ま、そのコードはすでに実装されているはずだけどね。
560デフォルトの名無しさん:2006/05/11(木) 17:32:31
皆様有難うございます。たすかります。
>>588さん
その通りです。ショッピングカートがからのときだけ、product.htmのぺーじ(単純にカートは空ですというページ)に移動ということです。
>>589さん
おそれります。早速ためしてみます。
561559:2006/05/11(木) 17:34:33
あと、ショッピングカートの中身を表示するページは、ただそれだけのページとして独立して作っておくべきだな。
で、商品選択後の表示か単なる中身表示かの判定は、ページ遷移コントローラを作ってそれにまかせるべきだな。
もし商品選択後の遷移なら、コントローラからDBアクセスを担当するクラスにProductID渡して
抽出処理やってもらって(抽出結果はSession変数内のobjDTに格納してもらう)、
それからショッピングカートの中身を表示するページに遷移するような実装にすればいいし。
562デフォルトの名無しさん:2006/05/11(木) 18:44:04
VB.NET2003を使用しています。

メインアプリケーションとプラグインモジュールの様な形式でアプリを
作成したいと考えています。

プラグインモジュール(クラスライブラリdll)を動的にメインアプリケーションに
ロードし、プラグインモジュールのフォームをメインアプリケーションで
MDI子フォームとして表示したいと思っています。

動的でなければメインアプリケーションの参照設定に追加すれば
行いたいことは実現できるんですが・・・
<DllImport 〜 という手法を試みているんですが、

「PInvoke 項目 (フィールド、メソッド) は static でなければなりません。」

という例外が発生してしまいます。

どのようにすればこのエラーが回避できるか、またはこのようなアプリを
開発する場合、「このような方法で開発するのが一般的」みたいなアドバイス
でも構いませんので、何か良き助言を宜しくお願い致します。
563デフォルトの名無しさん:2006/05/11(木) 18:54:00
C++/CLIを使ってラッパーのクラスライブラリを書く
564デフォルトの名無しさん:2006/05/11(木) 19:01:09
つか DllImport できるのはアンマネージドの DLL だけ。
.NET で作った DLL(アセンブリ)は System.Reflection.Assembly クラスの Load とかを使う。

一般的な手法としては以下のような構成になる。

・プラグインのインターフェイスを、インターフェイスまたは抽象クラスとして用意する。
 これは独立した DLL として、メインプログラム・プラグインの両者が参照する。
・プラグイン DLL は、上記のインターフェイスを実装する。
・メインプログラムは、
  ・動的に DLL をロードする。
  ・Assembly 型の GetTypes などを使って型情報を探索し、プラグインインターフェイスを実装するクラスを見つける。
  ・Activator.CreateIntstance などを使ってインスタンスを生成し、それをプラグインインターフェイスの型にキャストする。
  ・あとはそのインスタンスを使って処理を行う。

ちなみに、アセンブリのアンロードは基本的にできない。
565563:2006/05/11(木) 19:01:34
すまん
DllImportに脊髄反射してしまった
無視してくれ
566562:2006/05/11(木) 19:24:08
>>564
早速のレスありがとうございます!

なんかもっと簡単な方法で実現できると思っていました。
甘かった・・・
中間インターフェイスDLLは発想できなかったです。

Assembly云々は全く触ったことがないので、もう少し勉強してみます。

目標としては、インストールされている(DLLファイルが存在する)場合のみ
表示されるメニューやツールボタン等(DLLファイルからロードする)を実装した
アプリに仕上げたいと考えています。
567デフォルトの名無しさん:2006/05/11(木) 19:52:26
つうかDLLImportするより簡単でない?
そうでもないか…
568デフォルトの名無しさん:2006/05/11(木) 19:54:50
DllImport は静的にしか書けないから、それに対応するのは参照設定。
Assembly.Load に対応するのは LoadLibrary だな。
569デフォルトの名無しさん:2006/05/11(木) 20:11:10
>552
テーブルに追加するためのSQLは書けるのか?
書けるんだったら

Dim DataConnection As System.Data.SqlClient.SqlConnection
Dim SQLCommand As System.Data.SqlClient.SqlCommand

'DBとの接続をOpen
DataConnection = New System.Data.SqlClient.SqlConnection(DataSourceの接続文字列)
DataConnection.Open()

'登録するSQLを生成
Dim sbSqlCommand As System.Text.StringBuilder
sbSqlCommand = New System.Text.StringBuilder("")
sbSqlCommand.Append("INSERT TABLE")
sbSqlCommand.Append(" VALUES(")
sbSqlCommand.Append(INSERTする値を列挙)
sbSqlCommand.Append(");")

'SQLを実行する
SQLCommand = New System.Data.SqlClient.SqlCommand(sbSqlCommand.ToString, DataConnection)
SQLCommand.ExecuteNonQuery()

'OpenしたらClose
DataConnection.Close()

をループで実行したらとりあえず何とかなるだろ
DBがmdbファイルならSystem.Data.SqlClientの代わりにSystem.Data.Oledbだったかな

まあがんがれ
570デフォルトの名無しさん:2006/05/12(金) 14:23:45
指定したIPアドレスの137番ポートにUDPで接続して、そのIPアドレスを
持つマシンのNetBIOS名を取得するというアプリケーションを作っているのですが、
netbiosnsの通信手順やコマンドがよく分かりません。
GoogleやMSで調べても、NBTSTATぐらいしか出ないし・・・
どなたかご存じないですか?
よろしくお願いします。
571デフォルトの名無しさん:2006/05/12(金) 17:14:05
どうしてもわからないので質問させてください。
現在VBからWordを起動させて、文書を印刷するアプリを作っているのですが、
Word文書内のチェックボックスを制御できなくて困っています。
制御したいチェックボックスはWord内のテーブルにあるのですが、この場合、
チェックボックスにどうやってアクセスするのでしょうか?

Dim wDoc As Word.Document
wDoc.checkbox1.value = True

上のコードでテーブル内ではなく文書に貼り付けているチェックボックスは制御できました。
よろしくおねがいします。
572デフォルトの名無しさん:2006/05/12(金) 17:38:29
OpenFileDialogの名前ってどうつけてますか?

まさにOpenFileDialogだから名前を変えようがないのだけど、
それだとクラス名と衝突してしまう
でもそのままだとOpenFileDialog1になってなんだかいや
573デフォルトの名無しさん:2006/05/12(金) 17:40:50
メソッド内のローカル変数で済ますからどうでも良いな
574デフォルトの名無しさん:2006/05/12(金) 17:53:27
そっか
そうだね
サンクス
575デフォルトの名無しさん:2006/05/13(土) 00:13:00
ActiveDirectoryドメインにログオンしているユーザIDって
どうやって取ればいいんでしょう。
WindowsIdentity.GetCurrent?
それとも、環境変数でしょうか?
576デフォルトの名無しさん:2006/05/13(土) 01:05:55
WindowsIdentityで取れそうな気がするが…
気がするだけ…
577デフォルトの名無しさん:2006/05/13(土) 02:10:41
>576
ありがとうございます。
578デフォルトの名無しさん:2006/05/13(土) 03:09:01
>>571

Wordは扱ったことが無いしよくわからんけど

ttp://www.microsoft.com/japan/msdn/officedev/vsto2003/WordObject.asp
.NET 開発者の観点から捉えた Word オブジェクト モデル
579デフォルトの名無しさん:2006/05/13(土) 07:55:08
> じゃんぬねっと
> http://jeanne.wankuma.com/

サイト名が変わってるお。
580デフォルトの名無しさん:2006/05/13(土) 09:33:25
>>578
返答ありがとうございます。
そのページを読んだ後、コード変更無しで上記のコードをもう一度実行したところ、
すんなりチェックボックスを制御できました。
ありがとうございました。
581デフォルトの名無しさん:2006/05/13(土) 09:41:24
すげえ、プログラマの知識だけでプログラムの実行結果が変わるのか
582デフォルトの名無しさん:2006/05/13(土) 09:52:00
>>581
たぶんコードでチェックボックス指定する時に間違った名前を打ち込んでいたんだと思います。
Word内のコントロールについてはインテリセンスでないので確認できませんでした。
578の紹介してくれたページは自力で調べているうちにもチラ見していたのですが、
今回しっかり読んで勉強になったので、感謝しています。
583デフォルトの名無しさん:2006/05/13(土) 10:34:31
>>581
そのページを読むだけで変わるのでは
584デフォルトの名無しさん:2006/05/14(日) 14:27:35
完了したスレッドの再利用というか、再処理って可能ですか?

Dim pThread As Thread = New Thread(AddressOf DoTheTask)
pThread.Start()

pThread.Join(5000) ' 終わるまで待つ

If Not pThread.IsAlive Then
pTask.Start()
End If

こんな感じでもう一度動かしたいんですが、2回目の.Startで例外が発生します。
もう一度Newすれば済む話かもしれませんが、再利用したいなと思って。
585デフォルトの名無しさん:2006/05/14(日) 14:40:05
なら完了させなきゃいいじゃん。
あるいはスレッドプール使うか。
@ITにもCodeZineにもマルチスレッドの解説があるから
とりあえず読んだ方がいいよ。
586デフォルトの名無しさん:2006/05/14(日) 14:43:48
>もう一度Newすれば済む話かもしれませんが、再利用したいなと思って。
なんで?
587デフォルトの名無しさん:2006/05/14(日) 15:29:11
死者を蘇らせてどうする
588デフォルトの名無しさん:2006/05/14(日) 15:45:08
初歩的な質問で申し訳ないんですが

test score
number of scores
average score
best score

test scoreを入力する度にスコア数、平均スコア、ベストスコアを
算出するプロジェクトのコードを教えてもらえますでしょうか・・・
カウンターやらループなどうまく使えないです;
589デフォルトの名無しさん:2006/05/14(日) 15:46:17
>>585
ありがとうございます。
とりあえず両方読んでみます。

>>586,587
なんと言うか、そこに使える(かどうか判らないけど)スレッドがあるんだから、
どうせならそのまま再利用したいなと

お皿が汚れたからといって、そのまま捨てるのはもったいないので、
洗ってもう一度使う感じです。
590デフォルトの名無しさん:2006/05/14(日) 15:46:51
書き忘れました。
ボタンは
Enter Score, Reset, Exitの3つです。
どうぞよろしくお願いします
591デフォルトの名無しさん:2006/05/14(日) 16:02:02
toolstripって青色をしてるんですが、これをVS2005のツールバーみたいに
灰色にするにはどうすればいいですか?BackColorを変更したら、
丸みがなくなってのっぺりしてしまい、なんか違うみたいだし。
592デフォルトの名無しさん:2006/05/14(日) 16:29:43
>>588
スコアを入力するたびに

1、カウンタでスコア数を数える。
2、加算してスコア数で割れば平均が出る。
3、直前に入力したスコアと比較して、大きい方を表示。

宿題は自分でやらないと意味ないよ。
593デフォルトの名無しさん:2006/05/14(日) 22:37:52
会社のPCがWindows MEなんですが、VBでシステム開発できるでしょうか?
あと、自宅のPCはXPなんですが、自宅で作ったVBのソフトを会社のPCで実行できるでしょうか?
全部できない場合、ME上でシステム開発するのに最適な言語はなんでしょうか?
すいません、よろしくお願いします。
594デフォルトの名無しさん:2006/05/14(日) 22:42:10
しないのが一番だと思うよ。
595デフォルトの名無しさん:2006/05/14(日) 22:53:43
VBAですれば?
596デフォルトの名無しさん:2006/05/14(日) 23:36:36
ありがとうございます
597デフォルトの名無しさん:2006/05/15(月) 01:26:53
>>593
仕事で使うものを開発するならそれに必要な機材は会社から提供してもらうのが筋だな
それを認めない会社ならあえて作る必要も無いよ
598593:2006/05/15(月) 07:36:01
資金的に余裕の無い会社なんで、システム開発で合理化と生産性を向上して利益あげようと思ったんですが
ショボーン
599デフォルトの名無しさん:2006/05/15(月) 07:47:10
>>598
会社の合理化のために社員が負担するのは、いかがなものかと
あなたのやろうとしてるのはタダのサビ残
600デフォルトの名無しさん:2006/05/15(月) 08:24:13
>>598 の意気込みはすばらしいことだが、>>599の意見もすてがたい。
まあ、そんなことは置いといて・・・


Microsoft Visual Basic 2005 Express Edition なら開発環境は無料だ。
http://www.microsoft.com/japan/msdn/vstudio/express/
しかし、インストールできるOSは、2000とXPだな。
http://www.microsoft.com/japan/msdn/vstudio/express/support/readme/

こいつで作ったプログラムを動作させるには、.net Framework 2.0 が必要で、
一応MEもサポートされているので、理論上は動くはず。
http://www.microsoft.com/downloads/details.aspx?FamilyId=0856EACB-4362-4B0D-8EDD-AAB15C5E04F5&displaylang=ja


私としては、MEからの離脱をお勧めする。
601598:2006/05/15(月) 09:58:34
ありがとうございます!
さっき家からもってきたVBのサンプルを会社で起動してみました。ちゃんと動いた理由がわかってうれしいです。
実績あげたらパソコン交換してもらえると思うんで頑張ります!
602デフォルトの名無しさん:2006/05/15(月) 10:05:04
MEに既にFramework2.0が入っているなんてマニアックな会社だな
603デフォルトの名無しさん:2006/05/15(月) 11:21:19
WindowsUpdateで、表示されるすべての項目を選択しているのかもな。
604デフォルトの名無しさん:2006/05/15(月) 12:24:46
あれは「カスタム」の方のボタンを押さないとダメだろ
605デフォルトの名無しさん:2006/05/15(月) 12:39:29
プロジェクトの発行で作った setup.exe なら、必要に応じてネット経由でインストールしてくれるでしょ。
606デフォルトの名無しさん:2006/05/15(月) 12:50:57
>>601
の真相レス待ち
607601:2006/05/15(月) 13:04:06
VBのサンプルは動くんですが
それしか自分にはわからないんですが
たらー
608デフォルトの名無しさん:2006/05/15(月) 14:07:22
この回答でsetup作ってるとは思えないが
609562:2006/05/15(月) 14:16:12
>>564
ヘルプやらなんやら自分なりに調べてみています。
今更ながら「Assemblyってこういう事なのか!」などと
発見ばかりなのですが、でもまだよく理解できません。

試しに
Form1をもつMyAPP1と、
Class1とをもつMyDLL1
を用意して試しています。

Form1にボタン(Button1)を配置し、Clickイベントで
MyDLL1のClass1内のTime_Show()というプロシージャを
呼べるように実装したいと思っています。

610562:2006/05/15(月) 14:17:58
Public Class Class1
 Public Function Time_Show()
  System.Windows.Forms.MessageBox.Show(Now())
 End Function
End Class
611562:2006/05/15(月) 14:18:28
MyAPP1のForm1.Button1.Clickイベントで

Private Sub Button1_Click( [省略] )
 Dim asm as [Assembly]
 Dim dllfile as string = "c:\hoge\MyDLL1.dll"

 'ファイル名を指定してアセンブリを読み込む
 asm = [Assembly].LoadFrom(dllfile)

 'アセンブリの完全限定名を指定してアセンブリを読み込む
 asm = [Assembly].Load("System, Version=1.0.5000.0, Culture=neutral, " + _
    "PublicKeyToken=b77a5c561934e089")

 '現在のコードを実行しているアセンブリを取得する
 asm = [Assembly].GetExecutingAssembly()

 '現在のアプリケーションドメインに読み込まれているすべてのアセンブリの完全限定名を表示する
 Dim asms As [Assembly]() = AppDomain.CurrentDomain.GetAssemblies()
 Dim a As [Assembly]
 For Each a In asms
  Console.WriteLine(a.FullName)
  If a.GetName.Name = "MyDLL2" Then
   'Activator.CreateIntstance などを使ってインスタンスを生成
   Dim act As Activator
   Dim ins As Object
   ins = act.CreateInstance(a.GetType, BindingFlags.CreateInstance)
   '★ここからどうすればいいのかわかりません。★

  End If
 Next a
End Sub
612562:2006/05/15(月) 14:18:59
とやってみたものの、上記★の箇所でどうすればいいかわからなくなりました。


この例の場合、具体的にどうすればMyDLL1.Class1.Time_Show() を
MyAPP1から実行できるようになるのでしょうか?


長ったらしい文章&連投&教えてクレ君で申し訳ありません。
613デフォルトの名無しさん:2006/05/15(月) 14:36:43
Private Sub Button1_Click()
Dim C As New Class1
C.Time_Show()
End Sub
614デフォルトの名無しさん:2006/05/15(月) 14:59:12
MyDLL1.Class1
615562:2006/05/15(月) 15:12:10
>>613
>>614

参照設定せずに動的にDLLをロードしたい、という話なんですが・・・。
616デフォルトの名無しさん:2006/05/15(月) 15:25:07
なんで 564 に

> ・プラグインのインターフェイスを、インターフェイスまたは抽象クラスとして用意する。
>  これは独立した DLL として、メインプログラム・プラグインの両者が参照する。

って書かれてるか分かる?

> ・プラグイン DLL は、上記のインターフェイスを実装する。

とか

>   ・Activator.CreateIntstance などを使ってインスタンスを生成し、それをプラグインインターフェイスの型にキャストする。

とか。
617562:2006/05/15(月) 16:02:07
インターフェイスとしてDLLInterfacesというDLLを作成しました。

DLLInterfaces.dll
Public Class Interface1
 
End Class

つまり今回の例の場合、
MyAPP1にDLLInterfacesを参照設定し、
MyDLL1にもDLLInterfacesを参照設定しなければならないと
いうことですよね?

でも正直なところ、具体的にどのように上記のInterface1クラスに
記述し、MyDLL1にどのように実装すればいいのかわかりません。

> ・Activator.CreateIntstance などを使ってインスタンスを生成し、

これはMyAPP1.Button1_Click()でInterface1クラスのインスタンスを
生成するということで良いのしょうか?
618デフォルトの名無しさん:2006/05/15(月) 16:16:10
取りあえず抽象クラスとかインターフェイスとか、MSDN やら Google やらで調べてこい
話はそれからだ
619562:2006/05/15(月) 16:45:47
抽象クラスやインターフェイスを調べて出直してきます!
620デフォルトの名無しさん:2006/05/15(月) 17:58:37
みなさん、クリスタルレポートとかするときは、どんなところを参照しています?
なかなか参照するところは見つからなくて、困っています。
教えて下さい。
参考にしたいんです。
よろしくお願いします。
621会社はME:2006/05/16(火) 07:21:13
昨夜300秒シリーズのビデオ講義見てたら、実行ファイルはexeかdllっていってました。
自分がサンプルで走らせたファイルの拡張子はvbsでした。
これはVBの実行ファイルではないんでしょうか?
622デフォルトの名無しさん:2006/05/16(火) 07:34:39
はい、違います。
それは、VBスクリプトですね。
623621:2006/05/16(火) 09:58:07
うぎゃー
そうですか・・・
たらー
自宅PCの方、ハードディスク整理して空きスペースつくりました。
今度の土日expressダウンロードして300秒の右側にある説明みて実行ファイル作ってみます
624デフォルトの名無しさん:2006/05/16(火) 10:08:57
>>621
すごいオチだったが、VBSでできるものをVB.NETにする意味あんのか
625562:2006/05/16(火) 10:25:06
自分なりに少々調べてみました。
ようやく指摘されていた事が少しずつわかってきました。

Program Files\Microsoft Visual Studio .NET 2003\SDK\v1.1\Samples
に「WinForms-Inheritance-Vehicle」っていうのがありました。

これをみて >>564

> ・プラグインのインターフェイスを、インターフェイスまたは抽象クラスとして用意する。
>  これは独立した DLL として、メインプログラム・プラグインの両者が参照する。

という意味が見えてきました。
これは統一されたインターフェイスを持つプラグインを複数開発するのには
良いなと思いました。


しかし、今回自分が作成したいのは、イメージ的には
mmc.exe の様なものでプラグインは.mscファイルの様なものです。
例えれば、SQLServerのEnterpriseManagerみたいな感じです。
まぁ上記サンプルを発展していけば近づけそうな気もしてきました。

まだ
> ・Activator.CreateIntstance などを使ってインスタンスを生成し、
という辺りが調べられていないので、もう少し調べてきます。

でも、お陰様でやってみたいことが実現できそうです。
626デフォルトの名無しさん:2006/05/16(火) 10:45:49
>>624
ためしにサンプルを実行しただけだろ。
627デフォルトの名無しさん:2006/05/16(火) 12:03:16
>>624
上のほうでシステム開発と言っているからTeam Suiteくらいが必要じゃないのか
628会社はME:2006/05/16(火) 12:31:53
いろいろありがとうございます
スーツチーム?、ぐぐってみます
知識ゼロなんですけど、今の職場がもしコンピュータ使いこなしたらすごく変わることだけ分かります
少しずつ、を繰り返して、会社全体のOSのようなものを作りたいです
629デフォルトの名無しさん:2006/05/16(火) 14:38:01
VBで正符号付きの数値型のデータを扱う方法ってありますか?
あれば教えて頂きたいのですが…
630デフォルトの名無しさん:2006/05/16(火) 14:57:56
Dim A As Single
A = +123.456
631デフォルトの名無しさん:2006/05/16(火) 14:59:16
付ける意味ないだろ 数値型としては
表示する際に付けるかであって
632デフォルトの名無しさん:2006/05/16(火) 15:02:45
処理中に表示される砂時計の代わりに、進行状況がループされるプログレスバーを使いたいと思います。
あれはVS2005で提供されているコントロールですか?
633デフォルトの名無しさん:2006/05/16(火) 15:14:47
「正符号付きの数値型のデータ」って意味不明すぎ
634デフォルトの名無しさん:2006/05/16(火) 15:28:49
>>632
古より名を変え、形を変えて存在しています。
635デフォルトの名無しさん:2006/05/16(火) 18:31:33
いや、ループするのは用意されてないでしょw
XPの起動画面に出て来るような奴でしょ?
636デフォルトの名無しさん:2006/05/16(火) 18:32:23
質問させてください。
今考えているプログラムでテキストボックスに書かせた
文章(これはプログラムコードなのですが)をプログラム
コードとしたいと考えています。
ところがテキストぼっくに書かせた文章を
テキストに出力させるのはどんな本にも載っていまし問題ないのですが、
このテキストに書かせコードをVBで読み込ますことはできないのですか?
そんなに難しいことではないと思うのですが・・・。
ユニックスとかのプログラムってテキストに書かせたのをコンパイルするのですから
テキストでコードを書くというのは昔は普通だったのですよね?
637デフォルトの名無しさん:2006/05/16(火) 18:35:44
>>636
vbscriptを吐き出して実行させることくらいはできるんじゃまいか
638デフォルトの名無しさん:2006/05/16(火) 18:37:01
>>636
自分でやったことはないけど。
http://www.atmarkit.co.jp/fdotnet/dotnettips/index/index.html#i104

つーか、書いてる文章の内容からして君にはもっと他にやるべきことがあると思う。
余計なお世話だろうけどね
639デフォルトの名無しさん:2006/05/16(火) 18:39:05
>>636
>>638
レスどうもです。
察しのとおり、ド素人です。
どんなことをやるべきですかね?
640デフォルトの名無しさん:2006/05/16(火) 18:42:06
>>636
そのテキストボックスに入力したプログラムの部分を、どうやってコンパイルするかだな。
641デフォルトの名無しさん:2006/05/16(火) 18:45:09
>>640
そうなのです。
テキストボックスに書かせたコードをいったんメモ帳に書かせておいて、
それをソフトに読ませれば完了だと思っていたのですが
そんなに簡単ではないのですね・・・。
642デフォルトの名無しさん:2006/05/16(火) 18:45:16
インタープリター作れば簡単じゃん
643デフォルトの名無しさん:2006/05/16(火) 18:51:14
>>638
こんなクラスまで用意されてんのかw
644デフォルトの名無しさん:2006/05/16(火) 18:52:00
>>641
直接コンパイラー呼んで、書き出したファイルをコンパイルする方法もありだが、開発環境が入ってないとだめだしなぁ。

>>642
kwsk
645デフォルトの名無しさん:2006/05/16(火) 19:01:49
>>642
作るまでが簡単ではない
646デフォルトの名無しさん:2006/05/16(火) 19:51:42
>>644
なんと .NET Framework の実行環境はコンパイラまで含んでいるんだぜ
647デフォルトの名無しさん:2006/05/16(火) 20:41:56
>>635
プログレスバーのプロパティをよーく調べてごらんよ。
648最凶VB厨房:2006/05/16(火) 22:12:04
CodeDOM使えばいいんじゃね?

・・・既にURL貼ってあったか。
649デフォルトの名無しさん:2006/05/16(火) 22:27:12
なぜその日本語には突っ込まないんだ
650デフォルトの名無しさん:2006/05/17(水) 00:26:32
>ユニックスとかのプログラムってテキストに書かせたのをコンパイルするのですから
>テキストでコードを書くというのは昔は普通だったのですよね?
今でも普通だと思うが…
VB.NETだってそうだが…
651デフォルトの名無しさん:2006/05/17(水) 09:20:29
フォームデザイン部を含めて動的に書いたら尊敬はするよ。w
大昔のWinMainから書くよりはちょっとマシだけど。
652632:2006/05/17(水) 10:28:00
みなさんレスありがとうございました。
[ProgressBar]の[Style]プロパティを[Marquee]にしたところ、ぐるぐる回るプログレスバーが実現できました。
かっこよス(・ω・)
653358:2006/05/17(水) 11:01:22
VBRUN*.DLL とかで聞きます。
当然、正規のVBのライセンスは持っているので、
ランタイム入りのインストールファイルを配ってもOKなはず。

ここで気になるのが、
最近、WINEとか称して、無理やりLinuxでWindowsをエミュレートする環境があるんですよ。
こういった環境へのインストール、
こういった環境へのインストールを前提としたインストールファイルの配布。
このあたり、ランタイムDLLの再配布ライセンス的にどうなんですかね。

ようは、非MS環境での使用は、合法?非合法?
654デフォルトの名無しさん:2006/05/17(水) 11:01:58
あ、数字間違った、、、。
655デフォルトの名無しさん:2006/05/17(水) 13:38:46
2003で質問
フォームに貼ったwebBrouserにHTMLを読み込ませて、そのHTMLのformのsubmitイベントをVB側で取得することは可能?
ぐぐって見つけた
ttp://www.experts-exchange.com/Programming/Programming_Languages/Dot_Net/VB_DOT_NET/Q_21475970.html
と同じようにコーディング(中段のAccepted Answerとこ)したんだけど、addHandlerするとHTML側のボタンが押せなくなるとかいう現象が起きて困ってます。
656デフォルトの名無しさん:2006/05/17(水) 15:25:55
VB2005ExpressEditionで質問です。

TreeViewで実行中にノードの追加や削除ができるプログラムを作りました。
で、終了時にそのノードの構成を丸ごと保存して、次の実行時に再現したいのですが
いい方法はないでしょうか?
657デフォルトの名無しさん:2006/05/17(水) 16:22:18
>>656
卵が先か鶏が先か・・・
Treeviewに最初に表示してたのは一体なんだったんだ? それ次第の話じゃないか?
658656:2006/05/17(水) 16:41:21
>>657
初回起動時には大元のノードが1個だけの状態で、ユーザーが自由にノードの追加や削除、
名前の変更などができる仕組みのアプリなんです。
で、ユーザーが好きに作ったノードのツリー構造を保存して
次回起動時に復元したい、と思っています。
659デフォルトの名無しさん:2006/05/17(水) 16:59:03
シリアライズすればいいんじゃないの?
ノードそのものを。
660デフォルトの名無しさん:2006/05/17(水) 17:03:37
質問です。

FormのLoadイベントで、DBへアクセスしてデータを取得すると、
その間(2,3秒)は画面が表示されず、レスポンスが悪い感じになりますよね?

現在、画面をEnabled=Falseで開いて、データ取得後にEnabled=Trueにしてみたり、
色々試行錯誤しているのですが、何かいい方法はないでしょうか?
661デフォルトの名無しさん:2006/05/17(水) 17:14:01
>>660
DBアクセスは画面表示とは別のスレッドで行う。
そのスレッドをスタートした直後にApplication.DoEventsしておく。
662656:2006/05/17(水) 17:15:48
>>659
そう思ってシリアライズというのをやってみようとしましたが
'System.Windows.Forms.TreeNodeCollection' はシリアル化可能として設定されていません。
とか怒られてしまいます・・・・(´・ω・`)

VB2005初めて3日目だからよくわからないことイパーイ・・・
でももうちょっとがんがってみる(`・ω・´)
663デフォルトの名無しさん:2006/05/17(水) 17:15:53
>>660
理屈は知らんが、前に↓入れといたら似たようなことができたような・・・
違ってたら、ごめん。
Me.WindowState = FormWindowState.Normal
664デフォルトの名無しさん:2006/05/17(水) 17:16:04
>>658
ツリーとXMLドキュメントを対応させておく
漏れはXMLをツリー展開させる機能を持った
TreeViewを継承で作成した。
665デフォルトの名無しさん:2006/05/17(水) 17:17:36
>>660
確かに、こっちだったw
Application.DoEvents
666デフォルトの名無しさん:2006/05/17(水) 17:20:09
>>661
スレッド生成をLoadイベント内でおこなうわけですね?
スレッドのデバッグって大変そうですが、ちょっとやってみます。
ありがとうございました。
667660:2006/05/17(水) 17:24:54
>>665
Loadイベントの最初に Application.DoEvents を入れてみましたが、
画面が表示されるまでに、同じように時間がかかってしまいます。
何かやり方がまずかったんですかね?
668デフォルトの名無しさん:2006/05/17(水) 17:49:46
>>667
画面が表示されるのはLoadイベント抜けた後だから。
DBアクセスの前にMe.Showするという行儀の悪い方法もある。
2005ならShownイベントでDBアクセスすれば問題ないが。
669660:2006/05/17(水) 17:57:48
>>668
2003なんです・・・

やっぱり、>>661 の方法がベストですかね?
670デフォルトの名無しさん:2006/05/17(水) 18:41:59
なんか質問する方もする方だけど、回答者もアホが揃ってるなあ。。
阿藤海なら思わず何だかなーって言っちゃうよ。

DoEventsって何だよw
理屈わかって言ってるのかな。

っていうか、>>660は何がしたいの結局?

DBへのアクセスが完了するまではユーザーにUIを触らせたくない。
でも「待ち」時間は我慢できない。

要求仕様が矛盾してるじゃん。
なんで「待ち」が発生してるの?
DBへのアクセスに時間がかかるからでしょ?
671デフォルトの名無しさん:2006/05/17(水) 18:47:38
内容の無い>>670にも何だかなーって思っちゃうよ。
672デフォルトの名無しさん:2006/05/17(水) 18:56:11
OnActivatedイベントでやればいいのに
673660:2006/05/17(水) 18:59:34
>>670
たとえば、メニューを選択して対象画面を呼び出すとする。
メニューを選択したけど、一瞬反応がない(画面が表示されない)と、
ユーザーからすると、あれ?って思う。体感速度が遅く感じるって訳。

そこで、とりあえす画面を先に表示しておくだけでも、体感速度が変わってくると思う。
トータルとしては、逆に遅くなるかもしれないけど。
674660:2006/05/17(水) 19:04:06
実際、ここまで気にする必要は無いんでしょうか?

>>672
その方法よさそうですね。それでやってみます。
675デフォルトの名無しさん:2006/05/17(水) 19:08:11
アプリ起動時の話なら、スプラッシュウィンドウを表示しとくって手もあるな。
676デフォルトの名無しさん:2006/05/17(水) 19:10:46
>>674
そんなことしたって結局アクセスしている間UIがフリーズするだけ。
問題Aが別の問題Bに変わるだけじゃんw

(1) DBにアクセスする部分をフォームとは別クラスにして、(当然既にそうしてあるよね?)
フォームからは何らかのタイミングで(Loadでもなんでもいい)そいつに
「DBにアクセスせよ」と命令する。

(2) 命令された「DBにアクセスするクラスのオブジェクト」は、スレッドを
起動してDBにアクセスする。

(3) DBへのアクセスが完了したらフォームに何らかの方法(イベントが簡単だね)
でそれを通知する。
677デフォルトの名無しさん:2006/05/17(水) 19:18:07
で、データが来ない間ユーザができることは何もない、と。
678デフォルトの名無しさん:2006/05/17(水) 19:24:18
>>677
うちのシステムでそれやってる。データの表示待ちの間は唯一「メニューに戻る」は出来る!
679デフォルトの名無しさん:2006/05/17(水) 19:35:40
恐ろしくレベルの低いであろう質問でなんだか気が引けるのですが、宜しくお願いします。
表示されているファイルのパスを取得する方法にはどのようなものがあるのでしょうか、教えて下さい。

現在VBを勉強中なのですが、使用している参考書の練習課題に取り組んでいます。
その課題というのは、フォームにピクチャーボックスとボタン*4を配置し、
4枚の画像ファイルを用意してそれぞれをボタンに対応させ、
さらにピクチャーボックスをクリックすると決まった順番にその4枚が順次切り替わるようなものを作れというものです。
ピクチャーボックスには最初から4枚のうちの1枚が表示されている状態です。

ファイルパス指定の方法はfromfileを使えと指定されています。
ボタンに割り当てるのは出来たのですが、ピクチャーボックスをクリックすると・・・というところが上手くいきません。
select caseで、評価式にpicturebox1.imagelocation()を使えばいいのかなと思ったのですが、
初期状態ではimagelocationにはパスは記憶されていないんですね。
画像を表示させる際にloadを使わなければいけない、とまではわかりましたがそれだと課題のfromfileを使え、にそぐわないので違うのでしょう
680デフォルトの名無しさん:2006/05/17(水) 19:39:09
いやレベルがどうこうっていうより、
宿題は自分でやらんと意味ないだろ
681660:2006/05/17(水) 19:40:42
>>676
別スレッドでDBにアクセスすることで、データ待ちの間もウィンドウの移動などができたり、
>>678 の様な処理ができるってことですね。
682デフォルトの名無しさん:2006/05/17(水) 20:24:15
VB2003でGIFとPNGの減色をやりたいんですがどうやればいいでしょう?
683デフォルトの名無しさん:2006/05/17(水) 20:59:59
GIFとPNGのRFCを読む
684デフォルトの名無しさん:2006/05/17(水) 22:04:26
System.Drawing.Imaging.Encoderじゃできなかったな
685653:2006/05/17(水) 22:18:59
だれかおしえてよ・・・。
686デフォルトの名無しさん:2006/05/17(水) 22:23:14
自分で読めよライセンスぐらい
687デフォルトの名無しさん:2006/05/18(木) 07:59:17
>>683
具体的にどういうこと?
688デフォルトの名無しさん:2006/05/18(木) 08:14:57
自分で読めよRFCぐらい
689デフォルトの名無しさん:2006/05/18(木) 13:48:45
RFC、ググッたけどよくわからない・・・
もっと簡単にGDI+を使ってGIF、PNGの減色ってできないものでしょうか?
690デフォルトの名無しさん:2006/05/18(木) 13:57:35
gif でセーブすれば 8bppIndexed にはなる。
それ以外は減色のアルゴリズムから考える必要がある。
691653:2006/05/18(木) 13:59:10
>>686

ライセンスの条文は、
難しくてわからん、、、。
あれは日本語であって日本語でない。

だれか解説よろ。


692デフォルトの名無しさん:2006/05/18(木) 14:03:00
で、誰かが解説してそれがもし間違ってたらどうすんだ
693デフォルトの名無しさん:2006/05/18(木) 14:03:28
ここに画像圧縮アルゴリズムの解説がある。

ttp://www2.starcat.ne.jp/~fussy/algo/index.htm
694デフォルトの名無しさん:2006/05/18(木) 14:39:21
>>689
Encorder.ColorDepthのヘルプ見て色深度を変えてみたことあるが
GIFは8ビット、PNGとTIFFは24ビット以外変わらなかったのでやめた
695679:2006/05/18(木) 16:08:00
>679ですが、どうしてもわかりません(´A`|||)
どうか教えて頂けませんか
696デフォルトの名無しさん:2006/05/18(木) 16:13:43
> 画像を表示させる際にloadを使わなければいけない、
Load メソッドも ImageLocation プロパティも .NET 2.0 で追加されたメソッドだが、
じゃあそれまでは PictureBox で画像を表示することができなかったと言うのか
697デフォルトの名無しさん:2006/05/18(木) 17:12:34
つかImage.FromFileでググれば一発ででてくるし
698679:2006/05/18(木) 17:25:31
いや、知りたいのは画像を表示する方法ではなく現在表示中の画像のファイルパスを取得する方法なのですが・・・
select case文の評価に使って、現在表示している画像のファイル名によってcaseを設定したいのです
699デフォルトの名無しさん:2006/05/18(木) 17:31:15
表示されているファイルのパスを取得するだけなら
表示したときのパス名を覚えておけばよいだけでは
それよか解答のついていない参考書もどうかと思うが
700デフォルトの名無しさん:2006/05/18(木) 17:32:50
何で画像のパスで判定する必要がある?
配列に入れてインデックス回せば済むだろが
701デフォルトの名無しさん:2006/05/18(木) 17:33:27
四つぐらいなら全部 Image オブジェクトとして持ってても良いような気がするがね
702デフォルトの名無しさん:2006/05/18(木) 17:37:04
Private Index
Sub Button1_Click()
Index=1
1
End Sub
::
Sub Button4_Click()
Index=4
End Sub
Sub Button1
703デフォルトの名無しさん:2006/05/18(木) 17:39:13
スマソ途中で書いてる途中で送信した
704デフォルトの名無しさん:2006/05/18(木) 17:46:28
Private Index
Sub Button1_Click()
Index=0
Daisplay
End Sub

Sub Button4_Click()
Index=3
Display
End Sub
Sub PictureBox1_Click()
Index = (Index+1) Mod 4
Display
End Sub
Sub Display()
Indexの画像を表示
End Sub
705デフォルトの名無しさん:2006/05/18(木) 19:11:09
fromfileでパス指定するって書いてあるじゃん
706デフォルトの名無しさん:2006/05/18(木) 19:27:56
今表示してるなら、PictureBoxのプロパティにパスが入ってるだろうに。

どこにあるのかわからない画像が、何故か表示されているとか?
707679:2006/05/18(木) 19:35:43
すいません、勉強し始めて少ししか立っていないのでわからない事だらけで上手く説明できません・・・
詳しく書いてみます。
フォームの中央にピクチャーボックス、その上下左右にボタンが配置されています。
予め4枚の画像を用意しておき、ピクチャーボックスには最初1.jpgが表示されています。
4枚の画像と4つのボタンは繋がっていて、ボタンを押す事でそれに対応した画像に切り替わります。
これはpicturebox1.image = image.fromfile(ファイルパス)としています。

ピクチャーボックスをクリックすると、例えば現在1.jpgが表示されているなら2.jpgを、4.jpgが表示されているなら1.jpgという風に次の画像へ切り替わるようにします。
現在select case ???
case 1.jpg
picturebox1.image = image.fromfile(2.jpg)
case 2.jpg
picturebox1.image = image.fromfile(3.jpg)
中略
end select
という風にしようと考えています。というよりはこれしか思いつかないだけなのですが
select caseの評価式、???の部分をどう記述すれば良いのかがわからないので困っています。
708デフォルトの名無しさん:2006/05/18(木) 19:43:40
Image を 4 つ Form が持ってれば良いじゃん? 事前に読み込ませとけばさ。
そうすれば PictureBox の Image と比較するだけだし。
709デフォルトの名無しさん:2006/05/18(木) 19:44:14
>>694
やってみたけど確かに変わりませんな・・・

>>693
難しそうだにゃー
710デフォルトの名無しさん:2006/05/18(木) 20:04:36
>>707
そんなの初心者だろうがなんだろうが人に聞くような内容じゃないと思う。
その程度のこと自分で考えてできないならプログラミングなんて最初から
やらないこった。
ストレスの元になるだけだよ。
711デフォルトの名無しさん:2006/05/18(木) 21:46:41
>>710
まあ長文なのは気になるが荒らしてるわけではないので気楽に行こうや
>>709
ネットで探せばVB6の減色やGIFやPNGの書き出しサンプルは手に入る
それらを参考にしてはどうか
712デフォルトの名無しさん:2006/05/18(木) 21:48:24
ノートで.NET使おうかと考えているのですがCPUは1Gあれば大乗がでしょぅか?
メモリは256くらいですがしょぼすぎ?
713デフォルトの名無しさん:2006/05/18(木) 21:51:21
PIII800/256MB で色々やってるが死にそうだぜ
つかスワップ発生しすぎでたまらん HDD 遅いのに
714デフォルトの名無しさん:2006/05/18(木) 22:12:11
まじっすか
やっぱ512は必要かな・・・
715デフォルトの名無しさん:2006/05/18(木) 23:11:17
OSにもよるが、512MBに2000Proサービス切りまくりでもしんどい。
716デフォルトの名無しさん:2006/05/18(木) 23:32:10
いや、というよりVS2003やVS2005が快適に動作するような環境は
あと5年たっても手に入らないと思われますがw

メモリは512でも1Mでもそんなに違わないよ。
717デフォルトの名無しさん:2006/05/18(木) 23:43:26
さすがに1Mでは苦しいだろ
718デフォルトの名無しさん:2006/05/18(木) 23:52:26
むしろ無理かと
719デフォルトの名無しさん:2006/05/18(木) 23:54:42
512、は普通に考えて512MBだろう。MBをはしょっている事から基準がMBであると推測出来る。
1Mは100万だから100万MB、1兆byteとなる
720デフォルトの名無しさん:2006/05/19(金) 00:02:45
1TBと表現したら、それほど大きな感じがしない今日この頃。
721デフォルトの名無しさん:2006/05/19(金) 00:20:29
昔は1Mのメモリが1万円くらいしたものだ
722デフォルトの名無しさん:2006/05/19(金) 10:42:35
ADにADSI等を使って動的に情報を書き込む方法ってありますか。

行いたいことは、ユーザーの最終ログオンコンピューターを特定すること。
1on1の環境ではないので、不特定多数のコンピューターからADにログオン可能なのですが、
どのユーザーがどのPCから最終ログオンをしたのかを知りたいのです。

最終ログオン時間は現在でもあるのですが、最終ログオンコンピューター見つけられませんでした。
ログオンスクリプトでADを動的に書き換えれば可能だとは思うのですが。

よろしくお願いします。
723↑スレ違い乙:2006/05/19(金) 11:07:25
 
724デフォルトの名無しさん:2006/05/19(金) 11:10:15
ログオンスクリプトで、管理共有フォルダあたりにユーザー名やコン
ピュータ名を書き出せばいいんでない? 書き出したファイルの作成
日時がそのままログオン時間になるしさ。
725724:2006/05/19(金) 11:14:31
まあ、VBでやることでもない罠。
726デフォルトの名無しさん:2006/05/19(金) 12:10:33
>723
いや、VBで使うのにほしかった。VBからもADSI使えるし。

>724
別にSQL鯖でも立てれば簡単に解決するんですけどね〜
727マルボロメン:2006/05/19(金) 12:11:27
はじめまして。VB.NETを勉強中のものです。
Win32APIの機能を使って、2重起動をチェックする
というプログラムをコーディングしていたのですが、
それを少し発展させて、2重起動をしたら
起動中のアプリケーションを最前面に表示しアクティブにする、
という具合にしたいと思いました。
別のウィンドウの後ろに隠れていたフォームを最前面に表示・アクティブ化は
問題なくできたのですが、
起動中のものが非表示状態(Visibleがfalse)だった場合、
そのフォームを表示状態にして最前面に表示することは可能なのでしょうか?

【要約】
1度目の起動時は通常起動でフォームを表示させ、
そこでボタンをクリックしてフォームをHideし、
2度目の起動で、先ほどHideしたフォームをShowしたいです。
以下にコードを記します。
728& ◆jxvOu6XgII :2006/05/19(金) 12:15:46
Imports System.Diagnostics
Imports System.Runtime.InteropServices

Private Sub Form1_Load(ByVal sender As System.Object,ByVal e As System.EventArgs) Handles MyBase.Load
     Call CheckProcess()
End Sub
Private Sub Button1_Click(ByVal sender As System.Object,ByVal e As System.EventArgs) Handles Button1.Click
Me.Hide()
End Sub

<DllImport("user32.dll")> _
Private Shared Function ShowWindow(ByVal hWnd As System.IntPtr,ByVal nCmdShow As Integer) As Integer
End Function

Private Const SW_SHOW As Integer = 5

Public Shared Function ShowPrevProcess() As Boolean
Dim hThisProcess As Process = Process.GetCurrentProcess()
Dim hProcesses As Process() = Process.GetProcessesByName(hThisProcess.ProcessName)
Dim iThisProcessId As Integer = hThisProcess.Id

For Each hProcess As Process In hProcesses
If hProcess.Id <> iThisProcessId Then
Call ShowWindow(hProcess.MainWindowHandle, SW_SHOW)
Return True
End If
Next hProcess
Return False
End Function
729マルボロメン:2006/05/19(金) 12:16:21
続き:
Public Sub CheckProcess()
' 同名のプロセスが起動していない時は起動する
If ShowPrevProcess() = False Then
Application.Run(New Form1())

'2重起動に当たる場合は起動中のものをShowし、終了する。
Else
End
End If
End Sub
ご意見お願いします。
730デフォルトの名無しさん:2006/05/19(金) 12:27:02
・多重起動のチェックと通知には名前付きイベント(.NET 2.0 なら EventWaitHandle)使えば楽
・ウィンドウの処理はむしろ通知を受けた側が行う
731デフォルトの名無しさん:2006/05/19(金) 12:37:54
このスレにコード書き込むのはインデント知らないやつらばっかりだな
732デフォルトの名無しさん:2006/05/19(金) 13:01:33
>>729
VB2005ならプロジェクトのプロパティから
「アプリケーションフレームワークを有効にする」
「単一インスタンスのアプリケーションを作成する」
にチェックすればそのままズバリが提供されている。
733デフォルトの名無しさん:2006/05/19(金) 13:15:20
LoadイベントでよりもMain関数内で判定する方がいいと思う。
そこでMutexの取得可能かどうかで判定した方がいいと思う。
734マルボロメン:2006/05/19(金) 13:52:13
>>730
 そうですね。そのやり方も調べてみます。ありがとうございます。
>>731
 インデント、Tab使ったらダメなんですね^^;
 以前に、とある先輩にコードは半角スペースを使ってインデントした方が
 マルチに対応する、と聞かされたことを思い出しました。
>>732
 ズバリ、それでできました。付け加えるとアプリケーションイベントプロシージャに
 if (Me.visible = false) then
me.visible = true
end if
 と付け加えると、フォームがHideされていても表示され、かつ最前面に表示されました。
>>733
そうですね。main()を使ってやった方が良いのかも知れません。
 次回はmain()内でMutexコンストラクタを使って挑戦してみたいと思います。
735マルボロメン:2006/05/19(金) 13:55:54

あ、またインデントできてない;;

ちょっと練習します。
If Me.Visible = False Then
Me.Visible = True
End If

…これでできたかな?
736マルボロメン:2006/05/19(金) 13:56:58

がーん、できてない…
737デフォルトの名無しさん:2006/05/19(金) 14:11:39
行頭の半角スペースは省略されるのを知らんのか?
インデントしたけりゃ全角スペース使え
738デフォルトの名無しさん:2006/05/19(金) 14:25:55
全角はやめれ コピペできんだろが
&nbsp; を使うんだ
739デフォルトの名無しさん:2006/05/19(金) 15:29:59
VB.NETでExcelを操作する方法が詳しく書かれてあるお勧めの参考書はありませんでしょうか?
よろしくお願いします。
740& ◆ueGjjyAmr. :2006/05/19(金) 15:32:51

 ス
  ト
741デフォルトの名無しさん:2006/05/19(金) 16:31:05
別に全角スペースでもIDEにならコピペできるけどなあ
742デフォルトの名無しさん:2006/05/20(土) 17:09:39
タイマーコントロールを使って、フォーム内でラベルを動かすプログラムを作りたいのですが、
ラベルの端がフォームの端に触れた時に進行軸を逆にするにはどう記述すれば良いでしょうか・・・
一応自分なりに考えてみたのですが、これだとif文の前の代入を毎度反映してしまって反射は出来ないですよね?
ヒントでも良いので何方か宜しくお願いします。(インデントずれてたらすいません)

With Label1
  Dim a, b As Short
  a = 1
  b = 1
  If .Left = 0 Or .Left = Me.Size.Width - .Width Then
    a *= -1
  End If

  If .Top = 0 Or .Top = Me.Size.Height - .Height Then
    b *= -1
  End If

  .Left = .Left + a
  .Top = .Top + b
End With
743デフォルトの名無しさん:2006/05/20(土) 17:11:26
なにぃっっっ! 2005のIDEは全角スペースもオッケーなの!!

...orz しら中田
744最凶VB厨房:2006/05/20(土) 17:20:25
Dim a, b as short
a=1
b=1
をtickイベントハンドラ外でやれ。
745デフォルトの名無しさん:2006/05/20(土) 17:20:30
スタートキットを起動したらこんなメッセが出ました。

'System.Data.SqlClient.SqlException' の初回例外が System.Data.dll で発生しました。
DefaultSource Error: 2 : タイムアウトに達しました。操作が完了する前にタイムアウト期間が過ぎたか、またはサーバーが応答していません。

どうやったらなおるでしょうか。
746デフォルトの名無しさん:2006/05/20(土) 17:23:43
ボタンとかリストボックスをフォームの大きさに合わせて大きく伸ばしたり小さく縮めるにはどうすればいいんでしょうか
普通に置くとコントロールの大きさは一定ですよね
747デフォルトの名無しさん:2006/05/20(土) 17:27:38
a = -a
748最凶VB厨房:2006/05/20(土) 17:27:39
resizeイベントに大きさに合わせてサイズが変わるようなコード書けば
いいんでないの。
749最凶VB厨房:2006/05/20(土) 17:29:49
>>745
まずはSQLサーバ立てろ。
750745:2006/05/20(土) 17:49:11
ラジャ!
751745:2006/05/20(土) 17:56:43
SQLサーバーってなんですか?
752最凶VB厨房:2006/05/20(土) 18:18:52
>>751
ぐぐれ
753デフォルトの名無しさん:2006/05/20(土) 20:06:15
<チラシの裏>
今Reflectionで遊んでいるんですけど、
なんか冒険しているみたいで楽しいですね〜♪
</チラシの裏>
754デフォルトの名無しさん:2006/05/20(土) 21:35:23
フォームの中にパネルをFillで張って、タイトルバー分を含まない枠を作ったのですが、
このままタイトルバーを含まないように、フォームの大きさ変更に伴ってパネルサイズも変更されるようにするにはどうすれば良いでしょうか?
リサイズイベントにpanel1.size=me.sizeとするとタイトルバーの大きさを含んでしまいますよね?
755デフォルトの名無しさん:2006/05/20(土) 21:44:27
パネルの Dock が Fill なら勝手に変わるだろ?
取りあえず求めてる大きさは ClientSize で取得できるだろうが。
756デフォルトの名無しさん:2006/05/20(土) 21:58:14
な、なんのためのFill…
757デフォルトの名無しさん:2006/05/20(土) 21:58:51
>>743
それはまあ許せる仕様なんだけど、全角のダブルクォーテーションとかまで
強制的に半角にしちまう仕様は腐ってるよな。
半角のみたいにエスケープもできんしw
どうしろっちゅうねんほんと
758754:2006/05/20(土) 22:05:46
フォームサイズを変えてもパネルのサイズ変わらないままなんですが・・・(´・ω・`)
プロパティでfillにするだけでは駄目なの?
759デフォルトの名無しさん:2006/05/20(土) 22:28:14
>746
プロパティの Anchor を 使ったほうが簡単かも
760デフォルトの名無しさん:2006/05/20(土) 22:32:23
>758
フォームにパネルだけ配置して、Dockプロパティを Fill にしても
パネルが可変されないか、試してみたら?
761754:2006/05/20(土) 22:39:53
なぜかわからないけど連動するようになりました・・・お手数かけました、すみません。
762デフォルトの名無しさん:2006/05/21(日) 08:29:45
VB.NETを勉強し始めた矢先に、エクセルVBAを使ってプログラムをしなければならない必要に
迫られました。

ひな型にできそうなVBAのコードがあったので、とりあえずVBAではじめたんですが、VSの
方が使い勝手がよさそうです。Visual Studio Tools for Officeというのを入れればVB.NETでも
いけそうですが、実際どう思われますか?

ほとんど2者の違いを気にせず、コードが書けるのならVB.NETで書きたいです。

プログラミング自体は初心者で、いまさらVBAを学ぶというのも後ろ向きな気がして。
763デフォルトの名無しさん:2006/05/21(日) 09:37:22
全然別物。
764デフォルトの名無しさん:2006/05/21(日) 10:19:17
>762 です

エクセルでやりたいのは、元となるエクセルシートに、SQL Selectステートメントで引っ張って
きたデータを特定のセルに貼り付ける程度で、罫線を引いて見栄えを良くしておしまいです。

VB6とVB.NETの違いを参考にいろいろ調べてみたのですが、プロパティの指定が必須とか
変数のデータタイプはきちんと明示しましょう、くらいしか今回のケースに当てはまらなかった
ので、VB.NETでVBAと同じことがそれほど苦労なくできそうな気がしていました。

VB6とVBAでのエクセルシートの扱いが全然別物なら、当然ですよね。
765デフォルトの名無しさん:2006/05/21(日) 15:38:57
すいません。
負の数を認識させたい場合はどうすればいいのですか?
766デフォルトの名無しさん:2006/05/21(日) 15:41:41
なんに認識させるんだよ
767デフォルトの名無しさん:2006/05/21(日) 15:47:43
>>765
変数に入ってるのが負かどうかを確認したいって意味なら、比較演算子
で0より小さいかどうかを判断させればいいじゃん。
768デフォルトの名無しさん:2006/05/21(日) 15:51:37
765です。
すいません。
a(0)=1.a(1)=2・・というふうにいくつかの数を用意しておいて
これを大きい順になるベルと言うプログラムを作っています。
ところが、a(1)=-2というふうに負の数になったらうまく動きません。
対処法を知っているかたがいたらよろしくお願いします。
769デフォルトの名無しさん:2006/05/21(日) 15:57:29
激しく理解不能
770デフォルトの名無しさん:2006/05/21(日) 16:06:11
765です。
たびたびすいません。
繰り返しの際に、最初に Const MAX =36 as short、 Const MIN=-20 as short
というふうに宣言をしておいて、繰り返しで処理させるところでMINやMAXを使って
i=MIN to MAXというふうに繰り返させるのですが、負の数が絡んだ場合、
なにかうまい方法はないでしょうか?ということです。
私も理解してなくて申し訳ありません。
771デフォルトの名無しさん:2006/05/21(日) 16:09:50
>>770
ソートのアルゴリズムはぐぐったら山ほどサンプルが出てくるから、
まずそこを熟読した方がいいよ。いまの状態だと「何がわからないの
かわからない」みたいだから。
772デフォルトの名無しさん:2006/05/21(日) 17:12:04
的確な質問ができるやつは質問などしないという法則
773デフォルトの名無しさん:2006/05/21(日) 17:19:27
それをいうなら物事の法則性を捕らえるセンスが全く無い奴ほど法則法則
言いたがる法則w

こういうのは必要条件と十分条件を混同してるんだよなw
馬鹿な質問者がいるからって質問者全員が馬鹿なわけじゃない
774デフォルトの名無しさん:2006/05/21(日) 17:26:55
マーフィーの法則をアレは法則じゃないと言い張る方?
775 :2006/05/21(日) 17:35:54
このスレ見ながら、教えてもらいながら、初めてVB.NETでプログラムできました。
チューターの演習問題のWebブラウザになる超簡単なはずのやつですけど。
2回エラーでうまくいかなくて、今日3回目でうまくできた!
うれしい!
ハッピ!
776デフォルトの名無しさん:2006/05/21(日) 17:36:06
意味わからんな。
マーフィーの法則の著者だ、じゃなく
君が馬鹿だといっているのだが。
777デフォルトの名無しさん:2006/05/21(日) 17:43:04
いつもの奴出てきたな
778デフォルトの名無しさん:2006/05/21(日) 18:03:54
キーワードは馬鹿
779デフォルトの名無しさん:2006/05/21(日) 20:24:33
765です。
聞きたいことが分かりましたので
たびたび申し訳ありませんがお付き合いください。
VB6.0のときは、例えばA(i)のiの部分、つまり配列の次元を
負で設定しても問題なかったようなのですが
VB.NETではできません。これの代わりの機能はあるのですか?
780デフォルトの名無しさん:2006/05/21(日) 20:31:35
要素数が負の配列ってどんなんですか
781デフォルトの名無しさん:2006/05/21(日) 20:37:05
私の持っているテキストによりますと
ソートのアルゴリズムのサンプルなのですがこんな感じです。
途中までしか載せてませんが、VB6ではこれで動きます。
Const Num = 10
Const Max = 36
Const Min = -20
Private Sub Command1_Click()
Dim a(Num - 1), juni(Min - 1 To Max)
a(0) = -3: a(1) = 2: a(2) = 3: a(3) = -1: a(4) = -2
a(5) = -6: a(6) = 2: a(7) = -1: a(8) = 1: a(9) = 5
For i = Min To Max
juni(i) = 0
Next i
For i = 0 To Num - 1
juni(a(i)) = juni(a(i)) + 1
Next i
juni(Min - 1) = 1
For i = Min To Max
juni(i) = juni(i) + juni(i - 1)
Next i
782デフォルトの名無しさん:2006/05/21(日) 20:38:20
juni(Min - 1 To Max) が負の配列をもっていますよね?
783デフォルトの名無しさん:2006/05/21(日) 20:42:13
そんなのはバグの元にしかならないバッドノウハウだから捨ててしまいなさい
784デフォルトの名無しさん:2006/05/21(日) 20:46:59
>>783
いや、もちろんそれでもいいのですが、
何かうまい方法があればと思い相談したのです。
6.0でできて.NETでできないって事は無いと思ったのですが・・・。
もちろんいろいろ機能が変わったのは知っていますが。
なるべくこのやり方を.NETのやり方に変えられないかなと思いまして・・・。
785デフォルトの名無しさん:2006/05/21(日) 20:54:43
>>784
ハッシュテーブルじゃ駄目なん?
786デフォルトの名無しさん:2006/05/21(日) 20:58:57
>>785
では、そのハッシュテーブルと言うのを調べてみます。
どうもありがとうございました。
787デフォルトの名無しさん:2006/05/21(日) 21:00:27
>>784
Dim juni(Max - Min + 1)
juni(x - Min) = xxx
788デフォルトの名無しさん:2006/05/21(日) 21:01:41
>>787
どうもありがとうございます。
またよろしくお願いします。
789デフォルトの名無しさん:2006/05/21(日) 21:30:30
悪いことは言わんから馬鹿なことはやめとけ。
790デフォルトの名無しさん:2006/05/21(日) 22:09:11
DataTableにぶち込んでSQLでソートしる
791デフォルトの名無しさん:2006/05/21(日) 22:14:43
Array.Sortでいいじゃん
792デフォルトの名無しさん:2006/05/22(月) 13:36:31
>>790,791
それじゃソートの勉強にならないよ。(w
793デフォルトの名無しさん:2006/05/22(月) 13:47:22
あんな糞アルゴリズムを.NETでどうこうしようとするよりよっぽど有意義だがな
794デフォルトの名無しさん:2006/05/22(月) 14:23:12
>>792
ソートするのが目的か、より良いソートを目指すのが目的かで違うが
これって結局は分布数えソートだろ

一般化するなら最大、最小を最初に空読みして決めるか、その場で配列を組みなおすか、リストで管理するかしないと実用にならないな
逆に数値の範囲が決まっていればかなり早くソートできるけどな
795デフォルトの名無しさん:2006/05/22(月) 14:40:09
いや、テキスト読んでるって言ってたから勉強中なんだろうと思って
さ。試験対策でやってるんなら、きちんと各ソートを学んでおくべき
かなと。
796デフォルトの名無しさん:2006/05/22(月) 19:36:41
$' (マッチした文字列の後ろにある全ての文字列)
これってVB.netの正規表現に存在してないのでしょうか?
797デフォルトの名無しさん:2006/05/22(月) 19:41:04
ドキュメント見れ。
.NET Framework の正規表現
798デフォルトの名無しさん:2006/05/22(月) 23:44:45
DataGridコントロールと二次元配列の間でデータの読み書きをしたいのですが、
どのようにすればこの機能を実現できますか?
799デフォルトの名無しさん:2006/05/22(月) 23:54:59
タイマーのtickイベントの中で「ボタン1をクリックした時の動作」を行わせたいのですが、どう記述すれば良いでしょうか?
800デフォルトの名無しさん:2006/05/23(火) 00:01:26
ボタン1をクリックしたときの動作 ってのはどのレベルのなのよ
単に同じメソッド呼び出したいだけならそう言う風にすれば良いだけだが
801デフォルトの名無しさん:2006/05/23(火) 00:07:15
VB.NET 2003 です。
TabControlの各ページに配置するコントロールの構成が
すべて同じの時に、TabControlの代わりに使用する
コントロールかプロパティかがあったように思うのですが、
失念してしまいました。
調べても発見できず悶々としています。
すみませんが、教えてください。
よろしくお願いします。
802デフォルトの名無しさん:2006/05/23(火) 00:09:11
>>799
ボタン1.PerformClick
803デフォルトの名無しさん:2006/05/23(火) 00:18:18
>>801
なんか見当違いかも知れんけど
PanelとPanel用のイベントハンドラを固めたクラスを用意してStateパターンを使ってみるとかじゃだめ?
804デフォルトの名無しさん:2006/05/23(火) 00:27:50
>>801
旧VBのTabSTripのこといってるんじゃない?
相当するコントロールはドトネトには存在しない。
805デフォルトの名無しさん:2006/05/23(火) 00:50:59
>>798
二重ループで一個ずつセルに代入すれば?
806801:2006/05/23(火) 01:49:31
>>803-804
あ、そういえばと思い出して調べてみるとどうもExcelVBAを1年ほど前に
手がけたときの記憶が.NETと混同していたようです。
ちょっと調べてみていろいろ試してみます。
ありがとうございました。
807デフォルトの名無しさん:2006/05/23(火) 12:03:41
>>801
>>TabControlの各ページに配置するコントロール
↑を全部 TabControl以外に置くだけでいいのでは?
808デフォルトの名無しさん:2006/05/23(火) 12:10:28
無料のVB2005で参照設定ってこれでいいんでしょうか?

とりあえず起動させて、プロジェクト→参照の追加→Microsoft Excel Object Library
を選んでOKを押します。

Dim xlsOBJ As excel.application

とやってもインテリセンスが働かず、型定義がされません。
どうして?
809デフォルトの名無しさん:2006/05/23(火) 12:34:09
>>808
少しは自助努力ってものをした方がいいと思うよ。
そんなもんちょっと調べりゃすぐ分かるでしょ。
MSのサイトにすらヒントが書いてあるのに
810デフォルトの名無しさん:2006/05/23(火) 13:50:56
VBで可愛い彼女を作りたいんですが
811デフォルトの名無しさん:2006/05/23(火) 14:07:26
>>810
「人工無能」でぐぐれ。
812デフォルトの名無しさん:2006/05/23(火) 18:32:23
キーが押されるたびにBeginInvokeで短い非同期処理を
走らせているのですが、あるタイミングになるまで
すべて同じスレッドが動作してしまいます。
(System.AppDomain.GetCurrentThreadIdで確認)
しばらくキー操作しているとbeginInvoke毎に異なる
スレッドが動くようになるのですが、
この現象はどうしたら解決できるでしょうか?
813デフォルトの名無しさん:2006/05/23(火) 18:37:26
>>812
だからエスパーはおらんよ。
解決って、それで何が問題で、どうしたいとおっしゃるんで?
814デフォルトの名無しさん:2006/05/23(火) 18:39:52
>>812
再現性のある短めのコードをアップしてくれ。
815デフォルトの名無しさん:2006/05/23(火) 18:43:34
>>813
分かりにくくて申し訳ありません。
問題=>アプリケーション起動後、BeginInvokeで使われるスレッドが特定の1個のスレッドになっている
どうしたいか=>アプリケーション起動後すぐに、ちゃんとbeginInvoke毎に異なるスレッドが動くようにしたい
816デフォルトの名無しさん:2006/05/23(火) 18:49:21
>>815
非同期デリゲートのBeginInvokeのことなら、スレッドプールを使ってるから同じスレッドで動くことがある。
確実に別スレッドで動かしたいならThreadクラスを使え。
817デフォルトの名無しさん:2006/05/23(火) 18:50:14
>>815
本当にそうなってるなら、「次」にキーが押されたときには既に前のスレッドが
終了しているからでしょ。

逆に言えば、終了してなければそのような現象は発生しないはずだと思うよ。

BeginInvokeはスレッドプールを使ってるそうだから、終了したスレッドが
使いまわされてるだけなんじゃないかな。
818デフォルトの名無しさん:2006/05/23(火) 18:52:28
>>816
「使え」だってさ。
お前は北方謙三かw
そんな偉そうにいうような内容かよ
819デフォルトの名無しさん:2006/05/23(火) 19:09:36
ちょっと待ってください。
今サンプルコードを出します。。
820デフォルトの名無しさん:2006/05/23(火) 19:20:06
Private Delegate Sub KeyUpDelegate(ByVal e As System.Windows.Forms.KeyEventArgs)
Private KeyUpDel As KeyUpDelegate
Private iOtherKeyUp As Integer

Private Sub Form1_KeyUp(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles MyBase.KeyUp
KeyUpDel = New KeyUpDelegate(AddressOf KeyUpProc)
KeyUpDel.BeginInvoke(e, New AsyncCallback(AddressOf CallBack), KeyUpDel)
End Sub

Private Sub KeyUpProc(ByVal e As System.Windows.Forms.KeyEventArgs)
TextBox2.Text += "[" & System.AppDomain.GetCurrentThreadId.ToString & "]" & _
"(" & e.KeyCode.ToString & ")" & "KeyUpProc" & vbCrLf
If e.KeyCode = Keys.ControlKey Then
System.Threading.Thread.Sleep(150)
If iOtherKeyUp > 0 Then
Return
Else
TextBox1.Text += "x"
End If
Else
iOtherKeyUp += 1
System.Threading.Thread.Sleep(300)
iOtherKeyUp -= 1
End If
End Sub

Private Sub CallBack(ByVal ar As System.IAsyncResult)
Dim d As KeyUpDelegate = DirectCast(ar.AsyncState, KeyUpDelegate)
d.EndInvoke(ar)
End Sub
821デフォルトの名無しさん:2006/05/23(火) 19:23:32
なるべく大きいフォームにしてtextboxを2つ縦長に並べて
貼り付けてください。
Ctrlを単独で押した時だけxが出、
Ctrl+他のキーが押された場合は何も出ないようにしたいのです。
途中までうまくいきません。(同一スレッドが動いてしまっている)
途中からうまくいくようになります。(ある時点から別々のスレッドが動く)
822デフォルトの名無しさん:2006/05/23(火) 19:26:50
Ctrl+Aでテストした結果:
[2812](ControlKey)KeyUpProc
[2812](A)KeyUpProc
[2812](ControlKey)KeyUpProc
[2812](A)KeyUpProc
[2812](ControlKey)KeyUpProc
[2812](A)KeyUpProc
[2812](ControlKey)KeyUpProc
[2812](A)KeyUpProc
[2812](ControlKey)KeyUpProc
[2812](A)KeyUpProc
[2812](ControlKey)KeyUpProc
[2812](A)KeyUpProc
[1728](ControlKey)KeyUpProc ←ここから別スレッドが動き、期待した動作になる(タイミングは不明)
[2812](A)KeyUpProc
[1728](ControlKey)KeyUpProc
[2812](A)KeyUpProc
[1728](ControlKey)KeyUpProc
[2812](A)KeyUpProc
[1728](ControlKey)KeyUpProc
[2812](A)KeyUpProc
[1728](ControlKey)KeyUpProc
[2812](A)KeyUpProc
823デフォルトの名無しさん:2006/05/23(火) 19:41:56
すいません、質問者ですが今日は帰りますので
また明日よろしくお願いします
824デフォルトの名無しさん:2006/05/23(火) 20:11:15
>>822
>>816-817 のとおりでスレッドプールの正常な動作。
System.AppDomain.GetCurrentThreadId は .NET 2.0 では
「メモ : このメソッドは、互換性のために残されています。」
になっててスレッドIDを調べることに意味が無いということでしょう。
825デフォルトの名無しさん:2006/05/23(火) 20:21:29
いやそれはちょっとちが…
826デフォルトの名無しさん:2006/05/23(火) 20:58:54
>>825
異論覚悟で後半は書いたので、出来たらもっと意味のある反論がほしいな。
ちが・・・で口濁すなんて掲示板では最低だよ。

ここではWin32のスレッド番号を返すことに意味がないと言いたいわけで、
CLRが管理しているスレッドの何らかの識別子を返すメソッドがあるのはOKなわけですよ。
プラットフォームからもスレッドからも中立であるはずのAppDomainに
このメソッドがあるのがおかしく廃止候補になったのは当然だと思う。
827デフォルトの名無しさん:2006/05/23(火) 21:05:56
>>825
お前は最低な奴だ。
828817:2006/05/23(火) 21:13:18
>>812
せっかくレスしてるのになんでスルーするんだろ変な人だな。
まあいいや、ダメな人にありがちだけど、なんでもっと単純なコードで
テストしないの?

とりあえずスレッドで実効するメソッドを以下のように変えてみ?

Private Sub KeyUpProc(ByVal e As System.Windows.Forms.KeyEventArgs)
  Console.WriteLine("ThreadID = {0}", System.AppDomain.GetCurrentThreadId)
  Sleep(10000)
End Sub

だから言ったでしょ?
「次」にBeginInvokeを実行したときに「前」のスレッドが終了してなきゃ
そんなことにはならないから何の問題もないと。
829817:2006/05/23(火) 21:13:52
ついでに、UIスレッド以外のスレッドからコントロールいじっちゃダメでしょw
830デフォルトの名無しさん:2006/05/23(火) 21:14:19
>>825
見損なったぜ。
831デフォルトの名無しさん:2006/05/23(火) 22:31:54
.NET 2.0のソフトが動かないです。
エラーメッセージとかは一切出ず、無反応です。
1.1と2.0を一回消してwindowsupdateからインストールもしてみました。
誰か分かる人いませんか?
832デフォルトの名無しさん:2006/05/23(火) 22:38:03
>>831
そういう質問はこのスレで聞くよりこの投稿欄で聞いたほうがいいと思うよ。
エスパーがいっぱいいるからね。
http://www.gakken.co.jp/mu/
833825:2006/05/23(火) 23:21:43
ウワァーン
834デフォルトの名無しさん:2006/05/24(水) 06:51:18
 test
835812:2006/05/24(水) 10:05:53
>>817さん
&他の方も書き込みありがとうございます。
CallBackにデバッグ出力を入れて、Sleep時間を変えて試したところ
確かに「前」のスレッドが終了してしまっているようです。
ただ腑に落ちないのはなぜ途中から挙動が変わるのかという点です。
起動後しばらくの間の『「前」のスレッドが終了しまう』挙動は
おかしいと感じます。
836デフォルトの名無しさん:2006/05/24(水) 11:05:39
>>835
スレッドプールはCPU1につき待機してるスレッドは1つだけで、
キューに複数の要求がたまれば0.5秒の待機のあと待機スレッドをひとつ増やす。
それにキューイングされている要求を実際にアサインするまでにさらに時間がかかる。
最初のうちがスレッド1つ、途中から2つになるのはこのため。

詳しくはここを一度読もう。
http://msdn2.microsoft.com/ja-jp/library/0ka9477y.aspx
837812:2006/05/24(水) 11:07:20
Sleep時間を長くすると今度はCtrlを単独で押したときの反応が
非常にもっさりしてしまうので困ってます。
838812:2006/05/24(水) 11:14:43
>>836
これですね、原因は!
ありがとうございます!読んでみます。
839812:2006/05/24(水) 11:32:10
SetMinThreadsでworkerThreadsを2にすることで問題が解決しました。
836さん、本当にありがとうございました(他のみなさんも)。
手持ちのMSDNにはThreadPoolクラスのこのメソッドのことは書かれていませんでした
(気付きませんでしたがIDEではちゃんと補完で出てきますね)。
自分も初期状態での待機スレッドが少ないからではないかという
思考はよぎっていたのですが、そこを追及して調べるまで至っていませんでした。
840デフォルトの名無しさん:2006/05/24(水) 11:32:42
DataSetを使っているのですが、テーブルからDataSetに読み込み、更新時に
テーブルの情報が変更されていた場合、DataSetの情報でそのテーブルを上書きしたいです。
今はDBConcurrencyException例外がおきて更新できない状態です。
何かヒントを教えてください。
841デフォルトの名無しさん:2006/05/24(水) 11:42:57
842デフォルトの名無しさん:2006/05/24(水) 12:04:05
>>841
この現象です。
自動生成したコマンドが複雑なWHERE区を作成するのが原因みたいです。
自分でUpdate文を作成することにします。
ありがとうございました。
843デフォルトの名無しさん:2006/05/24(水) 12:18:10
>>842
SqlCommandBuilder使ってるなら、やめといたほうがいいよ。
単一テーブルでしかまともに動かないし、冗長なSQLを吐くからさ。
844デフォルトの名無しさん:2006/05/24(水) 12:35:32
でもわざわざ自分で更新のSQL書かなくていいのは魅力だぞ
845デフォルトの名無しさん:2006/05/24(水) 13:05:44
>>844
その程度で済む業務って限られるから。
マスターメンテとかぐらいじゃないの?

そうじゃなければ、ORマッピングの活性化したデータとしてあれを使うわけで。
みんなで突付き合いしたりに耐えられるかな?
846デフォルトの名無しさん:2006/05/24(水) 13:07:12
>>843
自分でやったらすっげー大変だった
もうやりたくない・・・
847デフォルトの名無しさん:2006/05/24(水) 14:54:00
>>844,846
まあ楽なのはわかるんだけど、自分で組んだSQLならエラーが出ても
原因を突き止めやすいじゃん。自動生成でやたらと長いSQLだと、ど
こがおかしいのか見つけるのが超面倒だし。

コネクションとかアダプタも、ウィザード使わずに自分でコード書く
けど、みんなもそうしてるよね?
848デフォルトの名無しさん:2006/05/24(水) 15:15:48
例えばテーブルとバインドさせてデータ表示しているDataGridなんかで
行の削除や追加、あちこちのセルの書き換え等が動的に頻繁に起こる業務アプリで
最後にそれら大量の変更をテーブルに反映させるのにいちいちSQL書くのか?
現実的じゃないな。やっぱり自動生成機能は使った方が正解。
849デフォルトの名無しさん:2006/05/24(水) 16:25:28
>>848
汎用Grid操作エンジン作って、独自言語で処理
SQLは自作モジュールで自動生成
これ最強


とか書く馬鹿が出そうw
850デフォルトの名無しさん:2006/05/24(水) 16:25:50
そういうのはストアドにして、クライアントからパラメータだけ投げる
ようにしてるけど。更新のタイミングがキモだから、どちらか楽or軽い
ほうを選ぶようにするなぁ。

自動生成したコマンドを見直してチューニングするってのもありだろう
し、まあひとそれぞれなんじゃないかな?
851デフォルトの名無しさん:2006/05/24(水) 16:52:03
>>848
DataSetとGridは連結するけど、DataSet=DBではないからね。

画面仕様をDB設計にあわせる、または逆なんて出来ないでしょ?
画面は客の要望、DBは限りなく理想的に。
そのねじれを自動的にやってくれるなんてのはやっぱないよ。

その皺寄せを仕事にするか、客に押し付けるかの違いだと思うが。
852デフォルトの名無しさん:2006/05/24(水) 17:34:04
客の要望を全て忠実に実現できなければプログラマは評価されない
853デフォルトの名無しさん:2006/05/24(水) 17:37:00
そして、客の要望を実現可能なレベルに事前調整してくれる営業は存在しない。

‥‥なんでもかんでも「できます!」って安請け合いするなよ。orz
854デフォルトの名無しさん:2006/05/24(水) 21:20:13
>>851
言ってること意味不明なんだが・・・
855デフォルトの名無しさん:2006/05/24(水) 21:46:11
グローバル変数は使わない方がいいですか?
856デフォルトの名無しさん:2006/05/24(水) 22:37:57
スコープをしっかり管理してれば、別にいいんでない?
857デフォルトの名無しさん:2006/05/24(水) 22:51:10
というか使えないだろ
858デフォルトの名無しさん:2006/05/24(水) 23:24:20
すいません。質問です。
VB6ではイミディエイトウインドウに出力するとき
debag.print(〜なんだかんだ〜)と書けばいいようですが
VB.NETではどうすればいいのですか?
一応、本を見るとdebag.WritelLineというのうがあるようですが
うまくいかないのです。
何かほかにdebag.printに該当するものがあるのでしょうか?
859デフォルトの名無しさん:2006/05/24(水) 23:25:58
debugだろ
860デフォルトの名無しさん:2006/05/24(水) 23:30:35
861デフォルトの名無しさん:2006/05/24(水) 23:32:01
862デフォルトの名無しさん:2006/05/24(水) 23:35:37
>>860-861
どうもありがとうございます。
863デフォルトの名無しさん:2006/05/25(木) 05:46:09
.NET Frameworkの欠点はどうなんですかね。
ここが悪いとか駄目とかありますか?
864デフォルトの名無しさん:2006/05/25(木) 08:44:06
普及していない
起動が遅い
画面描画が遅い
ソースが丸見え
APIをカバーし切ってない
865デフォルトの名無しさん:2006/05/25(木) 08:52:56
描画が遅いのだけは GDI+ のせいだw
866デフォルトの名無しさん:2006/05/25(木) 11:18:56
2003使ってます。windowsアプリのDataGridで同一列内のセルの結合させるにはどうすればいいでしょうか
867デフォルトの名無しさん:2006/05/25(木) 12:20:33
>>864
ソース難読化は気休めだもんなぁ。
868デフォルトの名無しさん:2006/05/25(木) 12:27:45
>>.866
EXCELを使う
869デフォルトの名無しさん:2006/05/25(木) 13:06:35
ビルドをすると、実行可能ファイルがbinとobj
の両方に作成されますが、配布するのはとち
らの方ですか?
870デフォルトの名無しさん:2006/05/25(木) 13:07:59
>>864
ソースが丸見えなんですか…
つまり… 駄目?
871デフォルトの名無しさん:2006/05/25(木) 13:23:21
VB.net 2003にて

データグリッドにデータテーブルをバインドさせて一覧を表示してるんですが
データテーブルの中にあるDatatime型のフィールドの表示を
YYYY/MM/DD hh:mm:ss
にするにはどうすればいいんでしょうか。現状は YYYY/MM/DDのみ。


DataGrid.DataSource = Datatable
こんな感じで単純にくっつけてるだけです。

ちなみにクイックウォッチでデータテーブルの中身を見ると
時間もはいってます。
872デフォルトの名無しさん:2006/05/25(木) 13:35:39
TableStyles を色々アレする
最終的には DataGridTextBoxColumn の Format プロパティで設定する
日付と時刻の書式指定文字列 参照
873デフォルトの名無しさん:2006/05/25(木) 13:44:37
>>871
DataGridTextBoxColumn#Formatに"YYYY/MM/DD hh:mm:ss"をセットする
874871:2006/05/25(木) 13:58:40
データテーブルの中身はいろいろ変化するんでdatatimeフィールドの位置がズレます。
そのテーブルデザインにあわせて
コード上でDataGridTextBoxColumn の Format を
アクティブに変更するようなコードにすればいいんですね。

ありがとうございます。方向性はわかりました。
でもこんなに手間がかかるものだったとは。
ただ時間がみたいだけなのにー
875デフォルトの名無しさん:2006/05/25(木) 14:11:49
.NET 2.0 & DataGridView においでよ……楽で楽しいよ……
876デフォルトの名無しさん:2006/05/25(木) 14:46:57
877デフォルトの名無しさん:2006/05/25(木) 14:51:52
UPX圧縮って使えたっけ?
878デフォルトの名無しさん:2006/05/25(木) 15:15:29
DataGridとDataGridViewは構造がだいぶ違うからね。
見た目のカスタマイズを行うためのアプローチも
考え方が全然ちがう。
今から開発進めるなら2.0のDataGridViewを使った方がいいね。
以前のDataGridの実装も資産としては発展性が難しいから
いきおい作り直しってことになるんだろうな・・・
879デフォルトの名無しさん:2006/05/25(木) 16:18:58
なんていうかさ。

バージョンが変わるたびに機能アップばっかり前面に出してるけど、
作り込みが甘いというか実用面において片手落ちってのが多くない?

6.0から2003に変えたとき、DataGridの使い勝手が激烈に悪かった
思い出しかないよ。DataGridViewはもうちょっとマシなのかな?
880デフォルトの名無しさん:2006/05/25(木) 16:52:05
完璧なの付けちゃったらサードパーティの立ち入る場所が無くなっちゃうでしょ
881デフォルトの名無しさん:2006/05/25(木) 17:15:35
>>871
もしOleDB接続を使っているなら、
OleDbDataAdpterの中で日付時間型のフィールドがSystem.Data.OleDbType.DBDateにバインドされてないかい?
System.Data.OleDbType.Dateにすれば時刻まで出るはず。
882デフォルトの名無しさん:2006/05/25(木) 22:46:55
すいません。Formに点や線を使って絵を書こうと思うのですが
ある一定領域しか表示されません。
この表示域を増やすにはどうすればいいのですか?
これはサイズを例えば500,500にしても表示される領域が
300,300ほどしかないと言う意味です。
883デフォルトの名無しさん:2006/05/25(木) 22:51:45
意味が分からん
どこにどうやってるのか詳細に書け
884デフォルトの名無しさん:2006/05/25(木) 22:59:08
>>883
いや普通に座標を指定して
fillrectangleやdrawLineなどをつかって
絵を書くのですが、途中で切れるのです。
原点をずらせばきちんと表示されるので
Formの途中で表示できなくなっているとしか思えないのですが?
885デフォルトの名無しさん:2006/05/25(木) 23:09:31
思ってる間になんで自分でいろいろ条件変えて確認しないのかね。
こんなところにタラタラ書いてる間に十分できるだろうに。
寂しがりやさんでとにかく人に頼りたいのかねw
886デフォルトの名無しさん:2006/05/25(木) 23:11:31
誰かエスパーの方ー
887デフォルトの名無しさん:2006/05/25(木) 23:14:07
>>884
こんなふうにしても表示できない部分があるってこと?
ttp://dobon.net/vb/dotnet/graphics/fillrectangel.html

念のためにフォームデザイナで生成した部分に、変なコードが混ざって
ないか確認してみたら? 無記入のラベルが被ってましたなんてオチだ
ったら(ry
888デフォルトの名無しさん:2006/05/25(木) 23:18:11
>>885
だいぶいろいろやったんですけどね。

>>887
中央が抜けるとかではないです。
例えば円をかいたとしたら、右5分の1がでないとか
そんな感じです。
原点をずらせば普通に表示されるので問題ないといえば
問題ないのですが、Formのサイズを大きくしても表示される領域が
大きくならないというのも困るし・・・。
とうぜん、図を大きくしたら切れる部分が出てくるわけですし。
889デフォルトの名無しさん:2006/05/25(木) 23:21:01
>>888
いや、だからそんなことありえないから。
何か勘違いしてるだけだから自分でよく検証してみ
890デフォルトの名無しさん:2006/05/25(木) 23:21:26
>>885
みんながおまいのいうような行動をとったら
このスレはたちまち過疎地帯w
891デフォルトの名無しさん:2006/05/25(木) 23:23:22
>>889
わかりました。
普通に表示されるはずなんですね。
もう一度みてみることにします。
どうもありがとうございました。
892デフォルトの名無しさん:2006/05/25(木) 23:24:07
>>888
フォームを全画面表示にして目一杯大きな四角形で塗りつぶす。
描画できない範囲が固定されているのか、それもと描画のたびに
位置や大きさが変わるのか確認してから、もう一度報告よろ。
893デフォルトの名無しさん:2006/05/25(木) 23:24:55
>>890
そんな訳ないでしょ
普通は自分でやるだけのことはやってから質問するもんだよ。
少しはまともな人間ならね。

しかしそれでもやはり解決できない問題というのはありうる。
894デフォルトの名無しさん:2006/05/25(木) 23:37:48
Trimメソッドのリファレンスのサンプルを見ていたら、

Dim str1 As [String] = "*;|@123***456@|;*"

といった記述があったのですが、この[String](Stringを[]で括った形)
にはどういった意味があるのでしょうか?

基本的な事だとは思うのですが、答えを探し出せませんでした。
どなたか教えていただけませんか?
895デフォルトの名無しさん:2006/05/25(木) 23:45:28
MSDNライブラリで「エスケープ識別子」で検索かけてみ
896デフォルトの名無しさん:2006/05/25(木) 23:54:04
>>892
大きな四角で塗りつぶそうとしたのですが、
あるところから全くでません。
そういう症状です。
位置や大きさは全くいっしょです。
897デフォルトの名無しさん:2006/05/26(金) 00:01:07
>>893
ある程度未熟な質問やマルチレスなんかも
話題やネタを提供してスレを活性化させるためには
必要だと思うぞ。
漏れは意識的にそうゆう書き込みをしている。
結果として話題が盛り上がって、スレにとって
有益なことも多い。
898デフォルトの名無しさん:2006/05/26(金) 00:02:18
>>896
新規プロジェクトでコード手打ちして、それでも同じ結果になるか
確認よろ。他のマシンにも開発環境があるなら、ソースを持って行
ってそちらでも動作確認。
899デフォルトの名無しさん:2006/05/26(金) 00:07:55
て言うかだらだら中身のないやり取りも面倒なのでいっそコード出せ。
900デフォルトの名無しさん:2006/05/26(金) 00:31:46
>>896
PictureBoxの大きさは、おk?
901デフォルトの名無しさん:2006/05/26(金) 00:56:16
>>895
ありがとうございました。一応、調べてみました。

Dim [string] As Stringといった様に、予約語を使う際には
[]で括る必要があるという事は理解できました。

ただ、MSDNのTrimメソッドのリファレンスに記載されている
Dim str1 As [String] = "*;|@123***456@|;*"
は、データ型を[]で括っており、これをどう解釈すれば良いのが
まだわかりません。

基本的な事の様で申し訳ありませんが、どなたか教えてください。
902デフォルトの名無しさん:2006/05/26(金) 01:06:01
VB(7 以降)において、String は二つのものを指す。
一つは、VB の予約語である String 。
一つは、.NET で定義されている型である System.String 。
Trim のサンプルには Imports System で System 名前空間を省略できるから、System.String は String と書ける。
ところがこの場合 String だけではどちらを指しているのか分からない。
そこで予約語じゃない方の String だと言う事を明示するために [ ] で囲っている。

がしかしそもそも VB の予約語 String は、言語仕様で System.String のエイリアスであると定義されている。
つまりこの両者は全く同じものであり、使い分ける意味は全くない。
903デフォルトの名無しさん:2006/05/26(金) 04:36:54
>>902
納得です。これで、胸のつかえがとれました。
どうも、ありがとうございました。
904デフォルトの名無しさん:2006/05/26(金) 10:25:20
すいません、ビルドをすると作られるEXEファイルなのですが、「\bin\release」と「obj\release」の
二つがあるのですが、どうちがうのでしょうか?
他人に渡すには、どちらにしたらいいのでしょうか?
基本的な質問で恐縮ですが、ご教授願います。
よろしくお願いします。
905デフォルトの名無しさん:2006/05/26(金) 10:56:17
bin\release
906904:2006/05/26(金) 13:22:20
>>905
ありがとうございます。
ところで、この二つって、どう違うんですか?
907デフォルトの名無しさん:2006/05/26(金) 13:53:26
さぁ
908デフォルトの名無しさん:2006/05/26(金) 14:04:19
>>904
\bin\release以下を「すべて」配布すればOKだよ(・∀・)
VSはビルドすればそうなるようにできている
909デフォルトの名無しさん:2006/05/26(金) 14:39:41
ListViewについて質問です。(VB2005を使用してます。)

ListViewを1つのフォームにいくつか配置しているのですが
現在ある項目が選択状態となっているListViewから
他のListView(他のコントロール)にフォーカスが移ると、
以前のListViewの選択状態の反転が消えてしまい、
何が選択されていたのかわからなくなってしまいます。

ListBoxのようにフォーカスが他のコントロールに移っても
反転状態が常に見えているようにするにはどうしたらよいでしょうか?
OwnerDrawを使えばと思ったのですが、いろいろ試してもダメでした。
良い方法があったら教えてください。
910デフォルトの名無しさん:2006/05/26(金) 14:53:17
HideSelection
911909:2006/05/26(金) 15:02:44
>>910
む・・・失礼しました。こんなプロパティあったのか。見逃してました。
ありがとうございます。
912デフォルトの名無しさん:2006/05/26(金) 15:15:08
コントロールのいろんな機能や動作について調べたくて
VS2005のドキュメントとか見ても、言葉による説明ばっかりで
その設定で具体的にどう見栄えや動作が変わるのかが
一目瞭然じゃないところがイタイよなぁ・・・
サンプルコードが付いてても、実際の表示結果とかが
明示されてなかったりして、いちいちビルドして動かしてみないと
わからなかったり。。。
913デフォルトの名無しさん:2006/05/26(金) 15:31:28
>>912
MSDN のサイズが10倍以上に膨れあがりますが良いですか?
914デフォルトの名無しさん:2006/05/26(金) 15:44:02
>>912
その需要に参考書メーカーやスクールが殺到するわけなんだよ。
915デフォルトの名無しさん:2006/05/26(金) 16:43:23
>>913
何もローカルPCにインストールすることないんだから
MSDNライブラリのサイトを充実させればいいじゃんよ(・∀・)
916デフォルトの名無しさん:2006/05/26(金) 16:46:00
これ以上MSDNオンラインが重くなってたまるか
917デフォルトの名無しさん:2006/05/26(金) 16:46:52
>>915
そうすっと、>912じゃないがビジネスチャンスが無くなる
企業が相次ぐだろうから、わざと説明不足にするのが
暗黙の了解なんじゃろうきっと
918デフォルトの名無しさん:2006/05/26(金) 17:45:19
じつにいやらしい利害関係だな、PC業界やIT業界っつーのは(´・ω・`)
919デフォルトの名無しさん:2006/05/26(金) 17:53:58
VB2003をつかってます。

LANでつながっているPC間で動作するIPメッセンジャーのような
アプリを作りたいと思っています。
PC1とPC2にこのアプリをインストールすることを前提とします。
PC1からPC2のIPアドレスを指定してテキストボックスに文字列を入力し、
ボタン押下でPC2はPC1の文字列を受信してテキストボックスに表示
する、という仕組みを作りたいのですが、何をどう使えば良いのか全く
わかりません。

ちょっと調べてみたら、TcpListner というものを見つけたのですが、
これを使用するのが良いのでしょうか?
IPアドレスだけでなくポート番号も知る必要があるのでしょうか?

何から調べていけば良いのかわかりません。
何かキーワードでも教えてください。

よろしくお願いします。
920デフォルトの名無しさん:2006/05/26(金) 17:59:41
>>919
Visual Basicではじめるネットワークプログラミング超入門
921デフォルトの名無しさん:2006/05/26(金) 18:10:14
表紙が恥ずかしいは禁止
922デフォルトの名無しさん:2006/05/26(金) 18:30:36
あっそ。じゃあ勝手にすれば
923デフォルトの名無しさん:2006/05/26(金) 18:49:16
919です。
>>922
>>921はぼくではないですよぉ。
924919:2006/05/26(金) 19:42:12
VBのサンプルコード(Listener)ていうのがオマケでインストしてあったのでそれを解析しながら勉強します。
925デフォルトの名無しさん:2006/05/26(金) 21:04:57
>>919
C#なんですが
『VisualC#.netではじめるTCPネットワークプログラミング』(カットシステム)
っていう本がおすすめです。
TcpListnerなんかについても基本的な使い方から丁寧に
解説されていて、自分でも勉強になりました。
926デフォルトの名無しさん:2006/05/26(金) 21:10:35
>>925
つい買ったが個人的にどうでもいい事しか書いてなかった。
927デフォルトの名無しさん:2006/05/26(金) 21:17:39
VB.NETのいいとこ教えてください。
928デフォルトの名無しさん:2006/05/26(金) 21:21:06
俺でも使えるところ
929デフォルトの名無しさん:2006/05/26(金) 21:44:40
VB2005Express使ってます。
gotdotnetにあるSnippet Editorを、さっきDLして使ってみたんですが、
Editorに入力したのに、フォーカスを別に移したとたんEditorに入力した文字が
消えてしまいます。
ちゃんと使えてる人います?
930デフォルトの名無しさん:2006/05/29(月) 23:21:10
DataGridViewで
DataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect
にして行単位で選択しています。
1行に5つセルがあり、バックカラーは1行ごとに変わるのですが、その中でアクティブなセルだけ
黒い点線で囲まれます。この点線を消す方法か、1行全部点線で囲む方法ご存知の方いますか?
931デフォルトの名無しさん:2006/05/30(火) 06:28:24
そんなことしたらどこがアクティブセルかわからんじゃん

どうしてもやるならオーナードローしたらいけるんじゃないか
932デフォルトの名無しさん:2006/05/31(水) 00:26:02
VS.NETの2003つうか.NET Frameworkなんですが。
C#で作ったクラスのプロパティの型がuintのenum。
enum ehoge : uint
{
aaa = 0xfede0003,
bbb = 0xfede0005
}
class csclass
{
ehoge prop1;
}

こんなクラスのプロパティをVB.NETのとあるところから参照。
Dim ZZZ = new csclass()
ZZZ.prop1 = ehoge.aaa

IDE的にも=打てばインテリなんとかはちゃんと動く。
ehoge.でもaaaとbbbが出るのでおっけーと思いきやehoge.aaaには波線が付いて
コンパイル不可。
CObjとかで変換してコンパイル通しても実行時例外発生。

VBのEnumにはUInt32とかは使えないとか、CSL的にはuintはダメダメだとか
そういうのはわかったんだけど、VBでは当然のことなんだろうか?
なにか文献は無いでしょうかねぇ?
933デフォルトの名無しさん:2006/05/31(水) 00:31:35
CSLってなんじゃ。
934デフォルトの名無しさん:2006/05/31(水) 00:35:14
なんか間違えてる。
Dim ZZZ As new csclass
かな。
とにかくC#で定義した基uintのenumを、VBでまともに使えるものなのか、
使えないとしたら、それは世の中的に当然のことなのか、その辺を
知りたいのですが。
935デフォルトの名無しさん:2006/05/31(水) 00:36:04
>>933
CLSの間違いです。Common Language Specificationだっけ?MSのあれ。
度々スマソ。
936デフォルトの名無しさん:2006/05/31(水) 00:56:05
>>934
VB2003では当然というか、みんな不満を持ちつつなんとかやっていた。
コンパイラオプションの/removeintchecks+を指定しちゃうぞワレ!みたいに
思ったことも何度かあった。やんないけど。

VB2005からは、UInteger型(UInt32の別名)などが
言語仕様にとりいれられて対処が楽になった。
最初からそうしとけよゴルァ!ってな感じ。
937デフォルトの名無しさん:2006/05/31(水) 00:56:26
CLS 的に認められてる基になる型は Byte、Int16、Int32、Int64 のみだし、
それ以外のが基になってるのが他の言語で使える保証なぞ無くて当然。
VB2005 で 符号無し型が使えるようになったおかげでそれらが基になってる列挙型も使えるようになったけど。
938デフォルトの名無しさん:2006/05/31(水) 01:21:42
>>936-937
うーん、やっぱそういうものだったのですか。
せめて(C#のenumあたりの)マニュアルに明記してくれてるとか、ビルドの
警告レベル上げたら怒ってくれるとか、そういうのがあれば気をつけたのに。
VS2005かぁ。はぁ(ため息
とにかく既知なわけですね。情報ありがとさんでした。
939デフォルトの名無しさん:2006/05/31(水) 01:33:19
CLSCompliant 属性というのもある。
940デフォルトの名無しさん:2006/05/31(水) 02:33:19
UInt32調べたら思い切り書いてるだろ。
941デフォルトの名無しさん:2006/05/31(水) 11:13:29
OracleConnection について質問です。
実行パスに「)」(半角丸括弧とじ)が含まれる場合にDB接続できないのは
なぜでしょうか。「)」が実行パスに含まれない場合は正常に接続できます。
なお、接続できない場合は ex.Message に
「ORA-12154: TNS: 指定された接続識別子を解決できませんでした」
が設定されています。よろしくおねがいします。


参考ソース
Imports System.Data.OracleClient

Module Module1
  Sub main()
    Dim OraConn As New OracleConnection
    Try
      OraConn.ConnectionString =
942デフォルトの名無しさん:2006/05/31(水) 11:15:34
      OraConn.ConnectionString = "User Id=UESM; Password=UESM; Data Source=C003"
      OraConn.Open()
    Catch ex As Exception
      MsgBox(ex.Message)
    Finally
      OraConn.Close()
    End Try
  End Sub
End Module

943デフォルトの名無しさん:2006/05/31(水) 13:19:25
どんな文字列だとエラーが出るのか?
どんな文字列だとエラーが出ないのか?
ORA-12154の意味をぐぐってみたのか?
944デフォルトの名無しさん:2006/05/31(水) 15:27:19
>>943
どんな文字列も何も接続文字列は「C003」固定です(ソースに
ある通りです)。だから接続文字列に問題はないと思います。
実行パス(つまりEXEの置き場所)に「)」が含まれるかどうかで
動作が違うのは何故か、という質問です。
よろしくおねがいしいます。
945デフォルトの名無しさん:2006/05/31(水) 16:21:30
946デフォルトの名無しさん:2006/05/31(水) 17:08:40
>>945
助かりました。ありがとうございました。
947デフォルトの名無しさん:2006/05/31(水) 21:53:24
VB2005を昨日から始めたんですが(プログラムとか初めて)質問させてください。
Expressの無償公開を知って、某解説サイトをみつつ勉強を始めました。
そこで「簡単なMultiFileViewerを作る」と言うのが初級のラストだったのですが、簡素な割りに妙に起動が遅くて重いです。
具体的には、Webブラウザコントロールを利用して様々なファイルを閲覧すると言うものです。

もしかしてこれはIEを起動させるような物なのでしょうか?
948デフォルトの名無しさん:2006/05/31(水) 21:59:51
IEを起動して同じ結果になるのならそういう物
949デフォルトの名無しさん:2006/05/31(水) 22:16:26
IE よりかは確実に遅くて重いな。
950デフォルトの名無しさん:2006/06/01(木) 13:41:12
すみません、質問です。
テキストボックスをフォーム上に配置した場合は、右クリックすると
コンテキストメニュー(ショートカットメニュー、ポップアップメニュー)が
表示されますが、リッチテキストボックスの場合は右クリックしても
コンテキストメニューが表示されませんよね。
これを表示させるようにしたらどうしたらよろしいのでしょうか。
951デフォルトの名無しさん:2006/06/01(木) 14:02:37
950です。自己解決しました。すみません。
952デフォルトの名無しさん:2006/06/01(木) 14:03:36
>>950
SetStyle(ControlStyles.StandardClick, True)
953デフォルトの名無しさん:2006/06/01(木) 14:34:03
VB.NET自体に不具合があって、SourceControlは、RichTextBoxなどでは
使えないんですね。。。(T_T)
954デフォルトの名無しさん:2006/06/01(木) 14:44:15
>>953
へっ?どんな不具合?
漏れ自作のフリーウェアでも普通に機能してるよ(・∀・)
955デフォルトの名無しさん:2006/06/01(木) 14:51:43
>>954
かんたんプログラミングVisualBasic.NET コントロール・関数編  技術評論社
のp198の下に「注意」としてかかれています。

ContextNemu(ContextMenu1)を一つ、RichTextBoxを複数配置する。
すべてのRichTextBoxのContextMenuに、ContextMenu1を指定する。
ContextNemu1_PopupイベントにContextNemu1.SourceControl.Nameの記述を
書くと、右クリックメニューが表示されなくなる。
(本来は、SelectCase文でContextNemu1.SourceControl.Nameを記述する。)
956デフォルトの名無しさん:2006/06/01(木) 14:56:42
あ、ちなみに>>955の下の方に書いているものは、私の環境での不具合で、
書籍の方には、「不具合があります」という旨の文章が書かれているだけです。
957954:2006/06/01(木) 15:27:27
>>955-956
へぇ、それは気が付かなかった。
PopupイベントではSourceControl見てないし・・・
Popupイベント自体が発生しないような現象は
あったかも知れない・・・
958955:2006/06/01(木) 18:04:51
>>957
確認の意味合いなのですが。。
> PopupイベントではSourceControl見てないし・・・
でも、複数のリッチテキストがあって(テキストをドラッグしなくても)そこで
右クリックをして内容がコピーできるようにする場合は、Popupイベントで
SourceControlを使ってリッチテキストの名前を取得するしかありませんよね?
959デフォルトの名無しさん:2006/06/01(木) 18:50:46
本当にそんなバグがあるのかどうか知らないけど、
Popupイベントなんて使わずにコントロールが右クリックされたら
メニューを表示するようにすれば問題ないと思う。

クリックされたコントロールを表すフィールドが必要でエレガントじゃないけどね
960954:2006/06/01(木) 22:14:35
>>958-959
ふつうに
menuItem1_OnClick(System.Object sender, System.EventArgs e)
イベントハンドラ内で
(((MenuItem)sender).Parent)).SourceControl
で取ってますけど・・・・
961960:2006/06/01(木) 22:17:37
あ、ごめん。VB.NETスレだったねw

えーと、こう書くんだったっけかな、、、
CType(sender, MenuItem).Parent.SourceControl
962デフォルトの名無しさん:2006/06/01(木) 22:21:26
頭わるい奴。
だからそもそもメニューがポップアップしなくなるんだと。
本当かどうか知らんけど
963デフォルトの名無しさん:2006/06/01(木) 22:33:11
まあ悩む前に .NET 2.0 に来い。修正されてるぞ。
964デフォルトの名無しさん:2006/06/01(木) 23:08:20
>>962
ポップアップしない件は解決している(>>950-951嫁)。
レスはすでに次の話題に移っている。
965デフォルトの名無しさん:2006/06/01(木) 23:10:25
サーバと通信するクライアントを作成するのに
WebBrowserControl(Maicrosoft Web Browser)(正しくはTridentらしい)を
利用してやり取りしようとしています。

入力したデータをdoPostで送っているだけなのですが、
サーバ側で見るとdoGetとdoPostの両方で来ています。
漏れの認識では少しのデータを送るときdoGet
大量のデータを送るときdoPostをりようしていると思っています。

なんで、doPostだけで送ってくれないのかわかりません。
WebBrowserControlのAPIとかどこかにないでしょうか教えてください。

後、HttpのdoPost、doGetの違いをわかりやすく詳しく説明しているサイト等を
教えていただけないでしょうか?

もしかしなくてもすれ違いでしょうか?
一応VB.netで作っているから良いかなと思っています。
よろしくい願いします。
966デフォルトの名無しさん:2006/06/01(木) 23:46:58
>>964
おいおい痛い奴だなあ君はw
967デフォルトの名無しさん:2006/06/02(金) 08:18:36
>>966
( ´,_ゝ`)プッ
968デフォルトの名無しさん:2006/06/02(金) 09:34:26
>>965
パケット解析する
969デフォルトの名無しさん:2006/06/02(金) 13:44:29
>>965
>入力したデータをdoPostで送っているだけなのですが、
ちょこっとソース晒してよ
970デフォルトの名無しさん:2006/06/02(金) 21:42:05
>>939-940
遅くなったけど助かりました。どもでした。
次からは、表に出るとこは最初からCLSCompliantしようね、と。
ちなみにビルド時の参照アセンブリだけ直せばビルドが通るのね。
GACとかに直す前のをぶち込んだ環境にビルド通った奴を持ってって
動かすと普通に動くし。<動いたからって売り物にはしないけど。
971デフォルトの名無しさん:2006/06/02(金) 21:57:28
>>970
> ちなみにビルド時の参照アセンブリだけ直せばビルドが通るのね。
> GACとかに直す前のをぶち込んだ環境にビルド通った奴を持ってって
> 動かすと普通に動くし。<動いたからって売り物にはしないけど。
厳密名付けてきっちりバージョン管理すべきじゃね?
972デフォルトの名無しさん:2006/06/03(土) 00:17:28
Dim bitmap As bitmap

Private Sub MenuItem3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuItem3.Click
Dim ofd As OpenFileDialog = New OpenFileDialog
If ofd.ShowDialog = DialogResult.OK Then
bitmap = New Bitmap(ofd.FileName)
End If

End Sub

Private Sub PictureBox1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles PictureBox1.Paint
'
If Not (bitmap Is System.DBNull.Value) Then
e.Graphics.DrawImage(bitmap, 0, 0)
End If
End Sub

上記のコードは、画像ファイルを開いて、それを表示するという単純なものです。
なぜか下記のエラーが出ます。

'System.ArgumentNullException' のハンドルされていない例外が system.windows.forms.dll で発生しました。
追加情報 : 値を Null にすることはできません。

bitmapがnullじゃなければ、bitmapを描画するっていうようにしたいんですが、nullなのに描画しようとしているみたいです。
どなたかご教授お願いいたします。
973デフォルトの名無しさん:2006/06/03(土) 00:22:59
DBNull は名前通り DB に NULL として格納されてるかどうかであって、
変数がオブジェクトを参照してるかどうかじゃないぞ。
それは Nothing 。
974デフォルトの名無しさん:2006/06/03(土) 00:29:16
>>971
もちろんおっしゃるとおりと思ってる。
>>970の「ちなみに」以降はただ単に動いたよという話でして。
んな普通に動くならビルド時にわざわざ怒らんでも、と思っただけで。
975デフォルトの名無しさん:2006/06/03(土) 00:33:43
>>973
ありがとうございます。
nothingにすると、エラーは回避できたのですが、画像が表示されないです。
なぜだろう??
976デフォルトの名無しさん:2006/06/03(土) 00:42:25
名無しさん@3周年:2006/05/28(日) 19:47:49
小泉内閣による改正道路交通法って、本当に酷いね。
民間の委託業者が駐車違反を見つけて、保育園の送り迎えで車を離れた
だけも、猶予もなく放置違反金を取られてしまうね。警察の新たな裏金財源
だってね。これは、もう、ジョージ・オーウェルの「1984年」の世界でしょ。

配送業者は、どうしたらいいのよ?
委託業者からのキックバックで、自民党と警察はウハウハだね。
放置違反金は都道府県警察に直接入って、使途も使い放題だってね。
「もったいない」のPSE法の出鱈目も酷いけど、国民の知らないうちに
こんなことを決めてたんだね。(-_-)鬱。

駐車違反取締り業者への天下りも、し放題になるね。交通安全協会
を通じて裏金も取り放題だし、議員や警察の知り合いや暴力団や宗教
団体や在日の違反は放置し放題だろうね。民間業者だったら当然だね。
法改正の理由たるや、凶悪犯罪が増えているのに警察の手が回らない
から、民にできることは民に任せるんだって。勝手に朝鮮人(韓国人)
のビザなし渡航恒久化を決定して、治安悪化の扉を開いておきながら、
マッチ・ポンプもいいところだね。

心底呆れ返えった歩く死体、小泉信者馬鹿売国奴B層は、露ほども心
が痛まないのだろうか?本当にもう、いったいいつになったら真実に
目覚めるのだろうか?

小泉はサイコパス?
http://plaza.rakuten.co.jp/okinawapapa/3000

977975:2006/06/03(土) 01:02:05
すいません、表示されていました。
っていうのは、画面を他のウィンドウやタスクバーの下に隠したら表示されるんです。
すぐに反映させるにはどうしたらいいんでしょうか・・・
978デフォルトの名無しさん:2006/06/03(土) 01:08:13
Invalidate
979デフォルトの名無しさん:2006/06/03(土) 01:30:23
ありがとうございます。

If Not (bitmap Is Nothing) Then
e.Graphics.DrawImage(bitmap, 0, 0, bitmap.Width, bitmap.Height)
picturebox1.invalidate()
End If

としたのですが、めちゃくちゃ重いです。。。
どこに書くのが適切でしょうか?
980デフォルトの名無しさん:2006/06/03(土) 01:47:41
まず Invalidate の解説読め
981デフォルトの名無しさん:2006/06/03(土) 13:45:46
ぐぐったらここがトップに出るしな。

ttp://dobon.net/vb/dotnet/control/refreshupdateinvalidate.html
982デフォルトの名無しさん:2006/06/03(土) 14:58:36
プログラムでscpするのに、何かイイのないですか?
983デフォルトの名無しさん:2006/06/03(土) 18:29:42
UNIXのソースを解析して移植する
984デフォルトの名無しさん:2006/06/04(日) 11:47:47
2つのボタンがあり、ボタンの上で右クリックをするとそれぞれ異なるフォームが
開くようにしたいのですがマウスのポインタがコントロールの上にある時に発生する
イベントという便利なものはないでしょうか?

とりあえず右クリックした時のポインタの座標がボタンの座標内にあるかどうかで
判定しようと思うのですがもう少しスマート(楽)な方法ってあります?
右クリックの判定はMouseUPでやります。

(0,0)-(60,30) ならフォームA
(80,0)-(140,30) ならフォームB  という感じ


| ̄ ̄ ̄ ̄|  | ̄ ̄ ̄ ̄|   0
| Button1 |  | Button2 |
|____|  |____|   30

0     60 80    140
985デフォルトの名無しさん:2006/06/04(日) 11:57:11
右クリックでフォームが開くという仕様もどうかと思うが。
そもそも MouseUp のときにどのボタンで発生したかは明らかだろ。
なんでそんな思考になるのかまるで分からん。
986デフォルトの名無しさん:2006/06/04(日) 12:11:54
あー、すいません。

単純に
Button1_MouseUP.......
という風にやればいいだけですよね。

お騒がせしまた。
別のフォームが開く理由なのですが99%くらいの場合はButton1/2のクリックのみで済むのですが
極々稀に詳細に渡る説明を付加しないといけない場合があるのでそのためです。
Contextメニューだと細かい選択とかしづらいのでフォームにしようと思いました。


|出口| λ............トボトボ
987デフォルトの名無しさん:2006/06/04(日) 12:28:58
次の人・・・どぞ
988デフォルトの名無しさん:2006/06/04(日) 17:21:37
ピクチャボックスにマウスをのせると、背景が変わるようなことをしてるんですが、
変わるのがちょっと遅いです。
これが普通なのかな?もっと快適にパッパッパっと変わってくれるもんだと思った・・・
コードは以下のとおり。。。

Private Sub picBxApp1_MouseHover(ByVal sender As Object, ByVal e As System.EventArgs) Handles picBxApp1.MouseHover
If isApp(0) Then
picBxApp1.BackColor = Color.Silver
Else
picBxApp1.BackColor = Color.Gray
End If
End Sub

Private Sub picBxApp1_MouseLeave(ByVal sender As Object, ByVal e As System.EventArgs) Handles picBxApp1.MouseLeave
If isApp(0) Then
picBxApp1.BackColor = Color.Gray
Else
picBxApp1.BackColor = Color.Silver
End If
End Sub

コードに原因があるのかもしくは、mouseHoverはそのぐらいの早さなのかどっちでしょうか?
989デフォルトの名無しさん:2006/06/04(日) 17:29:34
>>988
どうしてMouseHover使うの?MouseEnter使えばいいのに
990デフォルトの名無しさん:2006/06/04(日) 19:01:17
>>989
おお、こっちは素早く動きました。
知りませんでした。どうもです!
991デフォルトの名無しさん:2006/06/04(日) 20:16:17
Hoverはオブジェクト上で一時停止しないと動かないのに対して、
Enterは即動作するからね。

ttp://msdn2.microsoft.com/ja-jp/library/system.windows.forms.control.mousehover.aspx
992デフォルトの名無しさん:2006/06/04(日) 20:25:26
TreeViewのノードをマウスでD&Dすることで、任意の階層や位置に移動させるコードを組んでいます。
ドロップ先によっては移動不可にしたいんですが、このとき、マウスカーソルを Cursors.No に変更する
ことで、それが視覚的に分かるようにしたいと考えています。しかしながら・・・・・ドラッグ中は、単純に
TreeView1.Cursor = Cursors.No とするだけでは変更できないようです。マウスボタンを離し、ドラッグを
やめるとカーソルが変更されます。ドラッグ中にマウスカーソルを変更するには、どうすればよいんでしょうか?
993デフォルトの名無しさん:2006/06/04(日) 20:44:35
>>992
DragOverイベントハンドラ内で
D&Dの可・不可を判定して、不可のときは
e.Effect = DragDropEffects.Noneする
マウスカーソルを変更するのにCursorプロパティを
設定する必要は一切なし。
994992:2006/06/04(日) 20:54:21
>>993
即レスthxです! できました! これで一歩進むことができました・・・・ありがとうございました! m(_ _)m
995デフォルトの名無しさん:2006/06/04(日) 20:58:43
質問がない時でもこのスレを見ていると勉強になりますね。
今度自分も使ってみようと思うTipの宝庫です。
質問者さんも解答者さんも頑張ってください。
996デフォルトの名無しさん:2006/06/04(日) 22:38:13
文字列"あいう"を"a4a2 a4a4 a4a6"というeuc-jpの文字コードとして
出力するにはどのようにすればよいでしょうか?
997デフォルトの名無しさん:2006/06/04(日) 22:39:41
Encoding.GetEncoding で EUC-JP の Encoding 取得して GetBytes
998デフォルトの名無しさん:2006/06/04(日) 23:21:22
Subプロシージャを読んだハンドルの名前を取得したいんですが、どうやるんでしょうか?
Private Sub blahblah(ByVal sender As Object, ByVal e As System.EventArgs) _
Handles textbox1.changed, textbox2.changed
     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        この部分を取得したいです

よろしくおねがいします。
999デフォルトの名無しさん:2006/06/04(日) 23:34:21
sender
1000デフォルトの名無しさん:2006/06/04(日) 23:35:35
sende.nameですか?それだとtextboxだけになるんですよ・・・。
1とか2とか判断したいんですが可能でしょうか?
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。