1 :
前スレ972 :
2005/07/17(日) 20:33:58
2 :
デフォルトの名無しさん :2005/07/17(日) 20:34:37
3 :
デフォルトの名無しさん :2005/07/17(日) 20:35:00
4 :
デフォルトの名無しさん :2005/07/17(日) 20:35:40
5 :
デフォルトの名無しさん :2005/07/17(日) 20:36:17
6 :
デフォルトの名無しさん :2005/07/17(日) 20:38:35
前スレでは、どうもありがとうございました。 VBAの講習もあったのですが、応募者多数で落選しました(≧−≦) .NETの講習を受けつつVBAから地道に勉強してみます。 色々アドバイスありがっとー!! では、お邪魔しました。
1乙
1ぬるぽ
10 :
デフォルトの名無しさん :2005/07/18(月) 17:24:06
.SelectedText = " " 「" "」の中に「"」を入れても「"」は表示されないんだけど、 「"」を表示させたいときはどうしたらイイんですか?
>9ガ >10""らしい
ぬるり
14 :
デフォルトの名無しさん :2005/07/19(火) 16:58:59
ColorDialogを呼んで、選択した色のコード(FF00FFみたいなやつ)を取得したいんだけど、 可能ですか??
15 :
超初心者 :2005/07/19(火) 17:21:19
VB.NETでDeviceCapabilitiesを使ってプリンタ用紙名一覧を取得する方法 が分かりません。分かる方いらっしゃいましたら教えてください。
16 :
14 :2005/07/19(火) 22:07:09
誰かタスケテ・・・
17 :
デフォルトの名無しさん :2005/07/19(火) 22:24:56
スレ違いだったら申し訳ないです。 DBサーバを立ててそこにPostgreSQL8のWindows版をインストールします。 このDBに対してアクセスをするクライアントアプリを作りたいのですが、 事前にコントロールパネルからODBCのデータソースを 登録することなくアクセスすることは可能でしょうか? 不可能なのであればインストーラー等で データソースの設定を自動ですることは可能でしょうか? よろしくお願いします。
18 :
デフォルトの名無しさん :2005/07/19(火) 22:27:42
おい!おまいら!あほのマイクロソフトの3万近くの有償サポートについてどう思う!? 完全に自社製品のサポートに対する怠慢だとおもうのだが! 自社製品の不備が多すぎるので答えるのが面倒で防御策をしていると 思われるがどう思う?
19 :
デフォルトの名無しさん :2005/07/19(火) 22:42:56
>>14 自分自身がよく意味がわかってない"FF00FFみたいなやつ"取得してどうするの?
Color構造体が取得できればそれで必要十分でしょ?
どうしても欲しけりゃColorにToArgbがあるよ。
っていうか、
>>10 と同一人物臭いけど、
こんなレベルの話をいちいち人に聞いてるんじゃいつまでたってもものにならんよ。
まずは入門書の一冊も読めよ。
21 :
デフォルトの名無しさん :2005/07/20(水) 00:49:51
Environmentとかで 環境変数からエラーレベルって取得できないのかの?
22 :
デフォルトの名無しさん :2005/07/20(水) 01:35:50
おい!おまいら!あほのマイクロソフトの3万近くの有償サポートについてどう思う!? 完全に自社製品のサポートに対する怠慢だとおもうのだが! 自社製品の不備が多すぎるので答えるのが面倒で防御策をしていると 思われるがどう思う?
>>18 そういう香具師は、SharpDevelopでも使うよろし
24 :
デフォルトの名無しさん :2005/07/20(水) 11:50:44
なんで?<23
25 :
デフォルトの名無しさん :2005/07/20(水) 15:41:33
教えて下さい。 PictureBoxに画像を表示する際、 PictureBoxのSizeModeはCenterImageを使い 中央に表示させるようにしています。 そこでPictureBoxに入りきらない画像を表示する場合は 画像をPictureBoxにFit(縦横比は変えず)するように 縮小率を求めたいのですがどうしたらいいでしょうか? Forで1から0まで0.01刻みの倍率で縮小していき 画像の縦横ともPictureBoxのSizeより小さくなったら Exit Forするやり方と、 PictureBoxの縦がPictureBoxの横より長い場合 画像の横が画像の縦より長い場合 縦横比率が画像の方が大きい場合など 一つずつ場合分けしていくやり方しか思いつきません。 よろしくお願いします。
26 :
25 :2005/07/20(水) 17:16:06
C♯相談室 Part11 の856にありました。
ttp://pc5.2ch.net/tech/kako/1061/10612/1061262958.html Dim scale As Single = Math.Min(1F, Math.Min(pictureBox1.Width / CSng(bmp.Width), pictureBox1.Height / CSng(bmp.Height)))
pictureBox1.Image = New Bitmap(bmp, New Size(CInt(bmp.Width * scale), CInt(bmp.Height * scale)))
で無事解決しました。
お騒がせしました。
27 :
デフォルトの名無しさん :2005/07/20(水) 22:28:31
求められた機能を実現してれば、ソースなんてどうでもいいよな
質問させてください。 VB.netを使用して以下の様な仕組みを作る事は可能でしょうか? 【サーバ側】 HTMLページ上にスキャナを使用してスキャニングする機能を持ったDLLを オブジェクトとして表示する。 【クライアント側】 上記サーバーページをIEから参照し、スキャニングを行う。 【現在の状況】 フォームを使用したローカルアプリケーションであれば、 スキャニング機能を実装する事が出来たのですが、 ユーザーコントロールにした場合に、メソッド等が違う為動作しません。 また、IE上にユーザーコントロールを貼り付ける所までは実現できています。 【お尋ねしたい事】 01.サーバーサイドに置いたユーザーコントロール上で クライアントに繋がったスキャナを制御出来るか? 参考文献でも良いのでヒントをお願いします。
29 :
デフォルトの名無しさん :2005/07/21(木) 09:24:16
>>28 そのあたりのヒントになるのは、ノータッチデプロイとそのセキュリティ設定の話かな?
ブラウザベースよりこっちのほうが簡単だと思うよ。
30 :
デフォルトの名無しさん :2005/07/21(木) 20:20:40
>>29 ありがとうございます。
私も今日ノータッチデプロイ辺りを見ていたのですが
サンプルページを動かしてみると、ちょっと運用に耐えれるレベルじゃ
なさそうなので、今回は.net化を見送る事になりました。
>ブラウザベースより
そうなんですよねぇ。
絶対Webでブラウザベースにするより、大人しくCSにしておけば
速度も速いし、保守も楽なのに。。。
既存システムが大抵Webシステムなので、それにあわせるとなると
なかなかいい方法がありませんでした;
アドバイス、ありがとうございました。
31 :
デフォルトの名無しさん :2005/07/21(木) 20:35:51
検索の際に"あ"と"ア"を分けて検索するために、VarBinary(2)と宣言したフィールドhogeを もつテーブルfugaがあります。 #AccessのMDBファイルに作成。 フィールドhogeを検索キーにして検索を行うため、OledbDataAdapter1のSelectCommandに、 Select hoge From fuga WHERE hoge = ? と宣言し、フォーム上から検索キーを取得してデータを抽出しようと試みました。 OleDbDataAdapter1.SelectCommand.Parameters.Item("hoge").Value = "あ"c DataSet11.Clear() OleDbDataAdapter1.Fill(DataSet11, "fuga") のように、コーディングを行い、実行してみたところ、Fillの段階で例外が発生しました。 「System.Char から System.Byte[] へのキャストが無効です。」となっていたため、 "あ"をCByteで囲ったりしてみましたが、うまくいきません。 どなたか正しいやり方について教えていただけますでしょうか?
32 :
デフォルトの名無しさん :2005/07/21(木) 22:41:49
DataGridのページング機能の表示を<<1 2 3>>(番号を押したらそれぞれのページへ移動、<< or >>を押すとひとつ前のページへ移動)としたいのですができるのでしょうか???
33 :
デフォルトの名無しさん :2005/07/22(金) 11:18:46
NetAdvantage2004のWebMaskEditを使っていおりまして、 クライアント側の処理としてJavaScriptでWebMaskEditの背景色を 変える動作を行いたいのですが、現在入っているWebMaskEditの色情報を 取得することは出来たのですが、その中に変更したい背景色を指定しても、 色が変わらなく、困っております。 どなたか教えていただければ幸いです。お願いいたします。
GrapeCityに聞けば?
35 :
31 :2005/07/22(金) 20:21:46
自己解決しました。 OleDbDataAdapter1.SelectCommand.Parameters.Item("hoge").Value = _ System.BitConverter.GetBytes("あ"c) でOKのようです。お騒がせしました。
36 :
デフォルトの名無しさん :2005/07/23(土) 11:53:35
Compact Frameworkでイメージをファイルに保存する方法ないでしょうか?
37 :
デフォルトの名無しさん :2005/07/24(日) 03:14:27
最近はじめてプログラミングを勉強してみようと思い、VB.NETを勉強し始めたのですが このソフトで一体どの程度のアプリケーションが作成できるのでしょうか? また、このソフトを使っている人って趣味の範疇ですか? 実際の業務でこのソフトで作ったアプリケーションが役に立つ機会ってありましたか? 自分としてはwebブラウザで動くプログラムを作りたいと思っているのですが、 そういう場合には、どういう言語を勉強するといいでしょうか?
38 :
デフォルトの名無しさん :2005/07/24(日) 03:16:57
それから、VB.NETとVBで作成できるアプリケーションの場合 どちらが優れたソフトを作成できるのでしょうか? 質問内容自体がおかしいかもしれませんが、宜しくお願いいたします。
質問がおかしすぎます 勉強し始めたならそのくらいわかるでしょう?
40 :
デフォルトの名無しさん :2005/07/24(日) 03:29:11
>>39 やっぱりおかしいですか・・・
変な質問だとは思いますが、できるだけ質問の内容を解釈して
回答いただけると嬉しいです・・・
>>37 >また、このソフトを使っている人って趣味の範疇ですか?
なめとんのかコラ
喧嘩売ってるとしか思えないな。
漏れは趣味の範疇ですw だけど非IT系企業の実際の業務でも使えます。 四則計算 ファイル入出力 ネットワーク通信 お絵かき GUI Webアプリ .net frameworkが入ったWindows2000,XPであれば 特に問題無くいろいろ遊べます。 管理者権限がないと無理なものもありますが。
43 :
デフォルトの名無しさん :2005/07/24(日) 04:42:50
>>40 それはcgiだ。
スクリプト言語なんかだとより楽に作れる。
ソフトはそれぞれ得手不得手がある。調べろ
趣味の範疇でやめておいた方がいい言語ではあるな。 とくにプログラミング初心者の場合は。
45 :
デフォルトの名無しさん :2005/07/24(日) 08:01:50
>>41 す、すみません・・・
>>42 非IT系の企業としたのはどうしてでしょうか?
>>43 CGIですか、調べてみます。ありがとうございます。
>>44 それはどうしてでしょうか?
>とくにプログラミング初心者の場合は
自分が初心者なのですごく気になります。
出かけるので夕方以降に見させて頂きます。
47 :
43 :2005/07/24(日) 14:28:50
どの言語がいいかは初心者によくある質問だが、 少ない情報で言い切れるヤシはいない。 それと、cgiを調べろということじゃあない。 ソフトは単純な良し悪しじゃないともいったつもりだが。考えて読め 本当に説明すると長長と語れてしまうことになるんだぞ。 情報がないぞ。何を優先するつもり?簡単さ?仕事案件の多さ?
48 :
デフォルトの名無しさん :2005/07/24(日) 19:34:18
VB.NET初心者ですが質問です。 例外を防ぐ方法をお聞きしたいと思います。 VisualStudio.NETを利用してフォームを作成し実行したところ System.Arithmetic Exceptionが発生しました。 デバッグモードで調べたところ、以下の部分で例外が発生していることが わかりました。 #Region "Windows フォーム デザイナによって生成されたコード" : : Me.txtHogeHoge.Font = New System.Drawing.Font("MS ゴシック", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(128, Byte)) この部分は直接コーディングしたのではなく、フォームデザイナ上でプロパティ画面をいじって フォントを設定したのですが、なぜ例外になってしまうのでしょうか? 他にもラベルなどでフォントを指定した部分で例外が発生します。 フォントをデフォルト設定にすると例外は発生しません。 MSゴシックもインストールされているのですが、なぜ例外になるのか いまいちぴんとこず悩んでいます。。。 サイズを変えてもMSPゴシックにしても同じ例外が。。。 ただ、同じフォント設定でも全く例外が発生しないテキストボックスもあり、 何がいけないのかわからないんです。
49 :
デフォルトの名無しさん :2005/07/24(日) 20:56:15
>>46 どうもありがとうございます。難しそうですね・・・
>>47 思いやりのあるレスありがとございます。
自分で作ったプログラムが動くって楽しそうだな、
自分の仕事をもっと効率よくできるようなソフトを自分作れるといいな
プログラミングってかっこよさそうだな
という、ごく単純な動機でプログラミングに興味を持ったのですが、
勉強しはじめると、そういった動機より、大変だな・・・構文覚えるの面倒だな・・・という
気持ちが強くなってきてて、しかも、業界の流れが早く、自分の勉強した
言語がほんの数年後には価値のないものになってしまうかもという不安感
こういう自分は向いてないのかもしれませんね・・・
みなさんはプログラミング言語の勉強は楽しかったですか?
51 :
デフォルトの名無しさん :2005/07/24(日) 21:36:12
>>50 Fontを設定している個所で発生した例外をキャッチしたところ
System.Arithmetic Exceptionが発生しており、
Exception.Messeageには
「算術操作でオーバーフローまたはアンダーフローが発生しました。」
とのことです。
それは分かってる。ArithmeticExceptionはそう言う例外だ。 どのメソッドで発生してるかを聞いてる。
ああ念のために言っておくとキャッチしたExceptionを.ToString()したときにずらずら出てくる"場所"のことな
>>53 最近の若いもんはスタックトレースも知らんのか。
53としては知っているが、51がいかにも知らなさそうだったので。
56 :
デフォルトの名無しさん :2005/07/24(日) 22:07:14
> ああ念のために言っておくとキャッチしたExceptionを.ToString()したときにずらずら出てくる"場所"のことな ToString()してみました。おっしゃっているのはここでしょうか。 at System.Drawing.Font.Initialize(FontFamily family, Single emSize, FontStyle style, GraphicsUnit unit, Byte gdiCharSet, Boolean gdiVerticalFont) at System.Drawing.Font..ctor(String familyName, Single emSize, FontStyle style, GraphicsUnit unit, Byte gdiCharSet)
57 :
デフォルトの名無しさん :2005/07/24(日) 22:08:13
58 :
デフォルトの名無しさん :2005/07/24(日) 22:30:32
ArrayListをカプセル化した場合のアクセサの書き方ってどうなるの?
59 :
デフォルトの名無しさん :2005/07/24(日) 22:39:21
VB.NETとVBAってどちらのほうが難しいんですか?
61 :
デフォルトの名無しさん :2005/07/24(日) 22:51:53
>>60 そうなんですか。
VBはアプリケーション開発用のソフトで、VBAはExcelとかAccessの機能拡張のための
プログラムなんですよね。
でも、いまいち違いがよくわらないです。
VBでExcelと連動するソフトが作れるし、逆にVBAでもできるですよね?
>>56 む〜、Font.Initializeの中見てみたけど直接ArithmeticException投げるような操作が見つからね。
フォントを右クリックでリセットするとどうなる?
あるいは一旦コントロールを消して作り直したらどうなる?
>>58 カプセル化? 継承じゃなくて?
求めているのはDefaultキーワードかな?
63 :
58 :2005/07/24(日) 22:55:05
普通に引数付きプロパティを書けばいい。 Public Property Item(ByVal v As Integer) As Integer とか。 Defaultキーワードを付ければ Dim a As New IntegerList a.Add(3) a(0) = a(0) とか書けるようになる。
>49 >構文覚えるの面倒だな 激しく同意!めんどくせーもんはめんどくせーよ。 >言語がほんの数年後には価値のないものになってしまうかもという不安感 もちろんそうなる可能性はある。 そう思うなら複数の言語を勉強すればよい。 だけどVB.NETの勉強が無駄になることは無い。 プログラミングしなくなるなら別だが。 >64 なるほど。( ..)φメモメモ ってか思わずIntegerListって探してしまったわ。
66 :
デフォルトの名無しさん :2005/07/25(月) 00:14:30
最凶氏はデキる人なのか馬鹿なのかわからんな。 時々するどい回答をみせるかと思えば、デフォルトプロパティなんて 猿でも知ってるようなことに驚いているし。 C#のインデクサと対比してよく語られてる話題だと思うが。
鋭い回答あったっけ?基本馬鹿だけどなー。 インデクサの実装したことないんよ。(゜∇゜)
68 :
デフォルトの名無しさん :2005/07/25(月) 14:33:11
> む〜、Font.Initializeの中見てみたけど直接ArithmeticException投げるような操作が見つからね。 > フォントを右クリックでリセットするとどうなる? > あるいは一旦コントロールを消して作り直したらどうなる? 作り直しても同じ例外。 違うフォントを指定しても同じ例外。 フォントを指定するのをやめてデフォルトのフォントにすると例外発生せず。 領域から文字がはみ出てはいけないのかと思い、 領域をうんと広げてみても同じ例外。 という状態です。
Basicの気持ち悪い構文どうにかなりませんか???
C#使え。
>>70 > Basicの気持ち悪い構文どうにかなりませんか???
どうにもならんと思うが、どの辺が気持ち悪いのか教えてくれ。
おれは、= が代入記号になったり演算子になったりするのが気持ち悪いな。
代入も演算の一種だぜ。
>>73 > 代入も演算の一種だぜ。
えっ? ほんと? 知らんかった。
75 :
70 :2005/07/25(月) 19:05:50
変に大文字の構文とか、{}がないとか、THENとか。 でもVBよりVC#の方が情報が少なくて困る
>>75 方言みたいなもんでほとんど一緒だからなんとかなる
C#の情報、少ないか? VB6を含めるならともかくVB.NETとC#ではそう差はないと感じるんだが。
VB.NETもC#もたいして変わらんやんか
っそ、大して変わらん。
ちょっとしっくり来なくて気持ち悪いという程度。
だから
>>70 もそういっとる。
おれは大文字なのは馴れたな。
Whileの条件節で代入できないのは痛いな、とか
あれ?C#ってCみたいに"="は演算子で結果は右辺の値になるんだっけ? なんか違うような気がしたけど。 まあ、おれはあれは悪弊だと思うんで使わないけど。 しかし2005年にもなってまだCの文法が読みやすい、なんてほざくのがカコイイなんて 思ってるお方がいるのね。 自分に正直になれよ。読みにくいっしょ、Cのコードって。 俺は組み込みメインなんでCはよく使うけど、(c#は使ったことない)本当にCの表記法は糞だと思う。 丁寧にラベルつけたアセンブラのコードの方が余程可読性が高いケースもある。
だからもう趣味のレベルだろ。どうせ同じアセンブリ吐けるんだし。 C/C++はポインタのせいで面倒なことになってるが、それをなくしたC#/Javaなら問題なし。 私はVBより好きだし読みやすく感じる。慣れてるからと言うのも大きいけど。
84 :
デフォルトの名無しさん :2005/07/26(火) 14:08:21
フォームの大きさを変えた後にフォームを閉じ、再度、フォームを開いたら、フォームの大きさが保存されるようにしたいのです。なにかいい方法はないでしょうか? もしありましたら、ご教授下さい。よろしくお願いします。
アプリケーションの終了/開始時って話じゃなくて、同一プロセスの中での話だよね? CloseイベントでSizeを適当なフィールド変数に保存してやればいいじゃん。
86 :
デフォルトの名無しさん :2005/07/26(火) 14:58:10
>>85 アプリケーションの終了後なんですよー。
プロセスも異なっています。
INIかコンフィグファイルに書き込むようにする
88 :
デフォルトの名無しさん :2005/07/26(火) 15:36:31
.Net Frameworkって、INIやコンフィグファイルを読み書きするようなクラスって、ありましたっけ? その辺のクラスやサンプルってご存じないですか?
まあ自分で書け。 設定用の各種プロパティを含んだクラスを作ってそのインスタンスに値を入れてXmlSerializerで永続化というのが一つの手法だ。
90 :
デフォルトの名無しさん :2005/07/26(火) 16:09:19
横に細長いPictureBoxを作り、そこを塗りつぶしたいと考えています。 コントロールの中に文字を表示させるので、反転モード(?)にしたいです。 そこで下記のようなコードを書きました。 Dim frm As Form1 = ActiveForm Dim intTop As Integer = PicBox1.Top Dim intLeft As Integer = PicBox1.Left Dim intWidth As Integer = PicBox1.Width Dim intHeight As Integer = PicBox1.Height Dim intDrawWidth As Integer = 50 Dim r As Rectangle = New Rectangle(frm.Left + frm.PicBox1.Left, frm.Top + intTop, intDrawWidth, intHeight) Dim lngBarColor = Color.FromArgb(0, 0, 128) ControlPaint.FillReversibleRectangle(r, lngBarColor) 上記のコードだと、塗りつぶされる範囲がPictureBoxの右下にずれてしまいます。 Dim r As Rectangle = New Rectangle(frm.PicBox1.Left, intTop, intDrawWidth, intHeight) このようなコードも試しましたが、フォームを移動しても 常に左上の方が塗りつぶされてしまいます。 コントロールにぴったり収まる感じで、反転モードで塗りつぶすにはどうしたらよいのでしょうか?
91 :
デフォルトの名無しさん :2005/07/26(火) 20:59:50
>>90 MSDNちゃんと見てる?まあ見てないんだろうけど。
そんなのタイプしてる間にMSDN見たほうがよほど早いよ。この程度の問題なら普通ね。
試したわけじゃないけど、コントロールにRectangleToScreenメソッドというのが
あるようだから、これを使えばうまくいくんじゃないか。
あとはWin32APIのInvertRectを使う手もある。
92 :
デフォルトの名無しさん :2005/07/26(火) 21:00:26
>>90 MSDNちゃんと見てる?まあ見てないんだろうけど。
そんなのタイプしてる間にMSDN見たほうがよほど早いよ。この程度の問題なら普通ね。
試したわけじゃないけど、コントロールにRectangleToScreenメソッドというのが
あるようだから、これを使えばうまくいくんじゃないか。
あとはWin32APIのInvertRectを使う手もある。
94 :
デフォルトの名無しさん :2005/07/27(水) 06:37:29
>>93 それを如何に簡単にやるかの議論だろ?w
おしゃれで融通が利くのは、
>>89 が書いたクラスのシリアル化・逆シリアル化を行う方法だと思う。
95 :
90 :2005/07/27(水) 09:30:05
>>91 ありがとうございました。無事コントロールの位置を取ることができました。
3D表示にすると高さと幅があやしいですが・・・なんとかなりそうです。
MSDN・・・見てるつもりですが見方が甘いです。。。
VB5からの移行作業を始めて一週間。
なんだか難しくなってるな〜という印象。
JavaとかCとかやったことあると簡単なんですかね?
96 :
デフォルトの名無しさん :2005/07/27(水) 12:34:13
>>94 横から突っ込んで悪いけど、「レジストリに書く」っていう話と
「シリアル化する」って話は抽象水準変わらないと思うよ。
97 :
デフォルトの名無しさん :2005/07/27(水) 18:17:36
ブラウザとかで選択された文字列を取得したり ブラウザなどのテキストボックスに文字を送ったりするのにはどうしたらいいですか??
とりあえずVisual Basic.NET2003を買えば 開発できるのですよね?
とりあえず腕も必要。
101 :
デフォルトの名無しさん :2005/07/28(木) 10:54:34
とりあえず、買わなくても出来るから、SharpDevelopとかをぐぐって落とせ。 それで満足できなくなったら金を出せ。
最低限、.NET Frameworkさえあればできる。IDEはつかないが。
.NETフレームワークの2.0を入れれば 1.1のソフトも動作しますか?
動く可能性はそれなりにある。 動かす場合は.configファイルにサポートする.NETのバージョンを書く必要がある。 <supportedRuntime>要素。
105 :
デフォルトの名無しさん :2005/07/29(金) 00:04:38
VB.NETで他のアプリケーションの情報ってどうやって手に入れるんでしょうか? 例えばヤフーメッセンジャーのチャットの他人の発言のどんなログを受信したとか
>>105 わけわからん質問だなあ。。
君が作った、君独自の「俺様フォーマット」である情報を記録するソフトがあるとする。
その「俺様フォーマット」をたちまち解析して、必要な情報を取り出すような
エスパーみたいなソフトがありうると思うか?
>>106 それを質問してるんだろ?
わからねーなら口出すな
>>107 106 をどう読むと 「わからない」 になるんだ?
おおむね無理って内容だろうが。
>>105 この質問って質問になってないよ。
外を歩いている人の年収や健康状態をとりあえず知りたいんだけど、どうすればって言ってるのと同じ。
>>105 メッセンジャーのDLLインポしたら?
知人がヤフチャのログ解析して
「占い」とか「天気予報」ってログ書き込んだら
自動的に「大吉」とか「www.tenki.jp」とか発言するツール作ってる
よそで聞いたらヤフーメッセンジャーの発言を読む方法が分かりました。 ここで無理って言ったやつはただの馬鹿。 みたいなあほな書き込みが返って来るぞ
ここにそんな期待をするほうが間違っている。
さあまたいつもの流れの時間がやってきました
117 :
デフォルトの名無しさん :2005/07/30(土) 16:26:25
元の質問はヤフーのログ読みの質問じゃないよな。 汎用的な他のアプリ情報奪取方法。
>>117 で、どうやったら汎用的な他のアプリ情報を取れるんですか?
エスパーだったら可能です。
>>119 まじめに答えてくださいよ
そんなくだらない事言って何が面白いんですか?
パケットキャプチャでよければ作れるけど? あと、キーボードフックとかも作れるけど
そんな手間かからんのであれば作って欲しいぞなもし。
そんなもんわざわざ作らんでもすぐ見つかるじゃん。
124 :
デフォルトの名無しさん :2005/07/30(土) 18:37:07
>>125 じゃあ具体的にどのような仕様のアプリを作りたくて、
何を試したり調べたりしたのか出してくれよ。
あんな漠然とした質問じゃ誰も答えられませんよ。
隣のアプリが何をしてるかなんて、知らないのが当然なんですから。
もう、面白くもないな。
急速にスレの質が低下してまいりました
132 :
デフォルトの名無しさん :2005/07/31(日) 02:04:38
>>112 DLLインポートってどうやるんですか?
133 :
デフォルトの名無しさん :2005/07/31(日) 04:52:33
( ´ー`)y―┛~~夏ですなぁ・・・・
134 :
デフォルトの名無しさん :2005/07/31(日) 08:05:18
まったくのVB.NET初心者なのですが、 VBでパラメータを指定して、SQLのSPを呼び出すという簡単なプログラムを作りたいのです。 で、MSDNの10行でズバリシリーズにやり方が書いてあるのですが、質問させてください。 'DataSet の生成 Dim ds1 As DataSet = New DataSet("CustomerOrders") という一文があるのですが、"CustomerOrders"というのは何なのでしょうか? もともとのDBにはこのような名前のテーブルはありません。 ユーザーが任意につけるものなのでしょうか?それならば、これは何の名前で たとえばどのようにつかうのですか? レベルが低くてすみません。
>>134 @ITに簡単なADO入門の記事があるからそれを見ろ。
>>134 CustomerOrdersというデータセットを作るということだよ。
test
test
VB.NET ASP のTextBoxの改行消えてします。 この様な現象が発生して困っています。 画面にTextBox(MultiLine)とButtonを配置する。 実行してTextBoxに [改行] [改行] あいうえお と入力してButtonを押すと。 [改行] あいうえお となって、改行が消えてしまいます。Buttonには、何も処理を入れていません。 解決方法がないでしょうか? .Net 2003 FrameWork1.3
やっぱり1.3はつっこむところか
141 :
デフォルトの名無しさん :2005/08/01(月) 20:30:32
複数人で開発するプロジェクトの環境構築で質問です。 Visual Source Safe は使ってはいけないと言われています。 VB6では画面単位でプロジェクトを作成し、子画面のフォームを 別フォルダの別プロジェクトから追加して、画面単位でexeを 作成していました。フォルダ構成としては Common メニュー 画面1 画面2 というようにして、それぞれのフォルダが別々のプロジェクトです。 VB.NETでも同様なことはできるでしょうか? 新たにソリューションなる単位ができて、ちょっと厄介だなと 感じています。 VB6でいうところの *.bas も簡単に別ソリューションからインクルード できなくなっているようにも感じたのですが。
142 :
デフォルトの名無しさん :2005/08/01(月) 21:08:29
出来る。 プロジェクトへの追加のデフォルトはコピーなので、開くボタンの右の小さい奴からリンクの追加を選択。 あと、回答になってるかわからんが、DLLの作成をして参照したほうがスマート。 クラスでもフォーム(・・これもクラス)もDLLでコンパイルして、使う側で参照すればいい。
そしてできあがる相互参照。……できあがってない。
144 :
デフォルトの名無しさん :2005/08/01(月) 21:19:41
>>142 本日はこの点ではまっていたため、少し安心しました。
ありがとうございました。
また明日試してみたいと思います。
時間があればDLLも検討してみたいですが、あまり
使ったことがないので後々責任問題になるとちょっと怖い。。
>>144 DLLいっても、今までのActiveXDLLとかと違って、普通のライブラリだ。
この部分の仕様は凄くシンプルになって、それこそ抵抗なく入れるから使ってみたほうがいいよ。
構える必要全くなし。
147 :
デフォルトの名無しさん :2005/08/03(水) 19:41:21
Win2000 SP4で開発しています。 メモ帳を起動しようとして Shell("notepad.exe", AppWinStyle.NormalFocus, True) としたのですが、プロセスは起動するんですが、メモ帳が表示されなくて困ってます。 引数に適当なファイルを渡しても同様です。 何か他に設定が必要なのでしょうか。
>>147 画面の領域外に表示されてるんでない?
マイナス座標とか
System.Diagnostics名前空間のProcessクラス使えー。
150 :
146 :2005/08/03(水) 22:53:37
>147 そんなことあるんですか 画面の領域内に表示するにはどうすればよいのでしょう >149 プロセスが終了するまで待たねばならないので、何とかShell関数でやりたいのです。
>>150 ProcessクラスにはWaitForExitメソッドなんてのもある。
152 :
デフォルトの名無しさん :2005/08/04(木) 00:23:35
単精度浮動小数点数型 (Single) の変数は、IEEE 32 ビット (4 バイト) の浮動小数点数の変数です。 負の値は -3.402823E38 〜 -1.401298E-45、正の値は 1.401298E-45 〜 3.402823E38 の範囲の値をとります。 単精度浮動小数点数型の型宣言文字はエクスクラメーションマーク (!) です。 上記のうち 1.401298E-45 〜 3.402823E38 は何を示しているのでしょうか。 Eとは自然対数の底であり、2.171828... ということらしいですが、これだけでは十分理解できませんでした。 どなかたご教授下さい。
この場合のEは自然対数とは関係ない(自然対数の底は通常、小文字eで表す)。 これは指数表記。 例えば 1.3E2 なら、1.3 * (10^2) = 1.3 * (10 * 10)を表す。 負の指数は、正の指数の逆数。 1.32E-2 = 1.32 * (1 / (10^2)) = 1.32 * 0.01
ちなみに Dim a As Single = 1.3E-4 なんて記述は有効だから試してみると良い。
155 :
デフォルトの名無しさん :2005/08/04(木) 00:48:17
自然対数の底 2.7182818284590452354
まあ他に優先的に覚えなきゃいけないことが増えたからしょうがないんだけど こういう昔はどんな入門書にも書いてあったことが、 今の時代には入門書には全然解説されてなく、かといって中上級者向けの本や MSDNでは知ってて当然の前提として書かれているわけで、今の若い人はそういう意味じゃ不幸だな。
http://pc.watch.impress.co.jp/docs/2005/0804/mobile301.htm マイクロソフトOBでWindows 1.xの時代からWindowsの開発に関わっていた方(2000年に退職)から
コメントをいただいた。引用させていただくと、
“私の住むシアトル近辺のマイクロソフトOBの間では、2004年の前半に「Longhornがキャンセルに
なったらしい」という噂がさかんに交わされ、その後次々と「OFSはLonghornとは別」、
「Managed APIは採用しない」とのアナウンスがありました。結局の所、もともと計画していた
Longhorn は出せなくなったけれども、いまさらキャンセルになったとは言えないので、出せるもの
だけかき集めてLonghornと呼ぶことにした、という見方がこちらでは一般的です”
ディスクの空き容量調べる場合はどうすればいいですか?
161 :
159 :2005/08/05(金) 21:27:50
>160 なるほど、ありがとうございました。
162 :
デフォルトの名無しさん :2005/08/05(金) 21:40:15 BE:347117388-
クリレポ.NETについて 通常は帳票を印字するときに No. | 県名(ヘッダ) 1, 東京都 2, 神奈川県 3, 千葉県 4, 埼玉県 5, 静岡県 6, 長野県 なぐあいに↓方向に描画するんだけど これを横にして → ヘッダ 詳細 No. 1, 2, 3, 4, 5, 6, 県名 東京都 神奈川県 千葉県 埼玉県 静岡県 長野県 のように表示させたい 横方向に描画する方法まではわかったんだけど ヘッダの部分(No,県名)を詳細の左側に持ってくる方法がわからない 解決方法をご存じだったらご教示いただきたい
163 :
デフォルトの名無しさん :2005/08/07(日) 03:09:16
VB.NETから「VS.NETで作られたマネージドC++のdll」を利用したいのですが アンマネージドC++と同様の方法で利用できますでしょうか? 昔VB6.0のときにC++(アンマネージド)のdllを利用するときは このような↓感じだったと思うのですが。 Declare Function Add Lib "test32.dll" (ByVal nLeft As Integer, ByVal nRight As Integer) As Integer このような書き方で構わないでしょうか。実際にやってみると稼動しているようですが もっと望ましい書き方があるのかなー?と疑問に思いまして。 VB.NETからC#のメソッドを利用するときはインスタンスをnewして 簡単に利用できたのですが…。
>>163 本当にManagedのC++なら、参照設定で追加するだけで使える。C#で作ったクラスを利用するのと同じ要領で。
165 :
デフォルトの名無しさん :2005/08/07(日) 03:23:29
>>163 さんと似たような問題、というか状況なので
少し質問させてください。
現在、
VB.NETからManagedC++
(とはいってもunManagedC++をVisualStudio.NETでManaged用に
手直しした程度)のdllをDeclareで呼び出し、その中でさらにunManagedC++のdllを
呼び出すプログラムを作成しています。
しかし、なぜかVB.NETで例外が頻発し、
ラベルやテキストボックスのサイズを指定するところで
System.Arithmetic.Exceptionが頻発してしまいます。
ラベルの色指定もできず困っています。
ただ、unManagedC++のdllの利用をやめるとそれが解消します。
unManagedC++のdllの利用って、何か注意が必要でしょうか?
166 :
デフォルトの名無しさん :2005/08/07(日) 03:26:15
> Declare Function Add Lib "test32.dll" (ByVal nLeft As Integer, ByVal nRight As Integer) As Integer > このような書き方で構わないでしょうか。実際にやってみると稼動しているようですが 自分もこの呼び出し方を利用していました。 それで稼動していたし。 C#みたいに参照設定でしようできるんですね。 どっちのほうがいいんですか? 何か違いがあるんでしょうか?
167 :
デフォルトの名無しさん :2005/08/07(日) 04:44:03
168 :
デフォルトの名無しさん :2005/08/07(日) 05:18:49
システムが用意しているアイコンをForm上のPictureboxに 表示したいと思っています。 下記のようにすればコーディングできるとわかりましたが これをどのイベントが発生したときに行えばいいのか悩んでいます。 FormがLoadされたタイミングでやればずっと表示され続けるのかと 思ったのですが、デバッグモードで1行ずつ表示させると一瞬表示されるけど その後見えなくなってしまいます…PaintとかActivatedとかもあるかと思いますが 「一般的なメッセージボックスみたいにアイコンを表示しっぱなしにしたい」とき 皆さんはどうされますか? ↓ 'システムのアイコンを表示する 'PictureBox1のGraphicsオブジェクトの作成 Dim g As Graphics = PictureBox1.CreateGraphics() '既定のアプリケーションアイコン(WIN32: IDI_APPLICATION) g.DrawIcon(SystemIcons.Application, 0, 0)
169 :
デフォルトの名無しさん :2005/08/07(日) 05:28:51
>>164 さんありがとうございます。
以前C#みたいにできたらいいのに、と思っていたので実現できそうと知り安心しました。
「本当にManagedのC++なら」という部分の「本当に」が気になりますが
(他社の方が作ってくれたのですが、
一応managedとはいいつつも
既存のC++のソースをVS.NETで開きMFC化しただけ、とも聞いてます…
「本当に」ManagedC++といえるのか、ちょっと心配ですが)
ちょっとためしてみます。
171 :
デフォルトの名無しさん :2005/08/08(月) 21:57:18
C#のbase キーワードはVB.NETでは何ですか?
MyBase もうちょっと具体的に説明した方が良いよ。基底クラスのメンバにアクセスするためのキーワード、とか。
残念だがそれが出来るやつは聞かんでも分かっとる。
アクセスからVB.NETへの移植をやっていますが、 .NETのコンボボックスで質問です。 コンボボックスのドロップダウンリストでいずれかの項目を 選択したときに、それとは別のテキストを表示させたい のですが、そういうことは可能でしょうか? 例えば 0001 ABCDEF 0002 DEFCFE 0003 XYZXYZ というリストがあったときに3番目を選んで、表示は 0003 だけにしたいのです。 ダメなら別の実装方法を考えないといけないです。 可能だとすれば、どの辺のイベントをどのように 処理したら良いものでしょうか?
そのリストとやらはどういうオブジェクトなんだ? ArrayList? Stringの配列? それとも単純にItemsプロパティに一つ一つ"0001 ABCDEF" "0002 DEFCFE"……ってAddしていったのか?
>>174 DropDownStyleをDropDownにしといてSelectedIndexChangedイベントで
Text設定するだけちゃうの?
>>175 は池沼か?
ああそうか、単純にイベントでText設定してもダメだったような記憶がある。 ドロ臭い方法だけど、SelectedIndexChangedでタイマ起動して タイマのイベントでText書き換えれば確実に出来る。 ドロ臭いのが嫌ならComboBox継承してOnSelectedIndexChangedをオーバーライド してやれば可能じゃないか?
>>178 泥臭い。
DisplayMemberを利用すべき。
え?
長時間掛かる処理にキャンセルボタンを付けたいのですが キャンセルボタンだけがあるフォームをポップアップして メイン画面のほうはさわれないようにしたいんですが どうしたらよいでしょうか?
182 :
181 :2005/08/11(木) 10:06:43
できました。
まあ、あれだ、ホントにキャンセルボタン押せるか確認してくれ
184 :
181 :2005/08/11(木) 13:54:56
押せたよ。マルチスレッドって便利すぎ
テキストボックスに余白を設定したいのですが、どうすればよいでしょうか? VB6なら、SendMessageを使って出来たのですが、.NETの方は同じやりかただと出来なかったので。 以下が書いてみたコードです。 Private Const EM_SETMARGINS As Integer = &HD3s Private Const EC_RIGHTMARGIN As Integer = &H2s Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hWnd As IntPtr, ByVal wMsg As Integer, ByVal wParam As Integer, ByRef lParam As Integer) As Integer Private Function MAKELONG(ByVal i As Integer, ByVal j As Integer) As Integer Return (i And &HFFFF) Or (j * &H10000) End Function Call SendMessage(textbox1.hand, EM_SETMARGINS, EC_LEFTMARGIN, MAKELONG(lngNewValue, 0)
>>185 lParamを何故かByRefで渡しちゃってるよ。
187 :
185 :2005/08/11(木) 16:36:40
>>186 Σ(゚д゚ )
うぉ。ホントだ
ByVal に直したらいけました。
なんて初歩的なミスを、、、_| ̄|○
お騒がせして申し訳ありませんでしたm(_ _)m
VB.NETでクッキーを作ることって可能ですか? ヤフーチャットにブラウザからLOGONする時、 ユーザ名とパスワードを自動で入れたいのですが 現在自宅にネット接続環境が無いため ネットカフェor職場での利用となるので履歴が残せず、 項目を毎回入れなければなりません 同じようにメールチェックなどが非常に困難です・・・。 クッキーは1分で消えるように設定したいと思ってます VB.NET初級者の私でも作れるでしょうか? どうかアドバイスお願いいたします・・・
IEのクッキーを作りたいのか、独自アプリでクッキーに対応したいのかどっちだ。
190 :
デフォルトの名無しさん :2005/08/11(木) 23:29:37
>>189 レスありがとうございます
IEのクッキーを作りたいです
まずはexeを実行して
comboboxからユーザー名を選択して実行すると
パスワードと共にクッキーとして保存されて、
LOGONページを開くとユーザ名とパスワードが入力済みとか。
アカウント数とユーザ名が長いので
複数件の登録をしたいんですが・・・。
初級者には不可能でしょうか??
>534: 名無しさん@お腹いっぱい。 [sage] 04/10/23 14:37:24 ID:fg9Ewxsa
>'Yahooにログイン.vbs
>
>'-------------------
>
>Const login = "なまえ"
>Const passwd = "ぱすわーど"
>Set ie = CreateObject("InternetExplorer.Application")
>ie.visible = True
>ie.navigate "
http://www.yahoo.co.jp/r/l1 "
>Do
> WScript.Sleep 100
>Loop While ie.Busy
>With ie.document.forms(0)
> .item("login").value = login
> .item("passwd").value = passwd
> .Submit
>End With
>>191 さん
188です!
拡張子をvbsにして実行したところ、成功いたしました!
本当にありがとうございました!
193 :
デフォルトの名無しさん :2005/08/12(金) 17:22:03
VB6ではtextBoxをコントロール配列に出来たと思うのですが、VB.Netでは出来なくなったのでしょうか? 何か変わりの方法が用意されてますか? ----VB6----- for i = 0 to 10000 textbox(i)=i next i みたいなのです。
自分で作るしかない。どぼんにそれっぽい実装コードがある。 というかそんな不安定な機構いらない。
195 :
181 :2005/08/12(金) 17:33:44
え?不安定な機構?
>>193 自分で別途コントロールの参照変数を配列にして参照するやり方が1つ。
または、名前を連番にしてコントロールを名称で呼び出すやり方。
または、Tagプロパティを上手く使ってやるやり方。
.net推奨は最後のTagか?
コントロール配列にはVB特有の曖昧さがもたらす暗黒面もあったものの、 便利な面があったのも事実だと思うけどね。 あと、一応.NETでもコントロール配列の代替手段は容易されているよ。 VB6でコントロール配列つかった簡単なプロジェクト作って アップグレードウィザードでアップグレードしてみ? っていうか、質問する前になんでこんな当たり前のこと試してみないんだろう。
アップグレードウィザードはどこにあるんだ?
>>199 知ってるくせに(笑)
厨房氏はスレが荒れそうになると現れるな
プレデターか君はw
>>200 しらねーから聞いてんだ!
何もしらねー何もわかんねー!!はぁぷみー
質問させてください。 複数のラベルが存在しているユーザーコントロールを作成しました。 その中にとあるラベルの前景色、背景色を指定するプロパティがあり、 初期値をユーザーコントロールの前景色、背景色としたいのです。 貼り付けた時点では確かにその色がプロパティへセットされるのですが、 ユーザーコントロール自体の色を変更した際、そのプロパティの値は 変わらない状態です。 なにかいい方法はありませんでしょうか? 通常のForeColor、BackColorプロパティのように、 初期値なしみたいな設定できればいいのですが・・・。
ユーザコントロールのBackColorChanged&ForeColorChangedで変更すればいいだろ
>203 それも試してみたんですが、 今度は「とあるラベルの色を指定するプロパティ」に独自の値を 設定していた場合、「コントロール自体」の色を変更すると、指定していた色が クリアされてしまいました・・・。 あと、プロパティブラウザで常に太字になるのは避けたいんですが・・・。
イベントを作成する場合に(例えば、Clickの場合) 「OnClick」と「Click」がありますが、違いがよくわかりません。 どのように使い分けたらいいのか教えてエロい人!
>>204 「とあるラベルの色を指定するプロパティ」で、値を別フィールドにとっておいて
イベントで独自色を使用してるかどうか判断すればいいだろ。
プロパティブラウザ? 気にするな。
気になるのならParentChangedでParentのBackColorとForeColorに合わせるようにするとかどうだ。
>>205 Onの方はProtectedなメソッドなので継承したクラスでオーバーライドするしかない。
そのかわり基底クラスのイベントを多少コントロールできる。
派生コントロールを作らないのならOnをいじる機会はない。
派生コントロールを作るのならデリゲートオブジェクトを作らないのでOnをオーバーライドする方が多少効率的。
教えてください。 関数の中には、引数を指定しない場合、デフォルトの値が適用されるものがありますが、 これを自分で作成した関数で再現する場合、どのようにすれば良いのでしょうか 例えば↓で、bolFlag が指定されていないときは、True を指定したい Public Function MyModule(Byval strData As String, Byval bolFlag as Boolean) As String ... End Function
ヘルプで調べると良いよ Visual Basic 言語リファレンス
Optional ByVal bolFlag As Boolean = True ですね。 ありがとうございました。
210 :
204 :2005/08/13(土) 13:37:52
>206 重ねてのアドバイスありがとうございます。 OnForeColorChangedと、その追加したプロパティのセッターで コントロール自体の色と一致しているかを保存しておき、 一致している場合のみ連動させるようにしました。 今のところ意図した動きになっているようです。
追加で自己レス ShouldSerialize[プロパティ名]を利用することで、 プロパティブラウザでコントロールの色と同じであれば 太字にならない(=ソースに色指定が出力されない) ようになりました。
〃∩ ∧_∧ ⊂⌒( ・ω・) はいはいわろすわろす `ヽ_っ⌒/⌒c ⌒ ⌒ じゃかわいそうなのでマジレス。 内側だけで直接グローバルIPを見ることはできない。 たぶんDiCEみたいなDDNS更新ツール (それかネットワークゲーマー用のユーティリティ?)を作りたいんだと思うけど、 やるなら外のページを定期的に見に行って、環境変数のREMORT_ADDRを 取得して比較するくらいしか方法ないと思う。 せめてルータが決めうちできれば、コマンドでの取得できそうだけどね。
ギャース、REMOTE_ADDRだった。 逝ってきます・・・。
DataGridで、カラムを複数行にする方法はありませんか? テーブル:項目1,項目2,項目3,項目4,項目5 みたいなのを 項目1|項目2|項目3 |項目4|項目5 みたいな感じに表示させたいです。 よろしくお願いします。
SELECT 項目1,項目2,項目3 FROM HOGE UNION SELECT NULL,項目4,項目5 FROM HOGE
217 :
215 :2005/08/14(日) 21:31:19
>>216 ありがとうございます。
やってみたのですが、データの中身は2段になったのですが、項目名称が2段にならなかったです。
項目名称は1行しか無理でしょうか。
CheckBoxにReadOnlyプロパティを追加したユーザコントロールを 作ろうとしています。 イメージとしては、チェックボックスがEnabled=Falseの状態、 文字列は通常のままにしたいのですが、 何かいい方法はありませんでしょうか? できればCheckBoxを継承して作成したいのですが。
CheckStateプロパティと、OnCheckStateChangedメソッドのオーバーライドでいいんじゃね?
220 :
デフォルトの名無しさん :2005/08/15(月) 13:21:55
>>217 SELECT 項目1,項目2,項目3 FROM HOGE
UNION
SELECT NULL,'項目名4','項目名5'
UNION
SELECT NULL,項目4,項目5 FROM HOGE
てか、たぶんあなたのやりたいことは無理です。
vb.net(プログラム自体も・・・)始めたばかりのピヨピヨです。 いろいろ調べたんですがどうしても解らないことがあります。 質問してもいいですか?
222 :
デフォルトの名無しさん :2005/08/15(月) 17:25:13
VB6のころはテキストボックスのGotFocusでテキストを 全選択するのが良く行われてましたけど、VB.NETでは これはできるのでしょうか? 単純にGotFocusでSelectAllメソッドを使ったのでは できないようなのですが。 もともと、これは好きじゃないのですが、業務アプリの 慣習というのがあるんですよね。できない、かなり難しい というのであれば、上の人を説得できるので。
ん? 普通にできるけど? ちなみに.NETではGotFocus/LostFocusよりもEnter/Leaveが推奨されている。
>222 私もあまり好きじゃないのですが、同じく業務アプリ屋なので・・・。 VB.netの場合、EnterとLeaveで出来ます。 もしクリックした場合も全選択させたいなら、MouseDownも。 (うちはマウスクリックの場合は全選択させません) ちなみに、Enterでもタブ移動させたいって言われてませんか?w
妙なこと言う人たちだなあ。。 それって好き嫌いの問題か? フォーカス移動時の全選択って合理性あるでしょ。 テキストエディタのように既存の文字列を編集する、ってアプリならともかく、 ほぼ毎回入力されるデータが変わる、っていうようなアプリなら。 だいいち、客に出すラーメンの味にラーメン屋自身の好みを押し付けるって不遜じゃないか。
なんでそんなことでケチつけるかなぁ? 個人的に好きじゃないことの何が悪い? 意固地になって実装しないわけじゃないし。 注文されればその通りに作ってるさ。
227 :
デフォルトの名無しさん :2005/08/15(月) 19:58:31
>225 コボラー乙
こだわりのラーメンは是非食いたいネ あー腹減った。
229 :
デフォルトの名無しさん :2005/08/15(月) 23:05:29
TcpClient で存在しないアドレスにconnectすると、 えらい時間が掛かってExceptionが返ってくるのだけど、 connectのタイムアウトを設定ってできないの?
できない。 別スレッド作るかSystem.Timers.Timerを使うかして、そっちで強制的にCloseするぐらいか。 でもTcpClientでは接続中かどうかを判断もできないんだよね。.NET 2.0で思い出したように追加されたけど。 派生クラスを作ればProtectedメンバのClientプロパティ経由で状態を知ることはできるんだが。 派生クラスでタイムアウト付きConnectでも定義するか。 素直にSocket使った方が早いかもね?
>>230 粗雑な問いに、丁寧にお答えいただき、大変恐縮でございます。
ご意見、参考にさせて頂きます。ありがとうございました。
232 :
デフォルトの名無しさん :2005/08/16(火) 09:03:51
>>224 Enterイベントだとタブでの移動では全選択されるようなのですが、
マウスでクリックした場合は全選択されないですよね?
Clickイベントで実装するとテキストボックス内で他の場所を
クリックしたときにも全選択されてしまうし。
>232 いや、だからMouseDown >テキストボックス内で他の場所 これってどういう意味ですか?
>>232 >Enterイベントだとタブでの移動では全選択されるようなのですが、
>マウスでクリックした場合は全選択されないですよね?
いや、実際は一旦全選択されているはずだけれどもね。
恐らく一旦全選択された後、解除されてしまうんだよね。
単にクリックしたはずが、クリックしたついでに微妙にドラッグになってしまっているために。
>>233 だいたい話の文脈でわかるでしょ?
そうでないならこの話題にのっかる資格はないと思うけど。
フォーカスが来たとき以外も全選択されてしまうということでしょう。
>234 >恐らく一旦全選択された後、解除されてしまうんだよね。 これはあってる。 >単にクリックしたはずが、クリックしたついでに微妙にドラッグになってしまっているために。 これはちがう。単なるクリックでも全選択は解除される。 イベントハンドラの発生順の問題。 もし微妙にドラッグしちゃった時でも全選択させたいならMouseUp。 フォーカスが元々ある状態の場合は全選択したくないということであれば、 フラグでEnter経由かどうか判断するのがいいかと思う。 あと、いちいち絡むなよ。
あー、ごめ。単にEnter経由で判断だけだと、 タブ移動後にクリックした時にも全選択になっちゃうわ。 なんかうまい方法ないかなぁ。
Private mouseEnter As Boolean = False Private Sub TextBox_Enter(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Enter Me.SelectAll() If Me.MouseButtons <> MouseButtons.None Then mouseEnter = True End If End Sub Private Sub TextBox_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles MyBase.MouseUp MyBase.SelectAll() mouseEnter = False End Sub
マウスクリックでのEnterかどうかを判断するようにしてみた。
>あと、いちいち絡むなよ。 馬鹿じゃないの。 「何も分かってないならだまってろ」 それを君に遠まわしに言ってるのに。。
なんだもっと煽り合いになるかと思ったのに過疎っちまいやがったつまらん
次はもうちょっとうまいこと釣ってくれよ。
>>all
色々ありがとうございます。
MouseDownで実装してみましたが、これもClickと
同様、テキストボックスのテキストの一部だけを選択
することができなくなるという問題がありました。
>>237 オリジナルのテキストボックスを作るのかな?
面倒だから、そこまでは勘弁して欲しいな・・・。
VB.NETの継承とかコントロールの作り方はまだよく
分からないので。
会社で作った.netのソリューションファイルを家に持ってきて開こうとしたら開けません。 家のは2002で会社のは2003なんですけど、全く互換性無いんですか?
2002のを2003のにするのはできるけど逆は無理。 一度2002のから2003のに変換したら逆変換は不可能。
246 :
237 :2005/08/18(木) 00:20:27
>242 243に同意。テキストボックスが複数あるなら(というかあるだろうし) 絶対にユーザーコントロール作ったほうがいいと思います。 おんなじロジックを全てのテキストボックスに組み込むなんて ありえないっすよ。 あと、237のですが、mouseEnterがイベントハンドラの名前と かぶってます。ちゃんと見直してからうpしろよ俺。 とりあえず、他の名前にしてください。
VB.NETというよりAxWebBrowserの質問になるんですけど、 AxWebBrowserで表示されているPageからzipファイル等がResponse.Redirectされた場合、 ダウンロードが開始されるんですけど、そのダウンロードされているファイルのURLは取れますか?
普通にBeforeNavigate2とかで取れるだろ
249 :
247 :2005/08/18(木) 21:15:24
実際に画面表示しないと取れないんですよ・・・。 zipとかのファイルであった場合、ダウンロードされるだけで画面表示されないので、 URLが変更されないみたい・・・。
変更? AxSHDocVw.DWebBrowserEvents2_BeforeNavigate2EventにuRLプロパティが存在するが?
251 :
247 :2005/08/18(木) 22:25:54
確かに存在するのですが、ダウンロードされるファイルのURLがuRLプロパティには入っていないんです。 nRLプロパティには現在表示しているURLが入っています・・・。
252 :
247 :2005/08/18(木) 22:26:51
ひょっとして、Response.Redirectがだめなんですかね・・・?
リダイレクトが発生したときのリダイレクト先のURLはNavigateComplete2が一番早く取得できるみたいだね。 リダイレクトでダウンロードが発生するところを知らないから試せないが。 で、これがzipとかの場合AxSHDocVw.DWebBrowserEvents2_NavigateComplete2EventのuRLプロパティが正しく指さないってこと? リダイレクトでhtml、直接zipはどっちも正しく指すんだけど。 //ん〜、FileDownloadが発生しない……
VB.NETかVB6でできるだけ多くの環境で動くネットワークプログラムを作りたいんすけど その場合VB6を選択すべきですか? .NET FrameworkってXPでもデフォルトでインストールされてないし。
255 :
247 :2005/08/19(金) 09:21:50
AxWebBrowser.Navigate2でzipファイルを指定するとNavigateComplete2.uRLで確かにzipファイルのURLが取得出来るんですが、 webForm1.aspxをNavigate2した後に、aspxのButton_ClickでzipファイルをResponse.Redirectしても NavigateComplete2.uRLにはwebForm1.aspxのURLが入ってる状態です。 FileDownloadは発生しないですね・・・。
>>254 別にインストーラー作ればいいだけだし。
今更新規にVB6で作るって何考えてるのって思うし。
>>256 んだな。今更ocx入れるのマンドクセ。
別のPCのLAN上にIISがインストールされていれば ローカルにIISがインストールされていなくても ASPとかつくれますかね?
何作るかしらんが、作るだけなら作れるでしょ。 ASPってのが何指してるのか不明だけど。
260 :
デフォルトの名無しさん :2005/08/21(日) 06:12:21
>>254 本当に「できるだけ多くの環境で動く」事が優先されるなら、VB6もVB.NETも不可だろう。
VB6で作成した場合、Windows Vistaまでしか動作保障されない。
VB.NETで作成した場合、Windows95や98は切り捨てることになるな。
一応98は.NET動くぜ。
名前空間に漢字使ってますが問題ないですかね? 問題あったら教えてください。
少なくとも日本国内で開発する分には問題ないだろう。 実行には全く問題ない。
266 :
デフォルトの名無しさん :2005/08/21(日) 22:09:45
現在Visibleプロパティがtrueになっているformを知りたいときって どのようにしたらいいでしょうか? If フォームA.Visible = True Then 〜処理〜 ElseIf フォームB.Visible = True Then 〜処理〜 : : みたいにif文やswitch文を書き連ねていくと、ソースが汚らしく思えるのですが。。。
ActiveForm/ActiveMdiChildとかそんなんじゃ駄目か? ていうか何をどうやったらそんな判断が必要になるんだか。
268 :
デフォルトの名無しさん :2005/08/21(日) 22:26:40
ありがとうございます。 Form.ActiveFormで現在アクティブなフォームを表すFormが取得できるんですね。 if文やらswitch文よりすっきり書けそうですね。
270 :
デフォルトの名無しさん :2005/08/22(月) 12:57:22
フォーム(Public Class WebForm1)にラベルがあります。 Public WithEvents Label1 As System.Web.UI.WebControls.Label 別モジュール(Module1)に関数(sub kan1)を作りました。その中で Dim refForm1 As New プロジェクト名.WebForm1 というインスタンスを作りました。 で、refForm1.Label1.Text = "1" とやると「オブジェクト参照がオブジェクトインスタンスに設定されていません」 と出ます。refForm1.Label1 ← ここでNothingになります。 なぜですか?
Newしてないからだろ
272 :
デフォルトの名無しさん :2005/08/22(月) 13:38:44
これじゃダメでしょうか?他のNewを思いつきません。 >Dim refForm1 As New プロジェクト名.WebForm1
いや、あのよ、何がNothingなのか考えろ?
横からでWebFormは知らんが、WebFormのインスタンスを生成しても、中のLabelのインスタンスが生成されてないんですよ。 Winformだと、コンストラクタからInitializeComponentが呼び出されてNewしてるんだけど、Webはしらん。しらべてみ。
テキストボックスでIMEが変換中かどうか取得する目的で WndProcをオーバーライドしているのですが スペースのみ入力してタブキーで次のテキストボックスに移ったときは ENDCOMPOSITIONが来てくれません。 If m.Msg = &H10F Then 'WM_IME_COMPOSITION bIMEmode = True End If If m.Msg = &H10E Then 'WM_IME_ENDCOMPOSITION bIMEmode = False End If 対策としてとりあえずKILLFOCUSでIMEモードのフラグを OFFにしてみましたが、あまり美しくありません。 If m.Msg = &H8 Then 'WM_KILLFOCUS bIMEmode = False End If スペースのみの場合はWM_IME_COMPOSITIONが飛んでこないように するにはどうすればよいでしょうか?
え、飛んできてるんだけど>WM_IME_ENDCOMPOSITION あとWM_IME_COMPOSITIONじゃなくてWM_IME_STARTCOMPOSITIONじゃないかなぁ
>>276 WM_IME_STARTCOMPOSITIONにしたら期待通りの動作をしてくれました。
ものすごく感謝です。
AccessのMDBからOelDbDataReaderを使用してデータを取得したいのですが、 OelDbDataReaderのループの中でもう1つOelDbDataReaderを実行すると 「この接続に関連付けられているDataReaderがすでに開いています。」とエラーになってしまいます。 OleDbConnectionを複数作成してコネクションを複数張れば出来ると思うのですが、 色々と不都合(トランザクションが作れないとか)がありそうなのでやりたくありません。 OelDbDataReaderをネストしない場合は正常にデータを取得できています。 下はエラーになるサンプルです。 何か根本的に間違えているのでしょうか? よろしくお願いします。 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim DbConn As OleDbConnection = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\test.mdb") DbConn.Open() Dim dbCmd1 As OleDbCommand = DbConn.CreateCommand dbCmd1.CommandText = "select * from TEST_TAB " Dim dbReader1 As OleDbDataReader = dbCmd1.ExecuteReader() While dbReader1.Read() Trace.WriteLine(dbReader1("TEST_NO").ToString) Dim dbCmd2 As OleDbCommand = DbConn.CreateCommand dbCmd2.CommandText = "select * from TEST_TAB " Dim dbReader2 As OleDbDataReader = dbCmd2.ExecuteReader() '← *** ここでエラー発生 *** While dbReader2.Read() Trace.WriteLine(dbReader2("TEST_NO").ToString) End While dbReader2.Close() End While dbReader1.Close() DbConn.Close() End Sub
MSDNにしっかり > OleDbDataReader の使用中は、関連付けられた OleDbConnection は、 > OleDbDataReader によって使用されるためビジー状態になります。 > この間、 OleDbConnection に対して、閉じる以外の操作は実行できません。 > OleDbDataReader の Close メソッドを呼び出すまでこの状態が続きます。 > たとえば、 Close を呼び出すまでは、出力パラメータは取得できません。 と書かれている。
>>279 レスありがとうございます。
確かに解説の所に書いてありました・・・
皆様はDBからデータの取得中(OleDbDataReaderの使用中)に
他のデータを取得する場合どのように実現されているのでしょうか?
それともDataSetみたいに全データを取得してから次のデータを取得、
みたいな方法でやっているのでしょうか?
よろしくお願いします。
・順次、配列等に読み込む ・DataAdapter & DataSet を使う ・複数のコネクションを張る ・ストアドプロシージャを使う
>>281 ここの使用って改悪だよな。
バッチ的なテーブル処理に対して厳しいところがある。
ロックかけながらカーソル処理していくような処理で必ず詰まる。
ADO.NET 2.0では一つのConnectionから複数のDataReaderを同時に開くことができるようになるとどこかで聞いた。
接続ドライブのプロパティに表示されるようなドライブ固有の名前(例:Maxtor 6Y160P0)を取得する関数というのはあるのでしょうか?
WMI使えば?
286 :
284 :2005/08/24(水) 14:43:56
>>285 ありがとうございます。ググってみます。
287 :
284 :2005/08/24(水) 15:02:11
解決しました。ありがとうございました。
288 :
278 :2005/08/24(水) 15:31:57
289 :
284 :2005/08/24(水) 18:54:36
すいません。再度質問させてください。
>>284 にあるドライブ固有の名前の取得方法はわかったのですが
これとドライブレター名(例:C)とを関連付ける方法がわかりません。
Select * From Win32_DiskDrive
でドライブ固有の名前を
Select * From Win32_LogicalDisk
でドライブレター名を取得することはできたのですが・・・
291 :
284 :2005/08/24(水) 19:50:01
>>290 ありがとうございました。これからぐぐります。
VBとVB.netの違いって何?
.net
294 :
デフォルトの名無しさん :2005/08/25(木) 11:19:54
DBMS_SQL.NUMBER_TABLEをパラメータに持つ ストアドファンクションに VBから配列を渡したいのですが myOracleCommand.Parameters.Add()だと InvalidCastExceptionが出ます。 どうやればよいのでしょうか? 私が書いたのはこんな感じです myOracleConnection.Open() myOracleCommand = New OracleCommand("sf_test", myOracleConnection) myOracleCommand.CommandType = CommandType.StoredProcedure Dim id(500) As Int32 〜中略〜 'コマンドパラメータ設定 myOracleCommand.Parameters.Add(id)←ここでInvalidCastException
ODP.NETだよね? どちらかといえばデータベース板のOracleスレ向きな気もするけど。 PL/SQL表をバインドする場合、 OracleParameter.CollectionTypeを OracleCollectionType.PLSQLAssociativeArrayにしないと駄目。 詳しくはOTNのODP.NET開発者ガイドを参照してください。
かなり初歩的な質問だと思うのですが・・・ ある処理中に処理中であることを示すウインドウを表示させたいのですが どうにもうまくいきません。どのような方法が考えられるでしょうか?
抽象的すぎる質問だな。 どうやってみてどううまくいかないんだ?
298 :
295 :2005/08/25(木) 13:19:55
今調べてみたらODP.Net入れてなくて DBアクセスしてたんだけどこれは ODBCなのかな?
>>296 まずWindowsFormsなのかASP.NETなのか書いてくれ。
300 :
294 :2005/08/25(木) 13:28:56
>>295 調べたらOLE DB .NETでした・・・(しかも自分は294だしorz)
これでもやり方は変わらないのかしら?
>298 ちょいまて、295は俺だ。 てか、どのDataProvider使ってるかくらいは把握しといたほうが・・・。 ODP.NETじゃなく、.NET Framework Data Provider for Oracleだったとしたら MSDNにPL/SQL表は使えないと書いてある。 使いたければMSDAORAと共に.NET Framework Data Provider for OLE DB使えってさ。
>>300 いや、Oracleが出してるやつじゃないと無理だと思う。
303 :
294 :2005/08/25(木) 16:58:17
>>295 、302
返事遅れましたが、とりあえず何とかなりそうです。
感謝感謝。
304 :
デフォルトの名無しさん :2005/08/25(木) 17:05:18
vb.netでoracleのあるテーブルからデータを取得し、 そのデータを新規で作成したmdbに登録したいのですが。 そのようなことは可能でしょうか? よろしくお願いいたします。
そのようなことは可能です。 よろしくお願いいたします。
306 :
デフォルトの名無しさん :2005/08/25(木) 17:30:36
超初心者です。 PUBLIC:COMPONENT で始まるのってなんですか?
307 :
デフォルトの名無しさん :2005/08/25(木) 17:42:45
vb.netでプロセス間通信の質問です。 現在WIN XP上でvb.net(単品)の環境。 プロセス間通信を行いたいのですが、ファイルマッピング、パイプ、メールスロットなどなどことごとく失敗します。 今は名前付きパイプに絞っているのですが、パイプをクリエイトしてもハンドルが返ってこないのです。 下記のように単純化したプログラムでもNGです。 宣言部に Public Structure SECURITY_ATTRIBUTES Public nLength As Integer Public lpSecurityDescriptor As Integer Public bInheritHandle As Integer End Structure Declare Auto Function CreateNamedPipe Lib "kernel32.dll" Alias "CreateNamedPipeA" ( _ ByVal lpName As String, _ ByVal dwOpenMode As Integer, _ ByVal dwPipeMode As Integer, _ ByVal nMaxInstances As Integer, _ ByVal nOutBufferSize As Integer, _ ByVal nInBufferSize As Integer, _ ByVal nDefaultTimeOut As Integer, _ ByRef lpSecurityAttributes As SECURITY_ATTRIBUTES _ ) As Integer ボタンクリックで hpipe = CreateNamedPipe("\\.\pipe\test", &H3, &H80000000, 255, 1024, 1024, 5000, Nothing) これでhpipeに「-1」しか返ってきません。正常に行うにはどうすればいいのでしょうか? よろしくお願いします。
>>307 Declare構文のAutoが解釈間違ってるよ。
Autoを指定する場合、プラットフォームに従ってStringをAnsiかUnicodeにマーシャリングする。
つまりNT系ならUnicodeで関数に渡される。
ところが実際に呼ぶ関数をAliasでCreateNamedPipeAとAnsi版を呼んじゃっている。
Ansi版は与えられたバイト列を当然Ansiとして解釈するから、&h00がすぐに見つかってしまって使用不能の文字列になってしまう。
解決法は
・Autoの代わりにAnsiを使う
・AliasをCreateNamedPipeにする(プラットフォームによって呼ばれる関数が実行時に切り替わる)
・Aliasを指定しない(プラットフォームによって呼ばれる関数が実行時に切り替わる)
それから、最後のパラメータSECURITY_ATTRIBUTEも。
ByRefは参照渡しなのは分かるよね。
Nothingは、構造体(Structure)の場合全てのフィールドが0のインスタンスを表す。
だからNothingと言いつつ実際にはnullではなく、結果として関数に新しく作られた構造体インスタンスのアドレスが渡ってしまってるわけ。
こういう場合、パラメータを
ByVal securityAttribute As System.IntPtr
と宣言して、IntPtr.Zeroを渡すのが良い。これはC/C++においてNULLポインタを渡すことと同義の行為。
あと、ハンドルの類はInteger(System.Int32)よりもSystem.IntPtrで宣言した方が良いよー。
309 :
デフォルトの名無しさん :2005/08/26(金) 00:21:18
>>308 レスサンクス
いやぁ、いろいろ見直すべきところが多くてお恥ずかしい。
破れかぶれでいろいろ変えてみて、元に戻し忘れてたところとかもあるし。
明日、早速試してみます。
ありがとうございます。
ソートツールを作りたいので可逆ソートがしたいです。 自分としてはBlockSortingがしたいです。 アルゴリズムは分かるのですが、実装方法がいまいちわかりません。
アルゴリズムが分かるならあとはそのまま実装するだけじゃないか
312 :
310 :2005/08/26(金) 03:49:31
実装がC++ではできますがVB.NETではなぜか出来ません。
VisualStudio.NET2003 を手に入れて、 VB.NET でちょっとした GUI ソフトを作りますた それを別の PC で起動しようとしたら、何やらが見つからないといって動きません 要するに .NET Framework をインスコしないと動かないということだと思っておりまつ おいらの PC ではないので、できればインスコしないで動けばありがたいのでつが、 何か方法はありまつか? そもそも、VB.NET の GUI ソフトで .NET Framework を入れなくても動くものは作れまつか?
無理 入れろ
最近VBを使うようになって、クリック連打するソフトを作りたいと思ったのですが マウスクリックをする命令が見つかりません。 どうやったらできますか?
画面上の好きなところをクリックしたいというのならWin32API。 SendInput関数かmouse_event関数。
ありがとうございます。 思ったより大変そうだけどがんばってみます。
かなり、初歩的な質問だと思うのですが、 変数を宣言した時にクラス名の後ろの() を記入しても消えてしまうのですが、なせなんでしょうか? たとえば、、、 dim A as new frmLogon() が dim A as new frmLogon になってしまうのですが。 何が原因なのでしょうか?
配列宣言したいのか?
>>320 いや別に配列宣言とは関係ないだろ。
引数無しのコンストラクタメソッド呼出を明示してるだけで。
C#とかだと必須だからなー。
//メソッドの括弧と配列の括弧が同じなのはややこしい……。
>>319 まあVBからのクセなのであまり気にしない。
>>321 ありがとうございます。
括弧はあってもなくても動きは変わらないと考えてよろしいのでしょうか?
Formデザイナに関する質問なんですが、TabPageコントロールを使っていると、 最初のタブページ以外のタブページ内のコントロールをデザインしていると マウスポインタが各タブページのクライアント領域から外に出られなくなったり、 Formデザイナのコンテクストメニューが「コードの表示」以外の項目が 全部無効になったりする症状が出て困っています。 これって何か解決法ご存知ないでしょうか? # どうもこの症状は環境依存というか、どの環境でも再現するわけではないみたいですね。
RAM少ないんじゃない?
325 :
さとみん。 :2005/08/28(日) 14:16:48
VB6.0のツールバーのプロパティーにはHotTracking(?)があったのですが、VB.NETではなくなってし まいま したよね?ボタンの外観を変更できるプロパティーです。 ツリーノードのプロパティーには、HotTrackingが設けられています。 ツールバー上のアイコンにマウスポインタが配置された時、ボタンの外観を変更する方法はありませ んか? 分かりにくい説明で申し訳ありませんが、お願いいたします。
test
>>325 いまいち質問が明示的じゃない気がする。
On Mouseでボタンの画像を変えたいってこと?
それはそういうコードを書くしかないよ。
ToolBar自体の機能としてはビルトインされてないから。
>>327 流せ。転載だから。
他でそれなりに詳しい解答貰ってるからして本人でもなかろうし。
329 :
デフォルトの名無しさん :2005/08/29(月) 10:12:57
vb.netの質問というよりvs.netの質問なのですが、 現在VS.NET2003のVB.NETを使っています。 .NET Frameworkのバージョンが1.0だったのですが、1.1の機能を使いたかったので 1.1のもろもろをダウンロードしてインストールしました。 しかし、VB.NETのヘルプにあるMicrosoft Development Environmentのバージョン情報にある .NET Frameworkのバージョンが1.0のままで当然1.1の機能も使えません。 1.0があるせいかとも思い1.0をアンインストールしてみましたが、バージョンは変わらず プログラムすることすらできなくなりました。 ただインストールするだけじゃだめなんでしょうか? それとも何か根本的な勘違いをしているのでしょうか?
うん。 2003じゃ.NET 1.1の開発しかできない。2003を入れたときに自動的に.NET 1.1がインストールされる。 逆に2002では.NET 1.0の開発しかできない。2002を入れたときに自動的に.NET 1.0がインストールされる。 あなたの環境は矛盾している=何らかの勘違いが存在している。
>>330 今パッケージをよく調べたら2002と書いてましたorz
何を勘違いしていたのかずっと2003だとばかり思ってました。
ということは.NET 1.1は使えないのですね。
ありがとうございます。
すみません、VBで作ったGUI上からコマンドシェルの結果って取得できますか? 単純に "ping 10.10.10.10" ってStringを与えて、結果を取得する方法があればご教授ください。
System.Diagnostics.Processクラス
334 :
デフォルトの名無しさん :2005/08/30(火) 11:36:00
「管理ツール」の「データソース(ODBC)」のシステムデータソースに登録したデータソースに、ADO.NETを使って、システムデータソースの名前でアクセスしたいのですが、どうしたらいいのでしょうか? ユーザーによってデータベースも異なります。 よって、データソースに名前でアクセスできるような方法をご存じないでしょうか? よろしくご教授願います。
335 :
デフォルトの名無しさん :2005/08/30(火) 16:28:53
VB6のコード画面で [CTRL] + [↑] で一つ上のプロシージャに移動できた はずなんですが、VB.NETで同様のことができるキー操作はないでしょうか?
336 :
デフォルトの名無しさん :2005/08/30(火) 18:21:28
質問です。 OS:win xp バージョン:VB.net です。よろしくお願いします。 ピクチャーボックスを一つ用意して、もう一つをコントロール配列でその上にかぶせます。 そしてコントロール配列のほうのピクチャーをシャッターとし、タイマーで管理して開閉させます。 手動で用意したほうのピクチャーにはイメージリストから当たりとはずれの2種類をランダムで 選んできます。そしてキーダウンを有効にさせて、シャッターがあいていて、かつ、ピクチャーが当たり の場合、tensuuを1足しこむ処理をしたいのですが、連打するとtensuuが何度も足しこまれてしまいます。 その・・・理由はわかっているのですが、どうすれば回避できるかがわかりません。 一回目に打鍵した直後にDo eventsで空ループを入れてみてもだめでした。 かといってスリープにすると他の処理まで止まってしまうと考えられるので試していません。 もう一つ考えたのは、打鍵した直後にフラグを立ててキーダウンを無効にし、そしてDo eventsで空ループを 適当にまわし、ループ終わった後にフラグを戻してキーダウンを有効に戻す。という方法ですが、 ちょっと今エラーが出てしまっています・・・。デバック中です。 でもなんかこう、ピンときません。よい解決方法をご教授いただけないでしょうか。 お願いします。
キーダウン>フラグ立てる>加点もろもろの処理>画像を変更するときにフラグおろす で何か問題でも? なんでDoEventsだのが出てくる?
質問です。 DirectPlayを使用したソフトを通信ソフト作ったのですが、DirectX 9.0c Runtimeだけをインストールしているユーザーだと、使用することが出来ません。 調べてみると、9.0a以降のバージョンでは、必要なファイルがインストールされない仕様に変更になっているようで、、、 ユーザー側で、別途「Managed DirectX」をインストールするか、SDKの方をインストールしてもらわないと使えないみたいな感じです。 セットアッププロジェクトでインストーラーを作成すれば、不足しているファイルもユーザー側の方にもインストールされるでしょうか?
340 :
デフォルトの名無しさん :2005/08/31(水) 23:33:17
基本的な質問ですまんです。 プロパティって、オーバーロードできないんでしょうか? Dim _number as Integer Property Number() As Interger (Get略) Set(ByVal Value As Integer) _number = Value End Set Set(ByVal Value As String) _number = Integer.Parse(Value) End Set End Property みたいなことをやりたいわけなんですが。 オーバーロードしたけりゃ、SetNumber()みたいなメソッドを作らないとダメ?
Overridable
ってオーバーロードか。 Integer型のNumberプロパティにStringを代入できちゃ拙いだろう。 引数付きプロパティの引数違いのオーバーロードならできるけど。
thanx. まあたしかに、class.Number = "774" なんてできたらマズそうですな。 素直にclass.SetNumber("774") みたいなメソッドにしときます。 (実際は単純な型変換だけじゃなくて、すこしロジックが入ります)
ASP.NETのResponse.FilesからHttpPostedFileを For Each文を使って取り出したいんですが キャストが有効でないといわれてしまいます 解決方法ってありますか?
VBコード内に記述するSQLについては。。。。 やっぱ、ここではなくてSQLスレだよね?
346 :
デフォルトの名無しさん :2005/09/02(金) 00:15:30
XP端末でVB.NETのアプリを起動したところ、例外が発生し悩んでいます。 ShowDialogで下記のようにフォームを表示しています。 フォームA→フォームB→フォームC フォームC表示時にEnterキーを押下すると System.InvalidOperationExceptionが発生します。 例外の内容としては、フォームC表示時にも関わらず、 フォームA内のフォームB起動ボタンがクリックされたイベントが発生し、 フォームBは表示済みなのに再度表示しようとしたために例外が発生した、というものでした。 しかし、ShowDialogで他の画面を表示しているのに フォームAでイベントを拾うっていうのは本来ありえないはず、ですよね? それが起きちゃうってことは、コーディングが間違ってるんですよね・・・ コーディング以外の要因でありがちな問題ってあるでしょうか。 あまりにもわからないので 「まさかFramework自体がバグッテルのでは?」なんてあるわけないことを疑うようにまでなってます・・・
>>346 もうすこし他人が読んで意味わかるような文章書かないと
誰も助言のしようがないよ。
とりあえず意味が読み取れる範囲で応答すると、
フォームBのボタンクリックのイベントハンドラでモーダルなフォームCを表示しているのなら、
フォームCでキャッチされてない例外が発生すれば、例外はフォームBのボタンクリックの
イベントハンドラまで遡ってくるんじゃないの?
>>344 For Each文を使わない。
1個1個取り出せ。
>>345 対象DBサーバ。データベース名、テーブル名、カラム名、型、制約
OS、.net frameworkのバージョンなどの中で必要最小限のものを
全部書くならこのスレで質問しても問題はない。
返答があるかはわからんが。
>>346 コードさらせ。例外メッセージ全部さらせ。
>>344 Request?AllKeysがあるぞ。
質問させてくだされ。 strSQL = "select " & _ " 伝票年月 as 入出庫年月," & _ " 得意先名称," & _ " 得意先コード," & _ " 部品番号," & _ " 部品色," & _ " 部品名" & _ " from " & _ " dbo.E_入出庫" & _ " where " & _ " 事業所 =" & data_factoryCD & " and " & _ " 伝票年月 =" & data_yymm & " and " & _ " 得意先コード = '" & costormerCode & "' and " & _ " 部品番号 = '" & data_partsnumber & "'" _ '" 部品色 = '" & data_partsColor & "'" If data_partsColor <> "" Then strSQL &= " and 部品色 = '" & data_partsColor & "'" End If (ここでブレーク) 今、TESTサーバーでテーブル作成して、そのテーブルからデータを読んでいます。 検索先テーブルにはselectの対象になる部品が存在しています。 EndIfにブレークポイントを設定。デバッグ開始〜ウオッチにて確認〜SQLに 条件式をコピー。 (次に続く)
SELECT 伝票年月 AS 入出庫年月, 得意先名称, 得意先コード, 部品番号, 部品色, 部品名 FROM E_入出庫 WHERE (事業所 = 8) AND (伝票年月 = 200504) AND (得意先コード = 'xxxxxx') AND (部品番号 = 'xxxxxxxxx') と、SQL(エンタープライズマネージャー)では指定した部品内容が表示される。 しかし、VBの実行結果では表示されない。 この検索項目内容に部品の色があります。 SQL文で示す様に検索時、部品の色は絶対条件にしてません。色在り部品と無し部品在るからです。 色無部品を検索するとテーブル内にあるにもかかわらず検索されない。 色付の部品で実行するとVBの処理結果はOK。 これは何が原因と思われるでしょうか??? 実行環境 OS:W2K-sp4 VS.NET2003//VB.NET 69516-006-0172567-18781 Framework 1.1(1.0も一緒に入っています)
関連のある複数のテーブルのいっぺんに消す方法ないでしょうか? やりたいイメージはこんな感じです。 delete from (select * from a, b where a.id = b.id and a.last_date < '20050902') もちろんこんなSQLは実行できませんが・・・
>>348 トンクスコ
ググって見てもFor Eachでまわしてるサンプル見かけないので
出来ないようですね・・・
バグなのかなぁ・・・
>>352 CREATE TABLEの時にきちんとON DELETE CASCADEを設定してれば幸せになれるかも
>355 354さんの助言は、ALTER TABLEの時にも有効。 # M$ SQL Serverだよね?
>344 Private Sub Submit1_ServerClick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Submit1.ServerClick Dim hpf As HttpPostedFile Dim s As String For Each s In Page.Request.Files.AllKeys hpf = Page.Request.Files.Item(s) Console.WriteLine(s) Next End Sub Submitボタン配置サーバコントロール化 File Field配置サーバーコントロール化
>>350-351 よくわからんぞ。ウォッチで何を確認したんだ?
部品色がないときは空文字列なんだよな?nullじゃねぇよな?
data_なんとかは型はなんだ?String型か?
カラムの型はなんだ?さっぱりわからんぞ。
VBの実行結果では表示されない。ってどういうこった?
何に表示させてんだ?さーーーーーーっぱりわからんぞ。
とりあえずSQL文削って試せ。
>>352 ストアドトリガっちゅう手もあんぞ。ゴルァ!!!!!!!!!!!
複数行のインデントはどうやるのでしょうか? <編集>の行インデントがグレーアウトになって選べないのですが?
ツール→オプション→Basic→タブ インデント→スマート以外
×ツール→オプション→Basic→タブ ○ツール→オプション→テキストエディタ→Basic→タブ
>>362 できました。。
ありがとうございます。
364 :
デフォルトの名無しさん :2005/09/05(月) 02:12:51
質問です。 内容は、既に起動しているエクセルに対して,vb.netで作成したアプリケーションから セルに数値を記入するにはどうすればいいか、です。 やりたいことは、エクセルマクロ(VBA)からvb.netで作成したアプリケーションを呼び出し、 その処理結果を呼び出し元のエクセルのセルに書き込みたいのです。 今現在は、参照の追加でExcelObjectLibraryを追加し、 Dim xlApp As New Excel.Application ・・・ な感じで指定しています。 問題は、エクセルファイルを指定するときに Dim xlBook As Excel.Workbook = xlBooks.Open(ファイル名) とやると、元々そのファイルが起動しているため、2重に起動してしまいます。 新たにopenせずに、既に起動しているファイルを指定してやるにはどう すればよいでしょうか? (元々そのエクセルのVBAから呼び出しているため、そのエクセルが起動していることは 保証されている) ちなみに起動していないエクセルのセルへのアクセスは成功しています。
366 :
デフォルトの名無しさん :2005/09/06(火) 14:33:26
タブコントロールを使ってプログラムを作っています。 選択されているタブによって処理内容を変えるようなプログラムです。 そのために、現在選択されているタブを取得するようなプロパティやメソッドがあれば知りたいのですが、どなたか、ご存じないですか? よろしくご教授願います。
ちょっとはTabControlのプロパティ&メソッドに目を通してみたのか?
RTFM
ΩΩ Ω
釣りだよな? ご存知もなにも、普通にやってれば気づくと思うんだが・・・。
372 :
デフォルトの名無しさん :2005/09/07(水) 14:03:42
タブコントロールを使ってプログラムを作っています。 選択されているタブによって処理内容を変えるようなプログラムです。 そのために、現在選択されているタブを取得するようなプロパティやメソッドがあれば知りたいのですが、どなたか、ご存じないですか? よろしくご教授願います。
373 :
デフォルトの名無しさん :2005/09/07(水) 16:24:25
初歩的な質問ですみません dir()で「ディレクトリ以外」って指定はどうするんでしょ? vbnormal+vbreadonlyとかやったら「readonlyなディレクトリ」も引っかかるんですけど…
System.IO名前空間、DirectoryクラスのGetFilesメソッド使ったら?
>>376 むう、やはりそれしかありませんか…
どもでした
デザイン時にマウスクリックでコントロールを移動できるように、 実行時でも、コントロールをマウスクリックで移動 ということは出来るのでしょうか。 実行時、iniファイル等から各画像の x,y を読み込み描画、 マウスで編集して、配置を保存、というようなことを目的としています。
381 :
デフォルトの名無しさん :2005/09/08(木) 19:43:52
超初心者です。質問です。XP HomeでVB.NET2003を使っています。
COMからMicrosoft Web Browserを追加し、
AxWebBrowser1.Navigate("
http://www.yahoo.co.jp ")
のようにしてForm起動時にWeb表示させています。
VB.NETの「開始」(F5)だとうまくいくのですが、
Releaseとしてビルドし、
\obj\Releaseにあるexeを起動させようとするとうまくいきません。
例外 'System.IO.FileNotFoundException' が WindowsApplication4.exe で発生しました。
とのエラーメッセージが出て、これをデバックしようとすると
'System.IO.FileNotFoundException' のハンドルされていない例外が WindowsApplication4.exe で発生しました。
追加情報 : ファイルまたはアセンブリ名 AxInterop.SHDocVw、またはその依存関係の 1 つが見つかりませんでした。
とのメッセージが出ます。
なにをどうすれば解決するのでしょうか。。。
よろしくお願いします<m(__)m>
\objじゃなくて\bin。 \objは中間ファイル用のディレクトリ。
383 :
長谷川友よ :2005/09/10(土) 11:04:04
ド・ラ・ルーブルの方法の3×3のプログラムが書けないんですが教えてもらえます? vb.net2003です
宿題は自分でやらにゃいかんよ。
初心者ですみません。 c++ でAVIファイルを開きたいのですが、さっぱりわかりません。 DirectShowあるいはVideo for Windowsを使うのでしょうか?
>>385 VBとC++の区別もできない馬鹿に何を言うことがあろうか
Windowsのソフトでフォルダーを選択するダイアログが出てくるやつありますよね。 あれはなんていう名前のコントールなんですか? それともVB.NETだと使えないの?
#include <stdio.h> #include <stdlib.h> main(){ int a[15][15],i,j,k,n; printf("奇数の魔方陣\nn = "); scanf("%d",&n);printf("\n"); if(n<0 || n>15 || n%2==0) { printf("1〜15の奇数やでぇ〜.\n"); exit(1); } i=0; j=n/2; a[i][j]=1; //手順1第1行中央列に1 for(k=2;k<=n*n;k++){ if(k%n==1) { i++; } //手順3真下に書く else if(i==0) { i=n-1; j++; } //手順41つ右の列の最下段 else if(j==n-1){ i--; j=0; } //手順51つ上の行の最左端 else { i--; j++; } //手順2次の数字を右斜め上 a[i][j]=k; } for(i=0;i<n;i++){ for(j=0;j<n;j++){ printf("%4d",a[i][j]); } printf("\n"); } printf("\n要素の和=%d\n",n*(n*n+1)/2); }
>>390 ありがとうございました。
メッセージが英語なのと初期フォルダーが一部しか選べないのがちょっと残念。
392 :
名無しさん@そうだ選挙に行こう :2005/09/11(日) 11:37:10
TreeViewの再表示で質問なのですが .Nodes.Clear()で全てのノードをクリアし、再度ノードを追加して再表示させている画面があります。 その時にクリアのアニメーション効果をなくす事はできないでしょうか? Windowsの画面のプロパティでアニメーションの効果をOFFにすればいいのですが、 インストールする全パソコンの設定を変更するわけにもいかず困っています。 表示する内容がDBのモニタ情報なので、再表示する前と後で情報が大きく変わってしまうこともあり、 部分的な再表示は難しいと考えています。 何か良い方法は無いでしょうか? よろしくお願いいたします。
質問です。 作ったDLLをEXEファイルと別の場所に置きたいんですけど、 コンパイルするときにその場所が決まってません。 実行したときにユーザーにパスを指定させる形にしたいんですけど、 そのDLLをEXEに関連づけるにはどうすればいいですか? パスを通そうと思ってProccess.Start("set path=c:\aaaa")とかやってみたら、 実行ファイルじゃないのでだめだと言われました。 いい方法があったら教えてください。
>>393 どぼんのサイトのどこかに
プラグインがどうたら解説したページがある。
メルマガの方だったかな。
探してくれ。
それかGACにインストールとかもあるか。
やったこたぁねぇからやってみて報告よろ。
>393 Path通すなら、 CMD /C "set path=c:\aaaa" を実行しては? 詳しくはCMDのヘルプを
ほー( ..)φメモメモ
398 :
デフォルトの名無しさん :2005/09/13(火) 13:27:12
質問です。 ASP.NETWebアプリケーションを作成しているのですが。 [モジュールにて以下のようにクラス変数をPublic変数を宣言しました。] Module AAA Public g_HHH As clsHoge1 End Module [ページクラスにて、いろいろ設定します。] g_HHH.iParam1 = 1 g_HHH.strParam2 = "ABC" : この状態にて、 Webサーバマシンに、異なるクライアントマシン2台から作成したページにアクセスします。 [マシンA] ページアクセス ↓ [マシンB] ページアクセス ↓ [マシンA] 同じページにポストバックすると、マシンBで設定した値がg_HHHに入ってしまっています。 [マシンA]のアクセスと、[マシンB]のアクセスで、Module内のPublic変数をそれぞれ別々に持つことってできないんですか?
DateTimePickerコントロールで、カレンダーを表示させるメソッドは無いでしょうか?
そして9x系で例外
そもそも.NETではPATHとは無関係にアセンブリを探索するんだが。
デバック時にフォームの起動位置を画面右上にしたいのですが、 どうすればよろしいのでしょうか?
#IF DEBUG Me.StartPosition = FormStartPosition.Manual Me.Location = New Point(任意の位置) #ENDIF
405 :
デフォルトの名無しさん :2005/09/14(水) 12:01:05
DefaultValueでEnumを指定したいのですが <DefaultValue(GetType(enmAAA), "2")> とかにするしかないのでしょうか? "2"がちょっといやなのですが・・・
何故2? 普通にメンバ名書けば良いんだが。 GetType(Keys), "F10" とか。
407 :
405 :2005/09/14(水) 13:12:41
>406 出来ました。 もう一点。 リセットができません。 Reset<Property>の実装は呼ばれないみたいです。
409 :
405 :2005/09/14(水) 16:21:36
>408 Enumだと ResetPropertyName メソッドと ShouldSerializePropertyName メソッド が呼ばれないみたいなんですよ・・・
呼ばれてるよ。 DefaultValue属性消せば。
411 :
デフォルトの名無しさん :2005/09/14(水) 16:45:50
>410 ダメです。呼ばれません。 コードがダメなのでしょうか? Public Shadows Property HighlightText() As GrapeCity.Win.Input.HighlightText Get Return MyBase.HighlightText End Get Set(ByVal Value As GrapeCity.Win.Input.HighlightText) MyBase.HighlightText = Value End Set End Property Public Function ShouldSerializeHighlightText() As Boolean Return Not MyBase.HighlightText.Equals(_DefaultHighlightText) End Function
ん〜、どうやら基底クラスのプロパティをShadowsで隠蔽した場合、 ShouldSerialize/Resetは基底クラスのが優先されちゃうようだねぇ。 逃げ方としては、ShadowsしたプロパティをBrowsable(False)で修飾して見せなくした上で、 似た名前のプロパティを作ってそっちでShouldSerialize/Resetを実装する、くらいかなぁ……。
413 :
405 :2005/09/14(水) 18:17:04
>412 なるほど・・・ やっぱ別プロパティにしないとダメですね。 ありがとうございました。
VB6のファイルアクセス(ランダムアクセスとバイナリアクセス)に相当する機能って クラスライブラリにはないでしょうかね? 具体例でいうと、例えばSingle型の配列を逐次ファイルに追記したり、 そうして作成したファイルをSingle型の配列に一挙に変換したり、 任意の位置のSingle型のデータにアクセスしたり、といった処理が 実現できるクラスはないだろうかということです。 いや、互換性ライブラリにVB6と互換性のある関数があるのは知っていますが できればクラスライブラリの方を使いたいので。
System.IO名前空間下のクラスを舐めるように見ていったら?
416 :
932 :2005/09/15(木) 06:04:44
>>396 レスを貰っていることに気がつきませんでした。ごめんなさい。
BeginUpdate/EndUpdateで目的のことが出来ました!
ありがとうございます。
>>414 ハァ?テンプレ読めないのか?
メクラなのか?池沼なのか?
どちらにしても君にはプログラム無理だから^^
施設に帰りなさい。ね?
418 :
414 :2005/09/15(木) 12:23:41
>>415 舐めるように見ましたが、該当するクラスは見当たらないようですが。
ご自分が見てないんじゃないの?ひょっとして。
>>417 なんだコイツは。
探し方が下手かクラス名を見ただけか探してないかのどれかだ。
420 :
414 :2005/09/15(木) 12:40:49
>>419 口調が偉そうな奴ってどうして例外なく無能なんだろう。
へえ〜、そうなんだ。
じゃあ試しに次のコードを例示してみてもらえますか?
いや、できないなら無理することないですけどね。
■ Single型の配列を引数にとって既存のバイナリファイルに追記するメソッド
■ バイナリファイルのファイル名を引数にとって、それをSingle型の一次配列に
変換したものを返すメソッド。
ライブラリを探せもしない低能は煽りも下手らしい
>>414 聞いてる立場なら煽るんじゃなくて無視しろよ
答える気、無くすな・・・
423 :
デフォルトの名無しさん :2005/09/15(木) 18:21:46
>420 煽ってサンプル作らそうってんだなw
424 :
デフォルトの名無しさん :2005/09/15(木) 19:10:44
デバッグ時に保存しちゃうけどこれってやめれんですか? 職場のが保存しないもんで つい閉じちゃって戻りたくてももどれないときあるですけど どこで設定できるかわかならいです
>>420 お前のようなクズを性帝様が放っておくわけないよ?
ListViewのSubItemsにセットした文字列の260文字目以降が表示されません。 どなたか、回避方法を知っている方教えてください。 下記にサンプルをつけておきます。 Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load ListView1.View = View.Details ListView1.Columns.Add("test1", 200, HorizontalAlignment.Left) ListView1.Columns.Add("test2", 4000, HorizontalAlignment.Left) Dim item As New ListViewItem("aaa") Dim buf As String For ii As Integer = 0 To 257 buf &= "あ" Next buf &= "END" item.SubItems.Add(buf) ListView1.Items.Add(item) End Sub
428 :
426 :2005/09/16(金) 00:10:28
そうですか・・・仕様ですか。 ログとか(日付、区分、内容みたいな奴)を表示するのに手軽なコントロールだったんですけどね どうしよう・・・ >> 427 とりあえず、納得しました。ありがとうございます。
ListView本来の使い方をすればいいだけじゃないの? っていうか、カラムにそんな長文表示するってそもそもBad Designにも程があるような。 ListViewはアイテムを選択させる用途に徹して、選択したアイテムの詳細は 別途テキストボックスなりラベルなりで表示するようにするんじゃない普通は。
>>424 [ツール]→[オプション]→[環境]→[プロジェクトおよびソリューション]→ビルド/実行オプション
431 :
デフォルトの名無しさん :2005/09/16(金) 12:06:55
十進型より桁数の大きい数値を使って計算をしたいのですが 何かいい方法はありますか?
433 :
デフォルトの名無しさん :2005/09/16(金) 13:08:18
Direct3Dで3Dのモデルをフォームに表示したいと思っています。 当方、VisualStudio.NET(2003じゃない)を持っており、DirectX9をインストールしました。 VisualStudio.NETで、(できればVBで) DirectXインストールから、マウスドラッグで簡単な3Dモデルが動かせるようなプログラムを 書くまでを解説してるようなサイトってないでしょうか?
本屋に行けば売ってるじゃん
>>432 参考になりました。
ありがとうございます。
すいませんが、以下の質問があるのですが、教えてください。 ・動的にSQLの変更が可能か? ・出力プリンタは、クライアントのプリンタを使用して出力が可能か? ・プレビュー出力は可能か?また、その方法は? ・VB.NETよりクリスタルレポートファイルを呼び出すコード記述例 複数の質問すいません。
まあまずどういう構成を考えているのかからだな ASP.NETなのかそうでないのかすらわからんし
・可能 ・逆にサーバのプリンタに出すほうが・・・。 下の2つはお試し版ダウンロードして試せば?クリスタルレポートはお試しあるのか知らんが。 ActiveReportならば、3番目も出来る(Webでも)、サンプルは製品についてくるからそれ見れば?
439 :
436 :2005/09/16(金) 19:17:00
ありがとうございます。試してみます
440 :
デフォルトの名無しさん :2005/09/16(金) 19:19:19
uをtext1に入力するとtext2に坪数がでるプログラムをつくりたいのですが、流れを教えてくれませんか? 坪数=u*0.303です
Double.Parseして乗算してToString
テキストボックスで、AutoScrollPositionのようにスクロールの位置を取得したいのですが、どうすればよいでしょうか?
>>442 EM_GETFIRSTVISIBLELINEを使えば行番号で取得できるな。
すまぬの。
「グーグルをつぶす」--S・バルマー、幹部の転職に激怒
「話の途中で、 Ballmer氏は『まさかGoogleではないだろうね』と口にした」とLucovoskyは述べ、
それに対し同氏はGoogleに転職することを伝えたという。
「Ballmer氏はそのとき、椅子を手に取り部屋の反対側に向けて投げつけた。
椅子はそこにあったテーブルに当たった」(Lucovosky)。
Ballmerはその後、 GoogleのCEO、Eric Schmidtを激しく非難し始めたという。
「あいつを業界から葬ってやる。その程度のことは前にもやったことがある。
何度でもやってやる。Googleを抹殺してやる」
http://www.japan.cnet.com/news/biz/story/0,2000050156,20086932,00.htm
戦場は中国なのにMSに何が出来るんだろうね
449 :
424 :2005/09/19(月) 09:54:48
>>430 たすかりますた
ありがとう遅レスすいません
450 :
デフォルトの名無しさん :2005/09/19(月) 21:16:39
会社でVB.NETのを使って開発予定なんですが、 自宅で練習したい場合はどうすればよいですか??
VS2005β
452 :
デフォルトの名無しさん :2005/09/19(月) 21:37:18
これっていつまで使うことができますでしょうか??
かなり初歩的な質問です。 今、vb.netの勉強をしているのですが、 msgbox("test") messagebox("test") これはどう使い分けるのでしょうか? 私には同じ動きをしているように見えるのですが?
>>454 MsgBoxはVB6.0までのMsgBox関数との互換性のために残されたレガシ関数。
与えられた値を内部で整理してSystem.Windows.Forms.MessageBox.Showを呼び出している。
System.Windows.Forms.MessageBox.Showは親ウィンドウを明示的に指定するオーバーロードがあるのが利点だな。利点を使うことはまず無いが。
>>456 ありがとうございます。
今後はMessageBoxを使っていきます。
458 :
デフォルトの名無しさん :2005/09/20(火) 23:53:39
WinFormにて、メッセージボックスから、呼び出し元に戻ってきた時の イベントはどうすればとれるのでしょうか? Enterは発生しませんよね??
MessageBoxなら閉じられるまでメソッドの流れはそこで止まるんだからイベントとか別に必要なくね? なんでそう言う機能が欲しいと思った?
460 :
デフォルトの名無しさん :2005/09/21(水) 00:02:50
アクティブな項目の背景色を制御したいんです。 テキストボックスにフォーカスがある状態でメッセージボックスを出すと ロストイベントは発生するのですが、 メッセージボックスが消えてもフォーカスイベントが発生しないため、 色が戻らず悲しいことになってます・・
メッセージボックスは別ウィンドウなわけで、 それが表示されたからってアクティブな項目が変わるわけでも無し、 背景色を変える必要はないと思うが……。
よくわからんけど、どうしてもイベント発生したければ、 MessageBox.Show()のラッパーメソッドを作って、 最後に自力でイベント投げればいいんじゃ?
463 :
デフォルトの名無しさん :2005/09/21(水) 11:11:04
System.ExecutionEngineExceptionの例外エラーは、なにが原因ででるんでしょうか? .NET始めて、1週間。こんなエラーに困ってます。
どんな状況で出るのか、どんなコードで出るのか分からないのに答えようもないって。
465 :
デフォルトの名無しさん :2005/09/21(水) 12:02:18
下記のような.NETコードがあったとします。ComDll.dllに構造体を渡そうとしているのですが、 どうやら、下記のGetStatusの部分でSystem.ExecutionEngineExceptionがでるようです。 Public Declare Function GetControl Lib "ComDll" (ByVal hDev As Integer, ByVal CtlCode As Integer, ByRef SData As Integer, _ ByVal SDataNum As Integer, ByRef pStatus As GETSTATUS, ByVal RDataNum As Integer) As Integer Public Function GetStatus(ByVal hDev As Integer, ByRef pStatus As GETSTATUS) As Integer GetStatus = GetControl(hDev, CTRL_GET_STATUS, VariantType.Null, 0, pStatus, Len(pStatus)) End Function
まださっぱり情報が足りないが、取りあえず.NETの再インストールでもすれば? 引数や構造体のサイズの不整合っぽい気がするが……。 あとLen関数じゃなくてSystem.Runtime.InteropServices名前空間MarshalクラスのSizeOfメソッドを使うのが吉。
467 :
デフォルトの名無しさん :2005/09/21(水) 12:40:10
情報不足ですみません。なにを書いたらいいのかわからなくて・・・。 下記のコードは、GETSTATUSのストラクチャの宣言の部分。VB6.0ならば、Type ですよね。 Public Structure GETSTATUS . . <VBFixedArray(3, MAX_NUM - 1)> Dim AdditionalFlag(,) As Short . . Pub Sub Initialize() ReDim AdditionalFlag(3, MAX_NUM-1) End Sub End Structure そして、GetStatusファンクションが呼ばれた場合、上でDefineしたものがすべて Updateされるという役割をComDll.dllはしているわけですが、まだまだですみません。
ん、VBFixedArray属性使っても、アンマネージドとデータを相互変換するマーシャラは理解できない。 System.Runtime.InteropServices.MarshalAs属性を使って、(Cスタイルの配列なら)UnmanagedType.ByValArray(とSizeConstフィールド)を使わないといけない。 で、こいつは多次元配列は扱えないので一次元配列に開く必要がある。
469 :
デフォルトの名無しさん :2005/09/21(水) 13:07:26
返答ありがとうございます。 >System.Runtime.InteropServices.MarshalAs属性を使って、(Cスタイルの配列なら)UnmanagedType.ByValArray(とSizeConstフィールド)を使わないといけない。 VB6.0で作られた既存のプログラムを、Upgrade wizardを使って、.NETに変換しようとしているのですが、その場合でも、UnmanagedType.ByValArrayを使うべきでしょうか?
当たり前だ。Update Wizardは到底完全じゃない。 しかしまあ案の定Update Wizardか。典型的バグの元だ。
471 :
デフォルトの名無しさん :2005/09/21(水) 13:19:40
わかりました! 試してみます。ありがとうございました。
vb.netを勉強しているところなのですが、このようなエラーが出てきてしまいます。 エラーの意味自体があまりわかってないのですが、対処法を教えていただけないでしょうか? 宜しくお願いいたします。 'System.Data.SqlClient.SqlException' のハンドルされていない例外が system.data.dll で発生しました。 追加情報 : システム エラーです。 コードはこのような感じなんですが。 dr2 = cmd.ExecuteReader()で止まっています。 Private Sub frmA_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim cmd As SqlClient.SqlCommand = SqlConnection1.CreateCommand() Dim dr2 As SqlClient.SqlDataReader 'コマンドのコネクション設定 cmd.Connection = SqlConnection1 'コネクションを開く SqlConnection1.Open() 'コマンドの定義 cmd.CommandText = "SELECT a, b FROM c " 'データリーダーからのデータの読み出し dr2 = cmd.ExecuteReader() ''データリーダーを閉じる 'dr2.Close() End Sub
>472 そこまで分かっているなら、トラップしてSQLExceptionのMessageを 読むことだな。
>>473 レスありがとうございます。
>>、トラップしてSQLExceptionのMessageを読むことだな。
このご回答の意味がいまいち、わからないのですが、
なにか書き加えなければ駄目ということなのでしょうか?
>>474 解決しました。
例外を作って見てみたところ、SQLServerのユーザーに問題があったようです。
ありがとうございました。
476 :
デフォルトの名無しさん :2005/09/22(木) 22:19:55
関数ヘッダって皆さんどんなの使ってます。 関数を宣言部分だけ表示したとき、コメントが一行分表示かのうじゃないですか。 いいのありませんか?
今さらな内容で悪いのですが質問です。 WebBrowserコントロールでNavigateする際に、 WebResponseやらで通信した際に使ったCookieをつけてリクエストしたい。 つまるところ、WebBrowserコントロールで任意のクッキーつける方法が知りたいです。 ご存じの方おられましたらご伝授よろしくお願いします。
ん〜、Win32APIのInternetSetCookieを使うしかないんじゃない?
479 :
477 :2005/09/23(金) 23:36:45
>>478 GetResponsした戻り値のHttpWebResponseであるresについて、
Cookie = res.Cookies(0).Value()
で値を取得(名前は既知なので要らなかった)し、
Call InternetSetCookie("
http:// 〜〜〜/", クッキー名, Cookie)
としてexpires指定は無しで(つまりオンメモリクッキーとして)記憶させて、
WebBrowserControle.Navigate2("
http:// 〜〜〜/")
これで(擬似的実装ではあるが)なんとか望み通りの動作をさせることができました。
どうもありがとうございました。
すんません listboxのD&DのサンプルはあるけれどlistviewのD&Dのサンプルが 見つかりません どうやればいいのでしょう
481 :
デフォルトの名無しさん :2005/09/24(土) 07:47:58
何かのボタンを押せば、新しいウィンドウが開く操作が、 4冊本買って、どれにも載ってませんでした。 優しい人、教えてください。 別のウィンドウが開いたときの、変数の扱いもお願いします。
482 :
デフォルトの名無しさん :2005/09/24(土) 11:55:52
新しいウィンドウって新しいフォームのこと?
483 :
デフォルトの名無しさん :2005/09/24(土) 12:54:06
>482 そうです。初心者なので。。。 表現がおかしかったら、ごめんなさい。
まあ本書く人もあらゆる状況を想定してフォローしていくわけにも行かないよな
買ったけど読んでないだけでしょ。 正直、その程度の気力もないならプログラミングの舞台から退場すべきだよ。 プログラミングが、比較的能力の低い人間でもできるお手軽なものだった時代は もうとっくに過ぎているんだから。
486 :
デフォルトの名無しさん :2005/09/24(土) 15:16:37
FormA.show で開く
487 :
デフォルトの名無しさん :2005/09/24(土) 16:09:09
書き込んだら、調べなきゃいけない気分に捕らわれて、 なんとかできました。 みなさん、ありがとうございました。 ちなみに、本には載ってなかったです。
Dim frm2 as Form = New Form2だと調子悪くて Dim frm2 as New Form2だとちゃんと動作するのはなぜだろう
調子悪いって(w
490 :
デフォルトの名無しさん :2005/09/25(日) 23:10:01
MainMenuの項目を動的生成したい。 項目を追加するのは普通にAddすりゃいいのでできるんですが、 そのAddで作った項目がクリックされた時の判定方法がわからない・・・。 デザイン時に作ってある項目のようにClickイベントをあらかじめ用意することはできないし・・・。 どーやってクリックイベントを捉えればいいのでしょうか。
AddHandler メニューアイテム.Click, AddressOf メソッド
っていうか、せっかくC#じゃなくVB.NET使うならもっと手を抜いて簡単にできるよ。 まずMenuItemをWithEvents付きでフィールドとして宣言する。 そんでそいつを必要なときにMainMenuのItemsに追加/削除すればいいだけ。 っていうか、本当にメニューを動的に生成なんてする必要があるかどうか 一度よく考えたほうがいいと思うけどね。 単にVisibleをいじるだけでもいいんじゃないの?
494 :
490 :2005/09/26(月) 00:26:49
>>491 >>492 キーワードでぐぐってみたら多数ヒット。
なんというか初歩的なことだったようで情けないですが、
おかげで無事所望していた動作をさせることができました。
>>493 今回の場合「最近使ったファイル」的な機能の実装だったので、
動的に生成という仕様にしました。
みなさんどうもありがとうございました。
>>476 VBCommenter nDoc でグーグル様にお尋ねしてください。
ヘブンにいけますよ。
どうしてもわからないので質問させていただきます。 AddRemoveProgramsIconにアイコンファイルを設定したのですが インストール後、アプリケーションの追加と削除の所のアイコンが フォルダになってしまいます。 どなたか解決法をご存知の方教えていただけませんか。
エスパーが必要だなw AddRemoveProgramsIconってデプロイメントプロジェクトのかなあ。 解決法って言ったって普通にやればそんな風にはならないけど。 問題のアイコンがインストール先にインストールされないようになってるとかかなあ。
質問です。 構造体を使用すると、メモリを大量に消費するという話しを耳にしたんですが、構造体とクラス。 使用するならどちらを使ったほうが賢いのでしょうか?
>>498 入門書、ページを読むのが賢いと思う。
@ITのVB.net入門でもきちんと書かれてる。
値型と参照型の違いそのものだから。
それ聞いてどうすんのw
しかし、
>>498 みたいにMSDNなり解説書なり読めば解決するような類の問題を
他人に投げる人って最初から終わってると思う。
正直、俺が上司とか学校の先生だったらコイツは見込みがないと判断して切るね。
>>501 うわ、なにこいつ偉そう・・・(;^ω^)
2chねらが答えてくれることに意味があるですよ。 調べればわかるとかとは別次元の質問者の意図をくみ取れない人こそ天才ではありませんね
俺見込みねぇーーーーーーーw
ってーか、構造体もクラスもフィールドのサイズが
あんまり変わらんのであれば
>構造体を使用すると、メモリを大量に消費する
なんてこたぁないわけで。
となれば可能性としては二つ。
コピー時の動作の違いかスタック・ヒープのことかどっちか。
構造体の値渡しや代入ならば消費するメモリはその構造体の
分だけは少なくとも増える。
クラスの場合なら参照がコピーされるだけなんでたいして増えない。
という可能性と、
構造体の場合はスタックに取られる可能性がある。
クラスはヒープだけなはずだ。
となると>構造体を使用すると、メモリを大量に消費する
ってのはメモリはメモリでもスタック領域かもしれねぇ。
これなら間違っているわけじゃぁない。
大量に消費したからといってスタックを食いつぶすとは
到底思えんけどな。配列にしたらヒープにとられるしよ。
要は耳にした話の文脈がわからんのだから聞いただけだがや。
耳にした話がわかりゃぁそりゃちょっと違うとか指摘もできるがや。
>>498 ってなわけでや。
代入の時の違いがわかっとりゃぁええのや。サイズなんぞ普通は気にするな。
サイズなんぞ気にしてたら頭はげるぞ。
>>505 そんな理由で困ることなんてありえんと思うが。
>>504 その説明は元質問の回答になってないと思うよ。
そもそも、スタックとヒープの違いというか存在を理解してないから、ああいう質問なわけで。
だから入門書嫁っていう回答が出るわけで。
>>504 要約すると
私:「ファイルから読み込んだデータは構造体を使ってArryListでAddしてる」
相手:「それなら構造体よりクラスでやった方がいい。メモリの消費を抑えられるし、構造体の多用はメモリの消費が激しいから」
という感じです。
>>499 読んでみます。
>>501 お気遣いありがとうございます。
しかし心配はありません。
職場はプログラム系の仕事とはかけ離れており、通っていた学校もプログラムに関連するものではないので。
うん、相手は丸ごと勘違いしてるね。 あとデータによっては構造体でやるのは拙いかもね。
別にそんなに勘違いしてないんじゃないの? ArrayListに突っ込むとボクシングされちゃうわけだから。 クラスで同じことをした場合の二倍弱のメモリを食うはず。
まあオリジナルのデータを捨てちゃってもよければその限りじゃないけど。
変なIDでてるけど何?
病気
>>491 490じゃ無いけど便乗質問
クリックイベントは拾えたんだけど、じゃあどのアイテムクリックしたの?
てのはどうやればいいんでしょ
時と場合によるが、Indexつかったりとか、HashtableでMenuItemインスタンスと情報を関連づけて管理するとか。 MenuItemを派生させてTagプロパティを作って、そこに必要な情報を詰めるとか。 //.NET 2.0ではMenuItemにもTagが標準装備されるんだけど。
>>508 >>509 に同意。
'''''''''''''''''''''''''''''''''''
>>514 Object型senderをMenuItemにキャストすりゃいいんじゃね?
517 :
514 :2005/09/29(木) 00:02:18
518 :
496 :2005/09/29(木) 11:23:59
みなさんお疲れ様です。 >497 さん返事が大変遅れまして申し訳ありません。 アイコンなのですが、結局わからずじまいです・・・ 「すべてのユーザー」でインストールすれば、 アプリケーションの追加と削除にアイコンが出てくるのですが・・・ AddRemoveProgramsIconはデプロイメントプロジェクトのやつです。
519 :
デフォルトの名無しさん :2005/09/29(木) 11:42:52
DataTableクラスで、SELECTメソッドを2回続けて使うとどうなりますか? 両方の条件に合うレコードのみが残りますか? それとも、2回目の条件に合うレコードのみが残りますか? どうでしょうか? よろしくご教授願います。
自分で試せよ・・・。
521 :
デフォルトの名無しさん :2005/09/29(木) 14:29:57
>>520 動作を見る限り、2回目の条件に合うレコードのみが残っているように思えます。
それを確認したかったのです。
そもそもDataTable.SelectはDataTableそのものを変更するメソッドじゃないしな。
ですよね。 DataSetのDataViewの問題でしょ。この辺りの仕様をきちんと理解しないとDataSetつかっちゃだめだよ。 クライアントで絞るのが性能的に良いのか、仕様と適合してるかとか。 非接続型という部分の理解も必要。
524 :
デフォルトの名無しさん :2005/09/29(木) 16:23:40
>>522 >>523 目的は検索のみで、更新処理はしません。
DataViewの方が適してますでしょうか?
>>524 検索した結果のDataSetに対して、クライアント側で絞り込むのがFilterだったりSelectとかFind。
初期状態で絞りこんだほうが件数とかレスポンス考えてよさそうなら、DataAdapterのSQL文でしぼってしまうべき。
クライアントでちょこちょこ絞り込み条件を変えてやるならば、いちいちサーバに検索じゃあれだから、SelectなどでDataSet内で絞るべき。
VB.NETでFormに棒グラフを描画しています。 このフォーム上でマウスの動きに連動してマウスポインタを中心に十字線を描きたいのですが どうしたらよいか分かりません。 Mouse_Moveイベントの中にDrowで描くのは出来るのですが、直前の線が消えず動かすたびに描画 されてしまいます。 form.Invalidate() を呼び出せば直前の線も消える(線だけでなく全部)のですが、マウスを動かすたびに全画面が再描画 されるのでチラチラしてしまいます。 直前に描いた線だけを消す方法はどうしたらよいでしょうか? エロイ人教えてください。
マウスポインタを十字にするんじゃ駄目か? Me.Cursor = Cursors.Cross
528 :
526 :2005/09/29(木) 18:56:51
>527 レスありがとうです。 画面の端から端までの十字線を描きたいんです。 イメージとしては戦闘機の照準みたいな感じです。
530 :
526 :2005/09/29(木) 20:19:57
>529 レスありがとうです。 甘く考えてたけど、結構大変そうなんですね。 じっくり読んでみます。
531 :
デフォルトの名無しさん :2005/09/30(金) 01:20:50
はじめまして♪DDE通信をVB.NETでやろうとしているものですが、 みなさんのお知恵をお貸しください。 Ddeconnectの部分なのですが DdeConnect(m_ddeinst, hszServiceName, hszTopicName, Nothing)で 最後の引数にNothingを指定するとエラー値の0が返ります。これを 成功させたいのですが、Nothingではなく何を指定しなければいけないのでしょうか? 具体的に教えてもらえたらありがたいです。 他の部分は多分あっていると思います。違ってたら教えてください。 宜しくお願いします。
DDEを使いたいのならVB6使えと言うのがMicrosoftの方針だからー
533 :
デフォルトの名無しさん :2005/09/30(金) 01:58:12
VBではなくVBAでエクセルのオートシェイプを利用したアニメーションを作ったのですが 当然CPUのクロックの違いで再生速度に差が出てしまいました CPUのクロックを検出する事ってできないんですか? それができればクロックによって処理を分岐させる事ができるのですが・・・
VBAはスレ違い VBもスレ違い
535 :
デフォルトの名無しさん :2005/09/30(金) 02:23:41
>>533 APIで情報読み込めばいい。何かそのようなAPIがあるさ。
536 :
デフォルトの名無しさん :2005/09/30(金) 02:52:29
NullポインタはNothingじゃないだけでしょ? きちんとConvContext構造体を定義して渡してみるとか、VB6と同じで32ビットの0を渡すとか。
>>536 お前なんか偉そうだなー
聞く態度なってねーよ
540 :
デフォルトの名無しさん :2005/09/30(金) 11:12:16
>>531 , 536
ケロンキタ━━━━(゚∀゚)━━━━!!!!
いつ来るかと待ちわびていたよ。
相変わらずふてぶてしい態度でつね。
>>531 >>537 を敷衍すると、
まずDdeConnectのインポートのコードを晒した方がいいんじゃない?
ナルポはNothingじゃなくてIntPtr.Zeroだね。
542 :
デフォルトの名無しさん :2005/09/30(金) 14:19:58
>>541 さん、親切にありがとうございます。おっしゃる通りです。
構造体の宣言とインポートの部分はこんな感じになっていますが、
なにか構造体に間違いはございませんか?
Structure SECURITY_QUALITY_OF_SERVICE
Public Length As Integer
Public Impersonationlevel As Short
Public ContextTrackingMode As Short
Public EffectiveOnly As Integer
End Structure
Structure CONVCONTEXT
Public cb As Integer
Public wFlags As Integer
Public wCountryID As Integer
Public iCodePage As Integer
Public dwLangID As Integer
Public dwSecurity As Integer
Public qos As SECURITY_QUALITY_OF_SERVICE
End Structure
'DdeConnect宣言
Declare Function DdeConnect Lib "user32" Alias "DdeConnect" _
(ByVal idInst As Integer, ByVal hszService As Integer, ByVal hszTopic As Integer, ByVal pCC As CONVCONTEXT) As Integer
IntPtr.Zeroというのはどのようにどこに指定したらよいのでしょうか?
よろしくです♪
>>542 日本語も読めない。ためしもしない。最低だな。
すいません、ExcelのVBAについて質問したいんですが、スレが見つかりません。 どっかにあれば教えていただきたいので、ご存知の方よろしくおねがいします。
>>542 お前ほんと糞だな。
262 名前:山師さん [] 投稿日:2005/09/25(日) 10:44:18 ID:lZdxzg4r
>>260 そんなに簡単だというのなら
ETWrapperのソースを元にVB.NETに書き換えてみろ。
C#の時ほどは容易でないことに気がつくから。
まずCの知識がないVBユーザーには読むことがちょっと難しいわけよ。
これがVBで書かれているのなら多分容易だと思うのだが。
できたら俺にミシテネ♪
264 名前:山師さん[] 投稿日:2005/09/25(日) 10:59:07 ID:lZdxzg4r
友達がいなくて暇人キタ━━━━(゚∀゚)━━━━!!!!
267 名前:山師さん[] 投稿日:2005/09/25(日) 11:30:21 ID:lZdxzg4r
>>266 だからさ、簡単だとおもうならさぁ。実際にやってみろっつーの。
やってみたことがない人間が何言っても想像でしかないわけよ。
なんでも想像していたより難しいってことあんだろうが。
とりあえずやってみて俺に教えることをお勧めする。
547 :
デフォルトの名無しさん :2005/10/01(土) 14:13:57
、i`ヽ ,r‐'ァ `ヽ:: ::´ ヽ ヽ , -‐--、 / / ヽ \ I:::::::I_ _ / / ヽ ヽ i,(;;;ノI、;;;)l ,,/ , ' VB.NETフォーーーーーーーーー! ヽ ` ー 、.,,ゝ´ヮ`,ノュ_, - ' r' ` 、_ /::: `山'::::: / ヽ:::::::::::|::::::::"",r‐' 〉::::::::|::::::::::¨/ /;;;;;;;/;;;;;;;;;;/ /;;;;;;;/:::::::::::《 <;;;;;;;《:::::::::::::ヽ )) / ヽI,r''"""^~ヽ / ,/ ヽ ヽ
548 :
Hello! World :2005/10/01(土) 22:05:03
If regKey2 Is Microsoft.Win32.Registry.LocalMachine.OpenSubKey("SOFTWARE\test\Data\",false) then End If の実行をしたけど、ステートメントを指定してくださいとエラーが出ます。 エラーを回避したいんです。誰か教えて下さい。お願いします。
おやおやどこかで見た質問だね? マルチポスト君。
550 :
デフォルトの名無しさん :2005/10/02(日) 17:38:37
REGファイルの読み込みと書き出しを行うアプリを作りたいのですが、 REGファイルに関する技術文書かサンプルルーチンなどを教えていただけないでしょうか。
552 :
550 :2005/10/02(日) 18:40:30
>>551 ああ、助かりました。ありがとうございます。
直接書き込みのほうが何も考えなくていいのでコーディングはラクですが、今回はグループポリシーと
連携させたPC管理や設定の履歴管理を考えているので、REGファイルにしたいのです。
アプリ上で特権の取得とか考えなくていいし。
.NETなのは、単にそれしかないから。とはいってもこれが.NETではじめて作るツール。
PerlとVBAしか使ったことないのでVB.NETの勉強もかねてます。
INIファイルと同じという理解でよいのだろうか・・・
GetProfileStringとか使える?だけど一括で取得ができない、あたりで悩んでます。
どういうアプローチがいいんだろう。テキストとして馬鹿正直に取り込んで加工?
(´・ω・`)知らんがな
すみません、質問です ツールバーにドロップした時に、どのボタンにドロップされたか調べるには どうすればいいのでしょう
TB_HITTESTを使うのがベターだけど。 次善の策として、ButtonsをFor Eachで回して、 それぞれのToolBarButtonのRectangleにマウスの位置がContainsしているかどうか確認するとか。 e.X/e.Yはスクリーン座標だから、ToolBarオブジェクトのPointToClientメソッドを忘れずに。
556 :
554 :2005/10/04(火) 00:21:45
>>555 for eachでいけました
ありがとうございました
557 :
544 :2005/10/04(火) 13:35:05
VB.Netでファイルに1行出力するのに 普通はどんな関数を使用するのでしょうか? 現状WriteLineで出力しているのですが 文字列を出力した際に、 文字列の最初と最後に”が付加されてしまいます。 ”が付加されないようにしたいのですが、 なにかよい関数ないでしょうか?
まあ普通にStreamWriterのWriteLineだな。 ダブルクォーテーションが付くのは558が変なことしてるからだ。
>>559 558です
PrintLineでの出力したらうまくいったので
WriteLineは使用しないことにしました。
レスありがとうございました。
vb.netでsusieプラグイン使うのは可能でしょうか?(事前バインドでなくて動的に) どぼんだとinvoke.dllがあれば出来るとありましたが、コンパイル出来なかったのと 配布のこと考えるとちと無理かなと 他の方法があればいいのですが…
まっとうにVB.NETだけでアンマネージドをレイトバインディングするには.NET 2.0が必要だね。 Managed C++を使えるのならそれでラップしてやれば簡単に作れるけど。
563 :
561 :2005/10/05(水) 23:58:23
やっぱ無理すか… ついでにもう一つ質問 ホバーってホバーと見なす時間ってどこで指定するんでしょう つーか、本当はホバーじゃなくて、「マウスオーバーで選択はしないが 3秒間ポイントしたら実行」ってのがやりたいんだけど(リストビュー)
.NETの範囲内じゃ不可能だね。 Hoverの時間間隔を取得するのも.NET 2.0でようやく追加された。 //System.Windows.Forms名前空間SystemInformationクラスのMouseHoverTime静的プロパティ。取得のみ。 変更するのはWin32APIのTrackMouseEvent関数。とは言えこれの使い方は微妙かも。 それくらいなら、MouseMoveイベントとタイマを駆使すればなんとかなるかな?
565 :
デフォルトの名無しさん :2005/10/06(木) 00:49:29
質問させてください。 フォームの×や_ボタンを消して、 しかもフォームを動かせないようにするにはどのようにすればよいのでしょうか?
タイトルバーごと消して良いの? タイトルバーがあるのに動かせないのはユーザへの嫌がらせにしかならないけど。
>>565 Form.ControlBox=False
Load時にLocationの値を覚えておいて、
Moveイベントが発生するたびに、覚えていたLocation値に置き換える。
でいけるんじゃね。
568 :
デフォルトの名無しさん :2005/10/06(木) 10:15:37
.NETって、標準のグラフコンポーネントとかないですか? VB6.0のころはあったんですが、いくら調べても見つからないですよね。 クリレポについているみたいなんですけど、帳票じゃないやつではないですか? ご存知だったらお教えください。 よろしくお願いします。
>>565 ControlBox プロパティを False にするか、
Maximize, Minimize プロパティを False にします。
移動は、API の DeleteMenu で消してしまえば OK です。
VB.Netで以下のようなINIファイルのデータを タグ名のAAAAA、キーワードのbbで値の123が取得できる 関数とかありませんでしょうか? XXXX.ini ----- [AAAAA] bb=123
>>570 .NET Frameworkにはありません。
APIを使うかStreamReaderなんかで手動で読み取りましょう。
っていうか、XMLファイルを何故使わないんですか?
使いましょう!
>>571 APIを使うことにします。GetprivateProFileStringでしょうか。
教えていただきありがとうございました。
573 :
563 :2005/10/06(木) 21:50:32
>>564 mouseenterで大麻をイネーブル、mousemoveでディセーブル&イネーブルで
何とかなりました
つか、タイマのリセットってこれでやり方合ってるんでしょか?
ドキュメントには何も書いて無いのな。 まあちゃんと動いてるのならそれで良いでしょ。
エディタを自作するにはどうしたらいいですか? 改行マークやらを表示したいのです
VB.NetでOracle9iにDB接続、切断する方法を 教えて下さい、よろしくお願いします。 (OracleClient.OracleConnectionを使う?)
またぐぐれば数分のことを・・・。 ORACLE VB.net 入門でぐぐれば、本関係以外で最初に@ITが出てくる。
>>578 ぐぐってみました。
VB.NetでDB接続、切断するには
ODP.NETをインストールしないとダメなんですか?
もしくはした方がよいのですか?
何度もすいません。
>>579 つうか、その回答も@ITの別の記事で書かれてるはずだが。
OleDBとか選択肢あるから、必要条件を自分で決めて選択してくれ。
>>580 回答ありがとうございました。
(ODP.NETを選択しました。)
初歩的な質問ですみません SHELLでカレントを変えたい時は呼び出す前に自分のカレント変えて、 呼び出して、また戻して、ってやるしか無いのですか
いつまでもShellなんてレガシ使ってないで System.Diagnostics名前空間Processクラス使えという啓示。
かなり、初心者な質問なんですが、 これを2行にわける時は どう書けば、いいのでしょうか? Dim cmd As SqlClient.SqlCommand = SqlConnection1.CreateCommand()
>>584 Dim cmd As SqlClient.SqlCommand = _
SqlConnection1.CreateCommand()
>>585 レスありがとうございます。
質問の仕方がまずかったみたいです。
Dim cmd As SqlClient.SqlCommand = SqlConnection1.CreateCommand()
これを = で繋がないで2行に分けたいのですが、
Dim cmd As SqlClient.SqlCommand
cmd =
なんかこんな感じで書けないかなぁと思ったのですが。。
よろしくおねがいします。
587 :
デフォルトの名無しさん :2005/10/08(土) 15:12:15
Dim cmd As SqlClient.SqlCommand cmd = SqlConnection1.CreateCommand() じゃないの?え、ちがう?すまぬ。VB.NETはちょっとかじっただけ
>>586 VB.NETを使ったことの無い俺が言うのもアレだけど、
Dim cmd As SqlClient.SqlCommand
cmd = SqlConnection1.CreateCommand()
じゃダメなん?
変数とインスタンス(実体)の違いを理解できてないってことですね。 .netというかまあ基礎から勉強しましょう。
他フォームへの移動なのですが、 下記のような記述でよろしいのでしょうか? Dim frmC As FormC = New FormC If A = B then frmC.Show() Me.Hide() Else xxxxx End If
何をもって良しとするかも判らんのにどうしろと。 自分の思い通り動いてるならいいんじゃないんですか?
593 :
デフォルトの名無しさん :2005/10/09(日) 09:31:22
うちの猫をVBライクからC#ライクにしたいのですが どうしたらいいですか? VBから卒業させてやりたいんでちゅ
まずはカッコつけさせることだな。
595 :
デフォルトの名無しさん :2005/10/10(月) 00:07:00
コーディングの常識かもしれないんですが If chkVisible.Checked = True Then mblnVisible = True Else mblnVisible = False End If というコードを参考書で見るけれども mblnVisible = chkVisible.Checked では問題があるのでしょうか。 可読性の問題?
別に問題ないな。 私も後者の表記をするし。
私だと例えばそのIFブロックにもう1つ処理足したくなったときに下だと直しが面倒なので IFブロックは極力上の書き方してます
直しが面倒なのはイヤなのに初めて書くときに面倒なのは許容するのか 理解できんな
599 :
595 :2005/10/10(月) 09:26:23
上とはちょっと違うんだけど、以前外注したベンダは画面上のコントロールの値をわざわざ 変数に突っ込んで、 mblnVisible = chkVisible.Checked If mblnVisible = True Then 処理1 Else 処理2 End If という処理を書いていた。mblnVisibleを他で使うでもなく。 結構大手ベンダだったので、画面上のコントロールの値を直接つかわないとかなんとか、 俺のしらないコーディング作法があるのかなぁ、と思っていたりして。
>>599 そのフラグを使う回数によるけど。
オブジェクト参照のスピードと変数参照のスピードの違いがあるから。
ループの中で死ぬほどのそのフラグで分岐するならば、変数にコピーして使うべき。
601 :
595 :2005/10/10(月) 10:47:09
>>600 いや、それならわかるんだけど、使うのも一回だけ。
それも画面上の全コントロールの値を全部変数に代入してた。
単に駄目コーディングなのか・・・
603 :
デフォルトの名無しさん :2005/10/10(月) 11:08:23
hotmail用のメーラーを作りたいんですが、 どこか参考になるサイトをご存知の方がいらしたら 教えていただけないでしょうか?
どっちかってーと、
>>600 を考慮した結果何でもかんでもそれにしちゃえという安直な発想の元根付いてしまった習慣、かな。
いや、後の拡張など考えた場合は機械的にやるのもありだとは思う。 ただ、MVCがきちんと分離できてれば、そのチェックボックスを引っ張るなんてありえないけどね。
MVCなんて知らなくて良いから、各位仕様変更に耐えうるコードとは何かを考えてほしいす。 どのフォームがアクティブかでで引数決定したり、入力部品を計算処理から直接参照して計算とかカンベンシテクレと。 氏ね中国外注・・・
607 :
デフォルトの名無しさん :2005/10/10(月) 11:36:29
chkVisible.CheckedはmblnVisibleの1条件と見るべき、たまたま条件が1つだっただけ。 従って、mblnVisible = chkVisible.Checked は良くないな。
608 :
595 :2005/10/10(月) 11:41:55
んー、なんとなく了解しました。 まあ俺の作法が駄目ということではなさそうなので安心。 可読性と速度と保守性と一貫性を考慮してればいいよってことだよね。 MVC初めて知ったので、これから勉強。でもVB.netのユーザー入力部分だけ のコーディングにMVCもくそもないかw 分離できてるってことか。 相手してくれた方々、ありがとう。
>>608 例えば、ユーザー入力に対するチェックだって、きちんと分離しろ。
関数化して、I/Oをきちんとすること、そこから始まりだよ。
イベント関数はそれらを呼ぶだけにする。
言葉遣いが偉そうな奴ってなんで例外なく無能なんだろう。。 >例えば、ユーザー入力に対するチェックだって、きちんと分離しろ。 >関数化して、I/Oをきちんとすること、そこから始まりだよ。 >イベント関数はそれらを呼ぶだけにする。 もう馬鹿丸出し。そんなの程度問題でしょ。
>>606 それは設計規約、コーディング規約、設計書等の記述が甘いからです。
中国人プログラマー相手であればコーディングの1行がこうなると設計書の記述から100%読めない限りダメです。
その為ブリッジSEの単価は跳ね上がるのです。
SEで来てるんなら、そいつはSEじゃなくてPGだという事で単価交渉しろ
複数選択する時にマウスでドラッグして選択する場合がありますが、その時の「四角い枠で 選択中」ってイベントはどうやって知ればいいのでしょう つーか複数選択解除しただけで何でselecteditemchangeが選択してたアイテム数回 発生しやがるんでしょうね
614 :
613 :2005/10/10(月) 17:06:13
間違えました selectedindexchangedでした
MouseMoveでe.Buttonのチェックでもすれば?
ソース修正後に追加した覚えのない存在しないコントロール「_label4」など が参照できないためコンパイル不可に陥るのは、vb.netの仕様ですか?
617 :
613 :2005/10/10(月) 20:52:01
>>615 この間のイベント
mousemove
:
mousemove
mousedown
ドラッグ開始
selectecindexchanged
:
selectecindexchanged
ドラッグ終了
mouseup
mousemove
:
mousemove
ドラッグの間はmousemoveが発生しないし、mousedownの時点ではこれからドラッグ
するのか分からない、
要はselectecindexchangedが連続して発生しているものなら最初の1回以外無視
したいのです
必然性の良く分からない要求だなぁ……。 派生クラスを作る。 フラグを用意。 OnSelectedIndexChangedで、 ・フラグが立ってれば返る。 ・Control.MouseButtonsがMouseButtons.Noneでないのなら、フラグを立てて返る。 ・どちらでもないのなら基底クラスのOnSelectedIndexChangedを呼ぶ (SelectedIndexChangedイベントに登録されたハンドラを処理する)。 OnMouseUpで、 ・フラグが立ってれば、フラグをおろし、 必要ならOnSelectedIndexChangedを呼ぶことでSelectedIndexChangedを処理させる とかどう?
619 :
613 :2005/10/11(火) 00:11:46
ちょっと複雑に考えすぎてた 要はmousedownで右クリ、Ctrl、Shiftでスキップ用のフラグ立てるだけで良かった んでselectedindexchangedの中で処理回避してフラグ立てて、mouseupで解除する、と 要は、選択したファイルのサイズとか作成日とか表示してるのだけど、複数選択 してもどうせ最初の1つしか表示しないので、最初の1回しか表示ルーチンに 回さないようにしたかったってこと (実際チラチラして見辛かったし時間も僅かとは言え食ってたから)
620 :
デフォルトの名無しさん :2005/10/11(火) 04:20:25
文法エラー(青色の波状の下線)の場所にマウスカーソルをあてても、 何か設定を弄ったのか、エラー内容が出なくなりました。 「ツール」→「オプション」や、説明書を確認してみても分かりませんでした。 アホな質問ですみませんが、どこの設定を確認してみればいいのでしょうか。
ASP.net、VB.NETにてウェブアプリケーションを作製しています。 DataGridコントロールのテンプレート(TextBox)に配列の内容を表示したいのですが、 以下の様に書くとエラーがでてしまいます。 なにか方法があるのでしょうか。 <asp:DataGrid id="DataGrid1" runat="server" AutoGenerateColumns="False"> <Columns> <asp:TemplateColumn HeaderText="名前"> <ItemTemplate> <asp:TextBox id="TextBox1" runat="server"><%# Container.DataItem %></asp:TextBox> </ItemTemplate> </asp:TemplateColumn> </Columns> </asp:DataGrid> Public a() As String = {"あああああ", "いいいいい", "ううううう"} Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load DataGrid1.DataSource = a DataGrid1.DataBind() End Sub
取りあえずエラーの内容ぐらい書こうよ
623 :
621 :2005/10/11(火) 10:00:32
すいません。 以下のようなエラーが出ています。 例外の詳細: System.Web.HttpException: 'TextBox' に型 'DataBoundLiteralControl' の子を指定することはできません。 TextBoxのところをLabelに変更するとエラーもなく動きましたが、TextBoxだと動きません。
すいません。自己解決しました。 TextBox部分を以下のように変えたら動きました。 <asp:TextBox id="TextBox1" runat="server"><%# Container.DataItem %></asp:TextBox> ↓ <asp:TextBox Runat="server" Text="<%# Container.DataItem %>"></asp:TextBox>
625 :
デフォルトの名無しさん :2005/10/11(火) 16:51:08
Fromを最大化、最小化した際のWidth, Heightプロパティの値を取得すると、 最大、最小化時の値が取得されますが、 そのままの状態で、Normal時に戻したときのWidth,Heightの値を取得する方法はありますか? Form終了時に、Width,Heightの値を設定ファイルに記憶したいのですが、 最大、最小化時に終了した際に、最後の時点のNormal時の値を書き込みたいのです。 (次回起動時に反映させたい為)
ResizeイベントでWindowStateがNormalの時にフィールドに保存。
>>626 ありがとうございます。
やってみます。
628 :
デフォルトの名無しさん :2005/10/11(火) 23:35:18
構造体の初期化はどうやって行うのでしょうか? Constraction DATA dim A as integer dim B as string end Constraction dim tData as DATA Redim tDatata ←これもだめ Erase tData ←これもだめ 教えてください。
Structure
Dim dData As Data dData = New Data() 'むしろDim dData As Data = New Data() ところでConstractionってなんだ
wordのスペルチェック機能を vb.netで作ったテキストエディタで利用したいんだけど(もちろんwordが既にインストールされている状態 どうすればいいの?
ストラクチャでコンストラクタ書けばいいんでねーけ?
633 :
628 :2005/10/12(水) 01:41:03
>>629 >>630 >>632 ありがとうございました。Newキーワードについて調べてみます。
Structureですね、初心者なので間違えました。
634 :
デフォルトの名無しさん :2005/10/12(水) 09:51:17
ODBC接続をするアプリケーションを作成しているのですが、 接続情報が顧客によってちがいます。OdbcConnectionクラスで 接続していますが、どんなDBでも対応できるようにできますでしょうか? VC++6.0で作成したプログラムを見たことがあるのですが、 ODBC接続情報を入力する標準のダイアログが出てきました。 こういうものは、VB.NETにはないでしょうか? どなたかお聞かせ下さい。 よろしくお願いします。
>>634 なぜにODBC?
接続情報は当然顧客毎に違うでしょうね。
DBMS差を吸収するのがODBCだと思いますが。
ユーザー名等は設定ファイルなどで記述して、接続先はインストール時に作るか手順書では?
まあ、.netっぽくやるのであればOLEDBに移行すべきだと思う。
636 :
デフォルトの名無しさん :2005/10/12(水) 14:02:16
中国人のブリッジSEがODBCにしろというんですよね。 彼が言う標準のODBCダイアログというのは、どうやら、「SQL Serverログイン」のことのようですね。 ODBCデータソースアドミニストレータで、システムDSNにある特定の名前を入れるんだけど、 アクセスだとパスワードの入力要求はされないが、SQLServerでSQLServer認証を使うと、 パスワードが入力要求されるんです。 中国人BSEが言う「ODBC用の標準的な接続ダイアログ」なんて、本当にあるんですか? よろしくお聞かせ下さい。
その中国人BSEに聞いたらあかんの?
ACCESSで出るダイアログと同じものが出るはず VB6ではお世話になったが.NETでは使わなくなったから検証できず
639 :
デフォルトの名無しさん :2005/10/12(水) 15:54:30
>>637 中国人BSEも、遠い記憶を基にして言っているので、ソースが定かではない。
結局、中国人の思いつきを、おれが調査しなくてはならない。
>>638 VB6では、どんなダイアログか分かりますか?
教えて下さい。
お願いします。
>>639 接続先データソース名
ID
パスワード
の入力ダイアログが出る(はず
641 :
デフォルトの名無しさん :2005/10/12(水) 16:56:38
>>640 どんなコントロールですか?
コントロール名とか分かりますか?
>>620 ですが、
fixでOS(XP)を再起動したら回復しました。
よく見たら、他のソフトも表示されておらず、
どうやらポップアップがウィンドウの背後に出ているようでした。
(些細な事で、数時間無駄にしてしまいました)
3週間位連続して使っていたのですが、まれにこんなことがあるんでしょうかね。
>>636 それはODBC ドライバ マネージャが表示するもので、
RDOでOpenConnectionするとき、DSNが無かったり接続情報が不完全な場合に出てた。
もっぱら開発時やデバッグ用の機能で、通常のアプリケーションではDNS情報が不完全な場合は
rdDriverNoPromptを指定してプロンプトを出さずにエラーにしてプログラムで処理する。
ADO.NETはもちろんADO以降そんな機能はない。
第一バックグランドで動くかもしれないプログラムが勝手に妙なプロンプトを出したらユーザーが困る。
System.Data.OdbcはOLEDBや専用の.NET Driver(SQLServerやOracle)が無い場合にやむなく使う機能。
もしプロンプトを出したいだけの理由でODBCを使いたいといってるなら却下だな。
sub とか function の内部でローカル宣言した const に2040バイトほどの 文字列を入れるとコンパイル時にVisualStudioごと落ちるんですが、これは 仕様なんでしょうか?
TcpClientについて質問です。 現在、DataAvailableのプロパティで、読み取りデータがあるかないかを調べ、 データがある場合はデータを読み込み、無い場合はスルー という感じで、受信待ちの形(Do Loop)にしているのですが、 WinsockのDataArrivalイベントのように、データを受信した場合にイベントなどで知リたいと思うのですが、何か良い手立ては無いでしょうか?
BeginRead使うとか? なぜそうしたいのか分かれば代替案も出せるかも知れないけど
647 :
デフォルトの名無しさん :2005/10/13(木) 02:04:29
基本的なことで恐縮です。 タイマーについての質問です。 Form上にTimer1とTimer2の2つを実装したとします。 仮に Timer1 Interval 500ms Tickイベント時の処理時間100ms Timer2 Interval 150ms Tickイベント時の処理時間10ms とし、正確な処理時間はさほど必要ないとします。 このとき、Timer1のTickイベント処理中にTimer2の処理のタイミングが重なった場合の 動作は、処理を割り込んでくるのでしょうか?それともTimer2は待機しているのでしょうか? 要は、割り込んでほしくないときは、Timer2を止めるなどの処理が必要なのかどうかです。 逆に、Timer2の処理を優先したいときなどはどのようにすればいいのでしょうか?
>>647 System.Windows.Forms.Timer なら割り込んでこない。
>>648 レスサンクス。
ということは、System.Windows.Forms.Timer を使用していると
割り込んでくるな処理は不要ということですね。
逆に割り込ませたいときは、System.Timers.Timerとかかな?
もう少し調べてみます。ありがとうございました。
>>644 VisualStudioのバージョンと言語、落ちるソースを出さないと誰も相手にしないよ。
>>649 「割り込む」とかいう言葉遣いの人が
安易にSystem.Timers.Timerとか使うと危険。
危険ってのは別に煽って言ってるわけじゃなく、本当に危険だよ。
WindowsでのTimerって、メッセージキューにTimerイベントが置かれるだけですよ。 それを理解すれば答えは出ると思うんだが。 まあ、メッセージループを知らずに、メッセージも知らずにプログラム書けるのも一長一短だな。
>>650 ここはVB.NETスレでしょ?
なんで言語を書く必要が?
>>652 System.Windows.Forms.Timerはその通りだが、全てのタイマがそうというわけではないぞ。
System.Timers.TimerとSystem.Windows.Forms.Timerは何が違うんディスカ?
>>654 じゃあちゃんと書くから追試よろしく。
Visual Studio .NET 2003でVB.NETを使用し、以下のコードをコンパイル。
Public Class Test
Privete Sub TestMethod()
'↓改行記号で連結した2040バイトの文字列定数(長くなるので省略)
Const TestConst As String = _
"abcdef ..... xyz" & _
....
End Sub
End Class
これだけでコンパイル完了前にVisual Studioが突然死する。
>>658 2036バイトまでなら通った。
2037バイトの文字列にすると落ちた。
しかし.NETってバグフィックスがちっとも出ないのはなんでかね? これ以外にも小さな(?)バグって山ほどあるよな 発売以来二年以上経過してるのにフレームワークのSP1がでてそれきり。
DataGridに列を追加し、さらに列名(列見出し)を表示させるには どうしたらよいのでしょうか? 画面の何かのプロパティで追加できるのでしょうか? 手順を教えてください、よろしくお願いします。
>>660 バグではありません,それは仕様です,,なのでは?
>>661 'Test Data 作成
ds = New DataSet("testDs")
Dim dt As DataTable = ds.Tables.Add("testTable1")
dt.Columns.Add("id", Type.GetType("System.Int32"))
dt.Columns.Add("value", Type.GetType("System.String"))
dt.Columns.Add("date", Type.GetType("System.DateTime"))
Dim row As DataRow
For i As Integer = 1 To 100
row = dt.NewRow()
row.Item("id") = i
row.Item("value") = "Test" & i.ToString
row.Item("date") = Now
dt.Rows.Add(row)
Next
'DataGrid.DataSourceにDataTableを設定
Me.DataGrid1.DataSource = dt
'Columnを1つ追加(この時点でDataGridにはColumnが追加されている)
dt.Columns.Add("addCol", Type.GetType("System.Int32"))
'Columnのキャプション設定(この時点で追加されたColumnのキャプションが変わる)
dt.Columns("addCol").ColumnName = "Add Column"
新しいフォームを作ってそれを呼び出し元のフォームより後ろに表示したい んですが、何とか実現する方法ってないですか?
>>664 さん
661です、サンプル例ありがとうございました。
おかげでできました、助かりました。どもです。
668 :
647 :2005/10/15(土) 12:44:49
レスサンクスです。 最近プログラミングの基本を勉強する必要を痛感していただけに・・ System.Timers.Timer・・・いまんとこはやめときます orz
クラス内変数なのですが、 private SqlConnection sqlConnection = null ; と C# で書かれていたものをVB.NETで書く場合はどう書けばよろしいのでしょうか?
670 :
デフォルトの名無しさん :2005/10/15(土) 16:05:55
番号 データ 1 10 2 12 3 10 のようなテーブルを作ってDataGridに表示していて、 ボタンを押すと、 4 13 などとデータが追加されていきます。 どんどん追加していくと、追加した行が見えなくなってしまいますが、 追加した行にフォーカスを移して、その行が見えるようにする方法を教えてください。 DataGrid1.Select(dataTable1.Rows.Count - 1) だと選択されるだけで、見えるようにはなりませんでした。
671 :
670 :2005/10/15(土) 16:16:23
DataGrid1.CurrentCell = New DataGridCell(dataTable1.Rows.Count - 1, 1) でした。
>>669 君はどの部分が変換できないの?
あと「クラス内変数」って表現は「フィールド」と言った方が良いよ。
>>672 レスありがとうございます。
private SqlConnection sqlConnection = null ;
と、C#で書かれているものを
VBNETで書くとこんな感じかなと思ったのですが、これだとエラーになってしまいます。
Private sqlConnection As SqlConnection = New SqlConnection
sqlConnection = null
よろしくお願い致します。
>>673 Private sqlConnection As SqlConnection = Nothing
または
Private sqlConnection As SqlConnection
参照無しの状態になるのを明示して欲しいから、上の書き方が良いかな?
意図的にインスタンス生成してませんよって。
自分もC#のソースVBで書き換えたいのですが、 If color = Color.Empty Then と書きたい時に、 Color.Empty が color.Empty に(大文字が小文字に) 強制的に代えられてしまうのは何故でしょうか? 知ってる方お願いします。
すみません、color は Dim color As Colorです。
VBは大文字小文字が区別されないから。 C#なら大小の区別で別物になるがVB.NETではそうもいかないので、できれば別のネーミングにすることを薦める。
>>677 大文字と小文字の区別が無い事は全然知りませんでした。
どうもありがとうございます。
679 :
673 :2005/10/15(土) 21:37:36
>>674 大変参考になりました。。
ありがとうございます。
でも Dim color As Color ってつい書いちゃうんだよな。 大文字小文字の区別はないけど、 クラス名とインスタンス名はいちおうちゃんと別物として扱われるんで。
int, str, bol, tbx, lbx, objとか出来るだけ接頭子付けているが color は col だとフィールド関係と間違えそうだし、clr かな?
ハンガリアンは捨てたのさ。
webbrowserコントロールでエクセルファイル表示するとおもむろにエクセル立ち上がるのって どうにか出来ないでしょうか?(せめて最小化とか) そして閉じてもエクセルやワードのプロセスが残ってるのも何とかしたいんです
Webブラウザコントロールを使って表示しなければいいんじゃないか? これってたぶんだけどIEで表示してるのと同じだよね。 関連付けで開いた相手のプロセスはIEの監視下? レガシーなOLE連携でCreateObjectでやった場合でもプロセスは起動するのはやむなしだな。 でもプロセスは残らない。 単純にファイルの関連付けで開いた場合、プロセスの終了は使用者任せだね。 そうじゃなければ、市販コントロールであると思うよ。
>>684 それ言っちゃうと身も蓋も無いんだけどねw
フリーソフト作るのに市販コントロール買ってまでするってのも…
ヘルプ見ようとしても出てこんし
諦めた方がいいかな
>>681 その調子で一度すべてのクラスに識別可能なプレフィックスを付けながら
コーディングしてみ?プレフィックスが変数名より長くなるか、
プレフィックスを覚えきれなくなるのが落ち。まともなOOの環境で
コーディングしたことあるやつなら、プレフィックスを付けることの
無理にとっくに気がついている。だから最近はプレフィックスを付けないのが主流。
>>685 それを言うならば、フリーソフトでEXCELマクロでもないアプリなのに、要EXCELってのも・・・。
企画原案を変えるべきでは?
>>660 Javaやってりゃ分かるが細かいバグもチョコチョコ直されると激しく迷惑
689 :
デフォルトの名無しさん :2005/10/17(月) 13:31:05
IPメッセンジャーのようなメッセージ配信機能を電話オペレータの操作画面の一部にテロップのような形式で配信したいと考えています。 また、配信する人は一部の管理者を想定しているのですが、この管理者の権限でメッセージ表示を削除する機能も付加したいと考えています。 VB.NETのWindowsアプリケーション開発で技術的に可能でしょうか?教えてください。お願いします。
可能です
691 :
デフォルトの名無しさん :2005/10/17(月) 13:50:39
すいません、具体的なヒントとか頂けたら嬉しいです。。
690じゃないが、具体的じゃない質問に対して具体的なヒントって? まず、何が疑問なのか。
特定のURLから内容を表示するプログラムを造ってますが、ウェブページ上の表形式のデータを取得する場合、 便利な方法は何かないでしょうか。Ezcelのウェブクエリを高速化したかったのですがwebtableのような概念が 見つけられないもので。VB.NETは質問からも分かるように初心者です。本2冊買ってHELPもあたったのですが・・ Imports System.Net Imports System.Text Public Class Form1 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load TextBox1.Text = ""’URLを入力 TextBox2.Text = "" End Sub
693の続き Private Sub Button1_Click( _ ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button1.Click Dim wreq As HttpWebRequest Dim wres As HttpWebResponse 'ウェブリクエストでテキスト1の内容表示、エンコード wreq = HttpWebRequest.Create(TextBox1.Text) wres = wreq.GetResponse() Dim enc As System.Text.Encoding = _ System.Text.Encoding.GetEncoding("euc-jp") Dim s As IO.Stream = wres.GetResponseStream() Dim sr As New IO.StreamReader(s, enc) 'コンテンツ内容をテキスト2に表示 Dim Textline As String = sr.ReadToEnd() TextBox2.AppendText(Textline) sr.Close() s.Close() End Sub End Class
>>689 まずはTCP/IPの勉強をして来なさい
>>693 整形式XML(のフラグメント)になりうるんであればXmlReaderとかが使えるけど、HTMLだと難しい場合も多いだろうね。
素直なのは、正規表現(System.Text.RegularExpressions名前空間のRegexを中心とする各クラス)を使って整形するとか。
mshtmlを使って解析させるって手もあるけど……。
697 :
デフォルトの名無しさん :2005/10/17(月) 23:41:11
タスクバーを扱うには、どのあたりのクラスを使えばいいんでしょうか。 シンプルにクイックラウンチをON/OFFしたいだけなんですが。
他のプロセスのコントロールをいじるってのは.NETのクラスライブラリでは無理。 Win32APIを駆使することになる。 Shell_TrayWnd の ReBarWindow32 に RB_GETBANDINFO で ToolbarWindow32 のハンドルと一致するの探して RB_SHOWBAND で操作、かねぇ。 構造体ポインタのやりとりとなるとVirtualAllocExとかCreateFileMappingとか使う必要もあるね。
トレイアイコンのこと? notifyiconをフォームにドロップするだけ でフォームのresizeとnotifyiconのmousedownあたりにゴニョゴニョ書けばok
>>698 あ、サンキューです。
そのあたりの情報までは見つけていたけど、「.NETならもっと簡単なんじゃねぇの?」と
思ったんですが、できないというのがわかればがんばってAPI叩きます。助かりました。
>>699 いえ、
>>698 に書いてあるあたりです。
>>696 調べを進めていく上でのキーワードがいただけました。ありがとうございます。
(実は何を書いてあるのか殆ど分かりませんがw XMLは聞いたことがあるので、ググリまくります。)
702 :
デフォルトの名無しさん :2005/10/18(火) 02:38:28
>>698 あくまで他スレッドがコントロールを直接操作できないだけ
他スレッドがよんだ自スレッドのメソッドがコントロールをそうさするのはok
XMLをQueueメモリに保存し、適時取り出して再度Xmlとし、処理していきたい と考えています。 次のようなコードでQueueに書き込む分にははエラーは出ませんが、 Dim WriteQueue As Queue = New Queue Dim xmlDoc As New System.Xml.XmlDocument (ここにXMLを構築するコードを書き込んでいます) WriteQueue.Enqueue(xmlDoc) DequeueメソッドでXMLに書き戻すのがうまくいきません。Queueに書き込んだ ものとソックリ同じ物を、新しく作成したXmlDocumentとしたい(つまり、コピー を作る)んですが・・・・・
>>702 話がずれてる上に間違ってる。
>他スレッドがよんだ自スレッドのメソッドがコントロールをそうさするのはok
okじゃないから Control.Invoke / BeginInvoke を使おうな。
>>704 インスタンスとか参照とか理解してなさそうだが……。
取りあえずClonseメソッド。
.netではDDE通信が推奨されていないらしいですが 代わりにどのような方法が推奨されているでしょうか?
リモチン?
>>707 .net Remoting
情報少ないけど、ほぼ唯一でてるオレンジの本見れば、DDE程度はOK。
ただ、自アプリ同士の連携の場合だからね。
昔のOfficeとかがDDEを提供していた(?)のと同じように、OfficeとかがRemoteオブジェクトを提供してるわけじゃないので。
(.netの弱点ってネイティブでOffice連携が無いことなように思える)
>>708 , 709
thx.調べてみます。
代わりにソケット通信っていうのはありでしょうか?
>>710 .NET RemotingはTCP/HTTPをベースにしてる(内部で利用している)。
>>711 さんくす。じゃ、簡単にソケット通信でやっちゃおうかな
ソケットは単なる文字列の送受信。 リモーティングはシリアル化されたオブジェクトのやり取り。 目的が全く違います。
質問です。 スタートアップに指定したフォームを判断することはできますか? if Form1 = Application.StartupForm then みたいなことをしたいんですがー。。
画面から『閉じる(×)』ボタンを非表示にしたいです。 最大化・最小化は残したいので、ControlBoxでは実現できませんでした。 何かいい方法はないでしょうか
Visual Studio の操作?に関してになるのですが、 C# の場合 メソッドのオーバーライドを行なう際は Protected Override とタイプすると、インテリセンスが開き、 その中からオーバーライド可能なメソッドを選択すると自動的に シグネチャ含めてコードが追加されるのですが、VB.NET の場合は Protected Overrides とタイプしてもインテリセンスが開きません。 VB.NET の場合は、エディタの左上から (overrides) を選択し、 その右からオーバーライドしたいメソッドを選択する、といったように マウスでカチカチやるのが一般的なのでしょうか?
>>714 プログラマがどれで起動したか把握できないってのはどうよ?
ASP.NET、VB.NETで開発しております。 ログをテキストファイルに出力するような共通関数を作成したいのですが どうにも行き詰って困っております。 wwwroot下にフォルダを作成し、その下に動的にログファイルを作成したいのですが 何かいい方法ありますでしょうか? よろしくお願いします。
どこで行き詰まったの?
>ソケットは単なる文字列の送受信。 やはりそういうことか!
でも簡単なやり取りだけならソケット通信でもいいよね?
>>722 だから自分で目的を考えてでしょ。
単なる非同期・同期での通信ならばソケットでコマンドで十分。
イベント+情報の送受信ならばリモーティング。
VB.NETの勉強としてTextBoxクラスを継承して 書式チェック機能を持ったTextBoxを作成しようとしています。 Validatingイベント内で、書式チェックエラーとなった場合に フォーカスの移動をさせないようにしたのですが Formの閉じるボタンを押しても同イベントが発生して 閉じるボタンが無効になってしまいます。 イベント内でイベントをキャンセルしているので当然なのですが チェックを行ってエラー時はフォーカスを移動させないが 特定の処理(画面を閉じるなど)の場合はチェックしない という機能を作ろうとした場合、どのようにすればいいでしょうか? 先人達の知恵を貸してください。
>>724 >閉じるボタンが無効になってしまいます。
普通そんな事にはならないと思うけど。
閉じるボタンってウィンドウの右上のXのことだよねえ?
フォーム上にフォームを閉じるためのコマンドボタンが用意してあって、
それをクリックしようとしてもクリックできない、なんてオチだったりして。
>何かいい方法ありますでしょうか? log4net EntLib/LoggingAB
727 :
デフォルトの名無しさん :2005/10/22(土) 16:45:43
TextBox1 - TextBox10 の .Text にすべて"*"を表示させたいのですが、 それぞれに TextBox1.Text = "*" TextBox2.Text = "*" : : ; TextBox10.Text = "*" より頭のいい方法を教えていただきたいのですが、
>>727 TextBox配列にいったん格納してからループで値セット、ってあまり手間は変わらんか。
TextBox型のものに"*"をFor Eachでセットしていくとか。
730 :
デフォルトの名無しさん :2005/10/22(土) 18:00:23
>>728 ,
>>729 727ですが、私は初心者ですので、
具体的にお願いできますでしょうか?
教えていただいてるのにすみません。。。
初心者ならまずは地道にやっとけってこった
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Const kome As String = "*" Dim c As Control For Each c In Me.Controls'フォームのコントロール全部に対して If c.GetType() Is GetType(TextBox) Then'テキストボックス型のものなら Dim t As TextBox t = CType(c, TextBox)'コントロールをテキストボックスとして扱って t.Text = kome'テキストプロパティに*をセット End If Next'していく End Sub'とかネ
>>733 ControlにTextがあるんだからCType(c, TextBox)は必要ないぜ。
それより「結果を表示するTextBox11まで*になってしまいましたどうしたらいいですか」とか返されそうだな。
あ、それと型判定は If TypeOf c Is TextBox Then な。
具体的な指摘どもども。 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Const kome As String = "*" Dim c As Control For Each c In Me.Controls 'フォームのコントロール全部に対して If TypeOf c Is TextBox Then 'テキストボックス型のものなら c.Text = kome 'テキストプロパティに*をセット End If Next 'していく End Sub 'とか
>>733 そんな気張って答えるような質問とも思えんが。。
>>734 突っ込む奴が馬鹿だと萎えるなw
>>737 最近コードを書いてなかったので
ちょっとしたリハビリや。
第一さ、そういうの「頭のいい方法」って呼んでよいものかどうか。。 サンプルコードとしてもあまり良質と思えないし。 俺がサンプルかくならせめて、 (1) Nameが"TextBox*"に一致するTextBoxのコレクションを作る関数を示す (2) Nameが"TextBox*"に一致するTextBoxのコレクションを内部的に作って、それを 操作するクラスを示す このぐらいするよ。
>>739 先生、VSを使ってないのでNameプロパティは基本的に空です! どうしたらいいですか!
741 :
先生 :2005/10/22(土) 21:23:20
10個くらいなら手で書いちゃえよ
>>743 いや、複数回クリアするならメソッドに切り出せばいいと思うんだな
745 :
初心者 :2005/10/23(日) 11:48:58
USBドライブを差し込んだことを検知する方法ありますでしょうか?
746 :
初心者自己レス :2005/10/23(日) 12:11:14
Range("D2:D6").Value = Array("国", "数", "理", "社", "英") エクセルのマクロでこうやって入力すると全部国ってなってしまいます D2が国D3が数D4が理って具合になればいいんですが どうすればいいんですか?
>>748 マルチだっていいたいのかな?
嫌味な奴w
マルチの何が悪いのかサッパリわからんが、マルチが気に入らないなら放っときゃいいのに。
>>747 自分で答え見つけた方が楽しいだろうからヒントだけ。
ヒント:直線は平面の特殊ケースだと考えよう。
750 :
デフォルトの名無しさん :2005/10/23(日) 14:02:28
VBでスロットのプログラム作ってるのですが、「スタート」ボタンを押したら 0.1秒単位でラベルの数字が回転しているように見せるにはどうしたらいいのでしょうか。 お願いします。
>>749 お前馬鹿ですね。
「 V B . N E T 質 問 ス レ 」
>0.1秒単位でラベルの数字が回転しているように見せる まず日本語の勉強をした方がいいね。意味不明。
>>750 数字をパラパラ切り替えるんじゃなくて、リアルに上下スクロール
しているように見せたいってこと? けっこう面倒だと思うよ。
すべての数字や絵柄をピクチャ扱いで配列に入れて、乱数を元にス
タックしたシリンダ用の配列を使って、Y軸方向に詰めながらスラ
イド表示させるくらいかな?
0.1秒を刻むならEnvironment.TickCountプロパティでどうにかな
るかと。数字の全体が表示されるまでに0.1秒かかるようにしたい
ってのは、自分で管理する必要あり。
>>753 おいおい750も750だが、あんたもあんただなあ。。
いったい750のどこをどう読めばそういう解釈がw
>>719 そういや俺もできなかったわ
結局トレースログのテキストをそのまま使った記憶あるな
そもそもファイル自体が作れなくない?
ファイル作れない、既存ファイルへの書き込みができないみたいな状態になって
すげぇ困ってトレースログをそのまま使ったな。できるのかな、これ
756 :
デフォルトの名無しさん :2005/10/23(日) 20:10:17
IISのセキュリティー設定とかきちんとやった? プロセスの所有者が書き込み権限あるかとか。
757 :
デフォルトの名無しさん :2005/10/23(日) 21:00:45
VB.NETを使用して、Winアプリを開発しています。 アプリは、画像アップローダなんですが、VB.NETでサーバにファイルを アップロードする方法がわかりません。 どなたかわかる方がいたらお教えください。
サーバによる。
759 :
757 :2005/10/23(日) 21:09:24
言葉が足らず申し訳ございません。 サーバは、webサーバです。
760 :
757 :2005/10/23(日) 21:14:06
まだ足りませんでした、IISではないです。 よろしくお願いします。
>757 相手がWebサーバーなら受け取る側もアプリが必要だが・・・ アプリが必要かどうかはアップする方法やサーバーの設定による。
>>757 ヒント:<input type="file">
HttpWebRequest
763 :
757 :2005/10/23(日) 21:55:18
ヒントありがとうございます。現在はこのように処理をしてるんですが req = CType(System.Net.WebRequest.Create(url), System.Net.HttpWebRequest) req.Method = "POST" req.ContentType = "multipart/form-data" reqStream = req.GetRequestStream() reqStream.Write(data, 0, data.Length) さて?こっからファイルのアップロードは どうやるんだろうとなってしまっています。 もう少しヒントを頂けたら幸いです。
つうかね、入門書かってこいよ。 ファイルのアップロードなんて入門書に載ってる。
winXP、vb.net2003、office2003使用です。 vb.net側で、「Imports Microsoft.Office.Interop」と「Dim ThisApplication As New Excel.Application」を利用してエクセルを起動した後、エクセル側で「ファイル」→「終了」の操作をしてエクセルを終わらせた場合に、 「エクセルが終了した」ことをvb.net側で情報として捉えることができるコマンドはありませんか?
>>765 それってVB4+Office95時代からある問題だけど今でも出来ないんじゃない?
どうしても必要ならタイマ使ってポーリングすればいいじゃん。 エクセルが生きているかどうかの確認は工夫すれば出来たはずだよやった記憶があるから。
MSDN2のVSTOのリファレンスにWorkbook.Shutdownイベントなんてのがあったけどこの辺? 解説読むと違う気もするけど。
769 :
765 :2005/10/23(日) 23:57:16
>>766 ホエ!やっぱムリなのか〜?
ネットで調べても、VB側ですべて処理させたら、プロセスの終了まで出来ることはわかってんだけどね。。
やってることは、VB側でマクロを含んだエクセルを起動させて、あとの処理はエクセルのマクロまかせでエクセル側で終了まで処理させるのよ。。
マクロでやらせてるのは、定型の様式への入力支援で、文字の入力まですれば、罫線や結合や印刷範囲の指定までマクロで一気にやらせてます。ただ、そのほかの処理もあるんでエクセル側での終了は必須なんだよな〜
で、エクセル側で終了しても、VB側のフォームが終了するまで起動したエクセルのプロセスが残るもので、それを何とか終了できないかと。。
>>766 回答サンクスです。も少し研究してみます。
ポーリングしてたら、もしExcelファイル開いていたら保存ダイアログ出る場合に固まっちゃうぞ
771 :
765 :2005/10/24(月) 00:18:17
ThisApplication.ActiveWorkbook.Nameで既存ファイルを呼び出した場合でも、起動したworkbookの名前は取得できるんで、それから何とかできないかと考えてるんですが。。 「ポーリング」はよくわからないですが、一定時間ごとに監視するというやり方ですかね?だとしたらなるべくパソコンには余計な負担はかけたくないですが。。 できれば、「エクセルが終了した時点で」その情報を取得する方法がないかと。。 明日もあるんで今日は寝ます。レスくれた皆さんありがとうございました。。
772 :
765 :2005/10/24(月) 00:26:32
>>768 Visual Studio Tools for Office..
たかがこんなプログラムにこんな高い製品は買えない。。
今の.netも個人持ちなのよ。。
773 :
デフォルトの名無しさん :2005/10/24(月) 09:27:56
お世話になります。 データセットのDataRowの値が「H」だった場合には、データグリッドに、「ハードディスク」と表示するというような処理をしたいのですが、MSDNで調べても方法が分かりません。 できれば、データグリッドの値だけを変えるようにしたいのですが、どなたか方法をご存じないでしょうか? よろしくお願いします。
WinFormかASP.NETかどっちだ?
775 :
デフォルトの名無しさん :2005/10/24(月) 09:51:01
すいません。WINDOWSのFORMです。
776 :
デフォルトの名無しさん :2005/10/24(月) 09:57:59
あげ
777 :
724 :2005/10/24(月) 14:16:12
返事が遅れてすみません
>>725 ×ボタンの事であってます
Validatingイベント内で
If IsNumeric(CType(sender, TextBox).Text) = False Then
e.Cancel = True
Exit Sub
End If
のようにしているだけです
Validatingイベント内でキャンセルしているので
フォーカスは移動できないのですが(これが当然の動作という事は判ってます)
Formの×ボタンを押そうとした時はValidatingを発生させないような事はできますでしょうか?
>>777 .NETフレームワークのアップデート汁
>718 そのレスはもしかしてVB.NETで派生フォームとか使ってないの? フォームAからフォームB、フォームC、フォームDを派生させたとして、 B〜Dのいずれかがスタートフォーム。 それをフォームAの中で判断したい。 フォームAの記述 If ( me = StartupForm) Then ・・・ End If
ユーザーコントロールを派生したくラスの デフォルトのイベントを OnLoad 以外にすることって可能ですか?
デフォルトのイベントって何?
>>777 あ、なるほど確かにそうなるね。
確信はないけどコントロール側で対処するのは正攻法では難しいんじゃないかな。
フォームのClosingイベントハンドラで引数のeの値をヲチすると、
コントロール側でそういうことをしている場合これのCandelメンバが
Trueに設定されるようだから、これをFalseに書き戻してやれば
いいんじゃないかな。
とりあえず俺の環境ではうまくいった。
先生、0除算をしたら、DivideByZeroExceptionが投げられると思ったら、 なんか無限記号が表示されるんですけど、どういうことなのでしょうか?
>>783 浮動小数を使った場合のデフォルトの動作。
で、VB.NETは特に指定しなかったら除算は大体Doubleとして計算されるから。
判断はDouble.IsInfinityメソッドとか。
無限記号だって? よっこらせーっと
Dim a As Single = 30 a = a / 0 MessageBox.Show(a) +∞ ぽっかーん
787 :
757 :2005/10/25(火) 00:46:32
もう一度質問させてください。 VB.NETを使用して、Windows Applicationを開発しています。 POSTによりWebサーバに画像ファイルをアップロード(PHP使用)する方法がどうしてもわかりません。 どなたか教えていただけませんか? 現在はこのように書いています。 Dim req As System.Net.HttpWebRequest = CType(System.Net.WebRequest.Create(url), System.Net.HttpWebRequest) req.Method = "POST" req.ContentType = "multipart/form-data" Dim reqStream As System.IO.Stream = req.GetRequestStream() ↓ ここにが画像を入れるのかなと思っていますが… Dim data As Byte() = System.Text.Encoding.ASCII.GetBytes("?key=11&gazou='バイナリ?'") reqStream.Write(data, 0, data.Length) Dim res As System.Net.WebResponse = req.GetResponse() Dim resStream As System.IO.Stream = res.GetResponseStream() Dim sr As System.IO.StreamReader = New System.IO.StreamReader(resStream, enc) Dim html As String = sr.ReadToEnd()
788 :
757 :2005/10/25(火) 00:49:30
追記させてください。 PHP使用とは、受け取り側のWEBサーバーはPHPを使用しています。
FileStreamで読み出せば
790 :
757 :2005/10/25(火) 01:02:37
レスありがとうございます。 ほんとに最近こればかりに時間を割かれているので・・・。泣きそうです。 Dim wkStream As New System.IO.FileStream("C:\gazou.jpg", System.IO.FileMode.Open) のように読み込んで、 dim inData as byte = new byte(4096) dim bytesRead integer = wkStream.Read(inData, 0, inData.Length); while (bytesRead > 0) reqStream.Write(inData, 0, bytesRead); bytesRead = wkStream.Read(inData, 0, inData.Length); end while って感じになるのですか?
791 :
757 :2005/10/25(火) 01:52:37
やっぱりだめでした。 Dim reqStream As System.IO.Stream = req.GetRequestStream() reqStream.Write(data, 0, data.Length) Dim wkStream As New System.IO.FileStream("c:\gazou.jpg", System.IO.FileMode.Open) Dim inData(wkStream.Length) As Byte Dim bytesRead As Integer = wkStream.Read(inData, 0, inData.Length) While (bytesRead > 0) ↓ここでバイト数オーバーとでます、。 reqStream.Write(inData, 0, bytesRead) bytesRead = wkStream.Read(inData, 0, inData.Length) End While reqStream.Close() すでに画像のアップロードに成功された方、 どうか教えてください。
普通にHTMLページでそのファイルアップロード画面へアップした場合と、 なにか悩んでるプログラムでの、 HTTP通信の差を見た? ログとるなり、他のツール使うなりすれば見れるでしょ。 つうか、サーバもいじれるならFTP立ち上げたほうが早いし問題ないし。 HTTPのファイルアップロードは所詮オマケというか無理がある仕様だし。
ところでGetRequestStreamの解説を読んだことがなさそうだな>質問者
794 :
デフォルトの名無しさん :2005/10/25(火) 16:07:35
DataColumnCollectionの列順を変えたいのですが、どなたかよい方法をご存じないですか? MSDNで調べても、方法が載っていません。 よろしくお願いします。
新しいDataTableを作る
その並び順を気にする発想が理解できん。
一度取得したテーブルをどうこうするより、希望する列順で取得できる クエリを出したほうが楽かと。
どうもこんばんわ。 VB.NETでクォータービューの、FFTみたいなのを考えているんですが、アルゴリズムに いまいち自信がもてません。 今は、Form1Paintに2次元配列から取得したマップデータをもとに、DrawImageで 全てのマップチップを描画しています。コントロール配列でピクチャーボックスにしなかったのは 重いかなぁとおもったからです。DrawImageでも普通にちらつきますのでバックバッファいれなきゃなりませんが。 今は、iとjで2重ループで回して左奥から順番に右手前まで描画しています。 マップ回転は描画する順番を変えてやっています。 それでとりあえずはそれっぽいマップが出来上がったのですが、その上にキャラを 置いたり、カーソルを表示したりする時に、その座標をどのように取得するべきなのかが よくわかりません・・・。 DrawImageだと座標が取れないので、自分でxとyを決めるのでしょうか。 でもそういうのだとなんだか・・・単に座標は合っていて、見た目は正しいけれど、 実際はそこに見えているだけで配列データにリンクしていないので、どうもしっくりこないなぁ。 と感じます。 すみません・・自分で書いてても判りにくいんですが、正しいアルゴリズムの ヒントでも結構ですので教えていただけないでしょうか。
>>798 ヒント: 内部的に2次元で処理して、クォータービューはDirect3Dまかせ
>>798 なんて事は無い質問だな
3次元クリッピングっていう奴だ
例えば、 On Error Goto ErrHandler : : ErrHandler: で、ErrHandlerに飛んできた時に、呼び出し元の行番号を取得する方法ってあります? 現在の行番号を取得することはできるんだけど・・・
>>801 そんなんも考えつかない or 調べられないのだったら、
プログラマー辞めたら?
>>802 うはw
なにコイツw
プログラミング以外人に誇るモノがない人ですか?
804 :
801 :2005/10/26(水) 11:05:45
New StackFrame(True).GetFileLineNumber で現在の行番号を取得したり、 Reflection.MethodBase.GetCurrentMethod.Name で現在実行中のメソッド名を取得はできたんですけどね・・・ これくらいしか調べられなかったオレって・・・
行番号??? まあ、ログ吐きたい場合などにほしくなるけど、結論的には不可です。 デバックコンパイルすれば例外の中に履歴的に出るから見れるけど、実行時はありません
>>801 On Errorより、Try〜Catchを使った方がいいのでは?
そそ ワシもtry-catchでexception.stacktraceじゃいかんのか?とオモタ
808 :
駆け出しのPG :2005/10/27(木) 00:41:10
Windowsフォームで作ったアプリに簡単なプロテクトを掛けたいのですが、良い方法はありませんか?
プロテクトって何をプロテクトするのよ
810 :
駆け出しのPG :2005/10/27(木) 00:44:12
EXEコピーを防止したいです。 もちろんユーザーが素人に限定されますが。
それは何故?
812 :
駆け出しのPG :2005/10/27(木) 00:56:34
依頼されてアプリを作りましたが、依頼者の仕事仲間で需要があるそうです。 依頼者は業務上の使用ですので著作権を完全には放棄したくありません。
813 :
デフォルトの名無しさん :2005/10/27(木) 00:58:20
>もちろんユーザーが素人に限定されますが。 >それは何故? という意味でしたか?
ん、取りあえず思いついたいい加減なやり方。 ライブラリプロジェクトHogeを作って、ライセンスドクラス一つだけ用意。メンバはライセンスキーだけ。取りあえず空。 メインのプロジェクトはそれを参照。 Hoge.dllを除いてユーザに配布。 ユーザのLANアダプタのMACアドレスのMD5を取得。 送信して貰う。 そのMD5をライセンスキーと言うことにして、それをHogeのライセンスドクラスのライセンスキーに設定。 Hogeを再コンパイルして、単独で配布。 あとは起動時にHogeのライセンスキーとユーザのLANアダプタのMACアドレスのMD5が一致するか確認。 毎回ユーザのLANアダプタのMACアドレスのMD5を取得するのは面倒なのでレジストリに取っておくとか。 .NETの知識が多少でもある人ならすぐあれこれできてしまうな。 許可の取消もできないし。 いずれにせよユーザの何らかの情報を元に制限を加える必要がある。 単なるパスワードじゃ教えて終了だし、バイナリごとに異なるキーでも実行ファイルのコピーには無力だし。
815 :
デフォルトの名無しさん :2005/10/27(木) 06:50:09
>814 ありがとうございます。 試してみてまたここにカキコします。 数日下さい。
不思議な日本語を見た
あるファイルが他のプロセスにロックされているかどうかを知る方法はありますでしょうか?
実際に開いてみる
2005 Express Edition Beta 2を使ってツールを使ってるんだけど、結構いい感じ。 ヘルプが日本語で無いのは残念だけど。 製品版では日本語ヘルプがちゃんと用意されるだろうから、オレみたいなホビーユーザーなら、Expressで不足は無いと思う。 んで、質問。 Expressで作ったブツは自由に配布できるの? 完全に学習用限定な「Borland C#Builder Personal ダウンロード版 1.0」みたいな例があるから、ちょっと不安になる。
>>819 Go-Liveの申請をすれば、配布は出来る。
諸注意等は、ググって調べてくれ。
821 :
デフォルトの名無しさん :2005/10/27(木) 20:24:38
VB.NET のお試し版をダウンロードできるサイト、教えてもらえませんか。
NDOCでソリューションファイルの読み込み方教えろや! ニートども!
>>820 製品版についての話だと思うんだが>配布
>>825 ほへ?
>819「Expressで作ったブツ」の"Express"はベータでない製品版で、
それで作ったものを配布可能かどうかを聞いてる、と読んだんだが。
そうなるとGo-Liveとは関係ない。
827 :
819 :2005/10/27(木) 23:43:31
>>826 「ほへ?」はねぇべ?
わやきもいじゃ。
829 :
デフォルトの名無しさん :2005/10/28(金) 01:17:27
>>828 824と823を間違えてるのに気づけよ
830 :
801 :2005/10/28(金) 10:29:57
>806 >807 exception.stacktraceでこんな情報を取得できるって気づきませんでしたw Try〜Catchは場合によって使用していたのに・・・。 遅レススマソ。
831 :
デフォルトの名無しさん :2005/10/29(土) 08:26:33
教えてください。
http://mbm.livewiredev.com/ [INFORMATION]で[SHARED MEMORY]の項目を選び、[C CODE]の中の
:: VB.NET Code
» VB.NET code can be downloaded here, thanks to Pedro Navarro
を選んでダウンロードし解凍してVB 2005 Express Edition Betaで[ビルド]し、[デバッグ開始]したら、
[sensor 2]のほうの[name]での表示(“CPU”)が“PU”に化けたり、”U”だけになったりする。
また[sensor2]の[Current value]の表示が整数できちんと出ることもあるが、しばらくすると、
Eの型で表示されてしまう。時々(っていうか、なりっぱなしになってしまうこともある)、
まるで表示されなくなってしまうこともある。何故なんだろうか。
VB.netは持ってないんで、ベータ版でしかテストできないので、誰か他のバージョンで
動作確認をして報告してもらえるとありがたいです。
(尚、上記は、”Mother Boardmonitor5が動いている状態でないとテストできません。)
Cでのchar[]を全部Char()で宣言してる……。
833 :
デフォルトの名無しさん :2005/10/29(土) 10:24:40
>>832 レス、どうも
ちょっと、その意味がわかりません
「bitmapinfo構造体のメモリハンドルとビットマップデータのメモリハンドル」が 与えられて、そのデータをピクチャボックスに表示したいのですが、どうやったら いいのかさっぱり分かりません ヒントだけでもお教え頂けませんでしょうか
簡単に言えばー、 Win32APIのCreateDIBitmap関数でHBITMAP作ってー、 Image.FromHbitmapメソッドでBitmapにする。 メモリハンドルというのがHLOCALならアドレス取得にはLocalLock関数。そうでないのならそれに応じた関数。 Win32APIでは使い終わったGDIオブジェクトやメモリ領域の後かたづけに気を付けて。
ヒント (1) MSDN(ドキュメントビュア)を起動して、"bitmapinfo"を検索する (2) 検索結果の「場所」のカラムヘッダをクリックしてソートし、 「場所」が「プラットフォームSDK: GDI」になっている適当な項を表示する。 (3) 表示されたページ、およびその一番下の「参照」にリンクされているページを 注意深く読む。ドキュメントビュアのツールバーの「同期」ボタン(←→)を押して、 関連するページも読む。 (4) このスレのテンプレに紹介されているウェブサイトなどで、グラフィックを 扱っているサンプルを探してピクチャーボックスに画像を描画する一般的な方法を掴んでおく。 (5) Graphicsクラスのメンバを見て、デバイスコンテキストを取得する方法はないか調べる。
837 :
831,833 :2005/10/29(土) 17:23:14
>>832-
>>836 尚、サンプルコードでは、Refresh() した直後には、senssor1のデータ関数を読んでるだけで、
Sensor2のほうはしてないようなので、タイムラグによるデータの変質なのかなとも思いました。
なので、sensor2のほうもsensor1と同時に新たに宣言したstring変数に代入し、更に、sensor2の
データがtext表示される直前に、その変数(温度データ)の長さが2バイトかどうかでデータチェック
して、2バイト以外の場合は、もう一度、refresh()してから変数にとりこむようにしたら、表示
そのもとしては、なんとか格好はついたようです。
838 :
831,833 :2005/10/29(土) 17:25:44
つまり、sensor1の表示の前に Dim sensorname1 As String Dim sensorname2 As String Dim sensortemp1 As String Dim sensortemp2 As String sensorname1 = MBMInfo.Sensor(1).ssName sensortemp1 = MBMInfo.Sensor(1).ssCurrent sensorname2 = MBMInfo.Sensor(2).ssName sensortemp2 = MBMInfo.Sensor(2).ssCurrent を加え、sensor2の表示の直前で While Len(sensortemp2) <> 2 MBMInfo.Refresh() sensorname2 = MBMInfo.Sensor(2).ssName() sensortemp2 = MBMInfo.Sensor(2).ssCurrent End While を加えたら、少なくとも表示としては良くなって、「ひょっとして内部的」にも なんとか、うまく動いているような感じもします。えへへ(-_-;)
839 :
831,833 :2005/10/29(土) 17:30:10
While Len(sensortemp2) <> 2 は While Len(sensortemp2) > 2 のほうがいいですかね
840 :
デフォルトの名無しさん :2005/10/29(土) 18:27:55
ところで、誰か、Microsoft Visual Studio.net Academic version2002 を使ってる人っていますか?
841 :
sage :2005/10/30(日) 16:43:44
FlexGridの表の幅をドラッグで変更できるようにするにはどうすればいいのでしょうか?
すいません、質問です。 VB.NET 2003 で作ったアプリのメモリ消費量に関することなのですが、 フォームを表示するだけのアプリでもメモリ16Mぐらい消費しています。 これってこんなもんなんですか?何かやったら減らせるもんなんでしょうか? レジストリ読み書き(するだけの)ツール作ったらメモリ消費30M近くになって 「iTunesよりすげー」とか言われてショックでした・・・
>>842 .NETはJava並みの重さだからしょうがないよ
最小化するとWorking Setは減る。
タスクマネージャのメモリ使用量なんて目安の一つでしかないのに随分幅きかせてますね
846 :
デフォルトの名無しさん :2005/10/30(日) 23:46:17
というかVB.NETの新バージョンはほんとに年内に出るの?
2003と2005では何が変わるんですか?
バグが変わる。
shgetfileinfoでファイルのアイコン取得してるのだけど、最初はいいのだけど しばらくほっておくと破棄されたアイコンにアクセス出来ないとかってエラーが出る (タイマーで再表示してる) これって何がいかんのでしょう
850 :
デフォルトの名無しさん :2005/10/31(月) 16:30:36
DataTableで、DataTableAからDataTableBにデータを丸写ししたいのですが、 DataTableAには列C、列D、列Eがあり、DataTableBには列C、列Dがあります。 そして、DataTableBは、列順が、列D、列Cとなっています。 こういう場合、CLONEやCOPYだと、スキーマまでコピーされてしまいます。 どなたか、スキーマはコピーせず、データのみを丸写しするよい方法を ご存じないでしょうか? よろしくお聞かせ願います。
851 :
842 :2005/10/31(月) 21:06:51
気にするとハゲるってことですね。
どうもありがとうございました。
>>845 さん
あなたを含めた識者はその詳細なメモリ使用量とやらの測り方を知ってるんでしょうけど。
たとえばPCの性能をクロックだけでしか見れないような人も多いですので。
そんなクラスの人はメモリ使用量というとタスクマネージャでしか測れないもんです
(下手するとタスクマネージャすら知らない)。うちもそんなクラスのマです。失格ですね。
>>850 地道にDataTableAをループ走査。
vbにはIME周りのAPIはないんですか?
Control.ImeModeくらいだな
なんだ、結局 VB.NETのユーザってVBユーザとあんま変わってないのか。
開発環境が変わった程度で人がそうそう変わるわけはない
人がそうそう変われないのに、開発環境はどんどん変わる。 ‥‥せめて互換性は残しておいてよ。orz
VBAってVB.NETになるんですか? 今からVBA勉強するより、VB.NET勉強しておいたほうがいいですか?
当分は消えないだろうなぁ……(遠い目
862 :
半人前 :2005/11/02(水) 00:55:02
VB.net を使用してWindowsの 「ブー」(警告音) っていう音を出したいのですがどのようなコード を書けば宜しいでしょうか? お教え願います。
ビープならBeep関数があるが、それじゃなくて? コンパネのサウンドで設定するような奴?
864 :
半人前 :2005/11/02(水) 01:02:07
>>863 >ビープならBeep関数があるが、それじゃなくて?
>コンパネのサウンドで設定するような奴?
レスありがとうございます。
ビープというのは、Windowsの警告音の事を指すのでしょうか?
ちょとVSを立ち上げて【Beep】を試してみます。
どうもありがとうございます(^_^)b
865 :
半人前 :2005/11/02(水) 01:17:00
すみません。VS2003にて下記のコードを試して みたのですがどうもうまく行きません。一体何が原因 なのでしょうか? For i As Integer = 0 To 100 Beep() Next
何がどううまくいかないんだっての そこを説明しろ それだから半人前なんだ
867 :
半人前 :2005/11/02(水) 01:25:32
>>866 申し訳ありません。
上記のコードをButton押下のタイミングで鳴らそうとして
いるのですが、全く音が鳴りません。
※当方、スピーカー(安物ですが、、、)を一応つけてしっかり
映画を再生すると音が鳴っているのを確認した上で、
上記のコードを実行してはいるのですが一向になりません。
868 :
半人前 :2005/11/02(水) 01:29:39
失礼しました。一応押下したタイミングで鳴っておりました。 しかしながら、 例え100回ループのコードを記述してもスピーカーから流れる音というのは 「ブ」 でありできれば 「ブブブブブブブブ・・・」 といった風に連続で鳴らしたいです。。。
まずそもそもBeep関数で鳴る音は
>>862 で望んでいる音なのか?
ループ回数を2桁増やしたりしたらどうなのか?
870 :
半人前 :2005/11/02(水) 01:45:27
上記に関連して一ついい案が浮かんだのですが、 1秒毎にBeepを発生させれば 人間の耳には、ブブブ・・・と聞こえる気が致しました。 そこで、はたまたご質問なのですが1秒毎に実行させたい 場合には、どの様なコードを記述すれば良いでしょうか? ぐぐって System.Windows.Forms.Timer を使うらしいという事は、分ったのですが肝心のサンプル ソースが無い為に不完全燃焼中です。。。
871 :
半人前 :2005/11/02(水) 01:50:52
>>869 >まずそもそもBeep関数で鳴る音は
>>862 で望んでいる音なのか?
>ループ回数を2桁増やしたりしたらどうなのか?
半人前でして、音の種類には特にこだわっていない
ですからひとまずOKです。
あと、二桁増やして For i as integer = 1000 としても
やはり最後の1回分しか音は聞えませんでした。
1秒間隔で鳴らすというのが一番無難なのでしょうか?
私の手元の書籍を参照しても時間制御に纏わる開設が無いので
どうすれば、時間制御が出来るかいまひとつ分りません。
どうか、深夜に申し訳無いですがお教え下さいませ。
1秒だと間があきすぎだと思う。 Sleep(200)くらいでいいんじゃね?
873 :
半人前 :2005/11/02(水) 08:05:16
>>872 おはようございます。
早速のレスをありがとうございます(^_^)b
試してみます。
874 :
半人前 :2005/11/02(水) 08:10:38
875 :
デフォルトの名無しさん :2005/11/02(水) 11:28:54
ASP.NET Web Matrixで作成されたシングルファイルをVS.NET 2003のVB.NET ASP Webアプリケーション用の フォームとコードビハインドのファイル(HTMLとコード部分)に分割する方法というかコツはないでしょうか? 何度やってもエラーが取れず困っております。 ※適切な板が見つからなかったのですがASP.NETもこの板でいいのでしょうか?
VS.NET2003プロフェッショナルのVB.NETで開発しています。 ↑このパッケージにについてるクリスタルレポートを使って印刷機能を実装しようと思うのですが、 完成したexeを不特定多数に配布してもライセンスは問題ないでしょうか? またクライアントにexe以外の何かを入れないと動かないのでしょうか?
起動時に解像度の変更をしたくて、 Imports Microsoft.DirectX Imports Microsoft.DirectX.DirectDraw Dim device As New Device Dim Width As Integer Dim Hight As Integer Width = 800 Hight = 600 Me.FormBorderStyle = FormBorderStyle.None device.SetCooperativeLevel(Me, CooperativeLevelFlags.Exclusive Or CooperativeLevelFlags.Fullscreen) device.SetDisplayMode(Width, Hight, 16, 0, False) フォームロードにこんなコードを書いてみたのですが、実行すると数秒で解像度等々元に戻ってしまいます。 ずっと設定の解像度を保持してるには、どうしたらよいのでしょうか? 望む動作としては、ゲームにあるような解像度を変えつつ、フルスクリーン表示という感じです
878 :
デフォルトの名無しさん :2005/11/04(金) 14:23:53
WB.NET+ASP.NETで開発をしております。 ボタンを押された時にメッセージボックスを出すような処理を作ったのですが メッセージ表示時に何故か画面がリロードされてしまうのです。 ネットのサンプル等を見るとリロードせずに普通にメッセージが出ているのですが 何が原因なのかわかりません。詳しい方教えてください。 Response.Write("<script language=JavaScript>window.alert('aaa')</script>") これだけなんですが・・・
>>878 runat="server"になってないか?
質問です。 delegateとeventは、いったい、何が違うのでしょうか? 調べれば、調べるほど、「????」と、なってしまいます・・・。 eventは、handles句で、静的に関連付けができるとかなのか・・・。
>>880 @ITのVB.net入門にその記述があったような無かったような。
delegateは型。 eventはdelegateのインスタンスに対するプロパティ的存在。
Public Declare Function SelectObject Lib "gdi32" (ByVal hdc As Integer, ByVal hObject As Integer) As Integer hDC = GetDC(Picture1.Handle.ToInt32) hbmp = CreateCompatibleBitmap(hDC, ImgX, ImgY) hSelObj = SelectObject(hDC, hbmp) とした時にエラーコード126(モジュールが見つからない)が返るんですけど何故なんでしょう hDCとhbmpには値が返っています(hSelObjは0)
再現しないな 関係ないがハンドルはIntPtr型で宣言すれ
エラーコード126ってそれ。。
886 :
デフォルトの名無しさん :2005/11/07(月) 01:20:21
すみません。
どなたか暇つぶしに教えてくださいませ<m(__)m>
1)ドイツ語単語(などの外国語単語)をテキストファイルに
1行1単語ずつバーッと書いてあるものを用意する。
2)単語ごとに
ttp://www5.mediagalaxy.co.jp/sanshushadj/ (←ドイツ語の場合)のような辞書サイトに検索させる。
3)1単語につき1ブラウザ開くようにする
(だから300単語とかになるとひどいことになるけど……)
3’)もしくは検索結果のみを1ファイルに書き込む。
……というようなことをVB.NETをつかってやりたいのですが
(EXCEL VBAとかでもいい)、具体的にどうすればいいのか、
いまから自分で調べたりしてると時間がないので、
お知恵をお借りしたく、投稿させていただきました。
887 :
デフォルトの名無しさん :2005/11/07(月) 02:45:02
時々セーブデータで [configre] a1 =50 a2 =90 みたいな書式のデータ見るんだけど、あれって何使って出力すればいいの?
ストリームライターで、ってことじゃ無くて?
890 :
デフォルトの名無しさん :2005/11/07(月) 09:37:21
PanelをFixed3Dに設定した場合凹んで見えるのがデフォルトみたいですが 逆に見えるようにするにはどうすればいいですか?
PocketPC用のソフト作ってます。 compact framework で使えるグリッドコンポーネントってないでしょうか? セルの色さえ指定できればいいんですが。 グレープシティのを見かけたけど、抱き合わせ販売で高すぎ。。
892 :
デフォルトの名無しさん :2005/11/07(月) 11:23:53
今考えているのですか、ちょっとしたポータルサイトを作ろうとした場合 .netとsql serverがあればつくれますか? 登録されたアドレス等をsqlに溜め込んでHP上でselectしてあげれば いい気がするのですが、普通にできますかね?
>>888 Win32APIのGetPrivateProfileString、
WritePrivateProfileStringをMSDNなりぐぐるなりで調べてみるといい
>>888 >>893 の言う通りMSDNで調べて、使えそうだと思ったら以下の使ってみるといい。
ヌル文字、ヌルポインタなどのC言語の知識が少し必要になるけどね。
もし使いたければ以下のAPI宣言文を使ってくれ。
Public Declare Function GetPrivateProfileSection Lib "kernel32" Alias "GetPrivateProfileSectionA" _
(ByVal lpAppName As String, ByVal lpReturnedString As String, ByVal nSize As Integer, ByVal lpFileName As String) As Integer
Public Declare Function WritePrivateProfileSection Lib "kernel32" Alias "WritePrivateProfileSectionA" _
(ByVal lpAppName As String, ByVal lpString As String, ByVal lpFileName As String) As Integer
Public Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" _
(ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpString As Any, ByVal lpFileName As String) As Integer
Public Declare Function GetPrivateProfileInt Lib "kernel32" Alias "GetPrivateProfileIntA" _
(ByVal lpApplicationName As String, ByVal lpKeyName As String, ByVal nDefault As Integer, ByVal lpFileName As String) As Integer
Public Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" _
(ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpDefault As String, _
ByVal lpReturnedString As String, ByVal nSize As Integer, ByVal lpFileName As String) As Integer
そんな面倒なことしてまでWin32API使うことないんでないの? 自分で書いたってたいしたことないと思うんだけど。 作るときはフツーにテキストファイルに書くだけ。 読むときは一行ごと読んで“=”ぶったぎってアイテムと値を分けるだけ。 何も難しくないじゃん。
XmlSerializerやらSoapFormatterやらなら考える必要もほとんど無いが。
>>896 コメントやらセクションやらを考えるとメンドクセ
おっと、それなりの大きさの規模のアプリケーションを作った事の無い人でしたか。
毎回ご自分でその位実装してくださいね。
>>898 馬鹿じゃないの。
キミ、自分でそういうコード書いたことないでしょw
Win32API使えば面倒じゃないとでも思ってるのかね。
シリアライズ/デシリアライズしてくれるわけでもなく、結局アイテムを
一つずつ書き出し/読み出ししなきゃならないわけで、そんなものの
いったいどこにメリットがあるのか。
リストみたいなものも保存できないしね。
自分でスルスクラッチすればどうってことないのに。
セクション?
そんなもの実装するのわけないだろ普通。
900 :
895 :2005/11/07(月) 21:34:31
APIコールすんのが面倒臭いから同じ処理を自力で書くのか? 結果が同じなら先人の資産を活用する方が楽に決まってるだろ。 APIをコールするやり方知らないだけじゃん m9(^Д^)プギャー セクションを実装しないiniファイル? ハァ( ゚Д゚)? それiniじゃねーだろwww スルスクラッチってどこの世界の単語なんだよwww
なにこの必死な奴が多いスレ
>>899 設定ファイルにコメントが書けるのってのは非常に重要だし、設定ファイルの更新をしたときに元のファイルの体裁が残っている事も重要。それを真面目に実装すると結構な手間になる
904 :
デフォルトの名無しさん :2005/11/08(火) 09:40:18
お世話になります VB.netでタイマーを3つ用意し、1つをプログラム起動時に停止(仮称A)、1つをAからの差を取り カウントダウンタイマーとし(仮称B)、1つをBが0カウントになった時点で起動(仮称C) というものを作っていますが Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick Timer1.Stop() timers1 = (Now) Label1.Text = timers1 End Sub Private Sub Timer2_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer2.Tick REM 時間の演算 ' 時間計算の問題を解決すること ' 1 キャスト問題を解決すること ' 2 タイマー2つの時差をとること timers2 = (Now) Label2.Text = CDate(CDate(timers2) - CDate(timers1)) REM この演算を入れると死ぬ ' キャストが悪さしてるみたい どうやってもうまくキャストできません どなたか妙案があったら御教授願います
>>904 秒単位の精度でいいなら、DateDiff関数でいいんでは?
つか減算よりも比較演算の方が良くないか?
907 :
デフォルトの名無しさん :2005/11/08(火) 12:01:22
Panelの凹凸は逆に出来ないんでしょうか?
>>904 キャストが悪さしてるみたい、ってそれ確認したの?
本当にそれが原因か確認する方法を考えた?
っていうか、エラーの内容は?
んなことやってると永遠に三流PGでっせ。
MSDN見るとVBの日付型の正体はDateTime構造体だとわかる。
DateTimeに対して‘-’演算子は定義されているんだろうか。
909 :
904 :2005/11/08(火) 12:43:28
>>905 ,906
ありがとうございます
とりあえずカウンタをすべて動かすところまではいけました
またお願いします
>>908 ありがとうございます
三流だなんてとんでもない 中途入社のVB暦1週間のペーペーです
またお願いします
>>907 自分で派生クラスを再定義すればいけるかもしれんね。
そんな手間かけるくらいなら、画像ファイルを用意してピクチャ貼り
した上にコントロール配置したほうが楽かも。
ここで聞くもんかわからんが VBCommenterっていうコメント書きアドインツールがあるんだが 米サイトからDL出来なくなってる(エラーになる) どこかミラーでおいてあるところ無い?
912 :
デフォルトの名無しさん :2005/11/08(火) 14:46:34
今までVB 6で開発してましたが、遅まきながら.NETに移行しようと思います。 そこでちょっと調べたのですが、.NET用の市販ライブラリがあまり見つかりません。 今まではVB 6の標準コントロールが貧弱ということもあり、ほとんどのコントロールは 購入したライブラリのものを使用していました。 皆さんは、.NET用の市販ライブラリはどのようなモノを使っていますか? グレープシティやWindows Developerマガジンを調べてみたのですが、 他にもどこかで紹介されているサイトがありましたら、お教えいただきたく。 それとも、使う必要の無いほど.NETのライブラリは高機能なんでしょうか。
913 :
デフォルトの名無しさん :2005/11/08(火) 14:58:21
>>912 まず、どんなライブラリが必要か列挙したほうがいんじゃまいか?
親クラスが overridable されているかどうかを調べる方法は ありますか? 例えばグレープシティの InputMan の EditMode を overrides したかったのですが EditMode が overrides できなかった ので、overridable されているかを調べたくなりました。 方法があれば知りたいのでよろしくお願いします。
普通はリファレンスに書いてるんじゃね?
それが書いてないんですよね。 例えば Public Property ControlEffect As GrapeCity.Win.Input.ControlEffect は overrides できて、 Public Property EditMode As GrapeCity.Win.Input.EditMode はできない。 リファレンスじゃわからないんですよね。 というか、リファレンスを見るしか方法ないんですかね?
917 :
デフォルトの名無しさん :2005/11/08(火) 17:21:56
VB6の「debug.print」は、vb.netでは「system.Diagnostics.Debug.WriteLine」ということですが VB6のイミディエイトウインドウのようなものは、visual studioに無いのでしょうか?
ある ほとんど同じ使い方が出来る つか、ヘルプ見(ry
919 :
917 :2005/11/08(火) 18:08:28
Microsoft Script Debugger でしょうか? 表示メニューでは選択できませんが、どうやって表示するのでしょうか?
920 :
912 :2005/11/08(火) 18:17:02
>>913 あ、すいません。カテゴリーを示すことにしますが、そうすると次に
「どんな仕様なら良いんだ?」とさらに質問が来そうなので、今使っている
コントロールを示すことにします。
入力系:グレープシティ InputMan
グリッド系:グレープシティ SPREAD
グリッド系:グレープシティ VS-FlexGrid
フォーム系:グレープシティ Active 3D Plus
フォーム系:グレープシティ VS-Resizer
グラフ系:グレープシティ True WinChart
ヘルプ系:グレープシティ True Help
インストール系:グレープシティ InstallStudio
帳票系:H.O.S シーオーリポーツ
グレープシティのものが多いですが、これは文化オリエント時代のVBXから
使っているというだけで、気に入ってるわけではありません。
ですから、.NET用はグレープシティのものではなく、他社のモノも
使ってみたいと思います。
>>919 コマンドウインドウというのがそれにあたる
> ←これが出てるから
immedと入力するとデバッグ中に変数の中身表示させたり出来る
922 :
917 :2005/11/08(火) 18:48:47
>>921 どうもありがとう。助かりました。
「表示」の「その他ウインドウ」に気づきませんでした。
Debug.Print は Console.WriteLine で置き換え 出力のウインドウで確認
C# から VB.NET に移行してきました。 コントロールのイベントの追加の方法を知りたいのですが、 C#はコントロールを選択してプロパティの画面から追加するイベントを 選択してコードを書いていくのですがVB.NETの場合はコード画面の 上のほうにあるコンボボックスの左側からコントロールを選択し、 その右のコンボからコードを追加したいイベントを選択するという方法 になるのでしょうか? これ以外のイベントの追加の方法がありましたら教えてください。 あと、複数のコントロールで発生したイベントで処理する内容が同じ場合、 Handles のうしろに、そのイベントで処理したいコントロールを 手書きで追加していくっていうやり方であっていますか? これもC#の場合はプロパティの部分でイベントを開くと既に存在する 関数が一覧で表示されそこから選択する事ができたので、 VB.NET でも同じように IDE で処理する方法があれば教えてください。
なんでそんな移行するんだろう
926 :
917 :2005/11/08(火) 19:31:29
>924 >その右のコンボからコードを追加したいイベントを選択するという方法 >になるのでしょうか? そうです。 >これ以外のイベントの追加の方法がありましたら教えてください。 私にはわかりませんので、レスを待ってください。 >あと、複数のコントロールで発生したイベントで処理する内容が同じ場合、 >Handles のうしろに、そのイベントで処理したいコントロールを >手書きで追加していくっていうやり方であっていますか? あってます。
927 :
デフォルトの名無しさん :2005/11/08(火) 21:17:35
ラベル コンボボックス ピクチャボックス これら全てを表示はさせつつ、 一つのチェックボックスがチェックされていないと構えないようにしたいんだけど、 どうしたらいいですかね? visible=falseは消えちまうからイクナイ
C#でいうところの using() {} のように 自動でIDisposable させる為の 構文はVB.NETにありますか?
enabled=false つーかラベルをどういじるの?
930 :
デフォルトの名無しさん :2005/11/08(火) 21:32:31
なんつうか、グレー表示にならんかな
931 :
デフォルトの名無しさん :2005/11/08(火) 21:33:09
>>929 えーと、これチェックしたらコレ使えるで、みたいな雰囲気を出しときたい
自分でコントロール作ればいいんだよ。 ラベルなりなんなり継承して。 そんなの三分もあれば出来るよマジで。
windows.formsなアプリで、起動直後に設定ファイルの有無の判断を行ない、 設定ファイルがある場合フォーム(A)を表示、なければ設定用のフォーム(B) を表示といったアプリケーションを作りたいと思っています。 この時、A.exeを起動して設定ファイルのチェックをし A.exe のフォームを 表示せずにB.DLLを表示させられなくてつまづいています。 A.exeのフォームが必ずでてしまいます。 A.exe を起動しつつ、A.exeのフォームを表示したくない場合には どのようにすべきでしょう?
モジュール作ってプログラムのプロパティのスタートアップの設定で そのモジュールにする で、そのモジュール(のmain)でApplication.Run(_form1)の前にForm2.Showdialogかな?
>>933 適当なクラスにMainって共有メソッドを作って
そいつをプロジェクトのスタートアップにすべし。
っていうか、こんなのドトネトのTips紹介してるサイトをちょっと巡れば
調べがつくでしょ。
937 :
933 :2005/11/08(火) 22:06:53
ありがとうございます。 自分で Main メソッドを作ればいけるんですね。 助かりました。
オプション画面を作る時、左側のツリー選択で右側の画面を切り替える場合は、新しいフォームのインスタンスを作って右側だけに呼び出すという形でいいのでしょうか? それとも、もっと一般的な形があるんでしょうか?
939 :
デフォルトの名無しさん :2005/11/09(水) 00:08:57
>>938 Formを普通のコントロールにして右にLoad
TopLevelだっけかな?
ナンノコチャw
941 :
デフォルトの名無しさん :2005/11/09(水) 00:15:10
TopLevel = FalseにしないとForm内にFormを追加できねぇ
942 :
904 :2005/11/09(水) 12:10:31
1つのソースで完結する(ビルドできる)ソースファイル2つを 1つの実行ファイルにまとめたい(ソース1でソース2に記述したクラスを 呼び出す?)のですがMSDN見てもやり方がまったくわかりません 実際こういうことは不可能でソース2を解体してソース1に組み込まないとだめなのでしょうか?
943 :
904 :2005/11/09(水) 14:10:58
>>942 は解決できました
ありがとうございました
944 :
デフォルトの名無しさん :2005/11/09(水) 16:21:38
今日VB.NET始めたばっかですが質問させてください テキストボックスに入力した値を変数xに入れて 別の変数nを10のx乗させて変数yに格納したいんですが Dim y As Double = n * E(x) これだとだめでした どうしたらいいんでしょうか^^;
べき乗するなら ^ を使う 10^2 は 10の2乗^^
E(x)って書くと、「xを引数として関数Eをコールする」か「配列Eのインデックスx番の値」って意味になっちゃう。 階乗演算子は ^ 10のx乗は 10^x 変数nを10のx乗するってのは意味がわからんけど、察するに以下のようにすればいいと思う。 Dim y As Double = n * (10^x)
947 :
944 :2005/11/09(水) 17:44:30
948 :
デフォルトの名無しさん :2005/11/09(水) 19:56:38
ファイル→新規作成→プロジェクト→新しいプロジェクト→OK とすると「オブジェクトでサポートされていないプロパティまたはメソッドです。」 と出て、新しく始める事ができません。 どうか、解決策を教えてください。
開発環境を入れ直せ。
950 :
デフォルトの名無しさん :2005/11/09(水) 20:37:23
>>949 ありがとうございます。さっそく、やってみます。
>>938 PanelかUserControlを派生させて、そこにそれぞれの画面を作る。
Formにそれぞれを重なるように配置して、表示するのを変えるにはそのコントロールをBringToFrontする。
952 :
948 :2005/11/09(水) 21:23:14
探したのですが、どこで開発環境の変更をするかわかりません。 誰か、教えてください。
変更って何?
954 :
948 :2005/11/09(水) 21:28:43
間違えました。入れ直す、でした。
vb.net で作成した DLL(Windows.Forms) を、参照設定する事なく、 インスタンスの生成を行ないたいのですが(フォームの表示をさせたい) 実現させる方法はありますか?
System.Reflection.Assembly.LoadFromでアセンブリをロードして、 そのAssemblyでGetTypeして型情報を取得、 System.Activator.CreateInstanceでその型のインスタンスを作成。
ありがとうございます。 GetType する時にクラス名がわかっていないといけないようですが、 クラス名がわからなくてもアセンブリのインスタンスを生成する なんて事はできないでしょうか?
型名も分からないのにインスタンスを作るってのもなかなか有り得ないと思うが……。 Assembly.GetTypesでType配列を取得して、それぞれBaseTypeを遡っていって調べてみるとか。 > アセンブリのインスタンスを生成する これは意味不明だ。
>>952 VisualStudioをアンインストールして
もう一度インストールする
あるDBのマスタテーブルからデータを読み込む(書き込む機能は不要)クラスを作るとした時。 このデータの読み込むタイミングは以下のどちらが一般的でしょうか? ・コンストラクタでマスタのCodeを渡して読み込む ・コンストラクタでは何もせず、DataRead(Code)のようなメソッドを持ちそこで読み込む 上司に「コンストラクタは初期化なんだから何もせず、読み込むメソッドを持った方がいい」と指摘をうけたのですがどうなんでしょう。 なんか「初期化」の意味を取り違えてるような気がしないでもないのですが・・・ 作る側としては読み込むメソッドを持つと、使う側で呼び忘れてエラーの元になってしまうと思ったので コンストラクタで読み込んでしまうような作り方をしていました。
一般的にはその上司の言が正しい。 特に処理が重くなる場合はコンストラクタに実装するのは避けるべき。
ケースバイケースだろうけど俺は
>>960 の設計の方をむしろ推すね。
要するに読み込みを非同期にすりゃいいだけでしょ?
客から注文もらってから問屋に注文だすような店なら最初からイラネ。
コンストラクタではまず重い処理はやるべきではない。
次に、どっちにも対応すればいいんだから・・・。
上司コンストラクタ − インスタンス生成だけ
>>960 コンストラクタ − 生成して検索関数呼ぶ
検索ぱぶりっく関数 − 検索実行
面子潰さず、自分の意見通しつつ。
textboxコントロールがフォーカスを受け取った時にコントロールの 背景色を変えようと思っているのですが、 フォーカスを受け取ったイベントとして、 Enter を使うべきか、GotFocus を使うべきか、どちらを 使うべきでしょうか?
Enterを使うべきだとあちこちに書かれてると思うんだが。 GotFocus使ったらフォームをアクティブにしたときも発生したりするぞ。
VB.NETのIF文で最初の条件がFALSEの場合2番目以降の比較は行なわないように 記述する方法はありますか? dim x as boolean = false dim y as boolean = true if(x and y = nothing) then の場合、xがFALSEなのでyの値が何であっても条件に該当しないので このように最初の条件がFALSEになった場合、それ以降の条件判断を して欲しくないのですが。IF文を2つにわけるしかないでしょうか? よろしくお願いします。
AndAlso ちょっとはリファレンス見ようぜ
968 :
960 :2005/11/10(木) 17:48:52
>>961 >>962 >>963 レス感謝です。
「コンストラクタには重い処理を書くべきではない」ってのを今日まで知りませんでした。
1万件のレコードを、960に書いた2通りの方法でそれぞれ試してみましたが時間的な差は無かったです。
なにか実感できるようなサンプルってありますか?
厳密にはデバッグできなくなるって理由でないの?>コンストラクタに書かない
>>968 >「コンストラクタには重い処理を書くべきではない」ってのを今日まで知りませんでした
単に961の俺様ルールだと思うよそれ。
だってそんなルールに何の合理性のないじゃん。
すくなくとも無条件にいつでも合理的とはいえないよ。
というか、重いなら単に非同期で処理すればいいだけの話で
どうせ必須の引数なら最初から受け取っておく、必須の処理なら最初からやっておく
これが普通の考え方でしょう。
もちろん「特に理由がない限りにおいては」ね。
つ コンストラクタの使用方法のガイドライン
Cで作った xxx.dll 中の typedef struct { int a; int b[50]; } X; int test(X *z) {} な関数を、VBで、 Structure X Dim a As Integer Dim b(50) As Integer End Structure Declare Function test Lib "xxx.dll" (ByRef z As X) As Integer として使おうとしたのですが、VBでは構造体に固定長配列が使えないらしく、 エラーが出てしまいます。 構造体の中では b() だけ宣言して後でReDim b(50) しても、 アドレス的に a に連続しないのか、test を呼び出したときに落ちます。 どうしたらいいでしょうか。
C#.NETでは書けて、VB.NETで書けないものってありますか?
>>972 Imports System.Runtime.InteropServices 'コードの先頭で宣言
<MarshalAs(UnmanagedType.ByValArray, SizeConst:=50)> _
Dim b() As Integer
>>973 VB2005で可能になるけど、カスタムイベント、演算子のオーバーロード、XMLドキュメントあたり。
つうか、コンストラクタで非同期処理なんてしてほしくないよな。
977 :
デフォルトの名無しさん :
2005/11/11(金) 15:05:20 質問です。 データグリッドで、1つのセルに文字を打ったとき、 打たれた文字を判別することはできますか? データベースと連携させていて、aと打たれたらaから始まるコード(商品コードなど)を そのセルの部分でコンボボックスで表示させたいのですが。