1 :
デフォルトの名無しさん :
2007/04/23(月) 12:42:36
5 :
デフォルトの名無しさん :2007/04/25(水) 11:09:56
ゴミ箱に移動、をWin32APIを利用して実行した場合、それを元に戻すには 別の Win32API などを使って簡単にできるものでしょうか。 よろしくお願いします。
>>5 実装した事はないがこういうのは前に調べた時にリンクのこしてたんではってみる
かなり強引というか力技www
削除したのを戻す可能性があるのなら自分でフォルダをゴミ箱に見立ててやってはどうだろ?
これなら削除したファイルの一覧は基本的に自分がPGから移動させたものしかないので管理とかもらくだと思う
削除→ゴミ箱に見立てたフォルダへ移動
戻す→上記のフォルダからもとの場所へ
完全削除→ゴミ箱へも移動させずファイルをデリート
こんなんじゃぁだめかな?
どうしてもゴミ箱じゃないといけないならしょうがないんだけど・・・
http://mtamaki.cocolog-nifty.com/blog/ 2005年1月27日の記事
7 :
デフォルトの名無しさん :2007/04/25(水) 12:00:45
VB.Netで作ったクラスをCOMクラスとして公開して Excel 2000のVBAからアクセスしたいんだけど、どうすればいいんだ? ---------- VB.Netのソース ---------------- <Microsoft.VisualBasic.ComClass()> <System.Serializable()> Public Class Class1 <System.Runtime.InteropServices.DispId(1)> Public Function Sub1(ByRef x As Integer) x = x + 1 Return (x + 1) End Function End Class ----------------------------------------- Dllつくってtlbへの参照設定はできるんだが、つぎのソースでエラーが起きる。 --------- Excel VBAのソース -------------- Sub main() Dim x As MyProject.Class1 x = New Class1 <--- ここでエラー x.Sub1 (1) End Sub ----------------------------------------- --------- エラーメッセージ ---------------- 実行時エラー '-2147024894' (80070002)': ファイルまたはアセンブリ名MyProject、またはその依存関係の1つが見つかりませんでした。 -----------------------------------------
>>6 どうもです。
やっぱり難しそうなので自分で専用の移動用フォルダで管理した方が
いいですか。わかりました。その方向で検討してみます。
ありがとうございました。
9 :
デフォルトの名無しさん :2007/04/25(水) 14:06:51
質問です。 テキストファイルをOpenFileDialogで読み込む際に、String型ではなくて、 System.Text.StringBuilderクラスで読み込みたいのですが、どうやればいいでしょうか。 Dim Dialog As New OpenFileDialog If Dialog.ShowDialog(Me) = Windows.Forms.DialogResult.OK Then Dim value As New IO.StreamReader(Dialog.FileName) ここで、value.ReadToEndではString型になってしまいます。 それともStringからStringBuilderクラスに変換するメソッドなどがあるのでしょうか。
10 :
9 :2007/04/25(水) 15:08:33
自己解決しました。 Dim sr as new System.Text.StringBuilder(value.ReadToEnd) これで良かったみたいです。 板汚し失礼しました。
>>5 Win32APIは知らんが、
Shell.Applicationを使えば簡単にできるのでは?
Folder.MoveHere FolderItem
13 :
デフォルトの名無しさん :2007/04/25(水) 19:23:08
質問です。 SQLサーバから取得したテーブルをDataGridViewにFILLする際の 書式指定のやり方を教えて下さい。 値 4987123456789 (文字列13桁) 表示させたい書式 49-87123-45678-9 columns(0).DefaultCellStyle.formet が疑わしいと思うのですが、さっぱりです。
14 :
13 :2007/04/25(水) 21:04:36
自己解決しました。。。CellFormattingを使用。 Private Sub DataGridView1_CellFormatting(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellFormattingEventArgs) Handles DataGridView1.CellFormatting Dim o As Object = e.Value If Not (o Is Nothing) AndAlso e.ColumnIndex = 0 AndAlso e.Value.ToString().Length = 13 Then Dim s As String = o.ToString() e.Value = String.Format("{0}-{1}-{2}-{3}", s.Substring(0, 2), s.Substring(2, 5), s.Substring(7, 5), s.Substring(12)) e.FormattingApplied = True End If End Sub
VB2005でASP.NETシステムを書いてます Win2003 ServerにWebサイトの発行でできたソースを設定し、ブラウザで表示させたところ、 web.configに以下のエラーが発生しました。 '/' アプリケーションでサーバー エラーが発生しました。 -------------------------------------------------------------------------------- 構成にエラーがあります。 説明: この要求を処理するために必要な構成ファイルの処理中にエラーが発生しました。以下のエラーの詳細を確認し、構成ファイルに変更を加えてください。 パーサー エラー メッセージ: アプリケーション レベルを超えて allowDefinition='MachineToApplication' として登録されているセクションを使うことはできません。このエラーは、仮想ディレクトリが IIS でアプリケーションとして構成されなかった場合に発生します。 ソース エラー: 行 81: --> 行 82: <!--認証について--> 行 83: <authentication mode="Forms"> 行 84: <forms name="xxxxx" protection="All" loginUrl="login.aspx" timeout="30" defaultUrl="menu.aspx"/> 行 85: </authentication> 83行目にエラーがあると表示されます。 これはどのように修正すればいいのでしょうか?
質問ですが VB.NET2005で作成したアセンブリにはMyが入ってしまうのですが これを入らないようにする方法はありませんか
あります
あるなし厨と教えて君ワロタ
20 :
デフォルトの名無しさん :2007/04/26(木) 23:00:44
UnZip32.dllを使ってzipファイルを解凍しているのですが 既存ファイルがある場合は選択コマンドが出ます。 コマンドを表示させずに既存ファイルを全て置き換えるには、このSwitch設定をどうしたらいいですか? Switch = "-x"
22 :
20 :2007/04/26(木) 23:19:03
23 :
20 :2007/04/26(木) 23:23:42
24 :
20 :2007/04/26(木) 23:28:19
>>22 >>23 あの、誰ですかあなた達?w
スレ違いのようでした。
すみません。
25 :
20 :2007/04/26(木) 23:32:15
あのすみません 分かる方お願いします。
28 :
デフォルトの名無しさん :2007/04/27(金) 11:57:47
TreeViewコントロールのTreeNodeを選択したときの、選択時バックラーを、 例えば ContextMenuStrip コントロールの中の ToolStripMenuItem を 選択したときの選択時バックラーのように、薄いパープル色にしたいのですが、 可能でしょうか?可能としたらそのためにはどのようにすればいいでしょうか?
バックラー。武具がどうかしましたか?
バックラーを背景色(バックカラー)のことだとすると、ノードをオーナードローするしか ないんじゃね? ちなみに、オレの環境(XP)ではToolStripMenuItemの選択色は薄いパープルにはならんけど。 ToolStripMenuItemにはRenderModeあるし。
>>30 >ノードをオーナードローする
そうですか、わかりました。やってみます、どうもでした。
Dim xlApp As New Excel.Application() xlApp.Visible = True てな具合にEXCELオブジェクトを表示させたあと、 ユーザーがEXCELを終了させたことが わかるようにするにはどうしたらいい?
その小学生の作文みたいな文章、少しは文章推敲したら? 「わかるようにするにはどうしたらいい? 」という日本語が分からないよ。 わかるって誰がだよw エクセルのウィンドウがユーザーによって閉じられたとき、それをプログラムで 検出したい、という意味か? それならたぶんエレガントな方法では出来ないと思う。 そういうイベントは用意されてないし、そうでなくてもエクセルのイベントって なぜかうまく受信できない場合が多い。 泥臭い方法だけど、エクセルのウィンドウがユーザーによって閉じられるとApplication.Visibleが Falseになるようだから、それをポーリングすれば一応できないことはないと思う。
VB.NETを初めてする者がわかり易い参考書やサイトはありますか? プログラム経験はなしです。上記のサイトを見させてもらったのですが、 VB.NETだけでなく、ASP.NET、C#という言語のものもあって混乱しています。 スレ違いかもしれませんが、よろしくお願いします。
同じことをするC#とVB.NET両方のコードを載せてあるところが多いから VB.NETのコードだけを見ればいいだろ まあ両者はほとんど同じ言語だからそのうちC#も読めるようになるよ
そうそう、あっちもこっちもすると混乱するだけ。 初心者ならVBのほうがいいと思う。 C#はわかってる人間には効率的に書けたりするけど、VBに比べると コンピュータ言語っぽさがあるから。
旧VB に慣れた人なら兎も角、新規に学ぼうという人は C# で型の概念をきっちり身につけた方が良いと思うんだけどな。 せめて Option Strict On がデフォルトならなぁ……。
>>35-37 ありがとうございます。
仕事で開発部門にまわされてそこでVB.NETを使うので覚えるようにと
言われたのですが、似たような記述で戸惑っていました。
サイトを見てもいまいち理解しにくかったので、参考書を買ってみようと思います。
VBの方が実際によく使われてるけど C#はC#→VB.NET, Java, C/C++, … と続けてどんどん習得していきやすい
>>39 まじで?
俺VB.NETから .NET入っクチだけど
世の中の流れはC#だなぁ・・・と思ってC#に移行したんだが
まぁ、結局仕事で両方使わないといけないので両方使ってるけど
言語の問題じゃなく、考え方さえちゃんとわかってればいいと思う。 VB.netでもUIに貼り付けて適当にイベントコード書くのじゃなくて クラス設計とかを考えて使ってれば問題ないと思う。
しかしStrict = Onなんて意味ねえな、と個人的には思う。 周囲の目があるから意味ねえと思いつつStrict Onにしてはいるけどね。 Strict Onにしといてよかった、なんて思ったこと一度もないよ。 縮小変換を縮小変換と意識せずついうっかり書くなんてことあるか? ありえねえw だったら明示的に型変換することに何の意味があるんだよアホらしい。 ArrayListのアイテムにDirectCastを強制することで、突っ込んだ型と違う型に キャストしてしまう可能性を減らせるか? 絶対ありえねえw 同じ場面ならやはりdestinationの型の指定を間違うだけだろ。
みんなお前みたいにちゃんと理解してやってるとは限らないだろ
まぁ、こういうアホを納得させるには誉めるのが無難だな。
っていうか、プログラム初心者はとにかく動くプログラムを作れるようになるのが先決。 そうじゃないと、どんな話も理解できない。 「プログラム初めて」っていう人にオライリー本薦めるバカも世間にはいるようだが。
作りたいアプリをとりあえずStrictオフでガーっと作ってみて、 動作もだいたい完成レベルになったので、 Strictオンにして暗黙の型変換してるところを全部書き直したが、 動作速度が全く変わらなかった。
レイトバインディングの弊害はコンパイル時に型に起因する問題を解決できないこと。 分かって書いてるならそっちの方が都合が良いことも多いんだがね。
48 :
デフォルトの名無しさん :2007/04/29(日) 18:27:15
クラス設計なんか考えなくていい。 使いたい機能が使いたいときに手順に従ってガーッと使うだけで動くプログラム書けるんだから。
釣れそうですか?
そういうのは移行とは言わないw まあ、どっちでもって人はたくさんいるだろな
初心者にとっては、オフだととんでもないのを書いてしまうので有用。 上級者にとっては、まれにやってしまうミスを見つけられる場合があるので有用。 他の人の書いたプログラムを見るとき、あえてやってるのか、間違えてるのか明らかなので有用。 どう考えても有用。
オフだとインテリセンスが使いにくいし
あと速くなるのはレイトバインディングを減らせた場合で、 最初からまっとうにコーディングしてるなら変わらん。
値型をいっぱい使ってたら速くなるだろ 逆にいえばOffだと値型の意味がない
あほ
だからそういうのはまっとうに使ってない場合だろw
まっとうに使うって言って全部型指定したらStrict Onと同じだろw Offだと型指定しなくても「まっとう」になっちゃうって話
>>54 こういう奴がいるからオンにしなければならない。
>>57 おまえオフの場合は型書かない前提なのかよ。
いや、普通は違うと思うぞ。
そんなインテリセンスも使えん状態じゃやっとれんだろ。
「オフだと値型の意味がない」って書いといてそうは読み取れん。 wとか書いてるしあやしいんだよ
どうしてレイトバインディングとか極端な話になるのかね。
CreateObjectでエクセルとか操作する場合を除けば、Strict = Offでも
レイトバインディングなんてわざわざする訳がなかろうに。
別に煽りとかそんなんじゃなく、純粋に興味があるから聞くけど
俺は
>>42 に書いたとおりStrict = Onに積極的な意義はないと思うけど、
それは間違いだという意見の人は、是非具体的にその理由を教えてくれないか?
んなもんどっちでもええわ。 サポート機能のひとつなだけで、間違いとかそういう問題じゃねーよ。
デフォルトでonになってるんだからあえてさわらんでもという感じだな
いや、なってないけど。。
型指定するのってデフォじゃないの?
66 :
デフォルトの名無しさん :2007/04/30(月) 12:16:48
今までVBでやってきて、VB.NETでの開発に移行するのですが(遅っ!)、 ランタイムライブラリとクラス・ライブラリをどう使い分けていますか? 一つのプログラムで、クラスライブラリなら全部クラスライブラリで統一 して記述していますか? ある所では今までのVBで使えた関数を使って、別の所ではVBで使えた関数では なく、クラスライブラリの関数を使うといった、2つを混合させて記述してもOKですか?
C#な人との共同の仕事じゃなきゃ別にいいんじゃない? VBライブラリは将来なくなる可能性がある、とかMSは言ってるけど どうせハッタリで実際はなくせないと思うし。
.NET2.0で最終進化だと言い切ってもらいたんだが
そろそろ新技術Orgが発表されます。
VB2005です。恐縮ですが質問があります。 テキストエディタをRichTextBoxを使って製作しているのですが、 Wordのように文書に段落番号を設定できるようにするには どのようにすればよいのでしょうか。 箇条書きや段落のインデントの設定などはわかったのですが 段落番号がわかりません...。 よろしくお願いします。
標準では無理。 PARAFORMAT2 を EM_SETPARAFORMAT で投げることになるかな。めんどくさそ。
72 :
デフォルトの名無しさん :2007/05/01(火) 19:42:25
すみません。PHPからの移行者なんですが、PHPだと画像が1つあれば それを拡大・縮小など簡単にできたんですが、VB.netでもできますか? できれば、VBでつくりたいとおもっています。よろしくお願いします。
System.Drawing あたり見てみるといいんちゃう?
74 :
72 :2007/05/01(火) 19:52:09
HEX()やOCT()みたいな関数で2進数に変換してくれる関数は存在しないのでしょうか?
Convert.ToStringつかいなされ
77 :
デフォルトの名無しさん :2007/05/01(火) 21:57:00
ASPとCOMでHTTP通信のReadとかWriteとかあるんだけど、 送信は好きな時に送ればいいけど、受信はイベントでも発生するの??
すごい前衛的な日本語の使い方だなw
>>76 ありがとございます。
これって0000-0000みたいに出力のフォーマットを指定することはできませんか?
>>79 一例をあげると
string.format("0000-0000")
これじゃね?
もちろんほかにも色々あるけど、簡単なのはこれかな
81 :
80 :2007/05/02(水) 01:16:34
間違えたwww convert.tostring(""0000-0000"") まぁオーバーロード一覧見てみればいいよ
恥ずかしい奴だなw
それって単なる0のプレースホールドしてるだけじゃないのか?
>>75 をよく見ろよ
84 :
デフォルトの名無しさん :2007/05/02(水) 21:46:05
>>77 レスありがとうございます。
で本題の方は・・・
VB2005で質問です。 win32 APIを使って他のWindowにアクセスするプログラムを作りましたが、 終了してもプロセスが残ったままになります。 アンマネージリソースの開放(?)とかが必要なのでしょうか。 もし、必要ならば具体的にどうすれば良いのでしょうか?
プログラミングなんてやめてしまう、が正解。 たぶん才能ないし向いてないんだよ。 そんな質問の仕方をするようではね。
Application.Exit
解放でしょ
>>85 です。
解放ですね。。。。
Application.Exit とか Dispose() とかも試してますが上手くいかないです。
VS2005のデバックモードでは何も問題ないです。(これは当然か。。)
>>89 スレッドが残ったりしてない?Environment.Exit でどう?
せめてこうすればよくわかるとは思うんだが
なにも想像がつかない
VB2005で質問です。
win32 APIの”A”を使って他の”Bにアクセスするプログラムを作りましたが、
”C”のような手順で終了しても”Dの”プロセスが残ったままになります。
アンマネージリソースの開放(?)とかが必要なのでしょうか。
もし、必要ならば具体的にどうすれば良いのでしょうか?
Aは使っているAPI
Bは外部のプログラムだろうけど呼び出しはどうしているのかなど(Shellで起動させた.Netのアプリ など)
Cは何をどのように終了させているか
Dは対象となるプログラム(Bプログラムなのか、そのAPIを使っているプログラム自身なのか)
べつに、こういう書き方が正しいわけじゃないけど
できるだけ詳しく書かないとエスパーじゃないんだし 叩かれるだけだぜ?
まぁ、
>>89 の状況から察するに自身のプロセスだろうけど
とりあえず終了するとき、ほかのWindowのインスタンスが残ってないかとか いろいろあると思うんだけどな
でもなんとなく・・・・
>>91 の予感がする
93 :
70 :2007/05/04(金) 00:19:41
>>71 遅レスすいません。
おかげさまでできました...
教えて頂いてありがとうございました。
>>85 です。
>>91 さんのご指摘通りですっきりしました。 ありがとう。
Environment.Exit って知りませんでした。
大半の時間を【System.Threading.Thread.Sleep】している
お遊びプログラムなので、win32APIではなく、sleep中に
終了させてしまったということなのでしょうかね。
おかげさまで、デバッカと離すことが出来ますので良しとします。
なんじゃそりゃ
96 :
デフォルトの名無しさん :2007/05/04(金) 02:19:15
どっちにしろ
>>94 はPGとしてカスだな
知らないなら機能を調べてから使えよ
そのソフトの修正やバグ取りで尻拭いする人間のことを考えろ
Application.ExitとEnvironment.Exitの違いもどうせ調べてなさそうだし
趣味グラマなんでしょ
納得してしまった
すいません。全くの初心者ですが質問させてください。 何故VB.netのスレのテンプレのリンク先がC#ばっかりなんですか?
>>99 死ねカスが
100年ROMって勉強してから聞け
超質問、これからVista用プログラム作りたいのだけど Vistaのアカウント制御オン状態でコードサインが無いと実行するか毎回聞かれて ウザいんだけど、作成したプログラムを配布するとしてどこからサインもらおう? シェアウェア製作者とかどうしてるんだろう?
VB.NET2005の いくつかボタンがあるフォームの Form Availableイベントに Button2.Focus() を書いてもフォームが表示されたときにボタン2にフォーカスがいかないのはバグ?
>>103 Availableイベントなんて無いぞ。
たぶんActivatedのことだと思うが、そのときのCanFocusプロパティはFalseだから仕様だ。
Select()するかShownイベントでFocus()しろ。
そうActivatedだった
MSDNライブラリのFormメンバ説明で Shown フォームが初めて表示されるたびに発生します。 初めて、という言葉と、たびに、という言葉があるが結局どういうことなんだ?
>>106 いや・・・そのままだと思うんだが・・・・・
(((Shown フォームが初めて表示される)*n)たびに)発生します。
初めては1回しかないのに たびは何回もということであり
ここは日本語の解釈を質疑応答するスレになりました
つーか解説読めばわかるだろ
在日なんだろ?w
113 :
デフォルトの名無しさん :2007/05/06(日) 04:34:17
VB初心者ですが、以下の件に関し教えて下さい。 テキストボックスで数字を小数点以下3桁表示にするには どのような方法があるのでしょうか? また小数点をチェックする方法はどのように行えばよろしいのでしょうか? (誤入力で小数点が2つ入力されるのを防止するため)
TextBox じゃないとダメなのか? NumericUpDown とか
115 :
デフォルトの名無しさん :2007/05/06(日) 12:13:15
>>114 可能であればテキストボックスが良いのですが・・・
1文字以上の数値の後 小数点があるかどうかチェックし、あれば以降の小数点はうけつけない また、小数点がある場合以降3ケタしか許さない とりあえずこのロジックをテキストボックスのチェンジイベントにでもいれてみれば? これも実装できないんならちょっとそれ以前の問題かと…・ 指定された文字があるかどうかは instrでもつかえばいいっしょ
あぁ、VB6と間違えてたw 折角だからこっちのがイイ罠 string.substring
118 :
デフォルトの名無しさん :2007/05/07(月) 11:17:09
フォントにはBold Italic が選択できるフォントと Boldしかないようなフォントがあると思いますが これを判別するにはどのようにすればいいんでしょうか?
119 :
デフォルトの名無しさん :2007/05/09(水) 11:06:43
できる。方向性は間違ってない。
121 :
119 :2007/05/10(木) 09:42:35
>>120 ありがとうございます! きちんと勉強してみようと思います。
122 :
デフォルトの名無しさん :2007/05/10(木) 15:11:54
ごめん、ふとおもったんだけど Windows.Formsにあるコントロールクラスの Controls.Remove(obj as control) についてです 例えば Form1のControlsにForm2のインスタンスが格納してあって Form1.Controls.Remove(Form2) てやったばあい、Form2のインスタンスは 明示的にDisposeで開放予約もなにもしなくてもRemove側とGCで勝手に開放してくれて こっちはその辺の処理は考えなくていいんでしょうか? その辺の挙動がわからない・・・・
123 :
デフォルトの名無しさん :2007/05/10(木) 16:30:36
Controlsは単なる集合だから、そこから削除されても別に関係ないと思うが。 結果、誰も参照無くなってGCの対象になるかもしれないが。
124 :
デフォルトの名無しさん :2007/05/10(木) 18:08:15
初心者です。質問させてください WEBサービス内でタイマーコントロールは使用できますでしょうか? WEBサービスの処理の中で定期的に行いたい処理があるのですが。 ご教授よろしくお願いします
なんかおかしくない?
VBでコンソールアプリ書いてタスクで実行させる方が簡単じゃない?
>>125 そんな気がするよな・・・・・
サービスじゃねぇのか
とか思ったりするんだが・・・・・
128 :
デフォルトの名無しさん :2007/05/11(金) 11:55:50
2005でFlowLayoutPanelに10KByteX20ほどの画像を2列X10行で表示させ、スクロールできるようにしているんですが スクロールする時に画像が綺麗にスクロールされず 見た目が悪くなっています。 なんかスクロール中に引き伸ばされたような感じになり、スクロールをやめるとすぐに正常に表示されます。 貼り付けたフォームのダブルバッファのOn Offは試しましたが効果がないような気がします。 どなたか解決策をご存知の方いらっしゃいませんか? 説明不足・・・かもしれませんが よろしくお願い致します。
>>128 その文章じゃ、君がやってることもやりたいことも誰にも伝わらないと思う。
エスパーがいれば別だが。
早くスクロールすると、再描画が間に合わずに 「スクロール中に引き伸ばされたような感じ」に描画されてるんじゃ ないかと受信した。 解決策: PCを買い換える。
うわぁぁ × 早く ○ 速く
132 :
デフォルトの名無しさん :2007/05/11(金) 13:18:55
>>129 ごめんなさい 説明がうまくできずにごめんなさい
>>130 そのとおりなんです
で、早くするというか スクロールバーをドラッグして引っ張ると
ゆっくりでも引き伸ばされたような感じになってしまいます。
PC買い替えは・・・ちょっと無理だと思います(;´Д`)
まぁ、開発側でもそれなりになるのでユーザー側でもそうなるんじゃないかって懸念があるので
ソフト側で出来る限りその減少を押さえ込みたいなと思いまして。
>>128 ●グラボ買い換える Or ドライバを最新にする
●DataGridView使う
以上適当に言ってみますた
>>133 やっぱそんな感じになりますか(;´Д`)
まぁ、最悪時間かけてグリッドにでも展開するかなんかしたほうがいいのかもしれませんね・・・
>>134 うちではそんな現象にならないけど。
画像が重いんじゃねーの?
昔Access2000のVBAでできあいのアプリをいじったことある程度の者です。 先日思い立ってフリーになったというVisual Basic2005をインストールしました。 (はじめどこから落とすのかまるで見当つかなかった…) で、フォームの開き方やIsNull関数の仕様の変更につまづきながらもなんとか目的のおもちゃは出来ました。 が、何も考えずプロジェクト名をWindowsApplication1で保存してしまって、そのまま発行したら インストール時のアプリケーション名がWindowsApplication1になってしまいました。 そもそもこんなおもちゃ、setup.exeからインストールするような形態で配布するようなもんじゃないし…。 というわけで3つ質問があります 1.上記のようにsetup.exeからインストールするのではなく、普通のフリーソフトのように zipから解凍すれば即使えるような形態にするにはどうすればよいでしょうか? 2.発行される実行ファイルに好きなアプリ名をつけるにはどうすればよいのでしょうか? 3.このアプリで作ったファイルを実行するには.NET Framework2.0必須でしょうか? 宜しくお願いします。
そもそも発行する必要もない。
138 :
デフォルトの名無しさん :2007/05/13(日) 00:24:02
その知識で作った「目的のおもちゃ」が何なのか知りたい。 1と2は入門書を見ればすぐに載ってる。バージョン管理の方法まで。 3→必須です。
>>137 >>138 お答えをヒントになんとかわかりました。ありがとうございます。
まさかあんな奥底にこっそり作られてるとは思わなかった…。
名前もプロジェクトのプロパティだったとは。
140 :
デフォルトの名無しさん :2007/05/13(日) 09:02:47
よろしくお願いします。2005 Expressを使ってます。
TabControlコンポーネントでタブの幅をぴったりにする方法がわかりません。
http://www.imgup.org/iup380282.gif Paddingプロパティで、ある程度は幅を広げられるのですが、ぴったりにはなりません。
SizeModeプロパティをFixedにすると、どこかにタブ幅を決めるところがあるのかと
思っても、見つかりません。
ぴったりにする方法をよろしくお願いします。
>タブ幅を決めるところがあるのかと思っても、見つかりません。 見つからないのではなく、探す気がないだけでしょ。 TabControlメンバ一覧をよくみた方がいいよ。 人に教えられるより自分でみつけた方が気分いいでしょ
プラグイン用インターフェイスで使用可能な型について教えてください。 プラグイン機能の開発を試みています。 プロパティでFontオブジェクトをやりとりしたいと考えていますが インターフェイスの記述で、System.DrawingがImportsできません。 どういった実現方法があるのか、教えてください。 Imports System.Drawing '←記述不可 Namespace Plugin Public Interface IPlugin ReadOnly Property MainFont() As Font '←で使用したい End Interface End Namespace VB2005stdです。よろしくお願いします。
143 :
142 :2007/05/13(日) 11:45:20
>>142 自己解決しました。
参照設定すればOKでした。
144 :
デフォルトの名無しさん :2007/05/13(日) 22:30:23
VB2005を使っているのですが フォームに様々な多角形や枠付線を描写する場合 PictureBox貼り付けてそれをイベントの方で各点のxy座標を指定して変形させて描写するしかないんでしょうか? 画面に対して縦横のラインが直角や平行ならいいんですが、斜め45C以外に書いたりする複雑な図形があるので少し手間取っています あれだけボタンなどのアイテムがあるのならペイント系のアイテムもあってもよさそうなんですが、そういったものは存在しないんでしょうか? どうかご助言の方をよろしくお願いいたします。
何を求めてるのかさっぱり分からん 取りあえず開発環境はお絵かきソフトじゃないぜ?
簡潔にいうとフォームに手軽に図形を描きたいという事です 現状はピクチャボックスを塗りつぶしてイベントのほうで描写をし直して 各点(四角形なら4点)の位置を調整して様々な図形に変形させているので各点の座標を調整するのに手間がかかってしまう・・。 普通に正方形だとピクチャボックスそのまんまの形でいいんですが ダイヤ型や、星型、Σみたいな形などの複雑な形になると各々の点の座標を修正しては実行して確認の繰り返しをやっています。 ペイントで画像描いて貼り付けようともしましたが各図形の色を変更させたりしたいのでその枚数分を使うとなるとプログラム的に大きくなりそうなので自分で描写した方がいいのかなという結論に至りました。 こういう図形を描写しそれの色を変更などをしたいプログラムを作成する場合はどういった方法が一般的なのでしょうか? こういったプログラムを作成されている方が折られましたら是非助言をお願いしたいです・・・よろしくお願いします。
Graphicsクラスを使用しています↑
正直、そんなこともできんのならプログラマなんてやらん方がいいと思うわ。。
誰だって初心者の時期はあるだろ
いや初心者だからわからんとかそんな次元じゃないな。 考える力が決定的に掛けているか、そうでなければ算数レベルの数学能力すら ままならんのだろう。 いずれにしろプログラマとしては致命的だな。
>>147-151 Graphicsクラスで初心者云々ということならよりもっと簡単な別な方法があるということでしょうか?
そうじゃなくて、その程度の思考力がないなら プログラミング以前の問題があるだろうという話。
思考力ですか?
>>146 の描写方法の考え方がおかしいということでしょうか
Graphics以外での描写方法を知りたいんなら思考力も計算能力もまったく関係ない気がするだけど
とりあえず つpolygon
>ダイヤ型や、星型、Σみたいな形などの複雑な形になると各々の点の座標を修正しては実行して確認の繰り返しをやっています。 方眼紙に書いてからやればいいじゃね?
>>150 おまえアホだな。
>>146 が職業プログラマとは限らんし、プログラムにわからない事があるだけで
自分の資質なんて考えちゃいないだろ。
中学〜高校と英語を勉強してきた普通の人たちが簡単な英語の翻訳を質問したら
「お前は通訳としては致命的だな」なんてコメントするか?
159 :
デフォルトの名無しさん :2007/05/14(月) 07:17:21
どういうプログラムなのかが気になる。 お絵かきソフトもどきを作るのではなくて、あらかじめ決まった数種類の図形をボタンのクリックや タイマーなどのイベントで色を変えたり図形を変えたりしたいということかな? 座標の指定は手作業しかないんじゃ? あとは156に言った多角形を書くpolygonとか。多角形を塗りつぶすFillPolygonとか。
162 :
デフォルトの名無しさん :2007/05/14(月) 09:58:56
つうかもう固定で描画するなら画像はっつけろよwwwwww
>>158 日本語書けよ。
あのねえ、プログラミング(に限らないが)には「知識や経験」だけでなく
ある程度の「資質」が必要とされるんだよ。当たり前だろ。
単に知識や経験が不足しているのなら学習して補っていけば済む。
ここがそういう場所であることには俺は異論はないよ。
でも資質が欠けていたらどうしようもないよ。
何やったって最初から無駄。
155cm43kgの奴が相撲取り目指すようなもんで、本人にとっても不幸なだけだろ。
もちろんそれでもどうしてもやりたいんだ、っていうのなら別に勝手にすれば。
でも
>>146 みたいなこと聞いてるようじゃ何ひとつまともなプログラムなんて
書けるようにならないことは俺が請け負うよ。
すみません、返答遅れました
>>155-162 レスありがとうございます。
>>156 Polygonですか?
どういったものか調べてみたいと思います。
>>161 >あらかじめ決まった数種類の図形をボタンのクリックや
>タイマーなどのイベントで色を変えたり図形を変えたりしたいということかな?
簡単に言うとそういうことになります
それと図形の位置の調整はやはり座標を手作業でしかないんですね、分かりました
例えば多角形の場合、実際にコードを実行して描写を確認しないといけないので、そこに便利な方法が無いのかと疑問に思っていました。
>>162 確かに画像を貼り付けた方がフォーム上で簡単に位置を修正したりできるのですが
何分図形の数が多いので数*色数で大体で言うと100枚前後の画像が必要になってくるのですが
フォームにそれだけのピクチャボックスを乗せるとなるとやはり処理や動作に支障をきたすのではないのでしょうか
165 :
デフォルトの名無しさん :2007/05/14(月) 12:48:47
画像をファイルにしといてLOADすればよかんべ。 せめて、入門本ぐらいは読もうよ。 仕事でめったに使わない画像の読み込みとか出てるから。
まぁ背景色の変更はソリッドとかであれば結構簡単に出来るから画像でもいいならそれも可能かと・・・ ただ、それを拡大縮小になってくると微妙だけど(;´Д`)
他人に配布するかしないかにもよるけどなぁ。
フォームに百枚のピクチャーボックス??なんでその必要が?
>>165 の言うとおりです。
例えばだけど、
一つのフォルダにまあ百枚なら百枚の図形を入れて、フォームロード
時に配列かなにかにそのパスを入れて、PictureBoxのImage.FromFile
で画像を切り替えればいいんじゃない?
100枚配布するのが嫌ならリソースにつっこんどけ ちなみにこの方法のメリットはプログラムを直さずに画像の差し替えで対応できるという点 とうぜん変更勝手にされちゃうとかのデメリットもあるが・・・
>>165-168 ひとつのピクチャーボックスに代わり代わりで画像を読み込ませればいいという説明でしょうか?
それでしたらすみません、説明不足でした
100枚というのはひとつのピクチャーボックスに100枚の画像を入れ替えて表示するのではなく
フォームに位置が違う100箇所ぐらいのピクチャーボックスを配置してそこに画像を読み込ませてそれぞれ色を変化させたりして表示するということです。
100枚同時に表示させる必要があるんです。
色を変える場合はピクチャーボックスの中身の画像を色が違う画像とすりかえればいいのですが・・そういうことですよね?
あ、それとも 必要毎にフォルダから画像を読み込ませるということでしょうか そういうやり方だと負担が減るのかな
1フォームに画像が100個程度あるってことでFA? で、それらは同時に色が変わったりするの? それとも個別に色が変わったりするのかな? その辺の動作周りをもう少しkwsk
>>171 説明ということで書いていたので100まではないんですが大よそで60前後の様々な形の画像を表示させるつもりです
色は同時に変わったり、個別に変わりもします・・要するに個別ということですよね;
処理的に厳しいでしょうか;
質問者は名前欄に最初のレス番号入れてけれ。どれがどれか分からん
175 :
144 :2007/05/14(月) 14:08:12
そうですね、すみません・・
フォームに60個のピクチャーボックス?? それをコードで書く気なの?すごい…。そんなプログラム組みたくない…。 まあ、するのなら同じ図形で色だけ違う画像ファイルを1セットにするか、 コードで書いてbrushesを変えて色を変えるかだろうけど。色をランダムに 変えていいのなら、コードの方がいいかもな。 フォームに動きを加えるのはいいことだと思うけど、一体どんなプログラムで どんな人を対象に作ってるのか差し支えなければ教えてよ。
177 :
デフォルトの名無しさん :2007/05/14(月) 15:28:18
まぁあ60個を同じ処理にするってのならハンドラちょこっといじればいけるだろうけど 出来れば想定する最低環境も知りたいところであったりもする つうか・・・勉強の為に60個のピクチャボックスフォームにのっけて画像表示させてみるってのテストしてみようw メモリは画像の大きさにもよるだろうけどさ・・・・
>>176-177 やはり珍しいケースなんですね
私自身もVB初心者だしどうなるか・・。
処理に関しては仮に作ったプログラムで確認したんですが
Graphicsで図形作ったコードですと色買えなどの処理は関数を作ってやってあとは各々で読み出すだけで簡単にできました
ただ処理以前に座標で指定する多角形を60個作るとなると位置調整で頭が痛くなりそうです・・。
画像の場合はまだよく分からないので未知数ですが
とりあえず処理速度にしろ、作成方法にしろ色々教えていただいたことを試してみたいと思います。
>>178 > ただ処理以前に座標で指定する多角形を60個作るとなると位置調整で頭が痛くなりそうです・・。
前々から思っているんだが、ここがおかしいだろ。
一体何の調整がいるって言うんだ。
ちなみに一般的に有効にプログラミングをするとした場合 この例ですと Graphicsで画像を描写する方法と、画像を読み込んで表示させるのはどちらが効率的だと判断できるんでしょうか?
>>179 多角形が一つ一つ形が違うのでその形を形取るための多角形の頂点の座標の調整と
それをフォームのどのあたりに表示させるかの座標の調整の二つです。
>>180 有効にって言葉も幅外広いからなぁ・・・
何かを取れば何かを失う部分もあるし
画像でやれば画像作るのはめんどくさいけど
後々変更してくれとか言われた時にコーディング量は減るし(考え方によればコーディングすらも必要ない 画像の追加・変更だけでよい)
自分で書けば融通の利く処理が出来るがその分修正にソフトの書き替えが必要だし
俺なら 表示させるサイズが固定であればこの場合、画像を選ぶ
完全に動的サイズになるなら自分で書く かな?
183 :
144 :2007/05/14(月) 16:23:14
>>182 なるほど・・・
だとしたら図形は色は変わりますがサイズは固定なので画像の方がいいかもしれませんね
そもそもモニタ自体のサイズがまだ未定だったのでそこから決定していかないと画面座標でやってたらずれてしまいますね;
参考にさせていただきます、ありがとうございました。
>>183 あれだ、画像だけPNGとかで読み込んで背景色はバックグラウンドカラーという手もあるっちゃぁ・・あるとおもうんだ
図形はベクタデータで持っとけば色変えたり拡大したりするのも簡単なんじゃねえの?
>>185 俺もそう思う
けど、どうも質問者的に難しそうなので俺は簡単な実装方法を提案してみたさww
モニタの解像度依存でずれるとか言ってるし…… もうね……
ラベルに[m2]って書いて2の部分を上付けに指数表示にしたいんですがどうやればいいんすか?
>>150 がプログラマとしては致命的なのは分かったからすっこんでろ^^
いまさらそんな遠距離レスつけなくても^^
俺じゃねえよ^^
ばかまるだしだ・・・
そうやって書いたら[msup2;]っラベルのテキストに表示されるんですが…
それは書き方が悪いんだろ
>>195 専ブラとかのコピペしてたら超笑えるwwwww
へいほーめーとる
で変換してラベルに入力しろや
へいほうめーとるで変換できるんかいー!うまくできたわみんなありがつ
い・・・一体なんだったんだ・・・・(;´∀`)
2つのビットマップ(実際の画像と、モノクロのマスクパターン)を用意して透過処理を したいんですけど、VB.NETでどう実現するのやらさっぱりで。 VC++6.0とかで BitBlt 関数使って描画するのとかはやったことありますのでその程度の 知識ならあります。誰かヒントとなるリンクだけでもいいですから教えてください。 できれば VS2003、.NET Framework1.1 の環境下で動くのでお願いします。
Graphicsでアルファブレンド っつうのはどうっすか?
>>202 GDI+はPNGをサポートしてる。
ここまで言えばわかるよね?
ああでも遅いから速度が必要なら自分でBitBltでマスク処理した方がいいかもね。
もひとつ忘れた。 別にPNG使わなくても、GDI+には透過色を指定する機能もある。 まあしかし、自分でこれだけ答えておいてなんだけど、 少しはMSDNライブラリ読めよ。
207 :
202 :2007/05/14(月) 18:52:36
>>203-206 レスありがとうございます。
とりあえずマスクパターンを使うのじゃないですけど、MakeTransparent ってので
透明とする色を指定することで対応はできました。
マスクはどうやんのかまださっぱりですけど。
MSDNは・・・読んでみたんですけど、どこに必要な情報があるのかすらたどり着かなくて。
申し訳ございません。
もう開発から設計に移って5年ぐらい経つんですが、
「過去に似た様な処理をVC++で作ったことがあるから」って理由で借り出されたものでして。
オジサンもう疲れたよ・・・orz
>>207 ご苦労様w
マスク処理は.NETネイティブの機能だけでやるのはきついと思う。
描画サーフィスをビットマップに転送する機能がGDI+にはないからね。
つまりWin32のBitBltつかって昔ながらの方法でやるしかない。
209 :
202 :2007/05/14(月) 19:11:06
>>208 >つまりWin32のBitBltつかって昔ながらの方法でやるしかない。
そうですか。その情報だけでもありがたいです。ありがとうございます。
最近の小僧どもはゆとり教育のせいか、開発言語が複雑になりすぎたせいかで
すぐに諦めて「できません」とかほざくもので・・・すみません、愚痴ですね。
今から自分の仕事やりますw
210 :
デフォルトの名無しさん :2007/05/14(月) 19:18:28
>>209 みると俺の環境は恵まれてるんだなぁ・・・と痛感する
できませんはただの報告だからいいんじゃないの? やりたくありませんと言ったら鉄拳制裁ものだが。
>>211 出来るはずのものをできませんとかねーよ
>>209 の例だと調べりゃこのスレでもでてた即いくつかの方法や代替案がでてくるだろう どれだけレベル低いんだよ
低いなら調べたなりに出来ない根拠や別の案があるけど、多分あの様子だとないんだろうな・・・
213 :
デフォルトの名無しさん :2007/05/15(火) 10:41:50
Delphi製の、Pchar型の文字列を渡すとPchar型の文字列が返ってくるDLLを使いたいと思い、 DLLを使う方法までは調べたのですが、データ型としてPcharが使えません。 VB2005から、Pchar型を使うDLLを使用する方法は無いでしょうか?
PCharいうたら短い文字列へのポインタだったか? Charset=Charset.ANSIを指定してDllImportすりゃいい。 型はStringBuilderだ。
渡す方はStringで、受けとるほうがStringBuilderだな。 一つの引数で上書きされるなら、StringBuilderか。
216 :
213 :2007/05/15(火) 18:35:56
>>214-215 ありがとうございます! 教えていただいた単語を手掛かりに頑張ってみます。
インターフェースなんですが、Implementsを書いたあとにIntelliSense見たいに 実装を挿入することって出来ないのでしょうか? 実装しないでビルドするとエラーの説明で、実装すべきメソッドが表示されるので あっても良さそうなんですが。。。
質問です。 ローカル上のIPアドレスからホスト名を取得しようとしています。 2.0だとDns.GetHostEntryを使うようにとあったので x = System.Net.Dns.GetHostEntry("**.**.**.**").HostName このようにしていました。 Win2k上では正常にホスト名を取得していたのですが、XP上ではIPアドレスしか取得できません。 Resolveを使うと取得できたのですが、旧形式だと警告されてしまいます。 他に取得する方法はないでしょうか? よろしくお願いします。
219 :
デフォルトの名無しさん :2007/05/16(水) 18:02:39
VB2005でアプリ作りました。で、匿名で公開したいんですけど、 これどこかにコンピュータネームやWindowsのユーザーネームが埋め込まれてるってことはないですよね? わけわからずにClickOne使った時、勝手に上記が埋め込まれてたのでビクビクしています。 リソースハッカーでみた限りはないようなのですが。
>>217 できるよ
例えば 新しいクラスで
implements idisposable○
ここでEnter押したらそのクラスの一番下に入ってないか?
222 :
217 :2007/05/16(水) 18:52:59
>>220 ありがとうござます。
もう少しでスニペットで一個一個作るところでした。
223 :
デフォルトの名無しさん :2007/05/16(水) 20:14:55
ファイルを解凍するときに 既にUNLAH32.DLLは動作中ですってエラーがでるのだけど UNLAH32.DLLを終了処理するには、どう記述したらいいですか?
うまく表現できないんだけど、必ず Public X as Single Public Y as Single の二つのフィールドを持つ値型、みたいな型の指定ってできないかな? もちろんインターフェイスを使えば近いことは可能なんだけど、 構造体の配列をストリーミング的に渡すような使い方をしたいので パフォーマンス的な理由でなるべくならインターフェイスは使いたくない。 こういう場合、やっぱり特定の型の構造体の配列をベタに引数に取るようにするしかないのかな。
実行中のプロセスがあるからじゃないのか? プロセスみてみてKillすれば? つうか、動作中です って出てるのを終わらせるのは・・・あんまお勧めしないが? まぁどういうソフト組んでるかにもよるし・・・ 自分で1回UNLAH32.DLLをつかって解凍したあとの動作なのかな? もしそうじゃないとすれば、UNLAH32.DLLを使うようなソフトは? WindowをSafeモードで起動して 自分のソフトで解凍しようとしてもそうなるの?
226 :
デフォルトの名無しさん :2007/05/16(水) 20:36:26
>>224 構造体でいいと思うんだけど・・・
少なくとも俺はそうしてる
C++なら別のやり方もあるけど・・・
そこまでパフォーマンスを気にするなら何か他のところで余裕で稼げそうな気がする
>>225 自分で1回UNLAH32.DLLをつかって解凍したあとの動作です。
開放処理する必要があるのでしょうか?
その場合どう記述したらよいのか・・・
>>227 ということはアンマネージリソースが開放されてないんじゃないかと予想してみる
多分解凍が終わったら引数が帰ってくると思うんだけど・・・・
それがちゃんと出来てるなら
MarshalクラスつかってComObjectかどうか調べて
ReleaseComObject でキチンと開放してやってみてはどう?
229 :
228 :2007/05/16(水) 20:48:06
ごめん、書き忘れ そういえば UnlhaGetrunning みたいな現在実行中かどうか調べる関数なかったっけ? 実際にやってる処理差し支えなければ書いてみれば きっと皆こたえてくれるような気がするけどw
>>229 'LHA書庫操作を行う
Private Declare Function Unlha Lib "Unlha32" (ByVal hWnd As Integer, ByVal szCmdLine As String, ByVal szOutPut As String, ByVal dwsize As Integer) As Integer
'ファイルのダウンロード
Internet.DownloadFile(URL1, FileName1)
'書庫の解凍
Dim UnlhaLzhFile As String '書庫ファイル名
Dim UnlhaDir As String 'ファイルのパス
Dim UnlhaFiles As String'ファイル(ワイルドカード指定可)
Dim UnlhaSwitch As String '書庫操作命令
Dim UnlhaOptions As String '書庫操作スイッチ
Dim UnlhaCommandString As String'Unlhaのコマンド
Dim UnlhaRetunValue As Integer '書庫操作の結果戻り値
'各種パラメータの設定
UnlhaLzhFile = My.Settings.FilePath01 '"C:\お気に入り.lzh"
UnlhaDir = "C:\Documents and Settings\My Documents\My eBooks\My eBooks\"
UnlhaFiles = ""
UnlhaSwitch = "x"
UnlhaOptions = ""
'ファイル名の前後にダブルコーテーションを付加
UnlhaLzhFile = """" & UnlhaLzhFile & """"
UnlhaFiles = """" & UnlhaFiles & """"
UnlhaDir = """" & UnlhaDir & """"
'各種パラメータの値を元にコマンドを作成
UnlhaCommandString = UnlhaSwitch & " " & UnlhaOptions & " " & UnlhaLzhFile & " " & UnlhaDir & " " & UnlhaFiles & " "
UnlhaRetunValue = Unlha(0, UnlhaCommandString, Nothing, 0) '書庫操作を行う 解凍
>>226 やっぱりそれしかないのかな。。
値型用の(ボックス化されない)インターフェイスみたいなものがあっても
いいように思うんだけど。
FreeLibrary()
233 :
デフォルトの名無しさん :2007/05/16(水) 21:34:29
>>230 とりあえずウチの環境でVer2.55のDllつかって
パスだけ変えて動かしたらちゃんと動いてるよ
ソフトの中で同じ処理3回呼んだけど
問題なかった
なにか止まっているとかじゃないかな?
>>231 の呼んで開放してやるといいかも
初歩的な質問ですがお願いします 参照設定で X を指定する これはソリューションエクスプローラの参照設定からX追加という作業でよろしいんでしょうか? これは何を意味しているのでしょうか?
235 :
デフォルトの名無しさん :2007/05/16(水) 23:51:44
>>234 それでいいよ
意味するところは
ある機能に特化した機能の塊を使えるようにする為
ざっくり言えば
Formやボタンなんかが使えるのは使いやすいように最初から
System.Windows.Form
っていうクラスを参照している感じ
>>235 わかりやすい説明でありがとうございます
いやそれで納得しちゃダメだってw
>>235 はImports文によって名前空間の「パスを通す」ことと
プロジェクトのアセンブリの参照設定を混同してる。
234が言ってるのは前者。235が言ってるのは後者
すまん前者と後者が逆だな
コピペ君って馬鹿だな、まで読んだ。
241 :
デフォルトの名無しさん :2007/05/17(木) 00:42:08
つうか 普通にラベルとテキストボックス30個くらい貼り付けたフォーム開いたら 奇麗に表示されないんだけどどうなのよ VB6で同じことやったら普通に開くのになぜドトネトのほうが遅いんだ?????
WindowsFormsはそんなもん
マジで??? Javaも大概重いと思ってたけどそれに同じくらい重いのな(´ヘ`;) P4 2.4Gでそれなりに重いからWin2000とかの昔のに入れたらもっと重い感じがするってことなのか…・ orz
ハリボテの表示が遅いだけで処理は遅くないぞ
245 :
デフォルトの名無しさん :2007/05/17(木) 01:15:43
>>244 UIの描画とかが遅いだけってことなのか
ちょっと安心したよ あの調子で全体遅かったらつかえねー とか思ってたんで
フレームワークがJAVAみたいな資産に足引っ張られてgdgdにならないことを祈りつつ頑張って勉強してみるよ
まあどうせ WinForm は WPF にまるごと置き換え予定だしな 少なくともあと5年ぐらいは掛かるだろうけど
247 :
デフォルトの名無しさん :2007/05/17(木) 01:23:58
初心者なんですけど コンパイルするときに "cl ファイル名"でやると、 「"cl"は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチファイルとして認識されていません。」 ってでるんだけど"cl"じゃ駄目なの??
ここはVB.NETのスレですが・・・
vbc hoge.vb で幸せになれると思うよ。vjcでさらに・・・
250 :
デフォルトの名無しさん :2007/05/17(木) 11:20:04
「幸せになれる」って言葉使うヤツきもい
>>250 アプリケーションを乗せるってのはグーグルツールバーみたいなアドインのこと??
253 :
250 :2007/05/17(木) 12:11:03
>>252 Google Deskbarにみたいにです。
タスクバー右クリック->ツールバーで選択できるようにしたいのです。
機能は検索するとかそういうのを作りたいわけじゃないんですが、
まだタスクバーに作ったアプリを起動させることができないので。
254 :
250 :2007/05/17(木) 12:18:13
DeskBandと言うらしいのですけど、そこからがわからない。
どっちかというとosの仕様に関する知識になるのかねえ。 こういう資料ってどこにあるんだろう。
QTTabBarがやってるな。C#製らしいけど。
ってみてみたら
>>256 を使ってるみたい
258 :
デフォルトの名無しさん :2007/05/17(木) 15:45:47
BandObjectってC#なのか?VBじゃ使えんの?
使えるだろ・・・・
ビルドでbinフォルダにEXE作るとして 他のフォルダのdllを読込む時、 binの中に勝手にdllがコピーされるので、 binのdllを削除したら 「依存関係の 1 つが読み込めませんでした」 というエラーになりました。 この状態でもdllの参照が可能になるには どうすれば良いでしょうか?
>>260 ドットネットフレームワークのDLLがどう登録されてるんだろうな?
ほかのDLLはどこに登録されてるんだろうな?
でも、基本的にそっちのが俺はいいと思うんだが…
なんでこう DLL を嫌がるんだろうね
無闇じゃなくても薦めるなそんなの。
初心者でまだテストコードも書いてないんですが、方針を教えてください Class A Inherits Base Function b() as string ・・・・ End Function End Class Class Base Function a() as string return b End function Function b() as string ・・・・ End Function End Class となっているときに、継承クラスであるAの関数aを呼び出したとき aはベースクラスbase.bを呼び出しますよね? このとき継承クラスAがオーバーライドした関数bを呼び出させる 方法はありますか? よろしくお願いします。
267 :
266 :2007/05/19(土) 20:31:13
追記 Base.a()は非常に複雑だけど一部だけ変更可能にしないと機能しない関数です。 そこでその部分を関数bで処理します。 ただし、Baseクラスの関数bにもベーシックな処理を記述しておきたいのです。 よろしくお願いします。 言語の基本仕様にないとしたらデザインパターンを使うのでしょうか? そのパターンの名前とか教えていただけるとありがたいです。
普通にbを仮想関数にすりゃいいんでないの?
269 :
266 :2007/05/19(土) 20:47:17
>>268 仮想関数ですね・・・調べてみます!
とっかかりがわかんなくてデリゲートとかわけのわかんないのを調べてました。
base.bの宣言をOverridableにせよということですね?
ありがとうございました!!!
>>266 あのさあ、学べば分かることを学びもせず、
試せばわかることを試しもせず、そんな態度じゃどうにもならんと思うぞ。
あと余計なお世話かもしれないが、268には君が質問したいと思っていることが
恐らく伝わってないと思われる。
そしてそれは268の読解力のせいというより、お前さんの文章の表現が酷すぎるからだと思う。
まあ俺自身も君の質問の意図を勘違いしている可能性は大いにあるが、一応質問に回答するけど
オーバーライドされたメソッドというのは、たとえその呼び出しがベースクラスに
記述してあるとしても、元のベースクラスのメソッドではなく、オーバーライドされた方の
メソッドが呼び出されるんだよ。
MeとMyClassとMybaseの違いとか、あとShadowsとかの意味を調べた方がよさそうだね。
271 :
268 :2007/05/19(土) 21:11:27
ん?外してたか? よくわかんね
272 :
266 :2007/05/19(土) 23:18:20
>>270 ああ!そうなんですか。
勘違いしてました。
確かにこれからテストコード書くんですが、そもそもどういう仕組みになるのか
考えていたもので、ありがとうございました。
ActiveReportを使って、ユーザーが任意の列数を選択し、印刷プレビューに表示させる という内容のプログラムを作成中なのですが 列数が10を超えた場合、次のページに残りの列を表示、というのは可能なのでしょうか。 ActiveReport、もしくなそれに似たようなものを使った経験のある方、よろしくお願いします。 ※ActiveReportの設計は私ではなく別の人が行っております。列を格納する部分は10個になっていました。
274 :
デフォルトの名無しさん :2007/05/20(日) 12:22:05
>>273 ActiveReportsについてるサンプルくらい見ろ
あとメソッドやプロパティ一覧も
余裕で出来るということが載ってる
またプチ北方謙三が偉そうに 見ろ、だってさ。 こういうの自我肥大っていうんじゃないの?w
>>275 は私じゃないけど、サンプル見てみることにします
入社一年目でこれやっといてーって丸投げされたんでなにがなんやら
278 :
デフォルトの名無しさん :2007/05/20(日) 13:50:30
>>277 調べて努力すりゃ1年目でもやればできる範囲だと思ったから
丸投げしてると思うよ?
コツコツ調べりゃきっとできるし、出来たとき「思えば簡単だったな」 て思えると思うよ
→キーが押下されたら、PictureBoxをウィンドウの隅にぶつかるまで右方向に無限移動させ ウィンドウの隅にぶつかったら逆走させるのって如何すればいいんでしょうか?
そのままそれをPgにすりゃいいだけだと思うんだが… どこがわからないんだ? 判定? それともすべて?
プログラムをPGって略すのは珍しいな
>>279 悪いこと言わない、プログラミングなんぞに手を出すのはやめとけ。
根本的に向いてないよお前さんには
>>280 そもそもVB.NETという概念からして良く解ってないんですが・・・
正直、まるで何一つ解ってません・・・
' 今のコード
Public Class km
Private Sub km_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
Select Case e.KeyCode
Case Keys.Left
Timer1.Enabled = True
Case Keys.Right
Timer2.Enabled = True
End Select
End Sub
Private Sub Timer1_Tick(ByVal sender As Object, ByVal e As System.EventArgs) Handles Timer1.Tick
PictureBox1.Left -= 6
End Sub
Private Sub Timer2_Tick(ByVal sender As Object, ByVal e As System.EventArgs) Handles Timer2.Tick
PictureBox1.Left += 6
End Sub
End Class
おまwwwww これ右移動しながら左キー押したらどうなるんだよwwwwwwww 悪いことは言わないから まず左右キー押しっぱでそれぞれの方向に動いてはじっこまで来たらとまるプログラムかいてみ? まずはそっからだ
>>284 こんな感じでしょうか?
Public Class km
Private Sub km_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
Select Case e.KeyCode
Case Keys.Left
If PictureBox1.Left > 0 Then
PictureBox1.Left -= 6
End If
Case Keys.Right
If PictureBox1.Left + PictureBox1.Width < Me.ClientSize.Width Then
PictureBox1.Left += 6
End If
End Select
End Sub
End Class
まーた始まった
こんな感じでしょうかじゃないよ。 試してどこがどうだめだったか報告しなさいよね
まぁ、とりあえずそれはめり込む可能性が高いなwwwww
>>287 取り敢えず、動かしてみた感じ
>>284 で言われたものは出来たような気がします
>>288 やっぱり、移動量が6だとめり込みますよね・・・(ウィンドウサイズが6の倍数ならともかく)
移動量を5にして、めり込まないようにしてみました
・・・・・あのぉ・・・・まぁ・・・いいけどさ・・ もう面倒くさいからざっくりサンプル書いとくわ スペースでストップな この板的に叩かれそうなソースだがまぁ こんなバカもいるってことで とりあえずタイマをつかってるみたいだからそれは残しといてみた 以下ソース Private Enum Vector Right Left None End Enum Private Const _MovePixcel As Integer = 1 Private _Vector As Vector = Vector.None
291 :
デフォルトの名無しさん :2007/05/20(日) 23:33:03
TRY-FINALLYはめんどくさいからそこに書いただけ ほんとはちゃんとしたほうがいい気がする Private Sub Form1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown Try Select Case e.KeyCode Case Keys.Right _Vector = Vector.Right Case Keys.Left _Vector = Vector.Left Case Keys.Space 'とまる _Vector = Vector.None End Select Finally If _Vector = Vector.None Then Me.Timer1.Stop() Else Me.Timer1.Start() End If End Try End Sub
292 :
デフォルトの名無しさん :2007/05/20(日) 23:33:57
Private Sub Timer1_Tick(ByVal sender As Object, ByVal e As System.EventArgs) Handles Timer1.Tick Select Case _Vector Case Vector.Right Dim TempRight As Integer = Me.PictureBox1.Left + Me.PictureBox1.Width + _MovePixcel If TempRight < Me.Panel1.Width Then Me.PictureBox1.Left += _MovePixcel Else _Vector = Vector.Left End If Return Case Vector.Left If 0 < Me.PictureBox1.Left - _MovePixcel Then Me.PictureBox1.Left -= _MovePixcel Else _Vector = Vector.Right End If Return End Select End Sub 忘れてたけど フォームにタイマ・パネル・ピクチャボックスおいてな
自分にレス番を打つと専ブラ使いにはうれしいインデント。
SELECT CASE True
CASE 1 = 2
CASE 1 = 1
END SELECT
>>293
294 :
デフォルトの名無しさん :2007/05/21(月) 06:17:31
列挙体はまだ高度では?
つぅか、
>>284 のつっこみが分かってないよな。
フォームにのめりこんでもいいから、せめて片方のタイマーを止めろよ。
295 :
290 :2007/05/21(月) 09:02:10
>>293 まぁとりあえずソースみてこんなもんかな?ってのを判ってもらえる事を期待してみた(;´Д`)
多分右も左もわからないっぽいので 余計なお世話だったか・・・
まぁ、列挙タイは確かに不必要であんなるBoolのフラグのが良かった希ガス
>>290 なんというか、予防線はってるのがすごく痛い
マイク入力を録音をするアプリをつくろうと考えてるんですが、何か参考になるサイトや書籍を知りませんか?
298 :
デフォルトの名無しさん :2007/05/21(月) 17:28:22
VB.netでモバイル端末用アプリを作成し、 アイコンを設定して端末へコピーし、端末側の ファイルエクスプローラexeを確認すると 設定したアイコンで表示されませんでした。 PC側では設定したアイコンで表示されます。 何か設定があるのでしょうか?
アプリ作成後にアイコン設定ってもしかしてアンタ…
>>298 おまえファミコン.icoもしらねーのかよ初心者め
301 :
298 :2007/05/22(火) 09:04:20
>アプリ作成後にアイコン設定ってもしかしてアンタ… 書き方が変だったようです。 アイコンの設定はもちろんアプリケーションの プロパティ画面から設定してからEXEを作成しています。 ちなみにC#で作ったサンプルPGに同じアイコンを 設定した場合はPDAで正しくアイコンが表示されますが VB.NETではだめでした。
>>301 C#でアイコン設定したらOKで、VB.NETではNGだったってこと?
ちなみにVB.NETで作成した場合、モバイル端末で表示されるアイコンはどんなの?
まあ99%なにかの勘違いだなw 同じように作ったC#はOKでVBだとNGなんてまずありえん。
304 :
デフォルトの名無しさん :2007/05/22(火) 21:47:46
継承を多用すると遅くなるって事ありますか?
そりゃあることもあるだろ まあおまいさんが書くコードに影響がある程じゃないさ
306 :
デフォルトの名無しさん :2007/05/22(火) 22:08:07
>>305 ありがとうです。
ちなみに、至るところで、継承してるプロジェクトに就業しました。
インスタンスも至るところでされてます。
画面を開くのに40秒近くかかります。
継承しすぎて、何をどこでやってるか追うのに大変です。
継承遷移図やソースの名前からでは判断できません。
>>306 もしかして継承フォームのことをいってる?
あれは確かに重くなりそうな気がする。
308 :
デフォルトの名無しさん :2007/05/22(火) 22:30:41
>>307 言い方はわかりませんが、
画面そのものを継承していますね。
継承そのものはコストは無視して構わない。 例えば画面なら、コントロールを山程載せてたり起動時にDBからデータもってきてたりとかその辺。
いや307の言うとおり継承フォームとか複合コントロールの継承なんかは 普通のクラスの継承とはちょっと事情が違うと思う。 普通のクラスの継承のコストなんてないと思っていいのは同意するけど
311 :
デフォルトの名無しさん :2007/05/22(火) 22:49:52
ん?一人レベルが低くい質、て申し訳ないですが、 継承したら早くなるのですか? コーディングスピードていうか、共通箇所がガッツリ出来るのは理解できるのですが。
313 :
デフォルトの名無しさん :2007/05/22(火) 22:57:38
>>311 おk!!
処理の速度・画面の起動等のユーザサイドから見て、
継承を使用した場合、しなかった場合よりも早く感じるものなの?
作り手からみて、楽になる部分が多いのはわかります。
実行時にはほとんどまたは全く差はない。 差が出るのはIDEの動作とか、コンパイルにかかる時間とかそんなところ。 GUI関係の継承だとIDEの動作が重くなる可能性はある。
そんなこんなで画面がでるまで40秒かかる
>>306 に乾杯
316 :
デフォルトの名無しさん :2007/05/23(水) 09:11:12
むしろ
>>306 の基盤作った奴は起動にそれだけ時間かかってなんとも思わなかったのか・・・
それのほうが問題だよな
317 :
298 :2007/05/23(水) 09:12:49
メーカーから届いた端末複数でインストールしました。 そのうちいくつかが通常のexeのアイコンでその他が 設定したアイコンで表示されました。 メーカーが提供しているDLLの不具合の可能性が出てきましたので しばらく様子を見ようと思います。
質問させてください。 LAN上でSQL Serverをインストールしているサーバの検出をVB.NET(2005)で行う方法はありますでしょうか。 ありましたら、教えてください。
319 :
デフォルトの名無しさん :2007/05/23(水) 13:51:48
昔はSQLDMOつかってたな・・・ 今はもしかしたらSQLクライアントかなんかの名前空間の中にラップされた機能あるかもしれんが。。。
320 :
318 :2007/05/23(水) 16:25:37
322 :
318 :2007/05/23(水) 17:48:50
>321 ありがとうございます。 自分が見つけたサンプルより、そちらのほうがいけそうです。 >320で貼ったサンプルについては、 ListAvailableSQLServersというメソッドでサーバ名取得していたおですが、 BooksOnlineに将来削除されるメソッドだとありましたので…。
323 :
デフォルトの名無しさん :2007/05/23(水) 19:20:55
諸事情により携帯から失礼します。 .netでのINIファイル読み込みの時の質問なのですが、 読み込む時に文字数制限とうってありますか?(128バイトまでとか) 開発環境はVS2003です。 よろしくおねがいします。
よろしくおねがいする前に、まず自分で試そうよお馬鹿さん。
試した結果削られてしまって、 調べても分からなかったので質問してるのですが…
見え透いたこと言わない方がいいよ。 絶対試してもなければ何も調べてもないってw っていうか調べてその体たらくならとっとと足洗ったほうが吉だわな。
本当に試しましたし、調べもしました。 ですが、どうしても取って来れなかったので質問してるんです…。 見え透いた事といいますが、こんな風に言われてしまうのならば、 もうここには来ていませんし、試していないのならば貴方に愚弄されるのを分かっていて 試さずにまた聞いたりしませんよ…。
328 :
デフォルトの名無しさん :2007/05/23(水) 19:57:27
意外と設定したバッファ越えて読み込んでたりなwwwww まぁ、ありえんか・・・
INIファイルの有効サイズを超えてたりしてwwwww まぁ、ありえんか・・・
iniだろうがdatだろうがファイル読み込みはファイル読み込みでしょうが。 どんな制限だよ128バイトって いまどきこのレスだって142バイトはあるっての
試すっていうのはね、 ファイルを読み込むだけのコードでテストしてみることをいうんだよ? それで128バイト制限が存在するかどうか分かるでしょ? つまり試してないってこったよお馬鹿さん。
iniファイル読むのにWin32Apiとか使ってて、最初にバッファの確保処理してないんじゃね?
>>333 あ、それかもしれない・・・
ちょっと後でいじって見ます。アドバイスありがとうございました。
335 :
デフォルトの名無しさん :2007/05/23(水) 21:27:14
質問です。 C言語でDLLを作り、VBからそのDLLの関数を呼び出して使いたいのですが、 下のプログラムをビルドして実行するとLabel1には6と表示されます。 どうやらforループが2回で終わっているようですが、なぜそうなるのかが分かりません。 すみませんがよろしくお願いいたします。
336 :
デフォルトの名無しさん :2007/05/23(水) 21:29:25
ソースは以下の通りです。 Option Explicit On Public Class Form1 Public Declare Function Sum Lib "C:\Sum.dll" (ByRef n As Long, ByRef a As Long) As Long Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim n, s As Long Dim aa(10) As Long aa(0) = 1 aa(1) = 5 aa(2) = 4 aa(3) = 9 n = 4 s = Sum(n, aa(0)) Label1.Text = s End Sub End Class
337 :
デフォルトの名無しさん :2007/05/23(水) 21:30:40
__declspec(dllexport) long __stdcall Sum(long* n,long* a){ long sum,i; sum=0; for(i=0 ; i< *n ; i++){ sum=sum+a[i]; } return(sum); } DLLを作るのにはVC++6.0、VBは2005 ExpressEditionを使っています。
>>337 取りあえず Long と long を調べてこい
そのコードヤバくね?
テストだとしても・・・・ VB側でLong使うケースは…・
横からですが VBで変数宣言するときにlong型にしちゃまずいんですか? longってintの2倍のサイズの要領の数値型ですよね
>>342 VB6からいろいろ変わってしまったのだよん。
VB6のIntegerは16bit長、Longは32bit長だけど
VB.NETからはIntegerが32bit長で、Longは64bit長、Shortが16bit長。
VC6やらVC2005でDLLを作った場合、.NETのLongは__int64かlong long型に該当する。
なるほど・・・ だとしたら私の場合はintで宣言したらオーバーフロー?がおきたのでlongにしたので このままで問題ないですよね? 素人なのでオーバーフローという意味がよく分かってないですが・・とりあえずint型だと容量が足りないみたいなエラーが起きました
各数値型で扱える範囲と、そのとき扱う必要がある数値の範囲くらいは把握しとこうぜ
つーかdllの関数のシグニチャと合わせないとためだろwwww
だったらc側でlongじゃ足りんだろうがw
アドレス渡しってどうなん?
どうとは?
なにが >このままで問題ないですよね? だ!!!!!!! 問題あるから質問スレに来てるんだろが!!!!!!
>>350 こたえる気がないのなら消えろよ・・・。
typedef くらいしとけ
354 :
335 :2007/05/24(木) 15:42:21
皆様ありがとうございます。
今大学にいないので試す事が出来ないのですが、
夕方登校してから変数のビット長の事を考え直してもう一度やってみます。
あと、
>>351 は私ではありません念の為。
355 :
デフォルトの名無しさん :2007/05/24(木) 22:15:23
やる気があるんだったら家のにExpressくらい入れて試せよ 学生さんw
>学生さんw なんで最後にwがつくのかわからんが、無職のお前よりましだと思うよ。
357 :
342 :2007/05/25(金) 00:38:37
>>350 >問題があるからここに〜
intにしているときとは違いlongにするとコンパイル時にエラーはでませんでしたが。
ここにいる理由は、他人の質問事項でも参考になるから毎日覗いていて
>>338-340 のレスが気になったら質問したまでだけど。
コンパイル時じゃなくて実行時だった。
>>357 まぁ出なくなったんならいいっちゃいいのかも知れませんが、それで飯食うつもりでしたら
何でオーバーフローしたのか?
それは予想された動作か?
違うならどこで変数に異常な値が入ったのか?
くらいは最低限把握しておいたほうが良さそうな気がしますよ?
>>346 >>335-337 はシグニチャとかそれ以前に
s = Sum(n, aa(0))
なんてコードかいてる時点でVB.NETについて根本的に勘違いしてるっぽいんですけどw
>>356 お前みたいなレベルの負け組と一緒にするなカス野郎
ちょっとしたブラウザ(IE使う)を作ってみたいです まだソフトも買ってないので、日曜日に買いに行きます 入門書もあわせて買う予定です お勧めの本あれば教えてください
とりあえず、ExpressEdition使ってみたら
363 :
デフォルトの名無しさん :2007/05/25(金) 17:35:05
2005で質問です。 ピクチャーボックス・ラベルをFill・Bottomとして貼り付けたユーザーコントロールがあります。 このコントロールのMouseMove/MouseLeave/MouseEnterイベントは コントロールが上に存在している為発生しない状況です。 これらのイベントが簡単に動作する方法はないでしょうか? やはり、各コントロールのイベントを取ってきてガリガリいじって渡したりしなければいけないんでしょうか?
内部で各コントロールにイベントつけといて ユーザーコントロールのOnMouseMove等を呼べば?
365 :
363 :2007/05/25(金) 18:18:52
>>364 レスありがとうございます。
とりあえずMouseMoveはその方法で実装してみました。
各コントロールのマウスMoveイベントでユーザーコントロール内の座標に変換してユーザーコントロールのMouseMoveイベントを呼び出すようにしています。
これでMouseMoveは実装できたのですが、今度はMouseEnter MouseLeaveイベントを実装する手段が不明というか、うまいこと思いつかないです
366 :
363 :2007/05/25(金) 18:22:21
連投失礼します。 MouseEnterはPrivateなフラグをひとつ持って、内部の各コントロールのEnterイベントで フラグがOFFならユーザーコントロールのEnterイベントを発生→フラグON フラグONならなにもしない という力技実装を今思いついてやってみました。 しかし やっぱりMouseLeaveが難しいです・・・
>>363 希望するのはこういう動作?
Protected Overrides Sub OnLoad(ByVal e As System.EventArgs)
MyBase.OnLoad(e)
For Each c As Control In Me.Controls
AddHandler c.MouseMove, AddressOf Chileds_MouseMove
AddHandler c.MouseLeave, AddressOf Chileds_MouseLeave
Next
End Sub
Private Sub Chileds_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs)
Dim pt As Point = MousePositionByClientCoordinate()
Dim ev As New MouseEventArgs(e.Button, e.Clicks, pt.X, pt.Y, e.Delta)
MyClass.OnMouseEnter(New EventArgs)
Me.OnMouseMove(ev)
End Sub
Private Sub Chileds_MouseLeave(ByVal sender As Object, ByVal e As System.EventArgs)
MyClass.OnMouseLeave(New EventArgs)
End Sub
Private Function MousePositionByClientCoordinate() As Point
Return Me.PointToClient(Control.MousePosition)
End Function
Private Function IsMouseOnMe() As Boolean
Dim pt As Point = MousePositionByClientCoordinate()
Return Me.ClientRectangle.Contains(pt)
End Function
Private mMouseAlreadyEnter As Boolean = False Protected Overrides Sub OnMouseEnter(ByVal e As System.EventArgs) If mMouseAlreadyEnter = False Then mMouseAlreadyEnter = True MyBase.OnMouseEnter(e) End If End Sub Protected Overrides Sub OnMouseLeave(ByVal e As System.EventArgs) If IsMouseOnMe() = False Then mMouseAlreadyEnter = False MyBase.OnMouseLeave(e) End If End Sub
369 :
363 :2007/05/25(金) 21:38:46
370 :
363 :2007/05/25(金) 21:49:27
>>366 やっぱり気になって先にソース見てました。
正に自分が欲していた動作です。
しかも超汎用性があるようにサンプルまで頂けて・・・
ありがとうございます!!!!!
なんか胸のつかえが取れました!!
いや、サンプルっていうかUserControlで
>>363 に書いてあるような動作を実装するような
コードを書いてみただけだけどね。
なんにしろ希望の通りの動作のようで何より。
しかし、Chiledsって素で間違えたよ恥ずかしいw
中学英語も怪しくなってきているとは
372 :
デフォルトの名無しさん :2007/05/25(金) 23:29:44
C言語では、static int a[3]={1,2,3}; や、 static char b[]="abc"; のように、初期化できるのですが、VB や VBA ではどうすればよいのですか、 N88 basic では、確か、DATA 文があって、できたと記憶しているのですが
Dim a() As Integer = {1, 2, 3}
s = Sum(n, aa(0)) これはどこがおかしいんでしょうか?
>>374 エスパーの俺にも君の質問の意味がわかりません。
配列へのポインタと渡そうとして 先頭要素の値(への参照)を渡している いろんな言語の低レベルな知識がごっちゃになってるという最悪の状況
s as intger =0 n as intger =1 aa as string =123456 s = n + aa(0) だとおk? 一部省略
aa(0)をint(aa(0))に修正↑
379 :
359 :2007/05/26(土) 02:20:08
>>374 大体、Integer型とInteger型の配列は全くの別物ですから。IntegerはInt32構造体、Integer()はArrayクラスが本来の姿です。
従って配列を渡したかったらちゃんとそう書かないとだめです。
Function(ByVal n As Integer, ByVal aa As Integer())
見たいな感じで。
あとVB.NETだと参照型は値渡しでちゃんと参照が渡されるから、配列渡す時は無闇にByRef使うとえらいことになります。
そもそも、アンマネージDllの呼び出し(PInvokeとか呼ばれてますけど)はマーシャリングという処理が必要で結構奥が深いですよ?
でたよ・・・ プログラマ特有の頭でっかち
382 :
359 :2007/05/26(土) 02:25:56
>>374 あと、俺みたいに前のレス番名乗らないから
>>375 みたいな突込みがくるわけで。
この板にはID無いから自分が前に出した質問があるときはちゃんと名前欄に書きましょう。
>>380 どうせ俺は21の高卒プログラマですよ・・・
>>383 本当だ・・・
>>357 だと思ってたんだけど
>>357 はちゃんとレス番書いてあるorz
まぁちゃんと書いても騙りに沸かれたらそれまでなんですけどねw
385 :
デフォルトの名無しさん :2007/05/26(土) 02:49:56
>>382 まぁそういうな
つうか、ここでは年齢も学歴も関係ないだろ
そうやって思ってもないのに自分で自分を卑下してるフリしてるやつはムカつく
386 :
359 :2007/05/26(土) 03:18:18
>>385 まぁ実際普段仕事する分には学歴なんざ糞の役にも立たないんでしょうが、場数も学歴もないと転職キツくありません?
ちなみに俺が知る限りウチの会社のプログラマに大卒は居ませんw
つーかそういう話題はマ板逝けって言われそうなんで
>>377-378 の件
なんか文法エラーが混じってるんで一番好意的に解釈した結果になりますが、
aa="123456"だとすると、CInt(aa(0))の結果は'1'のキャラクターコード=&H21です。
したがって
s = n + CInt(aa(0)) = 1 + &H21 = 34
になりますけど、それは意図した動作ですか?
そもそも
>>374 ≠
>>357 だと冗談抜きでエスパーでもないと無理w
387 :
386 :2007/05/26(土) 03:24:50
間違えたorz CharからIntegerって普通には変換できないじゃんw
>>386 お前の知る世界が狭いだけ
ヘッドハントなんざいくらでもある
そこに学歴は関係ないからな
つうか・・・・落ち着いて書きこめよ…・
デバッグ忘れでリリースしそうなやつだな・・お前…
VBでSumって組み込みであるの?
>>388 なんか背伸びしてる感がありありだよ
ヘッドハントってお前さんどんな「生き馬の目を抜く」世界にいるんだよw
そりゃあるかないか、といえば確かに「ある」が、それはお前さんの世界じゃないだろうに。
391 :
デフォルトの名無しさん :2007/05/26(土) 17:00:20
変数の値ではなく、変数名を文字列に変換することはできますか? またその逆はできますか? 趣味でプログラミングを始めた初心者ですが、どなたか教えていただけませんでしょうかm(_ _)m
できるかできないか、で言えば可能だが、初心者にははっきり言って無理。 初心者にはもっと他にやることあるだろ。
>>391 ローカル変数は無理
クラスや構造体のフィールドなら可能
言葉の意味がわからないなら諦めろ
そんなの自分でソースをパースすればいいんだよ。なんでもできる。
395 :
デフォルトの名無しさん :2007/05/26(土) 23:47:05
WebBrowser で Excelファイルを表示したとき、 VB6 の頃は Excel のツールボタン列がいくらでも選択できて 表示できたのですが、VB2005 になってから表示されないようなのですが、 もし表示するための方法等がありましたら教えてください。 よろしくお願いします。
396 :
デフォルトの名無しさん :2007/05/28(月) 06:11:59
VB.NET→VB2005への移行は簡単ですか? VB6→VB.NETへの移行とどちらが簡単ですか? そろそろ.NET Framework1.1のサポートが終了と聞いたので。
397 :
デフォルトの名無しさん :2007/05/28(月) 09:32:10
>>396 そりゃ 過去の.NET→2005の.NETにきまってるじゃないか
基本的な部分は変わってないんだから
398 :
デフォルトの名無しさん :2007/05/28(月) 09:53:51
VB2005で現在のカーソル位置を行数で知りたいんですけど、便利な方法ありますか? 確かExcelVBAでは画面の上のほうに出てたと思うんですが・・・
何のカーソルの位置を何の行数で知りたいの
399は優しいのな。 俺は398みたいなおタンチンは相手にする気になれん。 というか、どうせこんな人間相手に自分の希望を伝えることすらできない人間が 満足なコードなんて書けるはずがないと思うんだが。
401 :
398 :2007/05/28(月) 13:57:34
コードエディタのカーソル位置です。 エラーがあったときデザイナを開くと「XX行目にエラーがあります」みたいなメッセージが 出るのですが、その行数に飛びたいのです。 確か空行飛ばしてカウントしてたと思います。今確認しようとしてるんですが エラーは出ても「XX行目に…」というメッセージが出ない・・・
402 :
デフォルトの名無しさん :2007/05/28(月) 14:13:20
普通に標準機能じゃ満足できないのか?
403 :
398 :2007/05/28(月) 14:32:51
標準って、「エラー一覧」ウィンドウに出てるエラーメッセージをダブルクリックして飛ぶって意味ですか? それができなかった時があったと思うんですけど… ていうか再現できない。何でかなー
アホをVB.NETスレから出すなよ……
ふらっとC♯, C#(初心者用) Part16
http://pc11.2ch.net/test/read.cgi/tech/1179313212/257 257 名前:デフォルトの名無しさん[] 投稿日:2007/05/28(月) 14:47:42
すみません、VB.NET の方で訊いてみたのですがご指導いただけません
でしたのでこちらでも訊かせてください。すみません。
WebBrowser で Excelファイルを表示したとき、
VB6 の頃は Excel のツールボタン列がいくらでも選択できて
表示できたのですが、VB2005 になってから表示されないようなのですが、
もし表示するための方法等がありましたら教えてください。
よろしくお願いします。
いや・・・これ・・・VB.NET関係無い気が・・・
>>405 中のソースをVB.NETで書いてたんじゃね?
IEかOfficeスレへ逝くべきかな しかし、俺の環境じゃ普通に表示できたぞ プログラミング勉強するよりWindowsの基本操作勉強したほうがいいんじゃねぇか
408 :
デフォルトの名無しさん :2007/05/28(月) 18:07:03
初心者です。 教えてください。 フォーム上に2つのボタン Button1とButton2があったとして Button1をクリックした処理の中に、 「Button2をクリックされたイベント」を発生させたい場合 どうしたらよいのでしょうか?
409 :
デフォルトの名無しさん :2007/05/28(月) 19:34:40
>>408 VB6とかVBAではなんて書いた?
それがヒント。
>>408 がVB6やVBAの経験があるとは限らないだろ
Clickイベントを発生させたいのか、
それともイベントハンドラのメソッドさえ呼べればいいのかどっち?
前者ならButon2.PerformClick()、後者ならButton2_Click(sender, e)
411 :
デフォルトの名無しさん :2007/05/28(月) 21:50:04
>>410 いや、まあ、ただ教えてくれってだけじゃなくて、考えるヒントになればって
思っただけ。
クラスとかの質問じゃないから、どうやればそのイベントを発生させるか
考えられたら、のちのちのためになるかなぁと。
だからって>VB6とかVBAではなんて書いた? がどうヒントになるんだ だいたいPerformClickなんて 知ってるか知らないかだけの問題であって考えても仕方ないだろ 自分で調べられるならこんなところで聞かないだろうし
413 :
デフォルトの名無しさん :2007/05/28(月) 23:00:59
あとVisualStudio使ってるか使っていないかは最低でも伝えてほすぃ
>>411 馬鹿は教育しなくていいよ。
知ってれば答えろ。知らなきゃ黙ってろ
なるほど、だから誰も君には何も言わないわけかw
417 :
デフォルトの名無しさん :2007/05/29(火) 09:58:26
おまえら・・・・
もうちょっと教えて君には聞き方教えてやろうぜ?
だからC#に聞きにいったりするアフォが出て来るんだし
>>413 せめてPG経験とか、何の言語使えるとか情報出さなきゃ
知識が0なのかどうかすらわからん・・・・
例えばJAVA経験あるといえば、JAVAでいうところのこんなもんだ
って砕いた説明してくれる奴も居るだろうし
てか、何でこういう奴出てくるんだろうな・・・ 何も情報出さずにエスパーしてほしい奴多すぎね?
何で、ってそれがVB.NETクォリティだろ
419 :
デフォルトの名無しさん :2007/05/29(火) 13:44:27
>>418 そうか・・・そうだよな
ァ '`,、'`,、('∀`) '`,、'`,、
VB2003で、「起動時に前回終了時のウィンドウのサイズを復元する」 ということをフォームのプロパティ設定だけで実現できますか?
いいえ
422 :
デフォルトの名無しさん :2007/05/29(火) 15:35:18
レジストリに書いたら??
423 :
デフォルトの名無しさん :2007/05/29(火) 15:43:39
>>420 明らかにそんなものないだろうが
何の為の設定ファイルやレジストリだ?カス
424 :
デフォルトの名無しさん :2007/05/29(火) 16:13:21
どうやったらできますか?って質問ならまだしもな。
Webで調べたら、プロパティ設定で実現する方法を説明しているサイトがなかったのと そういうプロパティが無かったので、そうじゃないかと思ったのですが、 明確に「プロパティ設定ではできません」みたいな説明がなかったので・・・ 昔いじってた特殊な開発環境だと、そういうプロパティがあったので、 VB2003でも無いのかなと思ったのです。
まあそう突っかかるような質問ではないよな。 2005なら可能だよ確か。 俺はそういうのくだらない仕様だと思うからやったことはないけどね。
>>425 >明確に「プロパティ設定ではできません」みたいな説明がなかったので・・・
おま・・・・・
ありえないものをどのように説明するんだと・・・・
やれるとしたら中間ファイルを書き換えるとかの手法くらいだ
まずありえないけど
極端な話、自分が頭で思ったことをソフトにしてくれるツールありませんか?
というような疑問や質問があって
その答えを探しているようなもんだと思うぞ
まともにいけば質問すらないだろう・・・・?
>昔いじってた特殊な開発環境だと、そういうプロパティがあったので
何の環境なのかkwsk
一度そういう環境って見てみたい
>>427 だから悪いけど足りないのはお前さんの方だよ。
>>425 が想定したような機能が存在することを仮説するのはそんなにおかしなことじゃない。
まあ、「お前自分で全然調べてないだろう」感は否めないがね。
429 :
デフォルトの名無しさん :2007/05/29(火) 19:39:46
>>427 機嫌でも悪いのか?
まぁそう突っかかるなよ
>>425 まぁVB.NETなら大人しくアプリケーション構成ファイル使ったほうが吉と思われ
外部にファイルを作らずに…とは言ってないんだから、 プロパティの実装によってはプロパティに値を設定するだけで設定を永続化させるのも可能 ありえなくはないわな
最近、あっちこっちで暴れてるヤツが1名いるようだな・・・
432 :
デフォルトの名無しさん :2007/05/29(火) 22:04:40
>>420 MaximizeBoxとMinimizeBoxをFalseにして、
BorderStyleをFixedSingleにすればいいんじゃね?
433 :
デフォルトの名無しさん :2007/05/29(火) 22:34:28
434 :
デフォルトの名無しさん :2007/05/30(水) 15:11:52
Webプログ板みてもASP.NETのスレがないので、ちょいとここで聞きたいのですが。 MicrosoftからExpression Webという新しいWeb作成ソフトの紹介メールがきたんですが ホームページビルダー持ってる人は今なら68%オフで買えるそうです。aspxファイルとの連動 も良いと書いてあります。自分は今までJava,PHPでWebシステムを構築してきましたが、 今度からASP.NETもやらなくちゃなりません。このソフトは買ったほうがいいですか?
435 :
デフォルトの名無しさん :2007/05/30(水) 18:41:34
>>434 とりあえずASP.NETのエディタ先使って
で満足できなければ試用してみれば?
値型の代入も、参照型の代入も = で こんな糞な言語仕様をユーザに提供して、 自分たちは使ってないんだろな。
(゚д゚)ハァ?
438 :
デフォルトの名無しさん :2007/05/31(木) 11:04:19
>>436 じゃぁどうするんだ・・・?
C#とかで作ってるマイクロソフト製のソフトもあるぞ?
いやいや、つか多くの言語はそうだろ
440 :
434 :2007/05/31(木) 12:50:30
>>435 はっ。ありがとうございます。自分はちょうど浮き金がそのくらいあるのですが
交際費のためにとっておく(貯金しておく)か、それを買うか迷ってます。交際費はデートではないです。念のため。
一応、貯金しておくかな?
スレ違い、ありがとうございました。
441 :
デフォルトの名無しさん :2007/05/31(木) 14:25:37
VB.NET 2005で初歩的な質問なのですが ある画像をBitmapオブジェクトで取得したい場合 Bitmap.FromFile("hogehoge") で取得してもImageを取得するようになっています。 現在は CType(imageObject,Bitmap) で変換をかけているのですがなにかもっといい方法はないでしょうか?
Bitmapクラスのstringをひとつだけ引数にとるコンストラクタを使えば?
443 :
デフォルトの名無しさん :2007/05/31(木) 14:58:18
>>442 あ・・・・
そうですね 今見たらFileName引数に取るのがありました
見落としてました お手数をおかけしました
VB.NETを使用してプログラムの作成をしているのですが スプラッシュウィンドウで画像を動かすにはどうしたらいいのでしょう?
445 :
デフォルトの名無しさん :2007/05/31(木) 15:19:05
>>444 具体的に動かすというのは・・・どう動かしたいんだろう???
ピクチャボックスに画像表示させて
タイマのイベントの中でLocationを変更させるとかでは解決できないような事?
さすがにLocationはお粗末過ぎるだろ 自分で描画しろ
447 :
デフォルトの名無しさん :2007/05/31(木) 15:35:43
>>446 まぁw そうなんだけど 何をやりたいかも見えてこなかったのでそう言ってみた
反省はしていない
アニメーションGifをスプラッシュウィンドウのPictureBoxに貼り付けておく
この機会にWPFに乗り換える
>>449 横レスだが
あ〜 いいよねぇ・・・つかいてぇわ
FrameWork3.0導入できる所って うらやましい
ウチはまだ検証段階だからって業務で使わせてくれない・・・
>>445 タイマのイベントの中でLocationですね。
調べてみます。
>>448 それは簡単そうですね。
ただGIF画像の作り方がわからないので
こちらも勉強が必要みたいです。
回答ありがとうございます。 具体的な目的が無く かっこいいスプラッシュウィンドウを作りたい という程度なので 簡単で「かっこいい」スプラッシュウィンドウの作成方法があれば 教えていただけたらうれしく思います。
453 :
デフォルトの名無しさん :2007/05/31(木) 18:03:37
>>452 まぁありきたりだけど
画像とプログレスバーでXP起動画面っぽいのはどう?
その前後でスプラッシュフォームのPacity(つづり忘れた)を増減させて
透明→表示→プログレスバー増加→透明→起動フォーム表示
とかだったら結構ラクだと思うけど
透明? 使いたい画像があってそのロゴを シャキーンて感じに出したいのですが えと、画像が横からスライドして登場したり だんだん大きくなったりとか(フェードイン?) 説明わかりにくくてすみません
透明はフェードインとかのイメージだと思うよ。 って大きくなっていくのもフェードインというのか?そうか…
透明といえば フォームの背景色を透明にすることは可能でしょうか? プロパティのBackGroundColor(?)でWEBタブのI何とか を選んでもエラーがでてできません。
結論:スプラッシュは不要
458 :
デフォルトの名無しさん :2007/06/01(金) 02:26:08
呼び出し先のDLLがアンマネージドの場合、 そちらのDLL内で使用されたメモリは .NET Frameworkによって自動的にGCされるのでしょうか? 下記のような構成の場合、 @やAはGC対称だが、Bの場合、 B内で確保されたメモリがB内で明示的に開放されない限り、 GCされずに確保されっぱなしと考えているのですが、 その理解で問題ないでしょうか。 VB.NETのEXE @ ↓↑ C#のDLL A ↓↑ ↑.NET系の言語 ------------------------------------------------- ↓↑ ↓非.NET系の言語 普通のCのDLL B また、Bがメモリをリークしているか否かを確認するには 呼び出す直前、直後に Process.GetCurrentProcess.WorkingSet 仕掛ければいいのでしょうか (このやり方だと、カレントプロセスの使用メモリが合算されちゃうのですが、 直後−直前の差分がBのメモリ使用量になるかと思うのですが。。。) ※すれちがいかも知れませんがアドバイスいただければ。
DLL内で使用された解放されないメモリ、てのが分からん。 そんなんがあったらアンマネージドの世界が大混乱だろ。 直呼びだろうがP/Invokeだろうが 呼び出し側で解放が必要なメモリは呼び出し側で解放する。それだけだろ? バッファを要求するAPIでMSDNにCallerはMemoryをFreeすることを Requiredと書いてあるときは呼び出し側の.netでFreeすることがMustですよ? WorkingSet からリークを判定しようなんて非現実的過ぎて しょんべんもでないわ。
そもそも.NETなのにリークが発生するのかと。 発生しないだろ、GCあるのにw
あほ
462 :
デフォルトの名無しさん :2007/06/01(金) 09:37:11
横からスマソン。
>>459 のいうとおり、確かに呼び出し元でメモリ確保したら責任もって解放するのが原則だ。
ただ、
>>458 は
> 呼び出し先のDLLがアンマネージドの場合、
> そちらのDLL内で使用されたメモリは
っていってるから、たぶん呼び出された側のアンマネージドの中で
定義してるローカル変数アロックして、その後フリーし忘れたらどうなるのか
きいてんじゃないかい?
呼び出す前後のメモリ調べようとしてるから、
そういう意味なのかと思ったが。
はずしてたらすまん。エスパーじゃないんで。
463 :
デフォルトの名無しさん :2007/06/01(金) 09:50:04
つうかMarshalクラスでオブジェクトがComかどうか調べてReleaseつかって開放すればいいじゃん
464 :
デフォルトの名無しさん :2007/06/01(金) 10:12:49
465 :
デフォルトの名無しさん :2007/06/01(金) 15:12:32
Office2002のCOMを使用したプログラムは、Office2007のインストールされた PCでも正常に動作するでしょうか?
質問させてください。 環境はVB2005です。 DataGridViewで、例えば編集可能な列が2列あったとします(仮にカラムA、カラムB)。 この時、カラムAのセルに文字を入力したあと、同じ行のカラムBのセルにフォーカスを 遷移させたいのですが、勝手に入力したセルのひとつしたのセルにフォーカスが 遷移してしまいます。 どうにかして横のカラムBにフォーカスを遷移させられないでしょうか…。 どこかプロパティで指定できるのか、CellEndEditあたりのイベントに何か書けばいいのか、 探っているのですがさっぱりです。 わかる方いらっしゃいましたら、ご教授お願いします。
467 :
デフォルトの名無しさん :2007/06/01(金) 15:32:22
>>466 入力の終了はどうするの?Enterで移動することになるのかな?
それだったらKeyPressなりでKey引っ掛けて
現在編集中ののCellを取得し、そのRowとColumnのインデックスでも取得して
取得した現在のRow、ひとつ右のColumnのセルを指定してEditを開始してやればいいと思うよ
メンバで確か編集を開始するメソッドがあったと思うけど・・・・
最終列の場合はどうするかわからないけど、まぁどうにでもなるってこったww
説明ヘタですまないな
>467 レスありがたふ。 現状 編集可能なセルの上で何かキーを押す→編集モードになる 文字入力してEnterキーを押す→編集モードが終り、下のセルに(勝手に)フォーカス遷移 編集モードになっていないときはKeyPressやらKeyDownでEnterが拾えるんだけども、上記の場合だと拾えない… むむむ。 もう少ししらべてみまっしゅ。
469 :
デフォルトの名無しさん :2007/06/01(金) 16:26:48
>469
>469 途中で書き込んでもーた(´・ω・`) 継承したコントロールつくるしかないのかー・・・・ ありがとう。
472 :
デフォルトの名無しさん :2007/06/02(土) 15:36:45
Property の Attribute 設定においては条件分岐などが使えるとうれしいのですが 可能でしょうか?例えば、何かの場合にはこの項目は表示し、別の場合には表示しない、 などができると助かるんですが・・・。
>>472 「例えば」が何の例示にもなってない。
もっと具体的に。
474 :
デフォルトの名無しさん :2007/06/02(土) 16:14:06
>>473 そうですね、いくつかのオブジェクトで共通の項目があるとして、
しかし、何かの条件が立っているときは、それを編集不能にしたい、
つまり PropertyGrid で Disabled にしておきたい、などですね。
もし Attribute で If文みたいな条件分岐や、オブジェクトのインスタンス
フィールドによるBoolean値 が使えなければ基本的に Attribute での
処理は不可能なのだと思います。そういう理解でいいでしょうか。
その場合は他の方法を考えて見ます。
>>474 > Disabled <- これは ReadOnly(True) のことです
PropertyDescriptorでなんとかなるんじゃね?
>>476 どうもです、PropertyDescriptor で オブジェクトの
インスタンスフィールドによるBoolean値が使えるかどうか
調べてみます。
>>472 なんか質問が釈然としないなあ。
まずコンポーネントまたはFormのコントロールの話なんだよね?
その自作のコンポーネントまたはコントロールをFormに貼り付けた時の、
デザイナのプロパティグリッドの表示を動的に変化させたいってこと?
そうなら無理な気がするし、そもそもそんな必要もないのでは。
プロパティグリッドの表示の制御って属性で行うと思うんだけど、
属性のプロパティって実行時に変えられたっけ?
プロパティの説明で「この値はXXがOOの時には無効です。」と表示した上で、
必要なら変更を無視するコードを書けばそれで必要十分だと思う。
>>478 >プロパティの説明で「この値はXXがOOの時には無効です。」と表示
するのは今それでやっていました。
まあそうなんですが、ReadOnly(True) の True のところに、
Boolean型の論理式を入れて制御できないものかと思ったのです。
やってみるとどうもインスタンスフィールドを使うとダメだといってくるので
やっぱり不可能なのかなと思ったので、もしかしてどなたかやった方は
おられないかと思いまして・・・
また調べてみますが、ダメであれば別の方法考えてみます。
別の方法って、プロパティグリッドを制御する方法が(コンパイル時に決定する) 属性のプロパティの値以外に用意されてないとしたら不可能でしょだから。 だからそんなにどーしても変えちゃダメ、ってプロパティーなら、条件次第で 変更キックするようなコード書けばいいだけじゃん。 俺はうっとうしいと思うけど、必要ならメッセジボックスでも出してさ。
属性は型情報なんだから、特定のインスタンスのフィールドがどうこう考えてる時点でおかしいと思えよ
最近見かける(´・ω・`)←これの 口の部分ってどうタイピングすれば出るんだ?
オメガでおk
↓この書き方ってセンスが無いでしょうか?行によってカンマから始まったり、そうでなかったり・・・ Private Sub Test(a1, a2 _ , a3, a4, _ a5, a6 _ , a7, a8)
487 :
デフォルトの名無しさん :2007/06/04(月) 11:14:53
ない
カンマは前の要素にくっつけるもんだろ。
偶数行に特別な意味を持たせたいのならば、ないこともない
>>479 .NET 2003 でやろうとして挫折した覚えが…
そのときは結局、取得なら
TypeDescriptor.GetProperties(オブジェクト).Item("プロパティ名").Attributes
でできるけど、AttributeCollection 自体が ReadOnly なんで
動的には変更できない、という結論に。
だが、君ならきっとやれる。頑張ってくれ。そして教えてくれ。
それは方向が間違っとる デスクリプタカスタマイズしても動的に読んでくれないと意味ないし。
マクロで頑張ってVSを操作すればできそうな気がする 気がするだけ
それはただの気のせい
494 :
デフォルトの名無しさん :2007/06/05(火) 22:46:12
携帯から失礼します SQLの質問です Sqlコネクトストリングを "DataSourse = .\EXPRESS"な感じで、 ローカル\EXPRESRを指すとします その時に、例えば、カレントのサーバーを"AAA"と設定して、 先ほどのコネクトストリングを使用して "AAA\EXPRESS"を指すことってできるでしょうか? よろしくお願いします
496 :
デフォルトの名無しさん :2007/06/05(火) 23:13:15
すみませんが教えてください。お願いします。 イミディエイト・ウインドウで、"?" の後ろに、オブジェクト変数をタイプして エンターすると、オブジェクトのパラメータがダーッと出てくるんですが、 最後まで出ないで < 詳細... (486 のアイテムの最初の 100 を表示しています。) > となって終了します。これを全部出すにはどう操作すればいいでしょう? よろしくです。
直前に処理したメソッドの内容を無効にして、一つ前状態に戻すアンドゥーの様な 機能を持つボタンを作りたいのですが、どうすればいいでしょうか?
直前の操作を覚えていれば、逆操作できるだろ
動作をスタックにしていれとく 戻したらこんどはRedoのスタックにいれる
>>497 あらかじめ処理する時に、
変更対象のデータの変更前と変更後を記録しておく。
その記録から、変更後の状態から変更前の状態に戻す。
処理手順の記録も方法の一つ。最初の状態からどんな処理をしたのか
手順を記録しておく。
その記録から最初から最後の処理直前まで処理をして
元に戻す。
前者はExcelちっくな表。後者はお絵かき。を想定。
502 :
デフォルトの名無しさん :2007/06/06(水) 06:59:42
503 :
デフォルトの名無しさん :2007/06/06(水) 10:45:05
プリンタの一覧を取得したく、以下のプログラムを組みました。 For Each p As String In Printing.PrinterSettings.InstalledPrinters Debug.WriteLine(p) Next しかし、ネットワークプリンタで問題が生じています。 「\\マシン名\プリンタ名」で取得したいのですが、 「自動 プリンタ名 (マシン名 上)」の形式で取得できてしまいます。 ネットワークプリンタを「\\マシン名\プリンタ名」の書式で取得する方法はないのでしょうか? 宜しくお願いいたします。
504 :
デフォルトの名無しさん :2007/06/06(水) 14:14:08
初めて質問します。VB6の時、msgbox が表示されたときに、 CNTL + BREAK でデバッグモードに移行できたのですが、 VB.NET ではできません。なんか方法がありますか?
あります
506 :
デフォルトの名無しさん :2007/06/06(水) 14:39:24
>>503 それで普通に
\\マシン名\プリンタ名
で出るけどな。
「自動 プリンタ名 (マシン名 上)」
508 :
504 :2007/06/06(水) 15:01:05
>>508 メッセージボックスが出たらその行にブレークポイント仕掛ければいいんじゃね?
510 :
504 :2007/06/06(水) 15:11:59
それをせずに、したいのです。VB5では当然のように、できてましたから。
>>504 IDE に戻って Ctrl+Break では不満なのか。
512 :
504 :2007/06/06(水) 15:56:09
>>511 知らなかった。そんな方法でできたとは・・・ ありがとう。
513 :
デフォルトの名無しさん :2007/06/06(水) 21:06:23
なぜ、DB書き込む時のADDNEW がなくなったんですか? VB6でも 皆、使わないんですか?
は???
>>513 NewRowがあるじゃないか????
ん???
イミフ
515 :
デフォルトの名無しさん :2007/06/06(水) 21:59:15
うへへww
Visual Studioのマクロも子のスレでいけるんでしょうか?
517 :
513 :2007/06/07(木) 09:31:44
518 :
513 :2007/06/07(木) 09:35:58
すまん。知らなかった。INSERT してた。
なんか最近廃れてるね。 [質問1] Nullable(of T)の型に別名をつける方法って何かないかな? [質問2] Windows Form用の自作の複合コントロールAがあるとして、 それを継承するコントロールA'にさらにコントロールやコンテクストメニューを追加すると、 ビルドも実行も問題ないのにA'をデザイナで開くことができなくなることがあるけど (このとき、「ClickはReadonlyなので書き込みできない、ような意味の例外メッセージがデザイナに 表示される)こういう場合もしAに何か問題があるとしたらどんな可能性があるでしょうか?
>>519 [質問1]Imports NullableInt = System.Nullable(Of Integer)
[質問2]例を出せ
>>520 [質問1] について
なるほどこういう場合もImportsが一応使えるのか、ありがとう。
でも、(いや俺の質問の仕方が悪いのですが)その方法だとNullableIntっていう別名は
ファイルスコープ(別のファイルからは見えない)になるよね?
例えばList(of T)なら、
Public Class IntList
Inherits List(Of Integer)
End Class
のように形だけの継承をしてList(Of Integer)にIntListという別名をつけることができるわけだけど、
同じようなことがNullableでもできないかと思いまして。
[質問2] について。
まあおっしゃるとおりなんですが、そういう問題が起こってる複合コントロールは
業務で使ってるんでコード晒せないんですよ申し訳ない。
なんでC#だと言語レベルでNullableをサポートしてるのに VB.NETはサポートしてないんだろうな 逆ならわかるけど
なんでわかるのかわからない
どうでもいいお手軽記法っぽいから でもC#と違ってVB.NETはできるだけ記号を使わない方針のようだから Dim i As Nullable Integer みたいにするんだったら意味ないと考えたのかな
525 :
デフォルトの名無しさん :2007/06/08(金) 21:41:51
javaで ArrayList<Customer> arryCst = new ArrayList<Customer>(); while(rs.next()){ Customer objCst = new Customer(); objCst.setStrCode(rs.getString("code")); objCst.setStrYomi(rs.getString("yomi")); objCst.setStrName(rs.getString("name")); objCst.setStrPost(rs.getString("post")); objCst.setStrAddress(rs.getString("address")); objCst.setStrTel(rs.getString("tel")); arryCst.add(i,objCst); i++; } 見たいな事を.NETでやりたいんですが。。 あるクラスのインスタンスを作ってそのフィールドにDBからとってきた値を格納。 それを配列にしてほかのクラスに渡すようなことをしたいんです。 どうすればいいでしょうか。
何がわからないのか そのように書け、としか
ArrayList→List
>のように形だけの継承をしてList(Of Integer)にIntListという別名をつけることができるわけだけど、 やめてくれw
現在、VB.NETでClickOnceを使用し業務を作成しているのですが、 ClickOnceを使用した場合にクライアントPCのFDアクセスは可能でしょうか? やれると思うのですが、確証が取れないのです誰か教えてください。
なんでテストしないの?
誰かができるといったら確証が持てるわけ?
ってかできないと思う理由は何?
それはおかしい
>>529 確証は自分が調べてやってみてから聞けよ
そうやってなんでもネットで調べようとするからカスになるんだ
>>536 別に君がそう思いたければ思えばいいと思うよ俺は止めない。
内心馬鹿だな、とは思うが。
少なくとも俺は外部に公開するときに
Public Funtion Hoge() as List(of MyStruct)
みたいなことは不恰好だし面倒だしやってられない。
すれにList(of T)ってのは後々案外機能を拡張したくなったりするから
それに備える意味でも都合がいいしね。
まあ自分が使う分にはいいんじゃない
別名つけるのにそんなことしたら不便になる面もある。 まあ、その辺は割り切ってやってしまうってのもありだとは思うが。 やらないのは馬鹿みたいなのは本気か?と思うぞ。
>>539 すまん・・・俺の日本語の読解力が足りないせいか理解しづらい文章だ
やりたけりゃやりゃいいが、 それによる弊害もあるんだから、 やらないのは馬鹿みたいな言い方するやつは ほんとに分かってやってるのか? と疑問だってことだな。
や ら な い か?
>やらないのは馬鹿みたいな言い方
ずいぶんとまた被害妄想的だねえ。
微妙に(いや本当はかなり)ニュアンス違わないか?
>>537 にあえて言葉を付け加えるとすれば、
Public Class IntList
Inherits List(Of Integer)
End Class
これに弊害を感じるとしたらむしろそういう自分のセンスにこそ弊害を感じるべきだろう。
継承の1特殊形態(それも最単純な)に過ぎないわけで、これに弊害があるなら
継承なんて怖くて使えないだろう。
>>537 Integerはやめてって言う意味だと思う。
内心馬鹿だな、と思うのは内心だけにしたらどうかと。
>継承の1特殊形態(それも最単純な)に過ぎないわけで、これに弊害があるなら 本来同じ意味であるはずの元のListと逆方向の互換性がなくなるとか、 FindAllとかのコレクションを返すメソッドの互換性がなくなるとか いろいろ弊害はあるわけだが。
>FindAllとかのコレクションを返すメソッドの互換性がなくなるとか いや、互換性じゃなくて、期待通りに動かない、てことだな。
547 :
デフォルトの名無しさん :2007/06/09(土) 10:14:05
Public Class Form1 2: Inherits System.Windows.Forms.Form 3: 4: #Region " Windows フォーム デザイナで生成されたコード " 5: 6: Public Class Test 7: Public v As Integer 8: End Class 9: 10: Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 11: Trace.WriteLine(DateTime.Now) 12: Dim count As Integer 13: count = 10000000 14: Dim test(count) As Test 15: Dim i As Integer 16: For i = 0 To count - 1 17: test(i) = New Test() 18: test(i).v = i 19: Next 20: Dim sum As Long 21: For i = 0 To count - 1 22: sum = sum + test(i).v 23: Next 24: Trace.WriteLine(DateTime.Now) 25: End Sub 26: End Class 某HPからパクって来たソースです。 これってform classの中でpublic classとしてtestというものを宣言しているんでしょうか。 javaだとありえないんですけど、.netだと許されるんでしょうか
549 :
デフォルトの名無しさん :2007/06/09(土) 10:23:18
殺すぞテメ
550 :
デフォルトの名無しさん :2007/06/09(土) 10:39:18
殺人予告です!!!! Try 殺人計画 包丁を足に落として自爆 いてぇえええええええええ Catch Ex asException 殺人前に一回オナニーしたいという性衝動の例外が発生しました DoTheオナニー finally もう殺人なんてどうでもいいや end try
551 :
デフォルトの名無しさん :2007/06/09(土) 10:45:18
asException でコンパイルエラーとなり、 殺人計画頓挫
>javaだとありえないんですけど、.netだと許されるんでしょうか 何がありえないのか明確に。
vb.net検索結果820万件 vb.net activereports 49100件 java検索結果3億以上 java + eclipse でも4500万以上 java eclipse struts 169万件 こんなマイナー言語もうやりたくねーー わかりにくいHPかっ飛ばしてわかりやすいHP探すとか100%無理だし、本も売ってねーし 考えても答えでねーし。しかもスゲー忙しいからがんばってとか さらにわけのわかんねー10万円以上するつーるつかって、.netでいっぱいいっぱいなのになんでわけのわかんねーツールまで持ち出す 言語知識0でいきなり現場投入とかわけわかんねえええ 適当モード確定 もうどーでもいいや、シネとか言ってごめんね さようなら
クラスの中にもう一個クラス宣言することが許されるのかということ javaちっくに別モジュールにクラス作ってそれほかモジュールから呼ぼうとしたらインスタンスがドーのこーの言われて 出来なかったので調べてただけです。 インスタンス作ろうにもnew クラス名() の()が.net側で勝手に消されてしまう。
>>554 おまえその様子じゃJAVAもまともに使えてないと思うんだ
使われてるレベルだと思う
556 :
デフォルトの名無しさん :2007/06/09(土) 11:10:25
>クラスの中にもう一個クラス宣言することが許されるのかということ いつのJavaだよ
Java だと無名クラスなんてもんすらあるのにね
ソースさらしたくても会社にしかないので。大体こんな感じです public class person private name as string private kana as string private age as integer public sub setPerson(byval name as string,byval kana as string,byval age as integer) this.name = name '---------thisはmeだったかも、覚えてないです--------- this.kana = kana this.age = age end sub end class 別もじゅーーるのフォームかなんかで 〜前略 person ps =new person '-------かっこつけたくても自動で消えます ps.setPerson(aaa,bbb,111) コンパイルは通ってもインスタンスどーのこーのでエラー javaは使いこなせてません、ただ見たことなかっただけですクラス中にクラスを作る。
>>559 結局何が言いたい(質問したい)んだい?
ただ馴れ合いたいだけなら個人的には他所いってやって欲しいね。
いったいそれは何言語だw ちなみにVBでは引数なしのメソッド呼び出しの()は省略できる。 New だとIDEが勝手に消してしまうので、ほっとけばいい。
Javaの方がはるかに内部クラスだらけじゃないか イベントハンドラを実装するために内部クラスを定義しないといけない仕様だぞ
>ただ見たことなかっただけです 見たことない=ありえない。 おまえは神様かっ
使ったことなかったですわ。('A`) イベントハンドライベントリスナーのことでいいんですかね それだったら使ったことありましたが1個1個implementsして使ってました。 無名とか内部クラスとかは知りませんでした。 .net書き方すらわからん初心者です。 板よごしなのでこれできえます。
逆に凄いなw
もうほっとけよ
vb2003です。くだらない質問ですがお願いします。 mdiの子フォームでキーボードを叩いた時、親フォームのkeydownイベントを走らせないように したいのですけどどうすればいいですか?
親のKeyPreview = Falseにする。 する、というかデフォルトでFalseなはずだけど。 自分でTrueにしておかしいおかしいって言ってるとしたらアホ丸出しだね。
569 :
567 :2007/06/09(土) 18:25:05
>>568 ありがとうございます。確認してみます。
570 :
デフォルトの名無しさん :2007/06/10(日) 13:58:04
vb.net2005でクラス同士が完全に等しいか比べるにはどうしたらいいのでしょうか? equalsを使用してもうまくいきません
インスタンスじゃなくてクラスが等しいのか。 普通見ればわかるんじゃね?
572 :
570 :2007/06/10(日) 14:04:13
何をもって完全に等しいとするのかをはっきりさせんといかんな。
>>570 愚問だと思うよ。
そもそもそういう質問をするのはクラスがよく分かってないからだろうから
真面目に勉強しろ、としか言いようがない。
c#になるけど、アスキーから出てるartonって人のc#の本がその辺り
分かり易く掘り下げてるから読んでみるといいと思う。
575 :
570 :2007/06/10(日) 14:15:08
>>573 なるほど!!!
何をもって完全に等しいかを考えればよかったんですね!!!!!
中に入っている変数の値、全てが完全に等しいものを探しているので
一つ一つ比較していけばおkですね!
arraylistとか型がobject型のものは完全に等しいかを考えるのがむずかしいですね
思而不学則殆そのものだな。 まあ人事だからどうでもいいけど
コピペ君って馬鹿だな、まで読んだ。
ここは初心者馬鹿にしてストレス発散するスレだな。
580 :
デフォルトの名無しさん :2007/06/11(月) 07:08:15
Form1で動画を再生(winmm.dllのmciSendStringAのopen、window、playを使って)→Form1をクリックしたら停止 というのを実現したいのですが、停止がうまくいきません。 Form1の動画以外の場所をクリックした時は停止するんですが、動画をクリックした時は停止しません。 動画をクリックした時も停止させる方法はあるのでしょうか? ちなみに↓が停止のコードです。 Dim FileName As String = """C:\1.avi""" End SubSub Form1_Click(省略) Handles Me.Click mciSendStringA("close " & FileName, "", 0, 0) End Sub
581 :
580 :2007/06/11(月) 07:11:38
すみません、間違えました。 ↓です。 Dim FileName As String = """C:\1.avi""" Sub Form1_Click(省略) Handles Me.Click mciSendStringA("close " & FileName, "", 0, 0) End Sub
582 :
デフォルトの名無しさん :2007/06/11(月) 09:18:41
フォーム1に同じデリゲートのプロシージャ作って 動画のクリックイベントに停止処理のプロシージャをAddhandlerしたら終わるんじゃないの?
動画をクリッコしたとき発生するイベントに mciSendStringA("close " & FileName, "", 0, 0) って書けばいいだろ。
栗っ子
VB.NETでは「メソッド」と「プロシージャ」の言葉はどう使い分けてるの? プロシージャ : クラスかモジュールに定義されたSubかFunction メソッド : クラスに定義されたプロシージャ でいいの?
586 :
580 :2007/06/11(月) 14:37:12
めちゃくちゃ低能な質問ですが、 mciSendStringA("window " & FileName & " handle " & Me.Handle.ToString, "", 0, 0) これで動画の表示先をForm1にしているのですが(MeはForm1)、この場合の動画のクリックイベントはMe.Clickではないのですか?
587 :
デフォルトの名無しさん :2007/06/11(月) 17:13:24
いや・・・・それいぜんに Dim FileName As String = """C:\1.avi""" >>End SubSub Form1_Click(省略) Handles Me.Click mciSendStringA("close " & FileName, "", 0, 0) End Sub >>つけてる行のソースはありえないから ヘタな小細工せずにそのまま貼り付けろヤ
588 :
デフォルトの名無しさん :2007/06/11(月) 17:19:45
データ個数32768個(可変)、チャンネルが8ch(可変)のデータがテキスト形式であります。 チャンネルはタブ区切り、データ個数は改行区切りです。 1ch 2ch 3ch 4ch … 1 0.5 0.7 0.8 0.9 … 2 0.6 0.12 0.13 0.5 … … 32768 という感じの並びです。これを2次元配列に格納してそれぞれのチャンネルの 解析に入りたいのですが、どうやって2次元配列に格納できるでしょうか? Splitを使ってみたのですが、いまいち分からずに困っています。
>588
>588 きみのいう2次元配列ってのは (データ番号,チャンネル番号)でいいのかな?
Dim hoge(,) As String For i As Integer = 0 To データ数 - 1 データ = (i+1)行目のデータ Dim hogehoge() As String = データ.Split(Chr(Keys.Tab)) For j As Integer = 0 To hogehoge.Split(Chr(Keys.Tab)).Length - 1 ReDim Preserve hoge(i, j) = hogehoge(j) Next Next
592 :
588 :2007/06/11(月) 17:45:31
レスありがとうございます。 2次元配列はできたら(チャンネル番号、データ番号)がいいですが、 解析はどちらでもできると思います。 ReDim Preserve は処理の速さはどうなんでしょう?
自分で試してみろ
594 :
580 :2007/06/11(月) 18:21:32
<<587 <<580は間違いなので、<<581で訂正していますが…。 とりあえず、全体です。 Public Class Form1 Dim FileName As String = """C:\1.avi""" Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" _ (ByVal lpstrCommand As String, ByVal lpstrReturnString As String, _ ByVal uReturnLength As Integer, ByVal hwndCallback As Integer) As Integer Function SendString(ByVal cmdString As String) As Long SendString = mciSendString(cmdString, "", 0, 0) End Function Private Sub Button1_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button1.Click SendString("open " & FileName & " alias f1") SendString("window f1 handle " & Me.Handle.ToString) SendString("play f1") End Sub Private Sub Form1_Click(ByVal sender As Object, _ ByVal e As System.EventArgs) Handles Me.Click SendString("close f1") End Sub End Class ケータイで書き込んでいるので、見づらかったらすみません。 今パソコンから書き込めないんです。
595 :
580 :2007/06/11(月) 18:31:13
>と<を間違えたorz
参照は4バイトとして 最後には4×8×32768=1MB 平均すると0.5MB 0.5MB×8×32768=128GB つまり128GBものメモリを確保解放しまくるわけだ。 あほかと言いたい。
その けいさんは おかしい
あれ、たしかにおかしいな。 ってかこれ正しく動くのか?
600 :
デフォルトの名無しさん :2007/06/11(月) 23:32:52
SqlCommand.CommandTimeoutでSQLのコマンド実行のTimeoutを設定できますが これのデフォルト値である30秒という値を変更する方法はありませんか? SqlCommandを使うところ全部でCommandTimeoutを設定するコードを書かずに 設定ファイルで変更できないものかと思っているのですが
コネクションストリングにかけば? つうか、いくらでもあると思うが…
602 :
デフォルトの名無しさん :2007/06/12(火) 04:52:12
>>462
少し気になったので、相乗りで質問、というか、低脳なコメントを。
以前、VB.NETからアンマネージドのCのDLLを呼び出してたのだが、
そのCのDLLの内部に
ローカル変数に対しメモリーアロック掛けっぱなしというBUGがあった。
DLLを作成してたのは他社(仮にA社)だったのでソースも確認しようがなかったので
そんな障害があるとは自社ではまったく気づいておらず、
後日A社から申し出があって、不具合修正版のDLLを貰った、ということがありました。
それはそれで解決したので問題ないのですが、
もしA社が申し出なかった場合、自社では原因を掴むのが難しいと思い・・・
こんなときどうやって切り分けるのでしょうか。
>>458 の言っているWorkingSetじゃ
プロセスのメモリ使用量だから
相手のDLLが使用したメモリ量だけ切り出そうと思っても
できないんじゃないかと思うのだが、、、。
603 :
デフォルトの名無しさん :2007/06/12(火) 05:38:48
>>597 たとい12使用しても最近のメモリは性能いいからもんだいない
604 :
デフォルトの名無しさん :2007/06/12(火) 07:01:29
>>601 MSDNのSqlConnection.ConnectionStringを見たところでは対応している
キーワードがないみたいです。Connection Timeoutキーワードは
CommandTimeoutとは別ですよね。他の載っていないキーワードがあるのでしょうか?
また、書き忘れましたが.NET Framework 1.1を使っています。
>>597 文句をいうのはいいが、打開案も出さねばゴミだ
606 :
デフォルトの名無しさん :2007/06/12(火) 09:14:04
>>602 普通マネージドプログラムを書いてもらうものじゃないかな?
ウチはCOM使う場合、相手に依存するから検証されてないと保証できないですよ
みたいに言って逃げてる
そんな深い所まで調べる時間が無い
607 :
デフォルトの名無しさん :2007/06/12(火) 12:09:01
RadioButtonListなどを貼り付けたユーザーコントロールを作成しています。 RadioButtonListのListItemコレクションエディタを、ユーザーコントロール呼び出し側で、 操作したいのですが、よい方法ありませんでしょうか?
608 :
デフォルトの名無しさん :2007/06/12(火) 12:43:20
プロパティでそのままラジオボタンリストを公開するとか public read only property RB as radiobuttonlist return me.RadioButtonList1 end property みたいなwwww エディタのプロパティがネストしてやりづらいしすげぇダサいやり方だと個人的に思うけど 単にラジオボタンリストのコレクション公開すればできないか?
609 :
デフォルトの名無しさん :2007/06/12(火) 15:46:32
配列のソートで質問です。 例えば以下のような構造体を持つ配列があります structure AAA ID as integer ID_2 as integer Name as string end structure このデータを List(Of AAA) に挿入してあります。 AAAの中身 ID ID2 Name 1 2 AAAAAA 3 2 BBBBBB 2 3 CCCCCCC 2 1 DDDDDD このList(Of AAA) の中のデータを簡単に ID,ID2 の準でソートできないでしょうか? 1つならば簡単なのですが 条件が2つあるというのがネックです。 ICompareを独自に実装すべきでしょうか?
>>609 >IComparable.Compare(x, y)
If (x.ID > y.ID) Then
Return 1
ElseIf (x.ID < y.ID) Then
Return -1
Else
If (x.ID_2 > y.ID_2) Then
Return 1
ElseIf (y.ID_2 < y.ID_2) Then
Return -1
Else
Return 0
End If
End If
612 :
デフォルトの名無しさん :2007/06/12(火) 16:28:50
>>610 >>611 ありがとうございます
実装できました!
実装は
IComparer(Of Hoge)
を使用してキャストが発生しないように実装してみました。
>>609 そもそもどうやってここにデータを入れたんだw
614 :
デフォルトの名無しさん :2007/06/12(火) 23:06:55
>>613 構造体配列だから普通に入れたんじゃね?
615 :
611 :2007/06/12(火) 23:48:46
>>611 の一行目はIComparer(Of AAA)の間違いね
>>612 はわかってるみたいだけど
617 :
デフォルトの名無しさん :2007/06/13(水) 00:20:05
vb2005で、WMIを使ってUSBに接続されたHDとかの PNPDeviceIDを取得するものを作ってるんだけど、 ドライブ名を指定して取得する方法ってありますか? 「E:」って指定してできるのかと思ったけど、Win32_DiskDriveは ドライブ情報だからパーティションの情報なんてないし・・・ 方法があったら、教えてほしいです
VBSでGIF画像の色を置換したいんですが可能でしょうか? RGB(R, G, B)でいうと、緑色(85, 127, 85) ⇒ 青色(85, 127, 170) に変換したいのです。 大量の画像を一度に処理したいので、フォトレタッチソフトでは手間がかかりすぎて・・・。 どうか、偉い人教えてください。
What's VBS ? Virus Buster Special ?
VBScriptのことなんじゃね ここはVB.NETのスレですよ もちろんVB.NETなら間違いなく可能だけどVBScriptではどうかは知らん
>>619-620 レスありがとうございます。
VBSってのは、VBScriptのことです。説明不足ですみません。
VB.NETだとどういう感じに書けばいいのでしょうか?
622 :
デフォルトの名無しさん :2007/06/13(水) 20:50:09
vb2005を使っているのですが質問をさせてください 例えばフォームにtextbox1〜textbox10まであったとして、それぞれに同じ処理を連続して実行したいのですが for文を使うとして for n=1 to 10 textbox(n)="文字列" みたいなことを使用としたのですが、当然これを関数名として認識してくれませんでした あらかじめ用意した変数に="textbox" & n みたいなことや 今の自分で他にも思いつく限りのことはやってみても同じでした・・・ こういったtextboxやpicutureboxなどのオブジェクト名(?)をfor文等で連続して実行させたい場合 そのオブジェクト名の連番の表記をどういった風にやるのが適切なのでしょうか? ご助言をどうかよろしくお願いします。
どうしてVB6上がりな人は素直に「コントロール配列が使いてえ」って言えないのかね。 ドトネトにコントロール配列はないから自分で配列なりListなり作って やってくださいよ。
624 :
デフォルトの名無しさん :2007/06/13(水) 21:49:14
どうしてもコントロール配列みたいなことをしたければ、 #Region "Windowsフォームデザイナで生成されたコード 〜#End Region のところに、 TextBox(1)=TextBox1 TextBox(2)=TextBox2 って書いていけばできるんじゃない?
>>617 Win32_LogicalDiskRootDirectory
使えば何とかなるかも
>>622 どぼんに配列に関する項目があるから、そこを参照。
まあVB6上がりであろうとなかろうと、そんな程度でいちいち人に尋ねてるようじゃ 先はないと思ったほうがいいな。
629 :
デフォルトの名無しさん :2007/06/13(水) 23:00:27
↑ ま た お ま え か
>>628 PG以前に人間としての素質が無いとお見受けした
>>625 RootDirectory の方はいらんな。
Win32_LogicalDisk の DeviceID がドライブレター。
で、そこから
Win32_LogicalDiskToPartition で論理ディスクに対応するパーティションの DeviceID 取って、
Win32_DiskDriveToDiskPartition でパーティションに対応する物理ドライブの DeviceID 手に入れて、
Win32_DiskDrive から PNPDeviceID
ってことになるんかな?
えらく泥臭くなりそうだけど。
Win32_LogicalDiskToPartition が Win32_LogicalDisk と Win32_DiskPartition の参照を持つはずなのに
何故か String で返ってくるな……。
>>627 ↑
こいつ時々ここに沸いてるけど質問が素人くさい上に返答の仕方が房臭い
つうか、カスだな 間違いなく
もし業務でやっているならおれは真っ先にお前のようなやつはキル
こ、殺すの?
634 :
デフォルトの名無しさん :2007/06/14(木) 12:24:50
PropertyのGet/Setで何も処理しない場合、変数をPublicにするので問題なし? 処理なしPropertyの利点が分からん。
635 :
デフォルトの名無しさん :2007/06/14(木) 12:42:23
>>634 セットもゲットもさせないってことでいいんじゃない?w
>もし業務でやっているならおれは真っ先にお前のようなやつはキル だっておwwww AA(ry 馬鹿同士言い合ってる時点で俺は真っ先にそのようなやつはry
>>634 将来処理いれるかもしれないだろ?
先を見越した書き方しとけ
そしたら参照してるとこ全部直さないといけないでしょうが 汚物は消毒
↑ 二行目は気にしないでくれ。コピペミスだw
大概、先に見越したところは想定通りにならないのが常だがなw
643 :
634 :2007/06/14(木) 13:59:48
いや、もう本当に悩む。 変数が40ぐらいのクラスを作らなければいけないのだが、 正直かなり面倒。 今までそう言われてきたから、必ずSet/Getを作ってきたけど、 代入/取得するだけの処理に意味有るのかと。 もちろん入力規則をする場合などには、利用するけどね。 どれだけ、将来的に役立つのか疑問。。 誰か、すばらしい利点を教えてだせい。
>>643 フィールドにした場合virtual/overrideに出来ない。VBだとoverridableだっけか。
インターフェイスにフィールドを含めることが出来ない。
リフレクションなどでメソッドの呼び出しを横取りして何かの処理を行うことが
フィールドに対しては出来ない。
通信やCOM呼び出しなどでインターフェイスを実装することを要求しているのは、
処理の横取りが出来ないフィールドを排除するためである。
VB6のCOMのようにpublicなフィールドを暗黙でプロパティにしてしまうのもありだとは思うが、
VB.NETはC#の考え方に合わせたのだろう。
上のような理由からだから値型はフィールドのままでかまわないよ。
>>640 ん?プロパティにいちいち () つけるタイプ?
それなら修正して回らないと駄目だね。
ん? C#メインだから()とか言われても分からないんよ public int iUnko; ↓ やっぱプロパティにしよう public int Unko{ get{} set{} } ↓ iUnkoをUnkoに書き換えなきゃなんないんじゃ? プロパティの名前をiUnkoのままでもいいけど、 そうしたらクラス内部で使うときに全部プロパティ経由になっちゃうよ やっぱ書き換えが発生するんじゃ
VBにはリファクタの「フィールドのカプセル化」がないのか。そりゃ面倒だね。 C#のもフィールドをまとめてカプセル化する機能がないのでちょい不満だけど。
>>647 ああ、いちいちプレフィックス付けるタイプでしたかw
C#3.0では自動プロパティという機能がついて public int Unko{get;set;}だけでよくなるらしい
VBは引数付きプロパティが使える関係でプロパティに引数が必要な場合は( .. ) を付ける。 引数なしプロパティには()を付けても付けなくてもいいということらしい。 C#の場合は大小文字を区別するから、フィールドnameでプロパティはNameにするのが一般的だが、 VBの場合プロパティとフィールド名の命名にそういったルールや習慣はあるの?
652 :
634 :2007/06/14(木) 15:57:34
653 :
デフォルトの名無しさん :2007/06/14(木) 16:04:04
VB2005でcrystal reportsを使いたいのですが、 インストール方法が分かりません。 恐れ入りますが、ご教示ください。
エディションは?
655 :
デフォルトの名無しさん :2007/06/14(木) 16:12:06
>>654 Visual Studio 2005
Tools for the Microsoft Office System
です。
よろしくお願いします。
ふいたww
>>650 C++/CLIなんて、property int Hoge;だけでおkだぜ?
VB2005(Professional Edition)に関する質問です。 プロセス間で同期を取るためにイベントを使いたいのですが、 VB6⇔VC2005とか、VC2005⇔VC2005とかでは他プロセスから イベントを受信できるのに、VB2005だとできなくて困っています。 どなたか原因分かる方いませんか? 以下ソースの一部(プロジェクトの種類はVCはWin32アプリ。VBはWindowsアプリ) 〜〜〜VC2005〜〜〜 hEvent = CreateEvent( , , , "test_event") SetEvent(hEvent) 〜〜〜〜〜〜〜〜〜 〜〜〜VB2005〜〜〜 hEvent = CreateEvent( , , , "test_event") iRet = WaitForSingleObject(hEvent,0) ←ここでイベントを受信しない。 〜〜〜〜〜〜〜〜〜 ちなみに同じプロジェクト内で、SetとWaitを使用した場合は動きます。 〜〜〜VB2005(動く)〜〜〜 hEvent = CreateEvent( , , , "test_event") SetEvent(hEvent) iRet = WaitForSingleObject(hEvent,0) ←これは受信する。 〜〜〜〜〜〜〜〜〜
それだけで分かったら ESP 名乗れるかもしれないな。 本題とは直接関係ないが、わざわざ Win32API 使わんで EventWaitHandle 使え。
660 :
658 :2007/06/14(木) 22:12:02
>>659 レスサンクス
補足っぽいものさせてもらうと、
A、B共にVB2005で作ったexeとして、
A.exeでSetEvent
A.exeでWaitFor〜
の場合は、イベントを受信するんだけど
A.exeでSetEvent
B.exeでWaitFor〜
の場合は、動かないんですよね。
VB6の場合はどっちのパターンでも動きます。
ちなみに、EventWaitHandle使う場合は、
VC側はどうやるのでしょう?
VCでもEventWaitHandle?それともCreateEvent?
質問増えて申し訳ないです。
文字セットの問題とかな EventWaitHandle は名前付きイベントのマネージドなラッパ。
662 :
658 :2007/06/14(木) 22:39:09
>>661 レスサンクス
う〜ん それも考えて、
VCのテストアプリを、マルチbyte文字セット、ユニコードの両方試してみてもダメ。
660の例では、コンパイルしてできたexeをリネームして試してみてるので
やっぱり文字コードじゃなさそう。
レスに対して揚げ足取ったようでゴメンナサイね。
何か思いついたことがあれば、引き続きレスお願いします。
本当に初歩的な質問をさせていただきます。 フォームが1つありテキストボックスが2つ(1、2)、ボタンが1つ配置してあります ボタンを押したらテキストボックス1と2に入力した文字をCSVファイルに書き込む用にしたいのですが どのようにCSVに書き込みのプログラムを組めばよいのでしょうか? CSVファイルの場所は固定です C:\ 2つのテキストボックスには4桁の整数を入力します。 CSV内で2つのテキストボックスに入力した値をカンマ区切りで書き込みたいです。 例 1234,5678 ボタンを押すごとにCSVファイル内で改行して書き込みを行いたいです 例 ボタン押下の度にCSVの中身は改行され 1234,5678 4321,0987 ・ ・ 初心者すぎてわかりにくい質問だとはおもいますが お願いいたします
その説明をそのままコードに起こせばおk で、どこが分からんの?
>>664 まず
テキストボックス内の数字を
CSV書き込みの時に反映させるコードの書き方が
全くわかりません・・・
一度テキストボックス内の数字を変数入れたほうがいいのですか?
全くって言われても……言葉通りとしか……。 とりあえずファイルに書き込むことはできてる? どうやって書き込んでる?
>>666 すいません質問が漠然としすぎていて・・
もう少し勉強してから出直してきます。
2005で作ったプログラムを2003に変換する方法ってありますか。
1.1にない機能を使ってたらどうすんの?
AddHandlerでLeaveイベントでを関連付けて、テキストボックスからフォーカスが移動した際に 入力のチェックをしているのですが、ツリービューをクリックした際になぜか 入力チェックが2回実行されます。 この原因及び解決法が分かる方がいましたらご教授願います。
672 :
デフォルトの名無しさん :2007/06/15(金) 10:47:45
2005のDataGridViewでDataGridViewButtonColumn列を使用して一覧の表を作成しています ある特定の行のときだけ DataGridViewButtonCellの中にあるボタンを無効化(enable=false みたいに)出来ないでしょうか?
673 :
デフォルトの名無しさん :2007/06/15(金) 12:41:48
>>671 それで原因がわかったらエスパーだなw
原因および解決法が分かる方がいましたら、ってなんだよ。
まるで原因は自分のミスじゃない、とでも言いたげだな。
そういう時は原因としてどういう可能性が推測できるか、と聞けよ。
675 :
デフォルトの名無しさん :2007/06/15(金) 12:53:56
>>673 Expressでは少なくとも無いなぁ
Standardはしらんが多分Pro以上
Express5000くらいで買ってProにアップグレードしたら多少安く手に入るんじゃないかな?
678 :
デフォルトの名無しさん :2007/06/15(金) 13:02:18
タグ上で右クリしたときContextmenuStripが表示されるようにしたいんですが なんかいい手無いかなー? 要はタブを追加、タブを閉じるのメニューを表示したいんす
>>672 以前自分もこれしらべたことあったけど、現状じゃ無理ー。
>>678 タブコントロールのタブか?
普通にマウスクリックイベントに書けば?
681 :
デフォルトの名無しさん :2007/06/15(金) 13:08:44
>>679 やっぱむりっすか・・・
中のボタンコントロールみたいなのとれればなとか
あれこれ調べたんですがこれもムリだったので、まぁ、今回はちょっと別の方法模索してみようかなとおもいます。
レスありがとうです!
>>681 正確にいうと、ReadOnlyにすることで、無効化は可能。
ただ、視覚的にenabled=false(グレー表示)にすることが不可能。
ボタンを押す行為自身はできちゃうんだよね…
683 :
デフォルトの名無しさん :2007/06/15(金) 13:28:06
>>682 もうちょっとツボ抑えた機能がほしいところですね
全部既存のコントロールが中にあるんだろうし 少しくらい公開してくれても・・・(;´Д`)
中にコントロールはなかったような。 編集するときEditControl生成するくらいじゃね? Buttonの絵を書いてるだけだよ。 じゃなきゃ何千ものコントロールのハンドル管理しなきゃいけなくなるっしょ。 だから継承して自分で描画すればいいだけの話
685 :
デフォルトの名無しさん :2007/06/15(金) 14:04:58
>>684 いいヒントもらえたのでちょっと強引にやってみました。
セルのボタンを表示したくないValueにはNothing そうじゃないばあいNothing以外を入れて
CellPaintingイベントで
If e.RowIndex >= 0 AndAlso e.ColumnIndex >= 0 AndAlso dgvList.Columns(e.ColumnIndex).Name Is 該当のカラム Then
Dim temp As DataGridViewCell = dgvList.Rows(e.RowIndex).Cells(e.ColumnIndex)
If temp.Value Is Nothing Then
Dim TempPoint As New Point(e.CellBounds.X + e.CellBounds.Width - 1, e.CellBounds.Y)
Dim TempPoint2 As New Point(e.CellBounds.X + e.CellBounds.Width - 1, e.CellBounds.Y + e.CellBounds.Height)
e.Graphics.FillRectangle(New SolidBrush(Color.White), e.CellBounds)
e.Graphics.DrawLine(New Pen(SystemColors.ControlDark), TempPoint, TempPoint2)
e.Handled = True
End If
End If
ボタンを表示したくない時は自分で塗りつぶして線も描画し、表示したい時はコントロール任せ
こんな感じでとりあえずいけそうかなぁと
助かりました〜
686 :
デフォルトの名無しさん :2007/06/15(金) 14:42:56
グループボックスの中にボタンが配置してある場合、グループボックスの背景色を 変更したらボタンも一緒に変わってしまう。。 再度ボタンを設定しなおせば良いのは分かりますが、 予め反映させないようには出来ないのでしょうか?
687 :
デフォルトの名無しさん :2007/06/15(金) 15:22:57
>>686 ????
今やってみたけど変わらないと思うぞ
あらかじめGroupBoxに背景色が設定してあって、そのうえにボタン追加したらその現象が出るなぁ・・・
ちなみに2005IDEね
688 :
686 :2007/06/15(金) 15:37:46
ぇええぇぇええ〜。 実験どうもです。 自分の所もVS2005のVB。 ちょっと新規にプロジェクトを作成して試してみましたが、 グループボックスの中にボタンを配置して、以下のプログラムで再現します。 GroupBox1.BackColor = Color.Aqua この場合、グループボックスもボックス内にあるボタンもAqua色。。
689 :
デフォルトの名無しさん :2007/06/15(金) 15:46:23
>>686 あ〜
ボタンのスタイルをスタンダードにしてるから
見た目かわらないだけでグループの背景色変えたらボタンの背景色変わってるな〜
たしかにFlatとかにしてたらIDEでも変わるのが目に見えて判る
こういう処理やったことないからわからないけど・・・・自動で子にいろいろ設定されるのは難しいんじゃなかろうか・・・
FormのFontSizeとか変えたら子のサイズも変わるのと同じ原理なんだろうなぁ・・・
ある意味気が利いてていいんだが・・・
690 :
686 :2007/06/15(金) 15:47:58
コードとか関係なくGUIでもそうなっているんですね。。 ラベルやチェックボックスとかには便利だけど、 ボタンにこれは必要ないだろ〜。 ぅう、面倒くさー。
691 :
686 :2007/06/15(金) 15:50:10
>>689 入れ子になりました。
度々どうもです。
うーん、小さな親切って奴ですな〜。
692 :
673 :2007/06/15(金) 15:51:01
>>675 どうもありがとうございます。ExpressからProにアップグレードできるんですか?
以前のエディションのPro版からしかアップグレードできないとおもっていたので、
とても助かります。ありがとうございました。
>>676 どうもありがとうございます。わざわざURLを貼っていただきまして。やっぱりPro版じゃないと
だめみたいですね。
>>677 製品版なんてものもあるんですね。CrystalReport単品ですね。でも、7万しますね・・
MicroSoftはここまで金をもうけないと駄目なんですかね・・
どうもありがとうございました。お礼が遅くなりすみませんでした。料理してたら忘れてまして・・
693 :
686 :2007/06/15(金) 15:54:48
>>689 ああ、どうもです。
FlatStyleプロパティをSystemにする事で、回避できそうです。
694 :
デフォルトの名無しさん :2007/06/15(金) 16:01:58
>>693 ついでにちょっと試してたんだけど
IDEでグループボックス貼り付け
IDEでボタン貼り付け
ボタンのスタイルをフラットにして、色をREDに変更
このあとグループボックスの色変えてもボタンの色変わらなくない?
もちろんコードでグループボックスの色変えても
695 :
686 :2007/06/15(金) 16:06:56
>>694 自分が確認した範囲では、一度ボタンの色を任意に設定した後は、
ボタンのスタイルに関わらず、グループボックスと連動する事はなさそうです。
スタイルをSystemにするか、BackColorをColor.Transparentにするかの
どちらかになると思います。
697 :
デフォルトの名無しさん :2007/06/15(金) 16:20:47
>>696 またお前かw
偉そうな質問者よ
他のスレで大暴れしているな?
>>697 完全に人違い。
さっきのはもうあきらめました。
ちなみに別のところで詰まってるんだけど
教えてもらえるかな
だがことわる って言われたら諦めるの?
やだ っていったら教えてくれるの?
701 :
デフォルトの名無しさん :2007/06/15(金) 17:23:11
>>700 お前には教えない
教える気になる書き方しろやカス
つうか、おまえはそういう聞きかたされておしえるのか?
もしそうなら教えてほしいんだが
Form閉じる時に何か処理したいんだがなんてイベント使えばいいんだ?
たのむから教えてくれカス
何でお前はそんなに偉そうなんだ お前は俺の質問に答えられるのか 無理なくせにえらそうにするなよ
703 :
デフォルトの名無しさん :2007/06/15(金) 17:59:13
DataTableでColumnsの最大値っていくつまで指定可能ですか?
704 :
デフォルトの名無しさん :2007/06/15(金) 17:59:25
>>701 FormClosingだ、馬鹿。
Closingが見つからないからってあせるな馬鹿。
>>703 Columns.CountプロパティがIntegerだからそこから最大値は必然的にわかるだろ。
707 :
デフォルトの名無しさん :2007/06/15(金) 18:09:53
>>706 おお!
盲点ってか全く気がつかなかった。
サンクスです。
708 :
デフォルトの名無しさん :2007/06/15(金) 18:13:21
ぜひ
>>671 には
わ○くま とかの掲示板で質問していただきたいw
709 :
703 :2007/06/15(金) 18:14:17
もうひとつ聞きたいことがあるんですが、 DataTableにNewRowした時点で、 あらかじめ項目に規定値をセットする方法ってあるのでしょうか?
710 :
デフォルトの名無しさん :2007/06/15(金) 18:15:14
>>705 ばっかw
そこは2003か2005か聞くところからはじめさせるための釣りの布石なんだよwwww
MayBe...
BoyesBe...
711 :
デフォルトの名無しさん :2007/06/15(金) 18:18:11
712 :
703 :2007/06/15(金) 18:24:59
VB2005が何か落ちまくる。 コピペしようとすると、コピーの段階でdevenv.exeのCPU使用率が 急上昇して最終的に落ちるか固まる。 はー・・・。
714 :
デフォルトの名無しさん :2007/06/15(金) 18:48:28
Dim str As String = "abc" str = Format(str, "@,@,@") MsgBox("str") これで出力をすると結果が「@,@,@」になるのですが、どうしてなのでしょうか?; どの解説サイトを見てもFormat関数の書き方は間違ってないはずなのですが・・・
ちなみにHndles Button.click内にあります。
すみません、上記は間違いです Dim str As String = "abc" str = Format(str, "@,@,@") MsgBox(str) 自分では「a,b,c」と出ると思ってるのですが、どこか間違ってるんでしょうか?
717 :
716 :2007/06/15(金) 19:14:32
VB2005です
TextBox/DateTimePicker/CheckBox/RadioButton などのコントロールが 50個以上あるフォームが有るのですが、フォームのクローズボタンなどで 閉じられた際に、内容が修正された場合には確認のメッセージを 表示させたいのですが、どうすれば良いでしょうか? TextBoxの場合はModified がありますが、それ以外のコントロールはありませんし・・・。
719 :
デフォルトの名無しさん :2007/06/15(金) 19:19:03
>>718 起動した時に覚えておいて
Closingかなんかでチェックすればいいんじゃね?
>>719 やっぱりそれしか無いですかね。
なんか遅くなりそうで心配・・・。
フラグ一つ見るのに時間がかかるわけがないと思うんだが。 たぶん1nSecもかからないと思うぞw
722 :
718 :2007/06/15(金) 19:50:28
>>721 え?フラグ一つってどういうことでしょうか?
今、修正される可能性があるコントロール全てを、データクラスにして
表示する時と閉じる時にセットして比べようとしているんですが・・・。
もしかして自分は壮大な過ちを犯してしまっているのか!
そのデータクラスにIChangeTrackingを実装すればいい。
フラグを一つ付けるためだけにコントロールを継承するのはアホらしいでしょ Control.TagプロパティやDictionary(Of Conrtol, Boolean)でいいと思うけど
フラグはフォーム全体に一つで十分だろ…
726 :
724 :2007/06/15(金) 20:18:21
すまん
>>723 はデータクラスにフラグを付けろって言ってたんだな
それでいいと思う
727 :
718 :2007/06/15(金) 20:28:27
ありがとう御座います。 IChangeTrackingってググってもあんまり情報が無いですね。 インターフェースですか。 変更されたかどうかと、それをリセットする事が出来るみたいですね。 まさにこれが欲しかった! .NET2.0スバラシイ! でも使い方が良く分からない・・・。 ちょっと、いろいろ実験してみます。
728 :
718 :2007/06/15(金) 21:07:50
駄目だ! 全然値が入らない。 そもそもインターフェースの使い方も良く分からなかった。 作ったデータクラスに、下記を書き込んで Public Interface IChangeTracking End Interface 下の変数でどうにかするんだろうけど、、サパーリネ Dim instance As IChangeTracking
>>718 すまん。
あんたPGの才能ないと思うわ。
たぶんデータが変更された後セーブされずにプログラムが終了されようとしてる時に
そのまま終了するかセーブするかユーザーに確認したい、ということだと思うけど、
それなら、仮に厳密にやるとしてもセーブした時点のデータと
プログラムが終了されようとした時点のデータを比較するだけじゃん。
普通はそこまでしなくても、例えば
Private dataModified as Boolean = False
みたいなフィールドを作っておいて、何か一つでも変更があったらこれをTrueにすれば
用は足りるんじゃないの?
もちろんundoした場合の動作の厳密さが必要ならこういう手抜きはダメだけどね。
730 :
718 :2007/06/15(金) 21:37:08
>>729 才能無くてサーセンwwwww
それって、修正される可能性があるコントロール全てに
イベントを作るって事ですか?
731 :
デフォルトの名無しさん :2007/06/15(金) 22:17:30
>>730 そういう聞き方するってことはたぶんコントロール自体をデータの入れ物にするような設計、
つまり何かのタイミング(ファイルにセーブするとか?)で一度に全部のコントロールの
プロパティをまとめて読むような設計なんだろうけど、普通はそもそも
そういうプログラムの書き方しないと思うよ。
732 :
718 :2007/06/15(金) 22:55:30
ガーン。
そうなんですか。
>>731 の書いてある通りに、登録ってしたらコントロールの内容をDBへ
一括に書き込もうとしているんですが、これってオカシイんですか。
(コントロール→データクラス→DB)
それで、登録されずに閉じられようとした場合には、確認のメッセージを
出したいって感じですが・・・。
いや、検証はいつかしなくちゃいけないんだから、 ・コントロール全部にイベントつけて値が変わったら個別の検証コード走らす ・close, apply, ok等のアクションで全体の検証コード走らす のどっちかでしょ。 前者だったらclose,apply,ok等のアクションで判定するのは一つのフラグで済むけどイベントがたくさん 後者だったらイベントたくさんはいらないけどアクションで全体を検証しなくちゃいけない どっちでもいいと思うけど、コントロールが多いなら後者がいいんじゃないの?
734 :
716 :2007/06/16(土) 01:43:54
どなたか分かりませんか?; ボタンのクリックイベントで Dim str as string str=Format("ABC","@,@,@") Msgbox(str) とだけやっても結果が@,@,@となりできませんでした・・・ 数字の場合だと Dim str as integer str=Format("123","00000") Msgbox(str) 00123となり大丈夫だったんですが、Stringになると・・。 開設サイトを見ても文字列の書式は Format("ABC","@@@@@") で結果が ABCとなると書いてあるのに私のプログラムですと@@@@@なってしまいます;
まあ何が間違ってるか、ってそれはきみの学習姿勢が間違ってるんだよ。煽り抜きで。 または致命的に頭が悪いか。 いずれにせよ、そのレベルのことを人に聞くのは恥ずかしいことだ、って意識がないとしたら PG向いてないよたぶん。
>>735 ま た お ま え か
煽り抜きで言わせてもらうが頭大丈夫か?
このスレで「PGとして〜」「仕事として〜」「才能が〜」「素質が〜」とか言って叩かれてるやつ全部お前だろ?
お前はプログラマという職業が素質、才能のあるやつにしかできないものだと思っているみたいだが
もはやPGが流れ作業員として溢れている現状を把握できていればそんな高貴なもんじゃないと分からんのかw
そもそも、ここはVB.NET質問スレであって
ここに来ているやつは初心者はもちろんの事、仕事外で趣味でやってるやつもいて当然なんだが
そこを把握できてない点で頭でっかちなお前さんはPG向いてないよ?
チームで組んだことがない孤独PGか、自分の発想しか受け付けないワンマン上司と見たな。
そんなハイクオリティなお前さんには
つ「【才能(笑)】高貴なVB.NET質問スレ【才能(笑)】」
>>737 > このスレで「PGとして〜」「仕事として〜」「才能が〜」「素質が〜」とか言って叩かれてるやつ全部お前だろ?
俺も言ってるから、全部同一人物ではないよ。
「VB.netの」質問をするレベル以前の質問があるのも事実
740 :
737 :2007/06/16(土) 17:12:17
「VB.netの」回答をするレベル以前の回答があるのも事実
>>737 何度言っても分からん馬鹿だね。
初心者であることと叩いてるんじゃないんだよ。
怠惰を叩いてるの。
初心者でも怠惰じゃなきゃ734みたいな質問はしない。
743 :
デフォルトの名無しさん :2007/06/16(土) 18:39:35
>>741 低レベルな質問には低レベルな回答で十分
VBスレだけは回答者がアホ杉。 C丼スレと比べても明らか。
c#スレもここ1年ぐらいはずいぶんレベル低いんだけどな。
747 :
デフォルトの名無しさん :2007/06/16(土) 20:12:18
てかみんなC#もVB.NETも同じように使えるんだろ?
748 :
デフォルトの名無しさん :2007/06/16(土) 21:02:23
同じように使えるがVB上がりは総じてバカなんだお^^
VB6しかできません><
>>742 怠惰?お前は734の何が分かってるんだ?
分かったから
>>737 で書いたとおり専用スレにでも行っとけ
>>742 あと「何度」って
どれとどれとどれとどれどれと、どれだよ?
752 :
デフォルトの名無しさん :2007/06/17(日) 03:35:48
>>742 そう思えばスルーすればいいじゃないか?
別にここはそういう人間が来ていけない理由もないし
怠惰であろうがなかろうが答えてもいいと思える人間が答えられるならそれでいいじゃないか
throw new exception("他でやれ")
VB2005からVCで作られたDLLをコールするときにエラーが出て困ってます。 関数のパラメータに構造体を指定して、構造体のメンバの文字列を渡したいけれど、 なんかうまく行かないんですよね。VB2005だと固定長文字列ってのがサポートされて いないとか何とか言うのは分かったけれど、解決方法が不明となっています。アドバイスをお願いします。 コードはこんな感じ。 *VC2005***************************************************************** typedef struct{ int iTemp; char cTemp[256]; }tag_strTemp; void __declspec(dllexport) WINAPI TestFunction(tag_strTemp* pstrTemp) { MessageBox(NULL, pstrTemp->cTemp, "", 0); } *VB2005***************************************************************** Moduel Module1 Public Structure tag_strTemp Public iTemp as Integer Public cTemp as String ←ここの定義に問題があるんだと思ってます。 End Structure End Module Public Class Form1 Private Sub Form1_Load(・・・) Dim strTemp as tag_strTemp strTemp.cTemp = "ABCDE" TestFunction(strTemp) End Sub End Class
MSDN の相互運用マーシャリング以下の項目見れ サンプル付きで解説されてる
つうか chrにString渡してどうする・・・・ Chrで渡せばいいのに・・・・
>>756 君も恥かかないうちにその辺で止めといたほうがいいよw
>>757 まぁ・・・書き方はともかく理由は分かってそうなイメージだけどな
756が分かってるわけないでしょw
値型と参照型の区別もついてないか、あるいはCで
>>754 みたいな構造体を
作ったときのメモリイメージが理解できてないか、少なくとも何れかではある。
760 :
デフォルトの名無しさん :2007/06/18(月) 09:14:20
>>759 まさか・・・Stringを値型と勘違いしている・・・わけねぇべ
そんなPGいねぇだろ
>>754 <StructLayout(LayoutKind.Sequential)> _
Public Structure tag_strTemp
Public iTemp as Integer
<MarshalAs(UnmanagedType.ByValTStr, SizeConst := 256)> _
Public cTemp as String
End Structure
詳細は
>>755 の通りでMSDN参照のこと。
複雑になるようならC++/CLIでアセンブリラッパを作ってもよい。
アラインメント(パッキング)も指定した方がいいんじゃない? まあMSDNライブラリにデフォのパッキングサイズは8Byteって書いてあるのは 間違いっぽいから要らないのかもしれないけど。 あとOut属性も。
763 :
デフォルトの名無しさん :2007/06/18(月) 13:32:31
SQL鯖のDBのカラムで AAA というカラムがあり VarChar(100)でNotNull+デフォルト空文字だとして データ取得する時に 1: dim temp as string 2: temp = directcast(dt.rows(0).item("AAA"),string) として取得している部分があったとき 2の部分でこうやってやるのってムダダしやる必要ってあると思う? 俺は定義で必ずNullはないとしているんだからナンセンスだと思うんだが みんなはどうやってるんだろ? if dt.rows(0).item("AAA") isnot dbnull.value then temp = directcast(dt.rows(0).item("AAA"),string) else 'あれば何か書く end if
SQL文中で ISNULL(対象カラム,'') ってしておけばいいんでない。
やる必要なし NotNull制約を外した場合を考慮するってことなんだろうけど そんなこと考え出したら、システムがややこしくなっちまう 心配ならデータ設計見直すべき
>>762 適当なこと言うな。
.NET のマーシャリングのデフォルトパッキングは8で間違いないし
この場面ではパッキングサイズは問題にならない。
文字列を DLL に渡したいのに Out 属性つけてどうする。
>NET のマーシャリングのデフォルトパッキングは8で間違いないし
いやだからMSDNライブラリにはそう書いてあるけど、実際いろいろ試してみると
どうも4になってるみたいだよ。VB固有かも知れないが。
あと、アラインメントが問題にならない訳がないw
最後の行に関しては確かに
>>754 はそう言ってるね見落とした。
>>767 間違いなくパッキングサイズの意味を勘違いしてる。
<StructLayout(LayoutKind.Sequential, Pack:=4)> _
Structure Pack4
Public Data1 As Byte
Public Data2 As Long
End Structure
<StructLayout(LayoutKind.Sequential, Pack:=8)> _
Structure Pack8
Public Data1 As Byte
Public Data2 As Long
End Structure
<StructLayout(LayoutKind.Sequential)> _
Structure PackDefault
Public Data1 As Byte
Public Data2 As Long
End Structure
Debug.WriteLine(Marshal.SizeOf(GetType(Pack4)))
Debug.WriteLine(Marshal.SizeOf(GetType(Pack8)))
Debug.WriteLine(Marshal.SizeOf(GetType(PackDefault)))
> あと、アラインメントが問題にならない訳がないw
「この場面では」と断ってるだろ。
だから「この場面で」問題になるってw 頭おかしいんじゃないの?
>>768 でデフォルトが 8 ってのは証明できてるとして。
<StructLayout(LayoutKind.Sequential, Pack:=4)> _
Structure Pack4
Public Data1 As Integer
<MarshalAs(UnmanagedType.ByValTStr, SizeConst:=5)> _
Public Data2 As String
End Structure
<StructLayout(LayoutKind.Sequential, Pack:=8)> _
Structure Pack8
Public Data1 As Integer
<MarshalAs(UnmanagedType.ByValTStr, SizeConst:=5)> _
Public Data2 As String
End Structure
Debug.WriteLine(Marshal.SizeOf(GetType(Pack4)))
Debug.WriteLine(Marshal.SizeOf(GetType(Pack8)))
何がどう問題になるのか教えてもらおうか?
?
772 :
754 :2007/06/18(月) 22:18:26
>>755 ,761
ありがとう!
解決しますた!
>>762 さんが言ってたことについては、
アラインメントについても詳しくは理解できていないので、
メンバを8byte区切りにしたり、ダミー変数使ったりして対応します。
773 :
デフォルトの名無しさん :2007/06/20(水) 11:56:14
検索システムで,検索結果をDataGridに表示しています.(ReadOnly) ちがう条件を入力したら,現在表示されている行に追加されていきます. どうしたら,DataGridに表示されている内容をリセットできますか? DisposeだとDataGridごと消えるし,空データをバインドしても消えないし… どなたか教えて下さい.
774 :
デフォルトの名無しさん :2007/06/20(水) 12:02:59
Panel コントロールで、ScrollBar の Scrollイベントに合わせて リアルタイムで追随する移動を行うべくあちこち探してるのですが、 こういうときは、Client領域を移動できるメソッドかプロパティとして 何を使用すればいいでしょうか。
Location
777 :
デフォルトの名無しさん :2007/06/20(水) 12:45:56
一つのプロジェクト内にユーザコントロールを作成して利用していますが、 コントロールを配置したフォームのデザインが修正されると?エラーになり、 デザイン画面が表示されなくなります。 エラーメッセージ 型 'hogehoge.TukuttaControl' が定義されていません。 例: プロジェクト名:hogehoge ユーザコントロールクラス名:TukuttaControl コントロールを配置したフォーム:Form1 とある時に、Form1.Desugner.vbの内容が以下のように勝手に 修正されてしまい、上記のエラーになってしまいます。 ○ Me.TukuCon = New TukuttaControl ↓ × Me.TukuCon = New hogehoge.TukuttaControl どうにか対策は無いでしょうか?
778 :
777 :2007/06/20(水) 12:47:40
追記です。 × Me.TukuCon = New hogehoge.TukuttaControl 上記のhogehoge.を消せば、デザイン画面も正常に表示されます。 またTukuttaControlはDllにはなっていません。 よろしくお願いします。
779 :
デフォルトの名無しさん :2007/06/20(水) 12:58:12
>>775 あーっそうでしたか、助かりました!!
回答ありがとうございました!!
780 :
デフォルトの名無しさん :2007/06/20(水) 13:30:11
>>779 と思ったら、これってのはもしかして、Client領域のView範囲を動かす
のではなくて、中のコントロールだとかを自前で動かすということでしたか・・・?
PanelのClient領域のView位置をプログラムで移動するには何を使えば
いいでしょう?
>>780 何いってんのかさっぱりわからんが、
Panel内をスクロールさせたいの?
もしかしてPanelにScrollコントロールをわざわざつけてたりする?
AutoScroll = trueにすれば自動で表示されるけど。
あとは
ScrollControlIntoViewとか
VerticalScroll/HorizontalScrollとか
782 :
デフォルトの名無しさん :2007/06/20(水) 14:58:45
>>781 どうもです!!
実はそのAutoScrollですが、確かにScrollBarが出てきてすくロース機能は
あるにはあるのですが、、
そのスクロースバーを掴んでマウスボタンを離すと、Panel内のViewが移るのが
わかります。
しかし、リアルタイムの動作にならず、これを、マウスボタンを掴んだままで
View位置を動かしたいのでした。
マウスのホイールをまわすと確かにリアルで動きますが、スクロールのスピード
が限定されるので、できればバーの動きと同期した移動を行ないたいのです。
SetDisplayRectLocation なども見ていますが、これだとWinProcとか使わないと
いけなさそうでした。できれば手軽に既存のメソッドかプロパティがあればと・・・。
ID3v1のタグを読み取りたいのですが 発売の年だけがうまく読み取れません 誰かご教授願えませんでしょうか? あとエクスプローラーからのドラッグ&ドロップも宜しければお願いします。
それだけ言われてもそうか大変だなとしか言いようがねぇ D&D なんて検索すりゃいくらでも出てくるだろ
昔VB6で作ったプログラムを、プロジェクト変換機能を使ってVisualStudio2005に 読み込ませてコンパイルしてみたら、.Netframework必須のアプリが できあがってしまいました。 VB6で作ったプログラムをVisualStudio2005でコンパイルして .Netframework不要のアプリを生成することはできないでしょうか。 .Netの機能を使いたいわけではなく、コンパイルしたいだけなのですが なんとかならないでしょうか。
なりません。 はい次。
>>782 オレの環境では、Panelにボタンを置いてスクロールさせるとリアルで追従するけど?
789 :
デフォルトの名無しさん :2007/06/21(木) 01:01:09
Diposeパターンについて教えてください。 PenやBrushのようなアンマネージリソースをラップしたオブジェクトを保持するクラスの場合 AとBのどちらで開放するのが正解? Public Overrides Sub Dispose( ByVal disposing As Boolean) If disposed Then If (disposing) Then ' マネージリソースの開放 (A) End If ' アンマネージリソースの開放 (B) disposed = True End If End Sub
790 :
デフォルトの名無しさん :2007/06/21(木) 01:02:32
いきなり打ち間違えてるし。。。 Disposeパターンです。
disposingに関わらず解放
IntPtr 以外は全部マネージドと考えてもいいよ。 つかその辺は保持するな、必要な時に作ってすぐ捨てろ。
いや、コストを考えるとキャッシュしておきたい場合もあるだろハゲ
794 :
デフォルトの名無しさん :2007/06/21(木) 01:06:51
ん? 791と792と回答が違うけど、どっちが正解?
792。 自分が持っている参照型のフィールドはファイナライザのタイミングでは手を出しちゃダメ。
ファイナライザ?
797 :
デフォルトの名無しさん :2007/06/21(木) 01:10:56
サンキュー イマイチ、この辺の具体例を書いてあるサンプルが見つからなくて困ってた。 勉強になったよ。
また羊がひとつ屠られた
799 :
デフォルトの名無しさん :2007/06/21(木) 01:50:49
VB2005(Express)でお聞きしたいのですが Public Sub WriteXml(ByVal fileName As String) Dim instance As New DataSet1.NewItemDataTable instance.WriteXml(fileName) End Sub 上記コードでデバッグ中にDataTableVisualizerで確認してもデータテーブルにデータが ない状態で、出力されたXMLにも書き出されていませんでした。 データセットに存在しているのはこのテーブルだけです。 DataTableをバインドしているDataGridViewには入力中データが反映されています。 DataTableをXMLに出力するにはどうすればよいのでしょう。 わかりにくいかも知れませんが、よろしくお願いします。
new って英単語の意味は知ってる?
801 :
デフォルトの名無しさん :2007/06/21(木) 09:24:27
>>799 DataGridView.DataSource
つかえこのカス野郎!
802 :
デフォルトの名無しさん :2007/06/21(木) 09:48:20
VB2005について質問です SPREADで列数18、幅25の表を作ったら動作が重かったんですが、軽くする方法ありませんか?
804 :
デフォルトの名無しさん :2007/06/21(木) 10:08:52
>>802 しかもおまえマルチかよ・・・・
ほんと頭悪いから出て行けよw
なにをどうとかなら判るが これだけの情報でどうやって動作軽くしろとかいうんだ
アフォらしいの通り越して、お前みたいな奴がソフト作るのホントやめてほしい
//--------------------------------------------------------
Visual Basic2005やりたいんだけどアドバイス頼む
ttp://pc11.2ch.net/test/read.cgi/tech/1158410544/67 67 名前:デフォルトの名無しさん[] 投稿日:2007/06/21(木) 09:25:40
初心者な質問スマソ
SPREADで行列100 X 18、列幅25の表つくったんだけど、
処理(スクロールや行選択)が重いんだけど軽く出来ませんかね?
805 :
デフォルトの名無しさん :2007/06/21(木) 12:01:29
メールアドレスを正規表現で抽出する場合どのように記述すればいいのでしょうか?
806 :
デフォルトの名無しさん :2007/06/21(木) 12:05:32
808 :
デフォルトの名無しさん :2007/06/21(木) 12:40:18
散々ググったんですがどうもいまいちわからないんですよ。 冷たいこと言わないで教えてくださいよ。
メールアドレスに一致する正規表現は「ありません」 とぐぐった一発目にあるが?
810 :
デフォルトの名無しさん :2007/06/21(木) 12:51:04
あ(笑)。もしかしてほんとは皆さん知らないんじゃ無いんですか?
811 :
デフォルトの名無しさん :2007/06/21(木) 13:09:25
>>788 どうもです!!
自分はWindows2000+VS2005Proの環境を使ってまして
そこではスクロールバーの動きに追従しませんでした。
環境差による可能性がありそうなので、これから別PCの
WinXp環境に移して試してみます。助かります!!
812 :
799 :2007/06/21(木) 13:59:53
>>800 と言うことは、Newでクラス参照すると全く新規で作られるということでしょうか?
既存のDataTableを参照するにはどうすればよいのでしょう?
>>801 調べてみましたが、使い方がわかりませんでした。すみません。
813 :
デフォルトの名無しさん :2007/06/21(木) 14:08:28
だから 調べてみましたが、使い方がわかりませんでした じゃわかんねぇYO! どこがどうわからんのか言えよ 使う気ないのかしらんが あと既存のDataTableを参照するには と書いてあるということはDataTableをDataGridViewにバインドさせて使ってるんだよな? つまりDataGridViewはその元のDataTableをDataSourceとして持ってるわけだ
>>813 こんな努力もしないアホに教えようとするだけムダだ
質問すらもまともにしようとしていないしな
ほれこれでいいだろ もう来るなよ
Public Sub WriteXml(ByVal fileName As String)
Dim instance As DataSet1.NewItemDataTable
instance = DirectCast(DataGridView1.DataSource , DataSet1.NewItemDataTable )
instance.WriteXml(fileName)
End Sub
816 :
デフォルトの名無しさん :2007/06/21(木) 15:36:45
817 :
デフォルトの名無しさん :2007/06/21(木) 18:56:25
知ってたら教えてー。 VS2005(VB.NETもC#)のIDEで、タブ付きドキュメントにしてソースを 開いていくと、タブが左側に追加されていくのを、右側に追加して いくように変更できないのかな?
818 :
デフォルトの名無しさん :2007/06/21(木) 19:02:29
>>788 WinXp環境に移して試してみましたところ、この環境ではScrollBarの
動きに追随してリアルタイムでViewが動くのを確認しました。
これは環境的な理由があるようにも思いましたので、
ひとまず現状のままにしておきます。
情報ありがとうございました!!!
819 :
デフォルトの名無しさん :2007/06/21(木) 20:19:49
VBにはJavaのThrowsのような 関数に例外をスルーさせる方法はありますか?
あります。
ググッてみてもJavaとは例外処理の概念が違うから ウンヌンカンヌンで例外のエスカレーションは できないのです。みたいな事書かれていたので できたら、やり方教えてもらえないでしょうか キーワードだけでも結構です。
823 :
819 :2007/06/21(木) 22:19:21
やり方がわからなかったので、自前でマウスジェスチャくみますた。。
例外はほっときゃ勝手に呼び出し元に伝播する
互換機能のOn Error Goto は使わないようにね
826 :
819 :2007/06/22(金) 01:22:39
1 sub main() 2 F(1,1) 3 F(1,0) 4 end sub 5 function F(a as integer, b as integer) as double 6 return a/b 7 end function たとえば上のような疑似VBコードにおいて 実行すると 6行目で例外発生して止まる。 で5行目を function F(a as integer, b as integer) as double Throws Exception のように書き換え実行すると 2行目で例外が発生しましたとなって止まる。 ようにしたい。要するにデバッグしやすいように例外を使用したい
>>826 なんだ例外のエスカレーションとかいうレベルの話じゃなかった
>>819 たぶんdllとはなんの関係もないウンコなミスとエスパーするがどうか。
>>826 茶化したままだとあれだから、VS2005でマイコードのみの設定が有効になってるのを確かめて、
DebuggerNonUserCode属性を付ければ目標は達成できる。
<DebuggerNonUserCode()> _
function F(a as integer, b as integer) as double
return a/b
end function
830 :
デフォルトの名無しさん :2007/06/24(日) 06:16:44
誰か似たようなことを経験していたら教えてほしいのですが、、 あるコントロール上をマウスが通ると、MouseMoveイベントが普通立つと思う。 しかし、何かある操作をしてから、同様にしても、今度は全然 MouseMove ~~~~~~~~~~~~ イベント自体が立ってくれなくなる。それで仕方なく、別のアプリケーションの ウインドウをクリックしてFocusを移してから、再度元のアプリケーションに 戻って同様にしてみると、今度は MouseMoveイベントが立ってくれる、 とちょっと変な現象なんですが、こういうことってあり得るでしょうか?
831 :
デフォルトの名無しさん :2007/06/24(日) 06:37:21
>>830 この場合、「何かある操作」 というのは、そのコントロールの置いてある Panel
の右クリックで ContextMenuStrip を表示して、その際、そのメニューのどれも
クリックせずに、また Panel 上のどこかをクリックして ContextMenuStrip を
Close する、というだけの操作なんですが、これをすると、それまで立ってくれてた
その Panel 上のコントロールで MouseMove イベントが立たなくなるのでした。
>>831 メニューのClosedイベントで
System.Windows.Forms.ToolStripManager+ModalMenuFilter.ExitMenuMode()
を呼ぶと直る。
リフレクション使わないといけないけど。
834 :
デフォルトの名無しさん :2007/06/24(日) 13:42:03
>>832 ありがとうございます。
これ一応 BUG だったんですね・・・う〜ん。
>>833 どうもです、助かります。
>System.Windows.Forms.ToolStripManager+ModalMenuFilter.ExitMenuMode()
この方法、調べて使ってみます。
>リフレクション使わないといけないけど
これについても具体的にはどうすればいいかまだわかりませんが、また調べてみます。
それでもわからない場合また質問するかと思いますが、
またよろしくお願いします。
835 :
デフォルトの名無しさん :2007/06/24(日) 15:54:43
>>834 internalなクラスだから説明はどこにもないと思う。
手元にあるのはC#のコードだけど適宜よみかえてちょ。
void contextMenuStrip1_Closed( object sender, ToolStripDropDownClosedEventArgs e )
{
Type t = Type.GetType( "System.Windows.Forms.ToolStripManager+ModalMenuFilter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" );
MethodInfo mi = t.GetMethod( "ExitMenuMode", BindingFlags.NonPublic | BindingFlags.Static );
mi.Invoke( null, null );
}
837 :
デフォルトの名無しさん :2007/06/24(日) 18:56:16
ContextMenuStrip の中のどれかをクリックして実行すると(それが空の関数であっても) 問題は起こらないため、一つ考えられるのは、 ContextMenuStrip の Closing イベントでそれを強引に実行してやればどうだろう、とも思ったのですが、この 強引にコードから ContextMenuStrip の中のどれかに Click イベントを起こすためには どうすればいいでしょう、これについて知りたいです。 よろしくお願いします。
838 :
デフォルトの名無しさん :2007/06/24(日) 18:58:05
>>836 おお、どうもです!!かぶってすみませんでした。
こういう方法あるんですね、ありがとうございます。
助かります。やってみます!!
839 :
838 :2007/06/24(日) 20:53:38
>>836 素晴らしいです、みごとに一発で解決しました。
一時は本当にどうしたものかと悩みました、でもこれで助かりました。
>internalなクラスだから説明はどこにもない
やっぱり一般人には知りえない内容なのでしょうか、
もしかしてMSの人じゃないとわからない、とかでしょうか・・・
でも本当に助かりました、ありがとうございました!!
Reflectorだろ
vbというよりもフォームの質問なのかもしれませんが、 初心者スレが見つからないのでここで質問させていただきます。 グループボックスの中にラジオボタンがいくつかと、ラベルをひとつ配置します。 そのラベルの中にラジオボタンをいくつか配置した上で、 ラベルの外(グループボックスの中)のラジオボタンとラベルの中のラジオボタンを 同じグループとして扱いたいのですが、どのように設定したらよいのでしょうか? お分かりの方がいらっしゃいましたら御教示お願いいたします。
そんな変態行為は .NET では認められません
おぁー!変体行為だったんですか。 それは困りました。どうしましょう?
さぁ。
>>841 ラベルはコンテナコントロールじゃないよ。
言ってる意味わかる?
まあ、「初心者スレが見つからないので」とか言ってるが
質問なんかせめて初心者本の数冊も読破してからにしてくれよ。
こういうのっておおっぴらに使うか悩んだりしない? まあ、ネット上で見つけた情報を利用したって立場をとるんだがw
847 :
826 :2007/06/25(月) 00:19:44
>829 遅くなって申し訳ない、ありがとうございます。
>>846 「こういうの」ってのが何を指してるのかさっぱり。
851 :
デフォルトの名無しさん :2007/06/25(月) 14:55:01
誰か助けてくたざい。 VB2005で、プログラムが完成して、動作を確認できました。 そこまではよかったのですが、実行ファイルを共有フォルダー(サーバーに) において、実行すると、どうしても実行できません。実行できたとしてもまともに動作しません。 これの解決策だれか知りませんか?
ヒント:カレントディレクトリ
853 :
デフォルトの名無しさん :2007/06/25(月) 15:04:38
サーバに実行ファイルがおいてあるんだろ? 普通は実行できないだろ. MSDNに書いてある.
854 :
デフォルトの名無しさん :2007/06/25(月) 15:06:36
>853 それを実行する方法を知りたいのです。
素人にはおすすめしないがポリシーをいじる。 コントロールパネルの管理ツールの .NET Framework 2.0 Configuration ランタイムセキュリティポリシー (他をいじってなければ)コンピュータのコードグループのAll_Codeの下に 新規作成の条件の種類を選択するでURL:\\サーバー名\共有名\* アクセス許可セットFullTrust インストーラを作るかClickOnceを使うかかサーバーからローカルにコピーさせるかをすすめる。
856 :
デフォルトの名無しさん :2007/06/25(月) 16:12:33
むしろこれはVB.NETの問題ではないな・・・ つうか、あれか・・・クリックワンスのまえのやつやりたいのか? 名前忘れたけど
ノータッチ デプロイメント?
気持ちは良く分かる。 正直セキュリティが云々言われても無駄に面倒くさい。 ちょちょっとしたものを作って共有しようとしても インストーラやらClickOnesやら、、、。 ちょっと話がずれるが必要なDLLとかは、実行ファイルへ含めるもしくはフォルダ等へ 指定できたら良いのに。 この時代に容量削減も糞も無いだろう。 実行ファイル1Gとか上等じゃねーか。
質問です。
いまFramework1.1で勉強中なのですが
1.1のNotifyIconはバルーン?が表示できなかったので
いろいろ調べて
ttp://supware.net/?notifyiconex に辿りつきました。
このクラスを使うとバルーンは表示できるのですが、
ContextMenuがどうしても表示できません。ContextMenuのPopupイベントは反応あるのですが・・・
色々検索してみて大量にヒットするC#のコードを見る限りおかしい所は
自分の力量では発見できないので、ヒントでも構いませんので助言をお願いします。
環境はWindowsXP、Framework1.1、メモ帳です。
以下のコードを同上のクラスの下に書き、コマンドプロンプトでコンパイルしています。
Module Test
Private myForm As Form
Private notifyEx As NotifyIconEx
Private cMenu As ContextMenu
Sub Main()
cMenu = New ContextMenu
cMenu.MenuItems.Add("Item1")
notifyEx = New NotifyIconEx()
notifyEx.Icon = New Icon("C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\ndpsetup.ico")
notifyEx.contextMenu = cMenu
myForm= New Form()
myForm.ContextMenu = cMenu
myForm.ShowDialog()
End Sub
End Module
860 :
859 :2007/06/26(火) 20:49:34
なんか俺の質問でスレが過疎ったみたいで・・・・(´・ω・`) 調べたらTrackPopupMenuExがうまく動作してなかったみたいなんで 試行錯誤してNotifyIconExのTrackPopupMenuExを修正して ContextMenuがでるようになりました はっきりと原因した原因はいまだ不明ですが とりあえずしゅっくり勉強したいと思います。
>>859 >Framework1.1で
今古いランタイム使う意味は何でしょう?
行きがかり上のしがらみ?それとも以前のもののバージョンアップ
でしょうか?もし新規アプリなら2.0以上でやるべきではないでしょうか?
それは大きなお世話だと思うぞ。
864 :
デフォルトの名無しさん :2007/06/27(水) 13:17:50
>>861 おまえ某MVP臭いぞ
仕事してたらわかるだろ? 仕方ないときもあるんだし
でも
>>859 の場合は多分勉強だよ?
VB.NET Expressでいいやん
003はフランソワーズ まで読んだ
868 :
859 :2007/06/27(水) 22:52:37
>>861 確かに勉強中なんですが、職場にはFramework1.1のvbc.exeしか
はいってないので昼休みとかにも弄るために1.1でやってます。
基本はそんな変わらないだろうってことで。
職場はネットにも繋げないんでヘルプもクラスライブラリをHTMLで保存して
CDに焼いて持ち歩いてたりします。
家にはVB2005Expressインストールしてあるんですけどね・・・
>>863 やっぱ危篤な人種なのか・・・
dllとかを毎回入力するのが億劫なんで
簡単なHTA作ってコンパイルしてます。
とか言ってたらこんなん見つけました
ttp://www.sliver.com/dotnet/SnippetCompiler/ ところで、
「FileSystemWatcherで共有フォルダにあるExcelファイルが更新された場合にバルーンでその旨を表示」
というコンセプトで勉強アプリを作り始めたのですが、
Excelは「開く」「閉じる」だけで、更新日時が変更されNotifyFilters.LastWriteを設定しても
正確な情報が取れないことが分かりました・・・
自分で考えつくのは、
変更されたらファイル名と更新日時の値を保持して次に同名ファイルが更新されたら比較する
といったものなのですが、もっと良い案や確実に更新されたのを取得できる方法がありましたら
アドバイスお願いします&このスレの住人さんはレベルが高そうなんで
素人はこっちいけや〜的なスレがありましたら誘導していただけると嬉しいです
ここからずっと俺のターン?(´・ω・`)
>このスレの住人さんはレベルが高そうなんで ナニヲイッテイルンダ 定期的にファイルのハッシュ比較するとか 前回保存日時で比較するとか すりゃいいんじゃね?
870 :
デフォルトの名無しさん :2007/06/28(木) 09:05:36
みなさんこんにちは。お尋ねします。 通常のLabelですと後ろに引っ込んだ3D形状はあるものの 手前に出っ張った形状は付属されていないのですが、 どこかのサイトで、手前にふくらみのあるラベルコントロールなどが あるところをご存知ないでしょうか? それともこういったものは有料のものになるのが普通でしょうか? 昔、LabViewというものを触ったことがあり、それには手前に出っ張って いるガジェットがたくさんあったのを記憶しています。あれと同じような 感じに見えるものがほしいのですが、 もしご存知の方がおられましたら教えて戴きたく、 なにとぞよろしくお願いします。
>>870 LabelのPaintイベントで自分で描画する。
例えば
Label1のPaintイベントに
e.Graphics.DrawRectangle(New Pen(SystemColors.ControlDarkDark), New Rectangle(0, 0, Label1.Width - 1, Label1.Height - 1))
e.Graphics.DrawLine(New Pen(SystemColors.ControlLightLight), 0, 0, Label1.Width - 2, 0)
e.Graphics.DrawLine(New Pen(SystemColors.ControlLightLight), 0, 0, 0, Label1.Height - 2)
微調整はお好みで。
872 :
デフォルトの名無しさん :2007/06/28(木) 10:08:31
>>871 これって、自分で描画できるものなのですか!凄い。
ありがとうございます、やってみます。助かります。
>>871 直接描画するんじゃなくてControlPaint.DrawBorder3Dを使うべき
数字をアルファベットに変換する場合、みんなはどうしてる? たとえば、99ならninety nineとか、11ならelevenとかに変換したいんだけど(´Д⊂グスン
自前で実装
876 :
871 :2007/06/28(木) 16:30:14
>>873 Private Sub Label1_Paint(ByVal sender As System.Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles Label1.Paint
ControlPaint.DrawBorder3D(e.Graphics, Label1.ClientRectangle, Border3DStyle.Raised, Border3DSide.All - Border3DSide.Middle)
End Sub
こんな感じでいいかな?
>>877 このスレで一番言ってはならないことを言ったなw
もう誰も答えてくれんよw
879 :
874 :2007/06/28(木) 17:07:53
880 :
デフォルトの名無しさん :2007/06/28(木) 17:26:07
>>873 >>876 こちらもやってみました。
実は、ユーザーコントロールで複合したものでやってみてるのですが、
Label と TextBox の組み合わせで同じ UserControl に乗っけてまして、
その際、ClientRectangle の Inflate とかが必要のようですね。+2ぐらいしないと
外形が遇わないようです。
ところで、この Raised を使った場合、それを通常の BorderStyle プロパティに
追加して選択できるようにもしたいのですが、UserControl なのでPropertyを
Overrideして追加するとしたら、どういった感じにすると出来るでしょう?
ご指導戴ければありがたいです。
881 :
デフォルトの名無しさん :2007/06/28(木) 17:28:11
普通にプロパティつくってその中でいじってやればいいんじゃねぇ? やり方は好みだとおもうんだが・・・・ オーバーライドする必要がないと思うから
>>880 UserControlじゃなくてLabelクラスをオーバーライドするほうがスマート
883 :
882 :2007/06/28(木) 17:33:38
すまんオーバーライドじゃなくて継承ね
884 :
880 :2007/06/28(木) 19:31:41
>>881 なるほど、UserControl だと、そのものの Property になるということですね。
わかりました、助かりました。
>>882-883 そういう方法もあるということですね。今こちらのはTextBoxと他にもうひとつ
Labelも使ってたので、むずかしそうだったため、UserControl にしてしまってました。
たぶんよく理解していればできるのだと思うのですが、組み合わせコントロールとしては
デザインモードでの視覚的な組み合わせが楽な UserControl にしてました。
その方法での実現についてはまた勉強して考えてみます。
user.configの仕様どうにかならないかなー。 MySettingsで保存する際に、保存場所を指定できたらすごく便利なのに。。 バージョンごとに保存先が変わるとか、どうしてこんな糞仕様なのか。 せめて選べたら良いのに。
>>885 MSDNみたら
user.config は System.Windows.Forms.Application.LocalUserAppDataPath プロパティで指定した場所に配置されます。
とある。
試して無いけど。
っていうか、恥ずかしいからMy爺さんの機能なんか使うなよw リソースにアクセスする用途しか使ったことないぞ俺は
888 :
デフォルトの名無しさん :2007/06/29(金) 12:39:42
質問です VB(どういうかVSのマクロ)で、ドキュメントウィンドウに文字を出力する際に 入力する文字列に,(カンマ)が含まれるとE_FAILが帰ってくるんですが これをどうにかして,,,,見たいなのも出力できるように出来ませんかね? 具体的に言うならこういうの↓ DTE.ActiveWindow.Selection.text += "nullpo,," でエラーなしにする方法、,,で打ち切られないようにする方法が知りたいのです
889 :
デフォルトの名無しさん :2007/06/29(金) 12:43:54
>>887 設定保存とからくじゃないかw
俺はSettingとResource使ってるな
890 :
885 :2007/06/29(金) 13:05:37
>>886 おお!
どうもです。
ちょっと調べてみようっと。
>>887 初めちょっと嫌だなーとか思ったけど、使ったら超便利だった。
サクサク保存できる。
891 :
885 :2007/06/29(金) 15:53:01
次のようなクラスを作成する場合、 aaa.bbb() aaa.ccc.xxx() aaa.ccc.yyy() aaa.ddd.zzz() Public Class aaa Public Sub bbb() 〜〜〜 End Sub 次のコードは?? End Class 教えて下さい。
893 :
デフォルトの名無しさん :2007/06/29(金) 17:08:31
適当に やり方はいろいろだと思うけれど・・・・とりあえずで public class c_ccc public sub xxx end sub public sub yyy end sub end class public class d_ddd public sub zzz end sub end class public class aaa public ccc as new c_ccc public ddd as new d_ddd public sub bbb end sub end class
894 :
デフォルトの名無しさん :2007/06/29(金) 17:33:47
サーバに置いたexeを動かすのにexeと同じ場所にMicrosoft.VisualBasic.Compatibility.dll が無いと動かないPCと無くても動くPCがあるのは何故なんでしょう? OSは2KだったりXPだったりだけど、どっちでもなるのならないのあるし、 もちろんみんな.netフレームワーク1.1は入ってるし (動かないPCでもそのDLL置いただけで動くようになった)
>>895 .netを再インストしてみよう
com登録してなくても検索パスにdllをおいただけで動くよ
>>896 thx
XPだと.netプリで入ってるけど、一度アンインストールして再インストールすればいいのかな?
一度試してみます
>>895 プログラムがバージョン違いのMicrosoft.VisualBasic.Compatibilityを参照してる ってことはない?
.NET 1.1 なら ver. 7.0.3300.0 のはずだが。.NET 2.0は Ver.8.0.0.0 。
あと.NET 1.1 のSPで差が出るかどうかはわからないがその辺も調べてみて。
こんにちは、お尋ねします。 各種オブジェクトのイベントの発生順序に関する一覧表のようなものは どこかのサイトで公開されていたでしょうか? (例えば TreeViewコントロールのTreeNodeをクリックした後の各種イベント MouseClick,Click,OnBeforeSelect,OnAfterSelect などの発生順序、等です) こうしたものはすべてのイベントについて実験していくことは可能なのだとは 思いますが、できたら理論的に分っているものがあれば、そのほうが正確で早い と思いました。 もしご存知でいらっしゃいましたら教えて戴きたく。よろしくお願いします。
強いて言うならMSDN
つか常識的にMSDN
MSDNとS・G・G・Kって何か似てるよな
たぶん OnBeforeSelect は OnAfterSelect の前
>>899 そういうこと言いたい気持ちはよく分かるんだけど、
実際自分で試すのが一番正確で速いでしょ、どう考えても。
というか、まあ一概には言えないけどコントロールのイベントの発生順序に
依存するコードというのは、ちょっと不吉な匂いがするよ。
>>904 禿同
特にツリービューは気をつけたほうがいい
>>900-905 MSDNですと、発生順序に関しては必ずしも明記されていないように思いました。
確か本にはFormのLoad時とClose時のものなどが掲載されているものがありました。
それと同様の情報がどなたか公開されているのではないかと思ったのでした。
それでは、また調べてみます。ありがとうございました。
明記されていない場合は順番を当てにしない方がいいと思うよ
908 :
デフォルトの名無しさん :2007/06/30(土) 22:22:46
自分でConsoleWriteでもつかって調べればいいだろうに・・・・
俺も前にトレイからの復帰時にtreeview関係のイベントが起きて困ったもんだ
順番を当てにされたくないから意図的に明記してないのかもしれないし
いやそういう問題でももちろんあるんだけど、 「イベントの順序に依存したコードの不吉な兆候」というのは、 仮にそれ(イベントの順序)が確定しているとしても、それを人間が正しく 認識していないと意味を把握できないコードになりがちだから 保守性や拡張性の点で問題があるということでしょ。
GroupBoxの線の色を代えられないとか、どんな仕様にしてるんじゃ.NETは〜!! ちょぼちょぼ、痒い所に手が届かない風にコントロールなどが 作られてあって面倒くさい。 つうか、折れも画面を作る前に気が付けよ・・・。 は〜〜〜。orz
馬鹿の要望きいてるほどMSも暇じゃないんじゃね?
文句はチラシの裏に書け。 質問なら、素直に聞け。 思わせぶりな文章書いて、対策案を貰おうとしている様が見え見えで引く。
>>913-4 すいません。愚痴でした。
確かにチラシの裏に書いとけば良かったです。
まあ、もう、解決したんですが、その方法もチラ裏に書いときますわ。
いや、しかし.NETはほんとに、ちょっと足りないよ。
DateTimePickerは空に出来ないとか、FileDialogでフォルダとファイルの選択が〜とか。
ま、こちらも解決しているんで、今となってはどうでも良いですが。
質問スレに愚痴てwwwwwどんだけwwwwwwwww
918 :
デフォルトの名無しさん :2007/07/02(月) 18:16:42
>>915 >いや、しかし.NETはほんとに、ちょっと足りないよ。
いや、足りないのは君の頭と想像力と解釈力
>>915 標準コントロールの機能が十分だったらサードパーティ涙目だろが
というより、たまたま俺様が欲しいと思ってる機能がないのは何でじゃ〜(ムキー) っていうのはちょっと精神病チックだよね正直w まあ20%ぐらいは共感できる部分もあるけど、ドトネトの場合比較的簡単に コントロールの機能が拡張できるから俺はそんなに不満はないなあ。 ただ、ToolStrip関係はもう少しなんとかならなかったのか?とは思わんこともない。 クラスライブラリ的に醜すぎるし、拡張がしづらいんだよねToolStrip関係は。
921 :
デフォルトの名無しさん :2007/07/03(火) 12:01:30
業界未経験ですが、PGの面接に行ったらVB6をやってもらうと言われました。 現職場でVB.NETではアプリケーションを作ったこともあり、受注先に納品した り、社内でのデータベースを構築した経験(図書管理など)もあります。 .NET→VB6へ下がってしまうのがなんか時代に逆行するようで嫌なのですが、 .NET→VB6への移行(頭の切り替え?)はやっぱり難しいものでしょうか? 一応、エクセルのVBAはフォームまわりやファイル処理はできます。
922 :
デフォルトの名無しさん :2007/07/03(火) 12:13:28
VBA+αくらいで考えとけばいいんじゃない? 意向が難しいかどうかは人それぞれだけど たぶん君なら大丈夫 ただ・・・いろいろ.netならなぁ・・ とか思うことは多いだろうな・・・・
If文とか書いたとき、自動でEnd Ifを挿入してくれなくてイラつくと予想。
VB.NETなら誰が書いたコードでもそれなりに理解できるが アホがVB6で書いたコードは何がどうなってるのか読むのが大変
925 :
デフォルトの名無しさん :2007/07/03(火) 14:05:35
2005のWindows.Formアプリで質問です。 DataGridViewのコンボボックスカラムを使用してデータを選択させています このデータはDataSourceで指定されたデータを使用しています。 問題はこの後で、データの文字がセルの幅を超える場合、ドロップダウンが表示されたときにすべて表示されない状態になっています。 オーナードローすればいいんでしょうが、幸いDropDownプロパティがあるのでこれを使いたいと思います。 このとき、普通であれば表示させるデータをなめてMeasureStringで最大幅を設定するのでしょうが データ取得に時間がかかりデータ数が多いこともあり、できるだけループで回すようなことをしたくありません。 もし何か回避する方法があるのであればお教え願えませんか? もし無いのであれば諦めてデータをなめて最大幅を設定しようと思います。
>>925 AutoSizeMode = AllCells でいいんじゃない?
927 :
デフォルトの名無しさん :2007/07/03(火) 14:31:51
>>926 あ〜そういう手がありますね
早速やってみたところドロップダウンが奇麗に表示されました。
長い文字を選択するとセルのサイズ変わっちゃうけど、まぁこれはこれで取りあえず置いておいてつづけようかと思います。
(Keyの項目なので表示しきる必要はあると考えて)
回答ありがとうございました。
文字コードの自動判別ができるのはどのバージョンのVB.NET?
むしろその日本語ってどんなバージョンだよw 頭おかしいんじゃねえの
多分それができるころにはVBはなくなってると思う
C:\WINDOES\fontsのなかにあるEUDC.TTEをローカル(C:\copy)にコピーしたいんですが、 System.IO.File.Copyを使ってもwindowsに変な影響出たりしませんか?
933 :
デフォルトの名無しさん :2007/07/04(水) 23:39:43
DatagridViewでデザイン時にカラムを追加してPropertyName設定してテーブルをバインド ↓ データソースの中身Dispose+Nothing ↓ 同じ構造の別テーブルをDataSourceにセット ↓ 最初にデザイナで追加しておいたカラムがDataGridViewのColumnsから消えてる ( ゚Д゚)ポカーン 気付くまで30分かかったw
934 :
932 :2007/07/05(木) 09:36:36
自己解決しました。
935 :
932 :2007/07/05(木) 12:26:34
↑って誰ですか? 解決してないんですけど
>>932 削除とかならまだしも、普通にコピーとるだけなんだろ?なにを心配してるんだ?
馬鹿らしくてみんな答えないだけだよ。
というか自分で試せることだろ?
心配なら復元ポイントでもつくってやってみろ。
937 :
デフォルトの名無しさん :2007/07/05(木) 13:18:45
>>936 こういう馬鹿は試しもせずに聞いてくるからたちが悪い
失敗から学ぶことのほうが多いというのに
938 :
デフォルトの名無しさん :2007/07/05(木) 19:27:17
コンポーネントってデザイナでフォームじゃなくなんか下の方に置かれるじゃないですか? カスタムコンポーネントを作ろうとした場合、どうやってフォームの情報を取得するんですかね?
Containerをフォームの型にキャストすればいいんだけど そうするとコンポーネントとして分離した意味がなくなるからそういうのはダメ
940 :
デフォルトの名無しさん :2007/07/05(木) 19:45:04
ぇぇー、ダメって、例えば貼り付けるだけでフォームの特定のコントロールにほにゃららな 機能を追加するってようなのもダメぇ?コントロールをカスタムるより楽じゃん?
941 :
デフォルトの名無しさん :2007/07/05(木) 20:15:37
OSのGUIを使わず、アカウントがビルドインユーザ であるかそうでないか判断する方法しっている方 いましたら、教えて欲しいです。 Visual Basic .NET プログラムで実装します。 コマンド、Win32_API 、レジストリ、WMI でもかまいません。
942 :
デフォルトの名無しさん :2007/07/05(木) 20:20:07
いや・・・いろいろ方法ありますよ
943 :
941 :2007/07/05(木) 22:20:28
ちょっと文章がおかしかったっす Visual Basic .NET プログラムで実装します。 クラスライブラリ、コマンド、Win32_API 、レジストリ、WMI どれか1つでかまいません ということです
944 :
941 :2007/07/05(木) 23:02:18
自己解決しました。
>>940 どうやんのそれ
プロパティで対象のコントロールを直接指定するの?
それなら
>>938 みたいなことをする必要は全くない
フォームの特定のコントロールを勝手に参照したら
そのフォームに依存してしまうだろ
946 :
デフォルトの名無しさん :2007/07/06(金) 02:50:00
>>941 なに使ったの?
俺は調べきれなくって 時間なかった時だったんでNetUserEnum 使ったんだが
WindowsPrincipal じゃね?
948 :
デフォルトの名無しさん :2007/07/06(金) 06:31:03
Objectクラスの MemberwiseClone メソッドについて教えてください。 これで Clone を作って調べてみると、 cntrlClone = DirectCast(cntrl.MemberwiseClone, コントロールのタイプ名) ここで、元のオブジェクトインスタンスと別ものらしいこと cntrlClone IsNot cntrl は True はわかったのですが、Control でこれを使って作ったCloneを操作すると、 元オブジェクトのインスタンスが操作されてしまいました。 この cntrlClone の Size や Location を変えると、元の cntrl が動いてしまい、 cntrlClone の方は該当の場所には現われてすら来ませんでした。 MemberwiseClone メソッドで作成されるCloneというのは、どういうものなのか 今一よくわからず、これは別のインスタンスを完全に別ものとして作成するのでは ないということでしょうか、あるいはまた扱い方に問題があるでしょうか。 よろしくお願いします。
>>948 MemberwiseCloneは直接のメンバーのコピーしかしない。
メンバーとして参照型のオブジェクトを持っていた場合は参照しかコピーされないので
コピーされたオブジェクトは同じ子オブジェクトを参照することになる。
950 :
デフォルトの名無しさん :2007/07/06(金) 07:16:55
>>949 その 「メンバー」 の意味するものとは、元オブジェクトのフィールドのことですよね、
しかし、Clone 自体のインスタンスは、明らかに、元オブジェクトのインスタンスとは
別物になるはずですよね?
それが、cntrlClone と cntrl が別ものとして
cntrlClone IsNot cntrl は True
とはなっているのに、cntrlClone を操作すると、どういうわけか、cntrl が動いて
しまうようなのです。cntrlClone と cntrl の両方が画面に現われるかと思っていると
片方しか現われないのです。つまり、cntrlClone はで来ていないかのように見える
のです。
こういうことはおかしいように思うのですが、よくわからないのでした。
951 :
デフォルトの名無しさん :2007/07/06(金) 07:20:06
それとも、cntrlClone への操作が、自動的に cntrl 側にも同時に伝わってしまって 同時に2つとも同じ操作の対象になってしまっているのでしょうか?? まさかそういうことはちょっと信じられないのですが・・・。
class B { public int Ope() { .. } } class A { B b = new B(); public int Ope() { return b.Ope(); } } こういう構造ならいくらAのクローンを作ってもBはひとつ。 a もクローンa もインスタンスは違っても共通の動作になるだろ
953 :
デフォルトの名無しさん :2007/07/06(金) 07:54:52
>>952 そのおっしゃってることの意味は
>>949 の意味かと思いますが、
画面にすでに cntrl があった場合に、
>>948 のように
cntrlClone = DirectCast(cntrl.MemberwiseClone, コントロールのタイプ名)
のようにして作成した場合、実体として cntrl と cntrlClone は別モノで、
別々のコントロールとして作成されるとすれば、
cntrlClone.Top = cntrlClone.Top + 10
と操作したら、cntrl の Top が +10 してしまうのはおかしいのではないかと・・・
それとも、cntrl が何かの派生であった場合、Baseクラスに対しても Clone を
別に作成しないといけない、というようなことなのでしょうか?まさか
Windows.FormsのFormやらButtonがどういう構造になってるかは知らんが、 実体はWin32のアンマネージドリソースなんだから、 SizeやらLocationやらは毎回Win32のリソースに問い合わせてる可能性が高いぞ。 そうなると両方のオブジェクトが同じハンドルのWin32リソースを操作するわけだから 同じになるのは当然だろ。 ICloneable.Cloneが実装されてないのに、中身もわからないクラスのクローンを作るのは 無謀だと思うぞ。
>>953 既に954が書いてるし、俺はあまりWin32に明るくないんだけど、
要するに、例えばFormにTextbox1があるとして、Form上に見えている
テキストボックスはTextbox1そのものではなく、「Textbox1が内部にもっている何物か」
に過ぎないということなんでしょう。
それなら話の辻褄あうでしょ。
>>954-955 どうもです、やっぱり
cntrlClone = DirectCast(cntrl.MemberwiseClone, コントロールのタイプ名) ・・・[1]
で コントロールの別実体の Clone が作れると思わない方がいいでしょうか?
ICloneable.Clone については、
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?forum=7&topic=27051 なども参照してみて実装してみたりしてますが、この使い方では結局 Clone
の作成は [1] でやっているんですよね。
普通に最初から New でコンストラクトして、必要なフィールドなどを値でコピーして
地道に作成するほかないでしょうか。そうなると、 MemberwiseClone の利用方法が
今一不明になるわけですが・・・どうもよくわかりません
957 :
デフォルトの名無しさん :2007/07/06(金) 08:48:58
>>956 あっ、これ書いてみて今気がつきましたが、この参照サイトにあるのは [1] ではなく、
Dim hWankuma As WankumaData = DirectCast(Me.Clone(), WankumaData)
・・・
Private Function Clone() As Object Implements System.ICloneable.Clone
Return Me.MemberwiseClone()
End Function
となってるところが違うのか・・・、もしかしてこれでしたか?ちょっとやってみます。
だとしたら自分の使い方のミスですね。飯食ってからやってみてまた報告します。
どうもでした。
ああ、くそう ここで交わされる会話がスラスラ理解できるようになりたいw
たいしたこと言ってないから
>>956-957 なんか書いてること読むと基本が理解できてない感じ。
自分でクラス作れない人?
だったら場当たり的な「調べ方」では永遠に埒あかないと思うよ。
少なくともクラスと構造体の区別が理解できていれば、
フィールドの値(オブジェクトのメモリーイメージ)だけ複製しても
無意味な場合があることはすぐ理解できるはず。
961 :
デフォルトの名無しさん :2007/07/06(金) 12:58:22
>>960 うーん、おっしゃってることは分ってるつもりですが、
要はコントロールの複製を作るにはこういうメソッド使えない
ということでしょうか?
もし使えるとしても、では後何をどうすれば複製を作成できるようになるでしょう?
毎回、Newでコンストラクトして作成して、それにフォールド値をいちいちコピーする
やり方では、クラスをバージョンアップしてフィールドが増えたりするたびにそこに
手を入れる必要があるので忘れやすく、そういうことを防止するためにはこのメソッドを
使うほうがいいという感じで書いてあるところが多くあるかと思います。
では、現実の実体としてコントロールをこのメソッドも使って複製したい場合、
どれとどれとどれのどのような手続きをへて可能になるのか、それが知りたいのですが、
現状の知識ではわかりません。またそうした使い方をして説明してあるサイトが見つからない
のです。
ちなみに、当然というか、
>>957 で試してみてもやっぱりだめでした。まー同じことだろうとは
思ってましたが、やっぱりその通りでした。
962 :
デフォルトの名無しさん :2007/07/06(金) 13:03:03
>>954-955 のご指導もありましたが、もしオブジェクトの実体を指すインスタンスが
別途にできていないのだとするとそういうことになるのかもしれませんが、
しかし、たとえフィールド値のコピーだけだとしても、そうだとすると、コントロールの
実体を指すプロパティが他にあって、それのCloneを作成する必要があるということ
でしょうか?
もしよろしければ、その辺をご指導いただけますか?
>うーん、おっしゃってることは分ってるつもりですが、 ダウト >コントロールの 実体を指すプロパティが他にあって、それのCloneを作成する必要があるということ >でしょうか? 大雑把にいうと Control -> NativeWindowクラスのプライベートフィールド-> IWin32Window(Win32ハンドルのラッパ)-> アンマネージドの世界 素直にICloneableを実装して必要なフィールドを自力で埋めろ、ってこった。
意識的に自分で使ってるプロパティだけ新しいオブジェクトに移せばいいだろ コントロールなんて大概「同じもののように見える」で十分 手軽にできるようにしたかったら, コントロールの初期化をラップしといて簡単に再現できるようにするとか
965 :
デフォルトの名無しさん :2007/07/06(金) 15:28:26
>>963 どうもです。
おっしゃてることは、ですから、要するに、
>>957 の
Private Function Clone() As Object Implements System.ICloneable.Clone
Return Me.MemberwiseClone()
End Function
の中の Return Me.MemberwiseClone() は使えません(
>>961 の通り)ということで、
全部毎回フィールドを自分で世話するという、以前からある手法でやるほかない、
ということなのですね。
つまり、少なくともコントロールに関するかぎり、 MemberwiseClone() は有効にはならず
利用できない、ということで納得するほかないと・・・。わかりました、ということはせっかく
MemberwiseClone() というメソッドが継承されていても、使えないメソッドなのだという
ことなのですね、少なくともControlクラスにおいては。
ではやはりそのようにするしかなさそうですね。ご指導感謝します。
966 :
デフォルトの名無しさん :2007/07/06(金) 15:29:58
>>964 同様のご意見ということで、わかりました。無理そうなので
結局そういう感じでやることに致しました。
968 :
デフォルトの名無しさん :2007/07/06(金) 17:03:04
ADO.NETでウィザードを使ってデータベースに接続したり,コントロールに連結したりした アプリケーションを配布する場合,データベースへのパスがユーザによって変わってくる と思いますが,どこでConnectionStringの変更を指定したらいいのですか? 具体的には,ウィザードを使うとFormのRegion〜EndRegionの間にOledbConnectionに関する 記述がありますが,配布した時に最初にデータベースの位置をユーザが指定して,それを レジストリに書き込みたいのですが,それに関する記述はどこに書いたらいいでしょうか? Form_Loadですか?
969 :
デフォルトの名無しさん :2007/07/06(金) 18:49:34
CheckdListboxコントロールの継承に関して質問です。 このコントロールの中にあるItemsにAddやRemoveなどのコマンドがありますが、 こちらを継承、もしくはItemsにメンバー変数などを追加するには どのようにすれば良いのでしょうか? やりたい事は、CheckdListboxコントロールは、主にItemsの「Index、item、Checked」と 三つの情報を取り扱いますが、こちらに一つ追加したい。 現状は、CheckdListboxコントロールの継承クラスに、メンバーを追加して、 ItemAdd とか ItemRemove とかを作って無理やり実現させています。
>>969 継承についてもっと勉強してください。
あなたの考えてることは不可能です。
>>971 その前に君969の言ってることがわかるの?
俺にとっては
>>969 の文章はサッパリ理解不能なんだが。
きっとエスパーなんだね君は。
自分の勝手な想像と書いてあることの区別がつかない痛い奴でなければ。
973 :
デフォルトの名無しさん :2007/07/06(金) 23:38:51
>>972 は自分でさっぱり理解不能な場合、答える人は
全てエスパーに見えるらしい。
…あ、釣りですか。そうですか。
いや釣りじゃなくて嫌味ね。 しかし、嫌味が通じない人間の人生ってきっとさぞかし「楽しい」んだろうな。 おっと、この人嫌味が通じないんだったなw
くだらね。
なんか最近.net関連のスレに気違いが混じってるなぁ
「釣りですか」というのが嫌味だと理解できなかった可哀相な人がいるスレはここですか?
そういや「全てエスパーに見えるらしい」ってもの嫌味の部類だよなあ 通じなかったみたいだけど。
979 :
969 :2007/07/07(土) 09:52:05
自己解決しました。
>>932 がさっきから腹いせにスレを荒らしている件
981 :
デフォルトの名無しさん :2007/07/07(土) 10:26:25
フォォムのLoad中〜Load完了までの状態を判定するにはどうすればいんですかね? Visible=False Then じゃなんとなくダサいんですが
だれが判断したいわけ?
984 :
デフォルトの名無しさん :2007/07/07(土) 13:01:08
自作コントロールのItemプロパティを作成したんだけど 出来ればデザイン時に項目を設定できるようにしたいんです。 確かシリアライズ出来るようにしなければいけないと思ったんですが ちょっと情報が探せませんでした。 ご存知の方簡単で構いませんのでお教え願えませんか?
>>984 ん?propertyになっているなら、デザイン時に設定できるだろ?
デザイナまで作ろうってんじゃなくて単にプロパティウィンドウに出したいだけじゃねぇの? BrowsableAttribute属性付けるだけでいいレベルじゃないのか。
プロパティグリッドが俺やアンタの作った俺様コレクションの俺様アイテムの 編集方法を理解できるわけないでしょアホか。
日本語云々に拘っている変な人がいるよね。
向こうで書きにくくなったJittaが暴れているんだろ。
991 :
デフォルトの名無しさん :2007/07/09(月) 12:13:11
VB2005で、IEのプロキシを設定したいのだけど、コマンドがわかりません。 教えていただけませんでしょうか。
>>991 HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings
のProxyServerの値をVBでいじればいい
993 :
デフォルトの名無しさん :2007/07/09(月) 12:18:17
>>991 どんな方法で設定するのか知らないけど
HKEY_CURRENT_USER\…\Internet Settings
このレジストリいじるのじゃなくって別の方法?
>>981 普通に書けば、メンバ変数
Private m_loaded As Boolean = False
とプロパティ
Public ReadOnly Property Loaded() As Boolean
Get
Return m_loaded
End Get
End Property
を持たせておいて、OnLoadで
Protected Overloads Overrides Sub OnLoad(ByVal e As System.EventArgs)
MyBase.OnLoad(e)
m_loaded = True
End Sub
でいいと思いますが。
>Visible=False Then じゃなんとなくダサいんですが
Boolean値をリテラルと比較するのは「ダサい」というより「間抜け」ですね。
>>988 >俺様コレクション
かどうかは判りませんが、それが既知の型の配列であれば
何もしなくともプロパティグリッドに表示されますね。
まあ、そうならないから質問してるんでしょうけど。
995 :
991 :2007/07/09(月) 22:15:08
>>991 、
>>992 さっそく、ありがとうございました。
とても参考になります。
まだレジストリをいじったことがないので、
まずはレジストリのいじり方を調べてみます。
h
t
t
p
1000ならジュースでも飲むか
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。