VB.NET質問スレ(Part35)
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2010/09/14(火) 09:20:53VB.NET質問スレ(Part34)
http://hibari.2ch.net/test/read.cgi/tech/1270998481/
テンプレは >>2-4 あたり
0002デフォルトの名無しさん
2010/09/14(火) 09:21:33http://msdn.microsoft.com/ja-jp/library/ms229284.aspx
どぼん!のVB道のトップページとTipsページ
http://dobon.net/vb/
http://dobon.net/vb/dotnet/index.html
Insider.NET
http://www.atmarkit.co.jp/fdotnet/index.html
宇宙仮面の C# プログラミング
http://uchukamen.com/
.NET TIPS
http://www.atmarkit.co.jp/fdotnet/dotnettips/index/index.html
緑のバイク ★ 初めてのC# プログラム全般
http://homepage3.nifty.com/midori_no_bike/CS/
VB.NETとC#でデザインパターン
http://hccweb1.bai.ne.jp/tsune-1/
匣の向こう側
http://www.ne.jp/asahi/nami/mei/index.html
WisdomSoft
http://wisdom.sakura.ne.jp/
じゃんぬねっと
http://jeanne.wankuma.com/
どっとねっとふぁん - C# Tips And Samples -
http://homepage3.nifty.com/dotnetfan/index.html
http://dotnetfan.org/
C#プログラミングTips
http://www.atmarkit.co.jp/fdotnet/csharptips/index/csharptips_index.html
0003デフォルトの名無しさん
2010/09/14(火) 09:22:13http://www.codeproject.com/vb/net/
the GotDotNet Home Page
http://www.gotdotnet.com/
KEN's .NET
http://www5b.biglobe.ne.jp/~yone-ken/VBNET/index.html
Cetus Links: 19,498 Links on Objects and Components / .NET
http://www.cetus-links.org/oo_dotnet.html
HIRO's.NET
http://vbdotnet.fc2web.com/index.html
@IT:特集 .NET開発者のためのオンライン・リソース・ガイド
http://www.atmarkit.co.jp/fdotnet/special/onlineres/onlineres_01.html
.NETでいきまっしょい!
http://santamartadotnet.hp.infoseek.co.jp/
これがほしかった!厳選サンプルツール集
http://anetm.com/dev/tools/vbdotnet.htm
ぬーやんのdotNET講座
http://www.geocities.jp/nuu_yan/dotNET/index.html
PINVOKE.NET
http://www.pinvoke.net/
WinAPI Database for VB Programmer
http://www.winapi-database.com/
0004デフォルトの名無しさん
2010/09/14(火) 09:22:54http://custom.programming-in.net/
CodeZine
http://codezine.jp/
ConvertCSharp2VB
http://www.kamalpatel.net/ConvertCSharp2VB.aspx
@IT:.NET Tools
http://www.atmarkit.co.jp/fdotnet/tools/index/index.html
SharpLibrary Redirector
http://www.sharplibrary.com/
MSDN アカデミック アライアンス 技術資料
http://www.microsoft.com/japan/msdn/academic/articles/
「300 秒でズバリ !!」&「10 行でズバリ !!」シリーズ
(VS2005) http://www.microsoft.com/japan/msdn/thisweek/300x10/
(VS.NET 2003) http://www.microsoft.com/japan/msdn/thisweek/wednesday/
PAPA'n VB
http://papanvb.i-love-vb.net/
(旧コンテンツ) http://www.mitene.or.jp/~sugisita/index_old.html
VB レスキュー花ちゃん
http://www.bcap.co.jp/hanafusa/dotnet/index.html
VB中学校
http://homepage1.nifty.com/rucio/main/main.htm
初心者から中級者のためのVB
http://www7b.biglobe.ne.jp/~vb_beginner2008/
テンプレここまで
0005デフォルトの名無しさん
2010/09/14(火) 09:50:29VB.NETのスレが無いのですみません。
Dim [source] As TreeNode = _
CType(e.Data.GetData(GetType(TreeNode)), TreeNode)
上記の[source]ってどういう意味でしょうか?
なぜ[ ] がついているんでしょうか?
0006デフォルトの名無しさん
2010/09/14(火) 10:10:38予約語はこの辺を参照
http://msdn.microsoft.com/ja-jp/library/ksh7h19t(v=VS.90).aspx
…sourceって予約語じゃない気もするけどね
0007デフォルトの名無しさん
2010/09/14(火) 10:18:12好きな変数に書き換えて使ってください
0008デフォルトの名無しさん
2010/09/14(火) 12:00:27予約語ですか。
ありがとうございました。
0009デフォルトの名無しさん
2010/09/14(火) 16:01:18継承(inherits)していないクラスのコンストラクタに
MyBase.New()
と書かれているのですが、これはなんのためにあるのでしょうか。
対象のサンプルコードが書かれているページ
http://park5.wakwak.com/~weblab/clsSyain.html
0010デフォルトの名無しさん
2010/09/14(火) 18:04:35MyBaseのNew()を呼ぶことで、System.Object クラスの新しいインスタンスを初期化します
この作業を行うことで、始めてコンパイラは基底クラスをインスタンス化できるようになります
0011デフォルトの名無しさん
2010/09/14(火) 18:21:08というか普通は省略する
0012デフォルトの名無しさん
2010/09/14(火) 19:01:46ライフゲームをつくっているのですが、For文と配列をつかって、PictureBoxを並べて表示させることはできました。
これでは決まりきった形(正方形や長方形)の背景しか表示できず、ライフゲームとして面白みがありません。
そこで、たとえば猫の写真をもってきて、猫の形の背景をつくりたい(つまり猫の形上でライフゲームが展開したい)とき、
どういう関数を使えばいいでしょうか?
0013デフォルトの名無しさん
2010/09/15(水) 13:35:04猫の絵のjpgやbmp読み込んでDraw関数で書き込む
PictureBoxの背景画像を猫にする
0014デフォルトの名無しさん
2010/09/16(木) 19:20:52もし猫の写真を認識してライフゲームの初期状態やフィールドの形状を生成するってことだったら
写真をBitmapオブジェクトに読み込む→画像を方眼状に仮想的に分割
→一つのセルに含まれるすべてのピクセルの色の平均を求める→明度かなんかを閾値として生か死か決める
→これを全てのセルに対して繰り返す
一番シンプルな形としてはこんな感じだろうけど、いきなりこれだけ組み立てるのはたぶん君にはまだ難しい。
0015デフォルトの名無しさん
2010/09/17(金) 19:09:03BeforeNavigateという機能を使えばできそうな感じではあるのですが、初心者向けの解説がなく、さっぱり使い方がわかりません・・・
どういったプログラムを書けばいいのでしょうか・・・
0016デフォルトの名無しさん
2010/09/18(土) 23:16:46ファイルの作成日時と更新日時の関係がどうも納得行かないので質問です。
Windows環境で特定のファイルのプロパティを見たところ
次の様なタイムスタンプになっていました。
作成日時 2010年9月18日、 12:57:11
更新日時 2010年9月18日、 1:33:45
ここで疑問なのはなぜ【更新日時】が【作成日時】よりも過去になっているのでしょうか?
ファイルの 作成 > 更新 という流れなので【更新日付】が
一番直近の日時になっていなくてはならないと思うのですが。
0017デフォルトの名無しさん
2010/09/18(土) 23:26:28例えばファイルコピーしたら作成はされるが更新はされない
0018デフォルトの名無しさん
2010/09/18(土) 23:55:06ありがとうございます。そーいえばコピーしましたw
0019デフォルトの名無しさん
2010/09/19(日) 23:49:28(そのフォームも自作アプリなのですが)
GetWindowTextで取得すると、TextBox1という文字列が取得されてしまいます。
起動後に手入力で内容を書き換えても、FormLoad時に書き換えても
フォームデザイナに初期に定義されていたTextBox1という文字が返ってきてしまいます。
フォームデザイナであらかじめ変更しておくとその通り返ってくるのですが
実際のそのときのテキストボックスの内容を取得する方法を教えて頂きたいです
0020デフォルトの名無しさん
2010/09/20(月) 00:08:30WM_GETTEXT使う
0021デフォルトの名無しさん
2010/09/20(月) 02:56:17SendMessageを調べてみます。
0022デフォルトの名無しさん
2010/09/20(月) 07:41:24そのアプリケーションは何で作ったのだろうか?
実はGetWindowTextに渡すウィンドウハンドルが間違っているだけの予感がする。
0023デフォルトの名無しさん
2010/09/20(月) 22:05:19ボタンのハンドルにマウスの左ボタン押し、離し(&h201と&h202)を送っているのですが、
ボタンの画像が押されたようになるのですが、押した時のプロシージャが実行されないのですが、
押した時と同じように動かすにはどうしたら良いでしょうか?
キーコードのKeys.Spaceを送ると直接クリックした時と同じ動作をしました。
>>22
GetWindowTextでTextBox1という文字が返ってくるのでハンドルは間違って
いないのではないかと思います。
その後検索してみたのですがGetWindowTextは他のアプリケーションに対しては使用できないみたいでした。
0024デフォルトの名無しさん
2010/09/20(月) 22:55:190025デフォルトの名無しさん
2010/09/20(月) 23:24:07どうもありがとー
0026デフォルトの名無しさん
2010/09/20(月) 23:48:34下のループでウィンドウテキストがConsoleに正常に出ないのですが
どこに原因があるでしょうか?
ループの上に一時停止を設定して、F10を押して一つずつ表示させると出るのですが・・・
早すぎるのが原因のような感じですが、SendMessageは瞬時に次のものは使ってはダメでしょうか?
EnumChildWindow()の使い方が不慣れで共有変数の扱いとかが分からないので
このような方法で列挙してみました。
Public Declare Function SendMessage Lib "user32" Alias "SendMessageA"
(ByVal hWnd As IntPtr, ByVal wMsg As Integer,
ByVal wParam As Integer, ByVal lParam As String) As Integer
Public Const WM_GETTEXT = &HD
Dim OYA As IntPtr
Dim ko As IntPtr
Dim mago As IntPtr
Dim WindowTitle As String = "テストフォーム"
OYA = FindWindow(vbNullString, WindowTitle)
ko = FindWindowEx(OYA, IntPtr.Zero, vbNullString, vbNullString)
Console.WriteLine(ko.ToInt32)
If ko.ToInt32 = 0 Then Exit Sub
Dim a As String= New String(Chr(0), 255)
Dim leng As Integer = Len(a)
Do Until (ko.ToInt32 = 0)
mago = FindWindowEx(OYA, ko, vbNullString, vbNullString)
SendMessage(mago, WM_GETTEXT, leng, a)
Console.WriteLine(a.ToString)
Console.WriteLine(mago.ToInt32)
ko = mago
Loop
0027デフォルトの名無しさん
2010/09/21(火) 18:16:190028デフォルトの名無しさん
2010/09/21(火) 18:20:54それ余計に難しいから最初の一個のプロパティやイベントハンドラもコードから設定した方が早い
0029デフォルトの名無しさん
2010/09/22(水) 11:55:472バイト文字を扱うのなら---Aではなく---Wをつかうべきでは?
0030デフォルトの名無しさん
2010/09/22(水) 11:58:30それと、両方の文字セットが使われる可能性があるのなら、DeclareじゃなくDllImport属性つけてCharSetをAutoにしたほうがいい。
0031デフォルトの名無しさん
2010/09/22(水) 15:30:050032デフォルトの名無しさん
2010/09/25(土) 21:23:52VB.netでこのユーザ定義型で読み書きするには、どうしたらいいですか?
ttp://www.mb.ccnw.ne.jp/garger-studio/gameprog/vb0124.html
0033デフォルトの名無しさん
2010/09/26(日) 14:51:25ClientRectangle.Locationプロパティでコントロールの原点を取得するのって何か意味あるの?常にx=0 y=0だから、もし座標変換や座標計算で使用する場合
いちいち取得しなくても直接 x=0 y=0 でやったらだめなんかなぁ?
それとも何か特別な時に変化とかするの?わかる人教えてください
長文すんません
0034デフォルトの名無しさん
2010/09/26(日) 15:17:34素朴に質問する前に、MSDNライブラリのControl.ClientRectangleの項は読んだの?
読んでないでしょ?
MSDNライブラリも読まずに質問するって面の皮厚過ぎないか
0035デフォルトの名無しさん
2010/09/26(日) 18:54:28回答もできないやつに限ってOO読みましたかとか?いう
クソだねカスだねさらにうなら病院行った方がいいね
0036デフォルトの名無しさん
2010/09/26(日) 19:05:40このプロパティによって返される四角形の左上隅の座標は (0,0) となります。
クライアント領域の左上隅の座標は0,0だから当然そのコントロールの右下隅はコーンとロールの
Sizeプロパティで取得できるし決め打ちで左上隅を0,0にしてもサイズ計算はできる
ただし、クライアント領域を絶対領域に変換する計算をするにはClientRectangle使ったほうがスマート
両方参照するコードだと長くなるから
0037デフォルトの名無しさん
2010/09/26(日) 19:07:02呼んだから=x 読んだから=○
0038デフォルトの名無しさん
2010/09/26(日) 19:12:45お前が読め
0039デフォルトの名無しさん
2010/09/26(日) 19:16:11>コーンとロール
新しいスイーツ?
0040デフォルトの名無しさん
2010/09/26(日) 19:20:29なんか偉そうだな
0041デフォルトの名無しさん
2010/09/26(日) 23:46:48別担当者が開発しています。
問題は、そのDLL内のあちこちでDoEventsを呼び出していること。シリアルがらみなので別スレッドで動いているにもかかわらず、
何かしらシリアルデータのやり取りが発生するとDoEventsを呼んでくれます。
非同期にDoEventsが呼び出されるおかげで、アプリの終了処理中などウィンドウの構成やら何やらが変化しているときにも、
非同期にイベント処理が走ってエラーが出ます。
そこで、対処療法ですが、フックするなどして、DoEventsを有効/無効と切り替える方法を教えて頂けないでしょうか。
DoEventsOff():DLL内ルーチン呼び出し:DoEventsOn()、みたいな感じでDoEventsの無効有効を切り替えるイメージです。
ここからは言い訳。
本来はDLL内でのDoEventsの呼び出しを止めるべきなのですが、残念ながら、DLLのメンテ担当者にその気が無いのです。
部署内での打ち合わせでDLLの改善を提案したりしたんですが、本人の作っているアプリでは個別に回避処理を入れるやり方で対応できている、
DoEventsを止めるとGUIの動きがぎこちなくなるからダメだ、という事でやはり拒否。上長も、このDLLは別部署でも使っていることもあり、既にリリースしているDLLを
差し替えることにはかなり否定的な立場をとってます。
ここは気合いで同機能のDLLを作って・・・ということができればカッコいいんですが、DLLを置き換えると、メンテ業務や部署内外への周知やサポートも一緒に
引き継ぐことになっちゃうので、二の足を踏んでます。
現時点ではそのDLL担当者がこういう雑務も引き受けてくれてるので、やはり強いことは言えません。
ということで、質問に戻りますが、DoEventsをフックし、有効/無効を切り替える方法を教えて頂けないでしょうか。
よろしくお願いします。
0042デフォルトの名無しさん
2010/09/27(月) 00:31:30メソッド呼び出しのフックなんて危険なことがそう簡単にできると思えないなあ。
というか、DoEventsなんか使うあなたの同僚もおかしいけど、
こう言っちゃなんだけどDoEventsで動作がおかしくなるあなたの担当分のコードも
問題あると思うよ。
DoEvents呼んだって、非同期的にイベントが発生したりしないよ?
だってDoEventsの機能は「メッセージ キューに現在ある Windows メッセージをすべて処理します。」、
つまり、DoEventsを呼んだ結果発生するイベントは、Windowsメッセージに関連付けられた、
UIスレッドで発生するイベントだけだから。
何か勘違いがあるんじゃないの?
0043デフォルトの名無しさん
2010/09/27(月) 02:39:10変な状況が目立って出るはずありませんね。
たしかに、まだまだ見直すところがありそうです。
ちと頭冷やして、ちゃんと構成しなおしてみます。
ありがとう!
0044デフォルトの名無しさん
2010/09/27(月) 07:25:16UIスレッドには影響ないだろ。別スレッドでDoEventsを呼んで、状況が再現
するか試してごらん。多分影響ないから。
しかし通信中に迂闊にDoEvetnsなんて呼んだら、まともに通信できなくなるだろうに。
0045デフォルトの名無しさん
2010/09/27(月) 08:45:05その同僚の代弁をすると、
ポーリングしてるようなぐるぐる処理の場合
DoEventsやめたら非常に楽しいことになるけどいいのかね?
004641
2010/09/27(月) 12:30:07下などへの応答は自前イベントで処理する、という思想で作っていたようです。
VB6の頃から試行錯誤してきたソースを使っているので、こういう構成になっているとの事。
役に立つことのある情報とは思えませんが、参考までに具体的な話を。
・制御対象のリアルタイムモニタのため、単純な無限ループで繰り返しシリアル通信を行う。アップデート間隔をできるだけ短くする為の様です。
・GUIが固まるので、シリアル通信のDLL内でDoEventsを呼んでいる。(シリアルにコマンドをライトし、リードで応答を待つ場合など、必要な応答データが揃
うまで繰り返しリードし、その都度DoEventsも呼び出している模様。)
・フォームに配置されたボタンを押すと、制御対象に設定を書き込んだり、リアルタイムモニタとは別のデータを読み出したりするシリアル通信を行う必要が
ある。そこで、自前のイベントとイベントキューを作って、上記の無限ループでこれらの自前イベントを処理することで対応している。
・その他のイベントについては、普通のスタイルでハンドルを定義しているので、たまにイベント処理が破綻するが、そういうのは見つかるごとに対応している。
(一時的に上記ループを停止するなど)
私がこのあたりちゃんと把握せずに、コントロールを追加したときにハンドラ内でシリアル通信を起動してたので、変な事になってたようです。
しかし、コントロールを追加するたびに、上記の自前イベントを拡張しないといけないのは面倒ですが。
もうちょっと頭を整理してから対策してみます。
お騒がせしました&ありがとうございました。
0047デフォルトの名無しさん
2010/09/27(月) 18:50:33COMオブジェクトの「Microsoft Excel 11.0 Object Library」を参照しました。
で、そのクラスを別のWindowsApricationからプロジェクト参照で呼び出して使用してるんですが、
そのクラス内で所得できる、
Microsoft.Office.Interop.Excel.XlHAlign.xlHAlignCenter
のような、列挙体で設定されてる数値は、
WindowsAprication側からは参照できないんでしょうか?
0048デフォルトの名無しさん
2010/09/27(月) 19:45:00動かしたいのだけどそういうスレッド間の同期とる場合もセマフォとか
使うのでしょうか
0049デフォルトの名無しさん
2010/09/27(月) 19:56:16クラスライブラリのプロジェクトにIDEが自動作成したdll(ファイル名の一部に"interop"が
入ってるやつ。たしか3つぐらいあるはず)を、Windowsアプリのプロジェクトから参照すればOKなはず。
0050デフォルトの名無しさん
2010/09/27(月) 20:18:28AutoResetEventでも使えば
0051デフォルトの名無しさん
2010/09/28(火) 08:13:520052デフォルトの名無しさん
2010/09/28(火) 09:00:320053デフォルトの名無しさん
2010/09/28(火) 09:34:080054デフォルトの名無しさん
2010/09/28(火) 15:56:47VB4時代のこんなの見つけたけど、今は大丈夫だろうと思ったら
Sub Main(ByVal cmdargs() As String)
Dim sw As New Stopwatch
Dim a(50000000) As Integer
sw.Restart()
For Each i As Integer In a
a(i) = i
Next
sw.Stop()
p(sw.ElapsedMilliseconds)
sw.Restart()
For i As Integer = 0 To UBound(a)
a(i) = i
Next
sw.Stop()
p(sw.ElapsedMilliseconds)
Console.Read()
End Sub
何度試しても、キャッシュを気にして順番を変えてみても
for eachのほうが遅い
今でも配列にはforを使うべき?
0055デフォルトの名無しさん
2010/09/28(火) 16:17:10ちゃんと型指定されてるからVBだから最適化できないってことはないはず
コンパイラが馬鹿なんだろ
0056デフォルトの名無しさん
2010/09/28(火) 17:57:57VSのデバッグモードで動かしたりしてない?
XPSP3, .NET4.0でコマンドラインからoptimizeコンパイル、実行。
最初のループだけ早くなる傾向があるから、
foreachとforを3セット繰り返して、後ろ2セットで測定した。
0057デフォルトの名無しさん
2010/09/28(火) 18:24:12普通のforのnextはintegerのインクリメントだからなぁ
列挙よりインクリメントが早いって話なんじゃないだろうか
0058デフォルトの名無しさん
2010/09/28(火) 18:24:420059デフォルトの名無しさん
2010/09/28(火) 19:04:36ところでコマンドラインでコンパイルするのには何か意味があるの?
2010expressで最適化はデフォルトでOnになってるけど
>>57 csvを1行目を除外して読み込んでorder byとかでやればいいんじゃない?
しかしVB.netよりもVBAのほうがいいように思うけど
もしその作業が単発ならExcelのオートフィルタ
0060デフォルトの名無しさん
2010/09/28(火) 19:05:260061デフォルトの名無しさん
2010/09/28(火) 19:32:30ttp://www.atmarkit.co.jp/fdotnet/vblab/vb2005m_08/vb2005m_08_04.html
0062デフォルトの名無しさん
2010/09/28(火) 19:49:010063デフォルトの名無しさん
2010/09/28(火) 20:04:21Do While Not tr.EndOfData
oneLine = tr.ReadFields()
If oneLine(0) = txtNumber.Text Then
sw.WriteLine(oneLine(1))
End If
Loop
0064デフォルトの名無しさん
2010/09/28(火) 22:41:49全部List(Of String)にでも読み込んでからReverseしてFor Each
0065デフォルトの名無しさん
2010/09/29(水) 03:10:380066デフォルトの名無しさん
2010/09/29(水) 03:35:20一行ずつ読み込んでも、全部いっぺんに読み込んで改行コードで分割するんでもいいだろ。
0067デフォルトの名無しさん
2010/09/29(水) 07:31:10>>35
0068デフォルトの名無しさん
2010/09/29(水) 12:23:20ttp://msdn.microsoft.com/ja-jp/library/s2tte0y1.aspx
0069デフォルトの名無しさん
2010/09/29(水) 18:38:14やってることは一緒なんだからコンパイラが最適化できる。バカ正直にIEnumerator操作する必要はない。
むしろ、for eachの列挙の方が形が決まってる(自由度が低い)分最適化の余地が大きい。
0070デフォルトの名無しさん
2010/09/30(木) 09:08:230071デフォルトの名無しさん
2010/09/30(木) 10:39:350072デフォルトの名無しさん
2010/09/30(木) 11:42:04Dim s As String = "20011001"
Dim y As String = s.Substring(0, 4)
Dim m As String = s.Substring(4, 2)
Dim d As String = s.Substring(6, 2)
でいいじゃん
あとで結合するときは、直接やらないでいったんそれぞれInt32.ParseでIntegerに変換して
DateTimeを作ってからToStringでフォーマット使って文字列にした方が応用が利く
0073デフォルトの名無しさん
2010/09/30(木) 11:46:17Dim csvRecords As New ArrayList
While tr.EndOfData
oneLine = tr.ReadFields()
csvRecords.Add(oneLine)
End While
tr.Close()
'最後の行から最初の行へ その1
'csvRecords.Reverse() '要素の順序を反転
'最後の行から最初の行へ その2
For MyRow = csvRecords.Count - 1 To 1 Step -1
Next MyRow
0074デフォルトの名無しさん
2010/09/30(木) 12:44:52結論から言うと>>61の方法は使えない
自分でTextReaderの派生クラス作ってうまく辻褄合わせしてやればできなくはないけど>>61には絶対無理
一行ごとにTextFieldParserを作るとか強引な方法は考えられるけど
ある程度フォーマットの決まったファイルを読むならTextFieldParserなんて使わずに自分で書くのも難しくない
0075デフォルトの名無しさん
2010/09/30(木) 13:04:49007674
2010/09/30(木) 13:29:28全ての行を逆に結合して一つの文字列にしてしまえばTextFieldParser使えるね
0077デフォルトの名無しさん
2010/09/30(木) 14:10:240078デフォルトの名無しさん
2010/09/30(木) 14:14:00やってることは一緒じゃないんじゃね?
列挙は実際の要素(この場合配列に格納されてる実際のinteger値)取得する必要があるけど、
普通のループは要素関係ないぞ(取得/インクリメントするのはループ変数のinteger値)
integer値を取得するってとこだけ見れば同じかもしれんが
前者は配列中の要素を特定する必要があるが後者はその必要が無い
配列だからIEnumeratorすっとばす最適化するってなら差が出ない理由にはなるな
つか>>54の二つのループって同じ処理結果じゃないだろ、これ
0079デフォルトの名無しさん
2010/09/30(木) 15:56:17のような典型的な形の配列アクセスは最適化されるよ
配列専用の特別なIL命令が使われるらしい
VBはどうか知らないけどたぶん一緒
0080デフォルトの名無しさん
2010/09/30(木) 20:05:02質問だけしてトンヅラって感じの悪い野郎だな
0081デフォルトの名無しさん
2010/09/30(木) 20:51:29「String "--" から型 'Double' への変換は無効です。」とエラーが出る
他に文字か数値か判別する方法はないのかな?
0082デフォルトの名無しさん
2010/09/30(木) 21:06:27どの行でエラー出してるか確認してみろ
0083デフォルトの名無しさん
2010/09/30(木) 21:09:01Dim s As String
Do
Dim i As Integer
s = Console.ReadLine()
If s Is Nothing Then
Exit Do
End If
Try
i = CInt(s)
Console.WriteLine(i + 10)
Catch ex As Exception
Console.WriteLine(s)
End Try
Loop
0084デフォルトの名無しさん
2010/09/30(木) 22:27:350085デフォルトの名無しさん
2010/09/30(木) 22:29:190086デフォルトの名無しさん
2010/10/01(金) 01:22:19だよな。
列挙の方は要素からの読み取りで間接的な参照が挟まるlことになる。
0087デフォルトの名無しさん
2010/10/01(金) 08:56:41チェックボックスを出しているDateTimePickerで、
Checkedの変更タイミングで行いたい処理があります。
ValueChangedで実装してみたのですが、
DateTimePicker.Value=Today
DateTimePicker.Checked=True
とした後にチェックボックスを画面上で外すと
ValueChangedが行われません。
Checkedの変更タイミングはValueChangedではないのでしょうか?
0088デフォルトの名無しさん
2010/10/01(金) 13:21:13●VB.NETにて、配列の先頭アドレスを数値に変換するにはどうすればよいのでしょうか?
やりたいことは、waveOutPrepareHeader()に渡すWAVEHDR構造体のlpDataメンバに
波形バッファの先頭アドレスを代入したいのです。
例)
<StructLayout(LayoutKind.Sequential)> Structure WAVEHDR
Dim lpData As Int32
Dim dwBufferLength As Int32
Dim dwBytesRecorded As Int32
Dim dwUser As Int32
Dim dwFlags As Int32
Dim dwLoops As Int32
Dim lpNext As Int32
Dim reserved As Int32
End Structure
Declare Function waveOutPrepareHeader Lib "winmm.dll" Alias "waveOutPrepareHeader" (ByVal hWaveOut As Int32, ByRef lpWaveOutHdr As WAVEHDR, ByVal uSize As UInt32) As Int32
Dim waveBuffer As Byte(BUFFER_SIZE)
Dim waveHdr As WAVEHDR
waveHdr.lpData = waveBufferの先頭アドレス
waveHdr.他のメンバ = 適当に設定
waveOutPrepareHeader(..., waveHdr, ...)
C言語風に書けるなら waveHdr.lpData = (unsigned long)waveBuffer; とやりたいところですが・・・。
よろしくお願いいたします。
0089デフォルトの名無しさん
2010/10/01(金) 14:07:01GCHandle.AllocでGCHandleType.PinnedしておいてAddrOfPinnedObject
その配列がアンマネージで使われなくなったらFreeを忘れずに
あとポインタとかハンドルはInt32じゃなくてIntPtrな
0090デフォルトの名無しさん
2010/10/01(金) 14:17:29<StructLayout(LayoutKind.Sequential)> Structure WAVEHDR
Dim waveBuffer As Byte(BUFFER_SIZE)
Dim dwBufferLength As Int32
:
どうしてもリアルにアドレスを数値化したいなら
固定化なりマーシャリングを自前でやる必要がある。
0091デフォルトの名無しさん
2010/10/02(土) 15:33:06これだと0が代入されてしまいます。
n = 1.0000000015 だと result = "1.00000000"
となるので正規表現は間違っていないよですが、
0だけの文字列を取る方法を教えて頂きたいです。
Dim n As Double
n = 0.0000000015
Dim r As New Regex("(?<1>1\.?0*)\d+")
Dim m As Match
m = r.Match(n)
If (m.Success) Then
Dim result As String
result = m.Groups(1).Value
Console.WriteLine(result)
End If
0092デフォルトの名無しさん
2010/10/02(土) 15:48:3000000000がとれれば良いの?
0093デフォルトの名無しさん
2010/10/02(土) 15:55:131.00000000が取りたいです。
実際には1.・・・・という値が対象になることはないです。いつも0.・・・・・nn・・・
0.00・・・・・nnnで0以外の数字が出るまでの0.000000の部分を取りたいです。
0094デフォルトの名無しさん
2010/10/02(土) 16:02:35nをはじめから文字列にしたらどうなる?
Dim n As String = "0.0000000015"
0095デフォルトの名無しさん
2010/10/02(土) 16:02:40あとそういうのに浮動小数点使うな
Decimal使う
0096デフォルトの名無しさん
2010/10/02(土) 16:04:31Option Strict Onおすすめ
0097デフォルトの名無しさん
2010/10/02(土) 16:06:20勝手に暗黙的な変換がなされるのを防ぐって意味ね
0098デフォルトの名無しさん
2010/10/02(土) 16:09:42Decimalでできました!正規表現もありがとうございます。
String変数に入れると"9E+15"みたいになってしまいました。
Option Strict Onをやったら何箇所か〜〜〜が出ました;
どうもありがと!
0099デフォルトの名無しさん
2010/10/02(土) 16:13:02それは同様のバグがある可能性が極めて高い場所だから修正することをお勧めする
0100デフォルトの名無しさん
2010/10/02(土) 16:20:27string.formatの部分はもっとましなやり方があるかもしれない
Dim n As Double = 0.0000000015
Dim reg As New System.Text.RegularExpressions.Regex("(?<1>.\.0*)\d+")
Dim s As String = String.Format("{0:0.################}", n)
Dim m As System.Text.RegularExpressions.Match = reg.Match(s)
If (m.Success) Then
System.Console.WriteLine(m.Groups("1").Value)
End If
0101デフォルトの名無しさん
2010/10/02(土) 16:32:36誰の言うことが正しいのかの判断は君に任せるが、
Decimal使えっていうのは俺はちょっと論点ずれてると思うよ。
扱う値の範囲にもよるが、普通はDoubleで問題ないし、以下のようなコードを書くべき。
Private Function SomeFunc(ByVal value As Double) As String
Dim regex As New Regex("^(\d*[.]+0*)\d*$")
Dim m As Match = regex.Match(value.ToString("G"))
If m.Success Then
Return m.Groups(1).Value
Else
Return ""
End If
End Function
0102デフォルトの名無しさん
2010/10/02(土) 16:41:48何も考えたくないならDecimalの方がいいよ
浮動小数点はちゃんと理解して使わないと結構普通に予期しない動作するよ
0103デフォルトの名無しさん
2010/10/02(土) 16:46:49WebBrowser上のActiveXのコントロール(テキストボックスなど)にアクセス
できるでしょうか?
0104デフォルトの名無しさん
2010/10/02(土) 17:05:45その中から探してIHTMLObjectを取得すればいいんじゃないの
やったことないから細かいことは知らないしCOMはスレ違い
0105デフォルトの名無しさん
2010/10/02(土) 17:08:02Dim m As Match = regex.Match(value.ToString("G"))
は
Dim m As Match = regex.Match(value.ToString("F20").TrimEnd("0"c))
とかにしないとダメだなw素で何か勘違いしてた。
>>102
>それ正規表現間違ってます
どこが?
>浮動小数点はちゃんと理解して使わないと
むしろちゃんと理解してない奴がやたらとDecimalなぞを使いたがる印象
0106デフォルトの名無しさん
2010/10/02(土) 17:24:08?の間違い?
0107デフォルトの名無しさん
2010/10/02(土) 17:25:59よくそんな知識で人にケチ付けられるな....
0108デフォルトの名無しさん
2010/10/02(土) 17:32:52確かにその量指定子は不適切だったありがと
0109デフォルトの名無しさん
2010/10/02(土) 18:28:24http://profiles.yahoo.co.jp/-/profile/?sp=oGT3BCg1eqGiCHsyTN79KJdc
0110デフォルトの名無しさん
2010/10/02(土) 18:43:23特にマルチスレッドアプリを作ってると、自分の知識が足りない事もあって、改良しようとすると全面作り直しなど泥沼にはまってきます。
こういうのを解決する手法があると思いますが、教えてもらえますか。
0111デフォルトの名無しさん
2010/10/02(土) 18:47:32VBできるならC#→Java→他がおすすめ
0112デフォルトの名無しさん
2010/10/02(土) 19:25:030113デフォルトの名無しさん
2010/10/02(土) 19:33:12オッサンなので他言語に移るのはつらいけど、C#はやってみる価値があるのかな・・・。
0114デフォルトの名無しさん
2010/10/02(土) 19:46:12C#やればVBで「やるべきでないこと」がわかってくる
011588
2010/10/02(土) 21:10:29>>89 >>90
どうもありがとうございました。
まずは>>89の方法でうまく行きました。
次は>>90の方法で試してみたいと思います。
0116デフォルトの名無しさん
2010/10/02(土) 23:10:54vs2003で.net1.1を参照し作成したexe(以降、hoge.exe)を、.net1.1がインストールされていない、
.net2.0以上がインストールされているPCで実行したところ、正常に動作します。
※「正常」と書いていますが、「ザックリと動く」と読み替えてもらってもかまいません。
そこで質問なのですが、hoge.exeはが参照している.netは1.1なのに、
gacに入っている2.0以降の.netライブラリ上で動作するのでしょうか?
もしかして、.net2.0のmachine.configにsidebyside的なことがかいてあるのでしょうか?
0117デフォルトの名無しさん
2010/10/02(土) 23:27:50.NET4だとapp.configに記述されてない限り起動させないだったはずだけど
.NET1.0/1.1の記述だけどこの辺参考に
ttp://www.atmarkit.co.jp/fdotnet/technology/idnfw11_05/idnfw11_05_02.html
0118デフォルトの名無しさん
2010/10/03(日) 09:39:171.1→2.0時の問題を踏まえての変更だからその意味を考えて慎重に
ほかの会社なら100%の互換性と言い切っちゃうところだけどそこはMSらしいというか
0119デフォルトの名無しさん
2010/10/03(日) 10:31:090120デフォルトの名無しさん
2010/10/03(日) 16:41:55どっかの公式ドキュメントで読んだけど、.NET Frameworkのコンポーネントの
インストールパスが変わったら問題が出るアプリケーションが存在する可能性は0ではないとかそんなレベルの話らしい
0121デフォルトの名無しさん
2010/10/04(月) 11:35:15今情報表示するだけのアプリを作っているのですが、
いろんな機種で表示させたいと思っています。
そこで問題になるのが解像度の問題です。
常に最大化して使いたいのですが、小さな機種(800x480に)あわせて作っているので大きな画面だと右と下に大きな余白が出来てしまいます。
全てのラベルや画像を画面いっぱいに広げる方法はないでしょうか?
anchorは使ったのですが、これはラベルの文字が大きくならないため使えませんでした。
何かよい対処がわかる方がおられましたら、アドバイスいただけると助かります。
0122デフォルトの名無しさん
2010/10/04(月) 11:40:47WPFで作れば拡大縮小が自由自在なはず
知らないけど
0123デフォルトの名無しさん
2010/10/04(月) 11:45:15つまりFormだと絶望的だと・・・?
0124デフォルトの名無しさん
2010/10/04(月) 12:02:58そんなのOSのDPI設定でするもんだろ
0125デフォルトの名無しさん
2010/10/04(月) 12:26:06それにあわせて描画すればいいだけちゃうんけ?
0126デフォルトの名無しさん
2010/10/04(月) 12:28:38そのPCでは、そのアプリしか動かさないってことなら
PCの解像度のほうを変えろ
0127121
2010/10/04(月) 12:51:19そんなもんですか
どんな画面でも表示できるのを目指しているんですが
>>125
いろんな設定に対して行うのは結構作業工数がバカみたいになるので・・・
>>126
やっぱりそれがいいんですかね。
ワイド画面で設定しているから4:3の画面で少しおかしくなるのは目を瞑りますかね
0128デフォルトの名無しさん
2010/10/04(月) 13:01:09解像度なんて関係なく作れるし
0129デフォルトの名無しさん
2010/10/04(月) 13:14:35WPFとかDirect3Dとか根本的に修正しないと無理っぽいみたいですね
0130デフォルトの名無しさん
2010/10/04(月) 13:49:58>>いろんな設定に対して行うのは結構作業工数がバカみたいになるので・・・
ん〜と・・・・、そんなに工数多くなるかな?、やろうとしてることがわからんので、ちょとイメージ沸きません
anchorで文字のサイズ以外がうまく言ってるなら
文字サイズだけ自力で変えてやれないの?、それなら工数いらなくない?
0131デフォルトの名無しさん
2010/10/04(月) 14:05:37レスありがとうございます。
元が800x480でアプリ開発してて、それを最大化等で拡大したときに文字を含めた全てを均等に大きくしたいのです。
anchorで大きくできると言っても均等ではなく、とりあえず端からの距離を保ったまま大きくなってる状態で、やりたいこととは違うのです。
それにどんな解像度のマシンで使われるか不明なので、どのくらいのフォントサイズで、どの位置〜というのが明確に決めづらいです。
0132デフォルトの名無しさん
2010/10/04(月) 14:14:17Direct3Dも座標は絶対値じゃなくて比率で指定するし
0133デフォルトの名無しさん
2010/10/04(月) 14:18:04文字は自前でコントロールの大きさ調べてそれに対して何%
みたいな感じでやれば?
もちろん間歇的になるけど
それと両アンカーでやっても違うってこと?
どうしたいのか分かんね
0134デフォルトの名無しさん
2010/10/04(月) 14:18:28まぁ自動計算はしてくれないと・・・
.Netと言えどもなんでもあるわけじゃないんですねw
0135デフォルトの名無しさん
2010/10/04(月) 14:22:520136デフォルトの名無しさん
2010/10/04(月) 14:24:23アンカーって余白の設定ですよね?
相対的に大きくしたいので、余白が絶対的に設定されるだけなので今回やりたいこととは違うんですよ。
要はフォームサイズが大きくなった分、全てのコントロールを相対的に大きくしたいのです。
0137デフォルトの名無しさん
2010/10/04(月) 14:27:070138デフォルトの名無しさん
2010/10/04(月) 14:32:19マックうらやましいれす(^q^)
.NETは透過もままならないですからねorz
0139デフォルトの名無しさん
2010/10/04(月) 14:32:53だから両アンカーにすればいいと言ってるのだが…
アンカー勘違いしてないか?
余白はpaddingだぞ?
0140デフォルトの名無しさん
2010/10/04(月) 14:42:120141デフォルトの名無しさん
2010/10/04(月) 14:47:33いやいやいや、ちゃんと読めよ。どう見てもそれじゃ不足でしょうに
クライアント領域の幅をW、コントロールの幅をwとすると、136がやりたいのは W/w=const で、139だと W-w=const
で、答えはテーブルレイアウト。フォントは知らん
0142デフォルトの名無しさん
2010/10/04(月) 14:51:16両アンカーにしても画像部分しか拡大されないんですが・・・もちろんラベルはautosizeをfalseにしてます
>>140
autosizeはfalseにしてもanchorで両端にくっつけるとラベルだけ大きくなって、フォントまでは大きくならないんです。
>>141
テーブルレイアウト・・・ググってみます!
0143デフォルトの名無しさん
2010/10/04(月) 14:51:47アホか
両アンカーと何度も書いとろうが
0144デフォルトの名無しさん
2010/10/04(月) 14:58:31だからラベルサイズは自動可変するから後はsizechangegedイベントで
フォントを変更すればいいという話
もちろんコントロールによってはアンカーだけではうまくサイズ変更
されないものもあるけど(CheckBoxとかRadioButtonとか)
0145デフォルトの名無しさん
2010/10/04(月) 14:59:390146デフォルトの名無しさん
2010/10/04(月) 15:00:19初めて知った
0147デフォルトの名無しさん
2010/10/04(月) 15:11:09画面全部まとめて1枚絵にしちゃえば?w
0148デフォルトの名無しさん
2010/10/04(月) 15:13:13要はそういうことです。
> 画面全部まとめて1枚絵にしちゃえば?w
それも考えたんですがちょっと無理やりすぎるのでw
他に自分の知らない方法があるのではと思って相談したまでです。
0149デフォルトの名無しさん
2010/10/04(月) 15:13:40textboxどーすんの?って話になるw
0150デフォルトの名無しさん
2010/10/04(月) 15:14:16>>144
それならいけるかもしれませんね。
ちょっと試してみます
0151デフォルトの名無しさん
2010/10/04(月) 15:14:56今回に関してもラベルとグラフコントロールとピクチャボックスくらいなんで大丈夫ですw
0152デフォルトの名無しさん
2010/10/04(月) 15:18:09それも絵として描画するんだよ、縦横比も自由自在だぜ
0153デフォルトの名無しさん
2010/10/04(月) 15:19:37あ、すまん、textboxは、たしかに面倒だw
0154デフォルトの名無しさん
2010/10/04(月) 17:59:32手を動かして、実際に何かを学ぼうと思っていないだろう。
2chで適当な返答返しながら、どんぴしゃな答え、誰かがコード書いて貼ってくれるの待ってるんでしょ。
2chに来る割合をもう少し減らして、開発に時間割けば?
0155デフォルトの名無しさん
2010/10/04(月) 18:03:400156デフォルトの名無しさん
2010/10/04(月) 18:03:56少なくとも言われたことは試してると思うが?
0157デフォルトの名無しさん
2010/10/04(月) 18:04:460158デフォルトの名無しさん
2010/10/04(月) 20:15:26クライアント領域のサイズに比例させる必然性が何もないし、苦労してやっても
気持ちの悪いUIになるだけだよなあ。
昔のネオジオの格闘ゲームじゃないんだからさあ。
VS2010のエディタ部分なんかデバッグ時微妙にフォントサイズが変わるけど、
あれってちょっと気持ち悪いでしょ?
0159デフォルトの名無しさん
2010/10/04(月) 21:31:21やるで
おわったで
と出力されるにもかかわらずディレクトリが出来ません
どうやって調査すれば良いのでしょうか
System.Console.WriteLine("やるで")
Try
System.IO.Directory.CreateDirectory("d:\temp\トップ")
Catch ex As Exception
System.Console.WriteLine(ex.ToString())
System.Console.WriteLine("いきなりディレクトリつくれんです")
End Try
System.Console.WriteLine("おわったで")
0160159
2010/10/04(月) 21:45:33別プロジェクトでコードを作り直しても同じ結果になり悩んでたんですが
ウィンドウを閉じて再度表示させると治りました
エクスプローラのwindowが更新されないとか、
今まで経験したことがなかったのでちょっと驚き
ウィンドウを再表示後は、上の減少は再現しなくなりました・・
0161デフォルトの名無しさん
2010/10/05(火) 14:10:02のようなコードで
1秒間にどれだけ処理(ループ)できるか書いているのですが
妥当ですかね?
0162デフォルトの名無しさん
2010/10/05(火) 14:59:05そのコードだと、ループ内で行ってる処理の中ではたぶん
Console.WriteLineが一番重いので、Console.WriteLineの処理時間を計測してるだけ。
測りたい処理よりもコストのかかる処理をループ内に入れてしまうと何の意味もなくなる。
文字列連結や文字列比較の速度を調べたいのでなければ、
同じ理由で文字列の操作も避ける。GC.Collectも同様。
パフォーマンス計測にはStopwatchクラスを使う。
ループ開始前にStartして終了後にStop。最後に経過時間を出力。
一秒間にどれだけ処理できるか調べたいんだったら最後に一秒当たりに換算すればいい。
0163デフォルトの名無しさん
2010/10/05(火) 15:26:36そのものズバリ Stopwatch クラスですかありがとうございます。
何を計りたいかですが…
1〜15桁の文字列(パス)の生成に掛かる時間を、
調べたいと思っています。
0164デフォルトの名無しさん
2010/10/05(火) 21:26:04StringBuilderを使う
0165デフォルトの名無しさん
2010/10/05(火) 23:58:01実際は末尾の.がないURLに代わってリクエストされるんだけど
対処法おしえてください
0166デフォルトの名無しさん
2010/10/06(水) 00:40:09現状、TcpClientとかSocketとか使うしかないんじゃないかな
0167デフォルトの名無しさん
2010/10/06(水) 22:22:47何行目と指定してテキストを取り出したり、
同じように指定してその部分を置き換えたりしたいのですが、
できるとしたらどんな方法で出来るでしょうか?
0168デフォルトの名無しさん
2010/10/06(水) 22:32:28ファイルの行を置き換えたかったら全部消して書き直せばいい
0169デフォルトの名無しさん
2010/10/06(水) 23:03:49行数が多くて一行あたりの処理が簡単なため一気に何千行の処理を行うことになるのですが
そうなると1行ごとに全部を書き換えるというのは避けた方が良いですよね?
変数に読み込んで処理すれば良いのですが、メモリの占有が大きくなるのと
プログラムが予期しない終了の仕方をした時にせっかく途中まで処理したものが
どこにも記録が残っていないという状態になってしまうので、
ファイルをピンポイントで修正していきたいと思ったのですがそういうアクセスはあまり一般的ではないでしょうか?
0170デフォルトの名無しさん
2010/10/06(水) 23:12:24これ、他人が読んで意味が通じると思う?
0171デフォルトの名無しさん
2010/10/06(水) 23:26:350172デフォルトの名無しさん
2010/10/07(木) 04:43:550173デフォルトの名無しさん
2010/10/07(木) 04:49:23ってばかあっー!
0174デフォルトの名無しさん
2010/10/07(木) 07:49:52>ファイルをピンポイントで修正していきたいと思ったのですが
>そういうアクセスはあまり一般的ではないでしょうか?
一般的うんぬん以前に、ファイルの任意の位置にデータを挿入する事は出来ないので無理。
元々の一行の長さと、書き込もうとする一行の長さが同じなら、その場所だけ上書きすればよい。
一気に何千行も書きかえるなら、一行ずつランダムアクセスするとかえって遅くなるかもよ。
0175デフォルトの名無しさん
2010/10/07(木) 15:16:12StreamReaderで一行ずつ読みながらStreamWriterで平行して書き出せばいい
0176デフォルトの名無しさん
2010/10/07(木) 15:53:02OKWaveのほうにも質問していますが、TransparencyKeyでフォーム中身を透過させて、そのフォームを最大化、そしてまた元のサイズに戻すなど、
一定のサイズ変更操作をすると、フォームのタイトルバーなどがつかめなくなってしまいます。
サイズ変更もできなくなります。
本当に困っています。何か回避方法などをご存じの方がいましたら教えてください。お願いします。
http://okwave.jp/qa/q6233258.html
(マルチみたいで申し訳ないです)
0177デフォルトの名無しさん
2010/10/07(木) 17:59:500178デフォルトの名無しさん
2010/10/07(木) 18:06:110179176
2010/10/07(木) 18:24:20ソースも何も、フォームデザイナで、BackColoerとTransparencyKeyを同一にしただけです。
他の設定は一切いじらずとも、百発百中でなります、
VS2008でも、VB2010 Expressでも。
0180176
2010/10/07(木) 19:03:33こんな感じです。
最大化したっきり、上にあるフォームのタイトルバーがつかめない・・・。
0181デフォルトの名無しさん
2010/10/07(木) 20:04:570182デフォルトの名無しさん
2010/10/07(木) 20:19:18ちなみにWinXPじゃ問題は起きません。Vista以降で、aero有効時にのみ起きるようです。
0183デフォルトの名無しさん
2010/10/07(木) 20:21:500184デフォルトの名無しさん
2010/10/07(木) 20:58:570185デフォルトの名無しさん
2010/10/07(木) 21:12:23aeroがなければ上手くいくのになぁ。。。
0186デフォルトの名無しさん
2010/10/07(木) 21:25:35プロジェクトのプロパティニXPの視覚効果の有効、無効の設定があったと思うけどそれじゃだめ?
うちはvista無いから試せん
0187デフォルトの名無しさん
2010/10/07(木) 21:28:25そのチェック外しても、なんにも変わりませんでした。。。
0188デフォルトの名無しさん
2010/10/07(木) 21:32:13でも下記のコードにしたら固まらなくなったよ
private void Form1_Load(object sender, EventArgs e)
{
//大きさを適当に変更
this.Size = new Size(300, 300);
Bitmap bmp = new Bitmap(1, 1);
Graphics g = Graphics.FromImage(bmp);
g.FillRectangle(Brushes.WhiteSmoke, g.VisibleClipBounds);
//透明にする色
Color transColor = bmp.GetPixel(0, 0);
//画像を透明にする
bmp.MakeTransparent(transColor);
//背景画像を指定する
this.BackgroundImage = bmp;
//背景色を指定する
this.BackColor = transColor;
//透明を指定する
this.TransparencyKey = transColor;
this.TopMost = true;
}
0189デフォルトの名無しさん
2010/10/07(木) 21:33:20OnSizeChangedで前回のWindowStateと違ってればRecreateHandleとか乱暴なことでもする?
0190デフォルトの名無しさん
2010/10/07(木) 21:57:55タイトルバーも境界もどっちも掴めません。。。
>>188
つまり画像を挟むってことですかね?
いまdsiから書き込んでるので、明日VB的文法に翻訳してみたいとおもいます。
0191デフォルトの名無しさん
2010/10/07(木) 22:58:270192デフォルトの名無しさん
2010/10/07(木) 23:30:45仕事はVB.NETで趣味アプリはC#でやってて
今、家だからPCにはC#しか入ってないんだよw
0193デフォルトの名無しさん
2010/10/08(金) 05:47:58ここは何スレだっつの
0194デフォルトの名無しさん
2010/10/08(金) 11:59:10めんどいだろJK
0195デフォルトの名無しさん
2010/10/08(金) 13:45:25VB2010でVBの勉強をしているのですが、
ボタンを押すことによってテキストボックスに入力されている文字をテキストファイルに出力したいのですが
以下のコードではうまくいきません
Dim Writer As New IO.StreamWriter("C:\vb.txt")
Writer.WriteLine(TextBox1.Text)
Writer.Close()
デバッグしてもエラーは出ないし、ボタンを押しても何も起きない状況です
どなたかご教示お願いします
0196デフォルトの名無しさん
2010/10/08(金) 14:02:16http://dobon.net/vb/dotnet/file/writefile.html
じゃだめなの?
0197デフォルトの名無しさん
2010/10/08(金) 14:21:48だめです。
GUIデザイナのプロパティからTranceparecyなどの設定を削除して、フォームリロード時にお示しのコードを実行するようにしましたが、
やはりタイトルバーなどがつかめない状態になりました・・・。
0198デフォルトの名無しさん
2010/10/08(金) 14:29:13>>189じゃダメ?
0199デフォルトの名無しさん
2010/10/08(金) 14:41:21>>189をやると、正常になりますが、最大化したときだけじゃなく、
普通にサイズ変更しただけでもなる場合があるので、いくらかは問題は軽減しますが、全解決とはなりません・・・。
0200デフォルトの名無しさん
2010/10/08(金) 14:43:480201デフォルトの名無しさん
2010/10/08(金) 14:44:46瞬間にチカチカするのは代償と考えてあきらめるしかないですかね。
0202デフォルトの名無しさん
2010/10/08(金) 14:46:510203デフォルトの名無しさん
2010/10/08(金) 14:49:13まぁ、設定で、おかしくなる人ようの設定かなんかをもうけてもいいですし、その辺は臨機応変にやろうと思います。
0204デフォルトの名無しさん
2010/10/08(金) 14:50:17全部うそだよw
0205デフォルトの名無しさん
2010/10/08(金) 14:50:35ファイル名にコロンや垂直タブって無理じゃね?
0206デフォルトの名無しさん
2010/10/08(金) 14:51:31これでできました。ありがとうございました!
0207デフォルトの名無しさん
2010/10/08(金) 14:57:08何とか例の現象は解決(?)いたしました。
リサイズができなくなったときのために一応つけておいたステータスバーも取り払うことができ、
当初意図していたとおりのソフトができそうです。
皆様、アドバイス等ありがとうございました。
0208デフォルトの名無しさん
2010/10/09(土) 23:22:31Next
の中でiを1から100の間で戻したり進めたりするのは何も問題ないでしょうか?
0209デフォルトの名無しさん
2010/10/09(土) 23:25:120210デフォルトの名無しさん
2010/10/09(土) 23:49:26使わないのがいいと思う
0211デフォルトの名無しさん
2010/10/10(日) 22:41:57トンクス
0212デフォルトの名無しさん
2010/10/14(木) 11:32:35プログラミング用語の『スロー』ってどういう意味?(”投げる”とか答える人はまだ地球人)
なんか、こう、イメージの掴める解説ってないのかね
0213デフォルトの名無しさん
2010/10/14(木) 12:34:300214デフォルトの名無しさん
2010/10/14(木) 13:07:36その際のスペースカプセルが例外
0215デフォルトの名無しさん
2010/10/14(木) 15:43:350216デフォルトの名無しさん
2010/10/14(木) 16:20:310217デフォルトの名無しさん
2010/10/14(木) 22:36:51↑こんな感じでどう?
即席で作ってみたけど
0218デフォルトの名無しさん
2010/10/15(金) 01:19:03どこがまずいかご教授お願いします。
必要なファイルは事前に C:\Windows\system32\spool\DRIVERS\W32X86 にコピー済みで、
ファイルをフルパスで指定しても同じ結果になります。
Public Shared Function DriverInstall(ByVal strDriverName As String) As Boolean
Dim di As New DRIVER_INFO_3
With di
.cVersion = 3
.pConfigFile = "ps5ui.dll"
.pDataFile = strDriverName & ".ppd"
.pDependentFiles = "pscript.ntf" & vbNullChar _
& "pscript.hlp" & vbNullChar _
& "ps5ui.dll" & vbNullChar _
& strDriverName & ".ppd" & vbNullChar _
& "pscript5.dll"
.pDriverPath = "pscript5.dll"
.pEnvironment = "Windows NT x86"
.pHelpFile = "pscript5.hlp"
.pMonitorName = String.Empty
.pName = strDriverName
.pDefaultDataType = "RAW"
End With
If AddPrinterDriver(String.Empty, 3, di) = 0 Then
Dim ExcptWin32 As New Win32Exception(Marshal.GetLastWin32Error())
MessageBox.Show(ExcptWin32.Message, "Win32Err", MessageBoxButtons.OK)
Return False
End If
Return True
End Function
0219デフォルトの名無しさん
2010/10/15(金) 01:26:27AddPrinterDriverW を AddPrinterDriverA に変えると、エラーメッセージは「パラメータが間違っています」になります。
Private Declare Function AddPrinterDriver Lib "winspool.drv" Alias "AddPrinterDriverW" _
(ByVal pName As String, _
ByVal Level As Integer, _
ByRef pDriverInfo As DRIVER_INFO_3) As Integer
Public Structure DRIVER_INFO_3
Public cVersion As Long
Public pName As String
Public pEnvironment As String
Public pDriverPath As String
Public pDataFile As String
Public pConfigFile As String
Public pHelpFile As String
Public pDependentFiles As String
Public pMonitorName As String
Public pDefaultDataType As String
End Structure
0220デフォルトの名無しさん
2010/10/17(日) 00:05:450221デフォルトの名無しさん
2010/10/20(水) 16:20:400222デフォルトの名無しさん
2010/10/21(木) 01:16:550223デフォルトの名無しさん
2010/10/21(木) 11:05:07Imports System.Runtime.CompilerServices
Module StringExtensions
<Extension()> _
Public Sub Print(ByVal aString As String)
Console.WriteLine(aString)
End Sub
End Module
同じ要領でenumでも出来るはず、やってみて。
0224デフォルトの名無しさん
2010/10/21(木) 23:34:28なるほど、試してみる
0225デフォルトの名無しさん
2010/10/26(火) 20:28:20この場合バージョン管理ももれなく付いてくるの?
アセンブリバージョン上げたら呼び出し側でエラーが出るんだけど…
対処法としてはバージョン固定にするか、GACに登録してバージョンリダイレクトさせるかって事でOK?
0226デフォルトの名無しさん
2010/10/26(火) 21:57:25>対処法としてはバージョン固定にするか、GACに登録してバージョンリダイレクトさせるかって事でOK?
もしくはconfigファイルでバージョンリダイレクト。
もしくは全ビルド。
0227デフォルトの名無しさん
2010/10/26(火) 21:58:25実はあんまり意味ないよね。
0228デフォルトの名無しさん
2010/10/27(水) 00:18:19これは"呼び出し側exe.config"にバージョンポリシーを記述して配置するイメージですよね?
>実はあんまり意味ないよね。
えw
0229デフォルトの名無しさん
2010/10/27(水) 18:23:08横2列のcsvを二次配列に入れるプログラムが作れません。
field()でテキストをReadlineして
field-Aに二次配列で入れるループを書いてます。
untilのループ内に変数Xを利用すると下記のエラーが出ます
「Exception.InnerException を参照してください。エラー: オブジェクト参照がオブジェクト インスタンスに設定されていません。」
Dim field() As String
Dim field-A(,) As String
Dim reader As New System.IO.StreamReader("field.csv", System.Text.Encoding.Default)
Dim X As Integer
X = 0
Do Until reader.EndOfStream
line = reader.ReadLine()
field = line.Split(",")
field-A = Nothing
field-A(X, 0) = field(0)
field-A(X, 1) = field(1)
X = X + 1
Loop
csvの中身
フィールドA-01,フィールドB-01
フィールドA-02,フィールドB-02
フィールドA-03,フィールドB-03
0230デフォルトの名無しさん
2010/10/27(水) 18:25:30・他にもっと簡単な方法があると思うが浮かばない
・変数Xのuntil内での使い方がおかしいorスコープがおかしいが、原因がわからない
(UNTIL内でX=0とするとエラーが起きないんですがループでリセットするわけにはいかない)
上記2点、わかる方いらっしゃいますでしょうか?
宜しくお願いします。
0231デフォルトの名無しさん
2010/10/27(水) 19:05:03>field-A(X,0)の行でどうもエラーが出るようです。
field-Aを使用する前(Do Loopの前)にあらかじめ2次元配列を作成する
field-A = New String(2, 1) {}
>他にもっと簡単な方法
2次元配列使わないでいいのならListとか使ったほうが楽
>変数Xのuntil内での使い方がおかしいorスコープがおかしい
どうおかしいのか分からない
0232デフォルトの名無しさん
2010/10/27(水) 19:10:21オブジェクト参照がオブジェクト インスタンスに設定されていません。
というエラーが出てフォームも立ち上がらない状態です。
untilの外側で宣言したXがインスタンスオブジェクトと認識されてるとかなんとか
そこまでしか情報がわかりませんでした。
Nothingで解決かと思ったら解決せず。
0233デフォルトの名無しさん
2010/10/27(水) 20:33:20確保するコードを追加しよう。
だけど、行数わかる?ファイル読み込まないと分からないよな?
つまりこの処理に配列は合わない。
随時メモリを拡張してくれるListの方が適切
0234デフォルトの名無しさん
2010/10/27(水) 21:14:070235デフォルトの名無しさん
2010/10/27(水) 21:22:19>えw
あんまり役に立つ場面てないよね、に言いかえよう。
0236デフォルトの名無しさん
2010/10/27(水) 21:43:46ありがとうございます!
配列の最大数を宣言しないとだめなんですね。
Dim field-A(10,2) As String
と数値を入れて宣言したら思い通り動作しました。
それからListが良いということですので使ってみます。
全て解決です。皆さんありがとうございました。
0237デフォルトの名無しさん
2010/10/28(木) 01:54:46配列が向かないのはまあ同意するが
たまには ReDim Preserve の事も...いや、思い出さなくてもいいか
0238デフォルトの名無しさん
2010/10/28(木) 08:22:50msdnによると
ttp://msdn.microsoft.com/ja-jp/library/w8k3cys2(VS.80).aspx
>Preserve を使った初期化。Preserve 修飾子を指定した場合、Visual Basic では、
>既存の配列から新しい配列に要素がコピーされます。
とあるから、結局はコピー、つまり遅いんでしょ?
0239デフォルトの名無しさん
2010/10/28(木) 10:38:43List(Of T)は容量があふれるたびに内部の配列のサイズが2倍になる
同じことを自分でやってもいいけど時間の無駄
0240デフォルトの名無しさん
2010/10/28(木) 12:49:22VB6では桁違いに速い。
0241デフォルトの名無しさん
2010/10/28(木) 19:46:52VB6は内部でListみたいなことをやってるだけ
0242デフォルトの名無しさん
2010/10/28(木) 20:48:49実はその辺自信無くて試したんだけど、10倍ぐらい違ったからそうだろって…
0243デフォルトの名無しさん
2010/10/28(木) 20:52:08なんか物凄く馬鹿っぽいご意見ですいこと....
0244デフォルトの名無しさん
2010/10/28(木) 21:09:43List(Of T)は再割り当て時には現在の倍の容量を確保して新しい領域に現在の要素をすべてコピーする
要素が追加されるたびに再割り当てというような馬鹿なことはしない
0245デフォルトの名無しさん
2010/10/28(木) 22:17:260246242
2010/10/28(木) 23:27:06確かに要素数の増加に伴って拡張に必要な時間が増えますね・・・
にしても.net遅すぎる気が・・・
.netはinteger、VBA(VBが手元に無い為)はlongの一次元配列で、
要素数を0から350000まで1づつ増やすコードをそれぞれで実行した結果、
書くのも恥ずかしいぐらいの差がついちゃいました。
コード間違えたかなぁ・・・
0247デフォルトの名無しさん
2010/10/28(木) 23:45:54ループの中でRedim Preserveしたりするバカが多いから変な最適化してるんじゃないの
0248デフォルトの名無しさん
2010/10/30(土) 00:48:22.NETの場合はメモリ管理上確実に再確保とコピーが必要。
0249デフォルトの名無しさん
2010/10/31(日) 01:26:31変数に代入したいと思っています
Dim BBB As Byte
Dim III As Integer
という宣言で、BBBに「10」と入っている時に、IIIにどうにかして「16」と、10進数に
変換した結果を代入させたいと思っているのですが、どうしたらよいのでしょう?
III = CInt(BBB)とかIII = ToInt16(BBB)とかやってみたのですが、うまくいかず…
ToInt16とかを実行するために、2バイトのバイト列とかにしないとダメなのでしょうか?
0250デフォルトの名無しさん
2010/10/31(日) 01:38:32III=BBB
0251デフォルトの名無しさん
2010/10/31(日) 01:46:55それは何度も試しててムリぽ…と思ってもう一度やってみたら、できました…
ありがとうございました
何でできないって思ったんだろ?
もう寝ます…
0252デフォルトの名無しさん
2010/10/31(日) 07:39:59できなくね?
何か勘違いしてると思われ
16進数というのは16進数表記の事で、中身の数値じゃないよ。
5という数値を表す場合、"5"、"�X"、"五"、"○○○○○"、
といろいろあるが、そのひとつが16進数で、どれもStringで表現される。
III = Convert.ToInt32("10", 16)
が正解。
>III = CInt(BBB)とかIII = ToInt16(BBB)とかやってみたのですが、うまくいかず…
ToInt16の16は16bit整数型(Short)で16進数という意味は無いよ。
0253デフォルトの名無しさん
2010/10/31(日) 10:49:33>10進数に変換し
人間が見えるように出力するときにやるもんだろ
>BBBに「10」と入っている時に
まずここは何進数で「10」のつもりなんだ?
BBBに値を代入したコードはどうなってるんだ
0254デフォルトの名無しさん
2010/10/31(日) 14:57:34単にバイト変数の中身を整数変数に代入したかっただけの話だろ?
0255デフォルトの名無しさん
2010/10/31(日) 20:24:40どの案件みても、C++とかJavaとかC#とかPHPとか
0256デフォルトの名無しさん
2010/10/31(日) 20:28:42どっちかというとVB6上がりでC触れないとかネガティブな理由で使う言語だからね
0257デフォルトの名無しさん
2010/10/31(日) 21:36:47やたら融通の効く所はいいと思うんだけど。
0258デフォルトの名無しさん
2010/10/31(日) 22:45:44Microsoft的には非IT系のGeekなプロフェッショナル向けの言語。
要は会計士とか医師でプログラミングもしちゃうぜ的な人向け。
0259デフォルトの名無しさん
2010/10/31(日) 22:52:280260デフォルトの名無しさん
2010/10/31(日) 22:57:06往々に.net移行が遅れてたりする
0261デフォルトの名無しさん
2010/10/31(日) 23:08:41実際JavaやC#ならVBと変わらん。MSの囲い込みイメージ戦略に騙されてるだけ。
0262デフォルトの名無しさん
2010/11/03(水) 17:01:160263デフォルトの名無しさん
2010/11/04(木) 00:28:54http://hibari.2ch.net/test/read.cgi/tech/1288035953/137
0264デフォルトの名無しさん
2010/11/04(木) 03:23:01急にプログラマーに仕事が決まり、ASP.NETが必要になったのですが、
適当なスレがなかったようなのでマルチになってしまいました。
謝罪をさせていただいた上でまた質問させてください。
みなさんはASP.NETの勉強はどうしてるんですか?
おしえてください。使ってない人もいるかもしれませんが・・
0265デフォルトの名無しさん
2010/11/04(木) 11:05:310266デフォルトの名無しさん
2010/11/04(木) 11:06:54なんでもできるし。
0267デフォルトの名無しさん
2010/11/04(木) 13:30:28時間と金の無駄だ
0268デフォルトの名無しさん
2010/11/04(木) 13:56:280269デフォルトの名無しさん
2010/11/04(木) 16:22:03ただ学歴高い方が発注元に単金を高く請求できるので
0270デフォルトの名無しさん
2010/11/04(木) 16:48:570271デフォルトの名無しさん
2010/11/04(木) 17:20:450272デフォルトの名無しさん
2010/11/04(木) 18:17:440273デフォルトの名無しさん
2010/11/04(木) 18:27:340274デフォルトの名無しさん
2010/11/04(木) 20:51:45自分のサイトを読み込んでリンクさせるてリンクをクリックすると規定のブラウザで開く方法ってありますか?
要はリファラを残したい。。。
0275デフォルトの名無しさん
2010/11/04(木) 21:00:440276デフォルトの名無しさん
2010/11/04(木) 21:04:490277デフォルトの名無しさん
2010/11/04(木) 21:10:54HTTPヘッダだよ
それがわかればどうとでもできることがわかるよ
0278デフォルトの名無しさん
2010/11/04(木) 21:32:250279デフォルトの名無しさん
2010/11/05(金) 11:19:49Visual Studioエディタ内で子ウインドウをキーボードで切り替えるとき、
Ctrl+Tabキーで一覧が表示されますが、ここで
Enterキーまたはマウスでクリックしなくても切り替えられますか?
0280デフォルトの名無しさん
2010/11/05(金) 19:45:34念力でもOK(エスパーなら)
っていうか、何が聞きたいんだ
0281デフォルトの名無しさん
2010/11/05(金) 20:50:48VisualStudio2003proとSqlserver2005developerを持っているのですが、
この組み合わせではADO.NET2.0の機能を使うことはできませんか?
0282test.vb
2010/11/05(金) 21:44:14意味わからないけど
既定のブラウザでURLを開くだけなら
Process.Start("http://example.com/")
0283デフォルトの名無しさん
2010/11/05(金) 23:39:21今までは、オブジェクトというのは変数とメソッドが一緒になった固まりだと思ってました。
しかし、VBのサンプルコードを読むと、
Dim fm As Object
fm = 2.73
という構文が出てきたんですが、どうやらこれはVBでは間違っていないようなんです
fmをオブジェクト宣言したのなら、まずはそこからインスタンスを作って、さらに
インスタンスの変数。つまりfm.hensuu =2.73 みたいな形ならわかるのですが、
いきなりオブジェクトとして数値が宣言されて、いきなり数字が代入されるなんて・・
VBではオブジェクトの意味がJAVAと違うんでしょうか・・おしえてください
0284デフォルトの名無しさん
2010/11/05(金) 23:45:07それJavaでもできるよ(Java5以降)。オートボクシングという。
.NETではボクシングは実行エンジン自体に組み込まれてて、Javaのオートボクシングよりももっと柔軟。
0285デフォルトの名無しさん
2010/11/06(土) 00:07:27JAVAにもあるん・・・なんだかわからない・・
まずはインスタンス化しないと変数は代入できないんじゃなかったけ?
ましてオブジェクトは固有だから、変数がいくつあるかわからないし・・
0286デフォルトの名無しさん
2010/11/06(土) 00:12:25VB(というか.net)にはobject型という型があるんだよもん
つーか入門書ぐらいけちらず買えよ
それかMSDN読むか
Javaと違ってMSDNの日本語化はわりと深い所までちゃんとされてるからいいぞ
0287デフォルトの名無しさん
2010/11/06(土) 00:13:58Object fm;
fm = 2.73;
2行目は省略形で書かれていて、省略せずに書けば次のようになる。
fm = Double.valueOf(2.73);
Double.valueOf(2.73)の処理はボクシングと呼ばれる。
.NETでもこれと同じような処理が自動的に行われている。
これでわかんないならVBと比べる以前にJavaを入門書からやり直すべき。
0288デフォルトの名無しさん
2010/11/06(土) 00:15:33Object型のインスタンスなんて、スレッドの同期オブジェクトが欲しいときぐらいしか作らないよw
0289デフォルトの名無しさん
2010/11/06(土) 00:31:43全てオブジェクトとして扱うのがオブジェクト指向的には自然なんだよ
Javaは設計が古いのでそうなってないが.NETは実際に全部オブジェクトとして扱えるということ
0290デフォルトの名無しさん
2010/11/06(土) 00:36:520291デフォルトの名無しさん
2010/11/06(土) 13:37:13最近のは割とまともにローカライズされて見やすくなったよな
新しく使うクラスとかはとりあえずF1押して概要とかメンバーとか見るのが癖になってる
0292デフォルトの名無しさん
2010/11/06(土) 15:26:46>>287
>>288
>>291
ありがご当皆さん・・勉強してみます・・・
0293デフォルトの名無しさん
2010/11/07(日) 01:58:54注文番号(PK) 都道府県コード 市区町村コード 以下、注文日時とか商品IDとか諸々
・都道府県マスター
都道府県コード(PK) 都道府県名
・市区町村マスター
都道府県コード(PK1) 市区町村コード(PK2) 市区町村名
とこんなテーブルがあったとして、DataGridViewにBindingSourceを設定して、都道府県を
表示させるまでは良いのですが、市区町村に複合キーを投げる方法が分からず。
仕方がないのでテーブルアダプタにWHERE 都道府県コード=@都道府県コードみたいなメソッドを用意して、
データテーブルを取得するようにコードを書いたのですが、もっとスマートなやり方ってないもんですか?
0294デフォルトの名無しさん
2010/11/09(火) 00:22:51http://dobon.net/vb/dotnet/internet/webclientopenread.html
ここの方法でダウンロードは出来たのですが、javascriptがソースコードのままになってしまいます。
javascriptによってhtmlが生成された後のhtmlをダウンロードするにはどうすればいいでしょうか?
0295デフォルトの名無しさん
2010/11/09(火) 01:57:19いい加減、ドボンはもういいよ。
俺なんか、7年前に買ったものを大事に使うあまり、
流行から取り残されていってるんだぞ?
7年以上も続けているドボンを見てるとイライラしてくる。
そろそろ身を引いたらどうなのよ、って。
ドボンはアーカイブ(過去ログ)だけ残して、
後は若い奴らに譲ろうぜ?
若い奴らに新しいVBサイトを構築させていこうぜ。
0296デフォルトの名無しさん
2010/11/09(火) 07:15:460297デフォルトの名無しさん
2010/11/09(火) 09:04:25ディスプレイが省電力モードに移行をしたかを知るために、下記のように作ってみました。
<System.Runtime.InteropServices.DllImport("user32.dll")> Shared Function MonitorFromPoint(ByVal x As Integer, ByVal y As Integer, ByVal dwFlags As Integer) As IntPtr
End Function
<System.Runtime.InteropServices.DllImport("kernel32.dll")> Shared Function GetDevicePowerState(ByVal hDevice As IntPtr, ByVal pfOn As Integer) As Integer
End Function
Public Shared Sub PowerState()
Dim hWnd As IntPtr
Dim Ret As Integer
Dim Pw As Integer
hWnd = MonitorFromPoint(&H0, &H0, &H2)
Ret = GetDevicePowerState(hWnd, Pw)
MsgBox(Pw)
End Sub
こんな感じにやりましたが、ダメでした。
そもそも、ハンドルが取得できない。
何かよい方法はないでしょうか??
0298デフォルトの名無しさん
2010/11/09(火) 10:30:53http://msdn.microsoft.com/ja-jp/library/cc410472.aspx
0299デフォルトの名無しさん
2010/11/09(火) 11:40:35そんなの無理じゃね?
0300デフォルトの名無しさん
2010/11/09(火) 11:54:15javascriptのdocument.writeなどで書き出すhtmlを展開したいと言ってるの?
WebBrowserコントロールにいったん読み込んで、
それのdomから取得すればできるかもしれないな。
0301デフォルトの名無しさん
2010/11/11(木) 10:28:36こんなやり方と
SqlConnection conn = new SqlConnection();
conn.ConnectionString = "接続文字列";
SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
cmd.CommandText = sqlStr;
こっちのやりかた
何が違うのでしょうか。
SqlConnection conn = new SqlConnection("接続文字列");
SqlCommand cmd = conn.CreateCommand();
cmd.CommandText =sqlStr;
0302301
2010/11/11(木) 10:31:21efreedom.com/Question/1-442465/InvalidOperationException-Executing-SqlCommand-Transaction
にスレッド処理でエラーが発生したんだよって報告があったので。
0303デフォルトの名無しさん
2010/11/11(木) 11:50:460304デフォルトの名無しさん
2010/11/13(土) 09:22:420305デフォルトの名無しさん
2010/11/13(土) 21:58:19初歩的なことですみません。
Protected Overrides Sub OnPaint(ByVal e As System.Windows.Forms.PaintEventArgs)
Dim aPen As New Pen(m_BorderColor, 1)
Dim aRect As Rectangle() = {New Rectangle(0, 0, Width - 1, Height - 1)}
e.Graphics.DrawRectangles(m_Pen, m_Rect)
MyBase.OnPaint(e)
End Sub
見た目には実装されているのですが、BorderStyleとは無関係に四角を描いてるだけです。
本来のBorderStyleを拡張するにはどうしたら良いのでしょうか?
0306デフォルトの名無しさん
2010/11/13(土) 22:46:290307デフォルトの名無しさん
2010/11/13(土) 23:38:530308デフォルトの名無しさん
2010/11/13(土) 23:44:18小学生じゃないんだから相手にエスパー能力を期待しているとしか思えないような
質問するなよと。
0309デフォルトの名無しさん
2010/11/14(日) 00:13:24ControlPaint.DrawBorder/DrawBorder3D
0310デフォルトの名無しさん
2010/11/15(月) 01:35:26BindingSourceとTextBoxをバインドしています。
BindingSourceのカレントレコードが変更される際に入力をチェックして、
入力のキャンセルや、レコード移動のキャンセルを行いたいのですが、
どうしたらいいでしょうか。
PositionChangedやCurrentChangedイベントで出来るかと思ったのですが、
これらは移動後に発生するみたいですし。
よろしくお願いします。
0311デフォルトの名無しさん
2010/11/15(月) 13:19:240312デフォルトの名無しさん
2010/11/15(月) 22:51:39意味が分からん
0313デフォルトの名無しさん
2010/11/15(月) 23:13:580314デフォルトの名無しさん
2010/11/16(火) 00:25:02ttp://www.eggheadcafe.com/software/aspnet/30776891/how-to-cancel-bindingsourcepositionchanged-event.aspx
0315デフォルトの名無しさん
2010/11/17(水) 02:34:48どなたか参考になりそうな日本語サイトをご存じないですか?
0316デフォルトの名無しさん
2010/11/17(水) 09:06:22WPFで作ったコンボをVBに読み込むとか。
正攻法は大変だと思う
0317デフォルトの名無しさん
2010/11/17(水) 09:07:200318デフォルトの名無しさん
2010/11/17(水) 21:44:07とあるAPIの関数を呼び出しているんですが
Public Declare Function ADC_SetConfig Lib "AIOUSB" Alias "VBADC_SetConfig" (ByVal DeviceIndex As UInteger, ByRef pConfigBuf As Byte, ByRef ConfigBufSize As UInteger ) As UInteger
これの第2引数、pConfigBuf。ヘルプには以下のような構造体が書かれていました。
' Config 構造体
<SerializableAttribute()> <ComVisibleAttribute(True)> _
Public Structure TUSBAI1616Config
Dim ChannelRange() As Byte
Public Sub Initialize()
ReDim ChannelRange(0 To &HF)
End Sub
Dim CalibMode As Byte
Dim TrigMode As Byte
Dim StartStopCH As Byte
Dim Oversample As Byte
End Structure
この構造体を第2引数のとおり、Byteとして渡したいんですがどう変換したらいいんでしょうか?
AllocHGlobal→StructureToPtrで取得したポインタを渡したら0除算云々と怒られました
3日3晩悩んで試行して解決できず、エロい人知識を貸してください
0319デフォルトの名無しさん
2010/11/17(水) 22:00:14ByRef As TUSBAI1616Config
って定義するだけなんだけど
0320デフォルトの名無しさん
2010/11/17(水) 22:23:02Declareの宣言は勝手に変えるな馬鹿と言われて来たせいもあってか、その発想には至りませんでした。
明日試してみます。
オンラインマニュアル無いと思ってたらありましたので一応
ttp://accesio.com/MANUALS/AIOUSB_API_Reference.html#ADC_SetConfig
※サンプルプログラム(VB6)で使用されていた例
Private Type TUSBAI1616Config
ChannelRange(0 To &HF) As Byte
CalibMode As Byte
TrigMode As Byte
StartStopCH As Byte
Oversample As Byte
End Type
ADC_SetConfig DeviceIndex, Config, ConfigBufSize
これを、.net向けに>>318のように私が構造体を定義しなおしました。
0321デフォルトの名無しさん
2010/11/17(水) 22:49:570322デフォルトの名無しさん
2010/11/19(金) 01:09:46テーブルアダプタの共通化についてサンプルがあるWebサイトかなんかありますか?
0323デフォルトの名無しさん
2010/11/19(金) 20:41:50どうせUpdateメソッドしか使わないからねぇ
0324デフォルトの名無しさん
2010/11/21(日) 21:31:09取得する方法がいまいち分りません
どのようにすれば良いのでしょうか?
0325デフォルトの名無しさん
2010/11/21(日) 21:35:410326デフォルトの名無しさん
2010/11/21(日) 21:48:11以下の方法で取得できました
お騒がせしました
Dim returnValue As String()
returnValue = Environment.GetCommandLineArgs
0327デフォルトの名無しさん
2010/11/21(日) 21:50:47起動時のコマンドライン引数を取得する
ttp://dobon.net/vb/dotnet/programing/commandline.html
@IT:.NET TIPS コマンドライン引数を取得するには?
ttp://www.atmarkit.co.jp/fdotnet/dotnettips/030cmdargs/cmdargs.html
【VB.NET】外部から引数を受け取るプログラムを作成する
ttp://blog.livedoor.jp/akf0/archives/51333101.html
コマンドライン引数の取得
ttp://go2vb.cocolog-nifty.com/blog/2007/04/post_1b46.html
.NET 入門 VB.NET - コマンドライン引数を扱うには... (2)
ttp://itnandemolab.blog70.fc2.com/blog-entry-2364.html
0328デフォルトの名無しさん
2010/11/21(日) 23:22:350329デフォルトの名無しさん
2010/11/21(日) 23:38:350330デフォルトの名無しさん
2010/11/22(月) 09:43:01でぐぐれば出てくるのにマジでぐぐる前にここで
質問してるのか
いい加減にしとけよ
0331デフォルトの名無しさん
2010/11/22(月) 12:43:480332デフォルトの名無しさん
2010/11/23(火) 17:40:40Form2を起動するコードを次の様に記述したのですが
なぜか、Form1が消えません。
※*_Loadイベントだけでは無く*_Shownイベントでも
試したのですが駄目でした。
どうすればForm1を非表示にした状態で、
Form2を起動する事が出来ますでしょうか?
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
' 〜 チェック処理 〜
Dim ins As New Form2
Me.Hide()
ins.Show()
Me.Show()
End Sub
0333デフォルトの名無しさん
2010/11/23(火) 18:00:050334デフォルトの名無しさん
2010/11/23(火) 18:00:250335デフォルトの名無しさん
2010/11/23(火) 18:24:41VB2010でもまだそのまま印刷ってのは実装されてないんだっけ?
サンプル探してもシルバーライトの物しか出てこないから
なにか良いサンプル有ったら教えて欲しい
0336デフォルトの名無しさん
2010/11/23(火) 18:33:20WinFormの話ならEM_FORMATRANGEとか使えば
0337デフォルトの名無しさん
2010/11/23(火) 18:45:54ありがとうございます!!解決しました!!
0338デフォルトの名無しさん
2010/11/23(火) 19:11:24ありがとう
調べてみます
0339デフォルトの名無しさん
2010/11/23(火) 19:35:12Visual Basic .NET または Visual Basic 2005 を使用して RichTextBox コントロールの内容を印刷する方法
http://support.microsoft.com/kb/811401/
0340デフォルトの名無しさん
2010/11/23(火) 20:10:27ありがとう
まるまるコピペしてつかってみます
0341デフォルトの名無しさん
2010/11/25(木) 12:43:06どうやってもできない。
NULL扱いされる。
誰か助けて。
0342デフォルトの名無しさん
2010/11/25(木) 13:00:220343デフォルトの名無しさん
2010/11/25(木) 14:13:11とかでいいよ
0344デフォルトの名無しさん
2010/11/25(木) 15:06:27すみません。補足説明します。
たとえば
Dim A as New Arraylist
For i As integer = 0 To 4
a.Add(i * 10)
TextBox(i).Text = R.ToString ←ここがNull(Nothing)らしい
Next
簡単に配列にできないものでしょうか?
ネットで色々見ましたが、なぜかうまくできません。
初心者だから・・・?
0345デフォルトの名無しさん
2010/11/25(木) 15:15:02Controls("TextBox" & i).Text = R.ToString()
のようにすれば配列にしなくても同じことができる
配列にするには一つずつ配列の要素に自分で代入する必要がある
あとArrayListなんか捨ててList(Of T)使いましょう
0346デフォルトの名無しさん
2010/11/25(木) 15:22:380347デフォルトの名無しさん
2010/11/25(木) 15:24:04それやるくらいなら
Dim TextBoxes() As TextBox = {TextBox1, TextBox2, TextBox3 ...} だろ
0348デフォルトの名無しさん
2010/11/25(木) 15:28:37パフォーマンス的にはTextプロパティの設定に比べれば誤差だしVBでコードの良し悪し議論しても仕方ない
0349デフォルトの名無しさん
2010/11/25(木) 15:33:17パフォーマンスの問題じゃなくてバグの出やすさ
>>345 は「"TextBox" & i)」が実在するかどうか実行時にしか評価されない最悪なコーディングだ。
0350デフォルトの名無しさん
2010/11/25(木) 15:36:170351デフォルトの名無しさん
2010/11/25(木) 15:39:30そんなこと言い出したらArrayList使うのも間違いだし4決め打ちもまずいし
ToStringの()省略も気になる
0352デフォルトの名無しさん
2010/11/25(木) 15:43:13「チェックするIfブロック」も実行時にしか通らないだろ
この手のものは、コーディングミスってもコンパイルで引っかけるように考えてコーディングしないと
0353デフォルトの名無しさん
2010/11/25(木) 15:44:490354デフォルトの名無しさん
2010/11/25(木) 15:48:07コンパイル時には分からないし実行時のエラーすら出ないよ
>>345が良いとは全く思わないが>>347も万全とはいえない
0355デフォルトの名無しさん
2010/11/25(木) 15:52:00Dim A As New Arraylist (個人的には Collection.Genelic 〜 を使いたいが)
Dim TextBoxes() As TextBox = {TextBox1, TextBox2, TextBox3, TextBox4, TextBox5}
For i As integer = TextBoxes.Lbound To TextBoxes.Ubound
a.Add(i * 10)
TextBoxes(i).Text = R.ToString
Next
くらいが最低限だろ
0356デフォルトの名無しさん
2010/11/25(木) 15:58:25多重管理するなというのは基本でしょ
0357デフォルトの名無しさん
2010/11/25(木) 16:02:010358デフォルトの名無しさん
2010/11/25(木) 16:08:04ご教授ありがとうございます。
配列化、できました。
実は配列化したいTextBoxが200個×3種あって
200ずつをTabで切り替えて見られるようにしようとしています。
TextBoxがTab内にあると、この処理がうまくいかないのですが
どういう理由なのでしょうか・・・
0359デフォルトの名無しさん
2010/11/25(木) 16:15:01新手の拷問かよ
0360デフォルトの名無しさん
2010/11/25(木) 16:15:13>>345を使ってるんだろうが、Tab内でうまくいかない理由は、テキストボックスは
フォームではなくてタブコントロールのControlsの中に含まれてるから。
0361デフォルトの名無しさん
2010/11/25(木) 16:21:02コンテナ(フォーム).Controls.Find 〜 で子や孫階層まで Find できるが
そもそも Grid 系を検討すべきじゃないのか?
0362デフォルトの名無しさん
2010/11/25(木) 17:10:06昔と変わってなくて安心した
0363デフォルトの名無しさん
2010/11/25(木) 18:44:510364デフォルトの名無しさん
2010/11/25(木) 18:51:31358です。
やはりTextBox多すぎですよね・・・
200個の測定データを1画面(Form内)で見られるようにしたくて
その表示する場所としててTextBoxを用意しようとしました。
TextBoxよりも良い方法があればよいのですが・・・
たしかにここの住人の方々は皆さんいい方です。
0365デフォルトの名無しさん
2010/11/25(木) 19:13:010366デフォルトの名無しさん
2010/11/26(金) 00:35:56改行判定するためにmodなんて演算子を初めて使ったぐらいだ
0367デフォルトの名無しさん
2010/11/26(金) 06:34:10普通ラベルだろ
で多くなったらListbox(マルチカラム)
もっと増えたらListView
最後はDataGridView
だな、俺なら
0368デフォルトの名無しさん
2010/11/27(土) 13:16:290369デフォルトの名無しさん
2010/11/27(土) 13:22:550370デフォルトの名無しさん
2010/11/28(日) 14:33:59下に配置されたコントロールを隠すようにサイズ拡張されるでしょ
もしかしてFormだったりするのかな?
何となく気になっちゃって
0371デフォルトの名無しさん
2010/11/29(月) 15:42:36どうやったら良いですか?
0372デフォルトの名無しさん
2010/11/29(月) 15:52:06行 = 配列のインデックス / 10
列 = 配列のインデックス Mod 10
で配列のインデックスから行と列を計算するだけ。
バインディングを使いたいならその妙なデータ構造を改めるのが一番簡単だと思います。
0373デフォルトの名無しさん
2010/11/29(月) 17:08:45Dim A As New ArrayList
Dim Table As New DataTable
Dim Row As DataRow
For i As Integer = 0 To 50
A.Add(i) '仮値を入力
Table.Columns.Add(i, GetType(Single))
Table.Rows.Add(A(i))
Row = Table.NewRow
Row(i) = A(i)
Next
DataGridView1.DataSource = Table
何か間違ってるのでしょうか?
もうワケがわかりません。
0374デフォルトの名無しさん
2010/11/29(月) 17:37:12フォームにコンボボックス・ラジオボタンなどを貼り付けて、
Enterキーを押した時フォーカスの移動をするように
KeyPressイベントにコードを書きました。
実行時、フォーカスを示す点線の□枠が出てきません。
Tabによる移動は□枠が出ます。
どなたか対処方法を教えてください。
0375デフォルトの名無しさん
2010/11/30(火) 00:32:070376デフォルトの名無しさん
2010/11/30(火) 09:01:09C++では使えるようなのですがDLLをインポートしようとしても無理でした
0377デフォルトの名無しさん
2010/11/30(火) 10:15:41もしくはC++/CLIでラッパーを書く
前者の方がお勧め
0378デフォルトの名無しさん
2010/11/30(火) 21:42:23ありがとうございます
C++の勉強がてらチャレンジしてみようと思います
0379374
2010/12/01(水) 06:35:33vista , 7 の仕様だったようです。
>375
返答すみませんでした。
0380デフォルトの名無しさん
2010/12/02(木) 05:49:32コントロール名を変数使って指定できないかと前から思ってたんだ
で、プロパティーはそれで変更できるけど
イベントでそういう記述はなんとか出来ないかな?
イメージとしては
Private Sub Control("Label" & i )_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Control("Label" & i ).Click
こんな感じの何かない?
0381デフォルトの名無しさん
2010/12/02(木) 05:53:14Handles Control("Label" & i ).Click の部分です
0382デフォルトの名無しさん
2010/12/02(木) 06:34:080383デフォルトの名無しさん
2010/12/02(木) 08:41:220384デフォルトの名無しさん
2010/12/02(木) 12:15:50AddHandler使うならHandles以下はいらん
0385デフォルトの名無しさん
2010/12/02(木) 18:12:18普通はフリガナがカタカナで返ってくるはずなのですが、あるときから特定のマシン
でだけ全角ひらがなで返ってくるようになってしまいました。
このサンプルを実行しても同じようになってしまいます。
http://www.atmarkit.co.jp/fdotnet/dotnettips/875imeyomi/imeyomi.html
環境の問題なのですが、どんな原因が考えられるでしょうか?
0386デフォルトの名無しさん
2010/12/02(木) 18:42:410387デフォルトの名無しさん
2010/12/02(木) 18:51:420388デフォルトの名無しさん
2010/12/02(木) 23:34:46複数のクラスを記述するのって、可読性が極度に下がって俺は嫌なんだけど、
これって他の開発現場では当たり前?
インターフェース定義クラスみたいな使い方なら納得も出来るんだけど、、、
0389デフォルトの名無しさん
2010/12/03(金) 08:56:34同一ソースの中に書くかな
0390デフォルトの名無しさん
2010/12/03(金) 09:51:250391デフォルトの名無しさん
2010/12/03(金) 11:54:57System.Configuration.ConfigurationException: 構成セクション system.data を認識できません。 (c:\windows\microsoft.net\framework\v1.1.4322\Config\machine.config line 4047)
出るPCと出ないPCがあってどうしたものかと。
0392デフォルトの名無しさん
2010/12/03(金) 14:43:110393デフォルトの名無しさん
2010/12/11(土) 17:42:280394デフォルトの名無しさん
2010/12/11(土) 17:48:09自分で作りましょう
0395デフォルトの名無しさん
2010/12/11(土) 18:06:43ないのかよ
使えねえな
0396デフォルトの名無しさん
2010/12/11(土) 18:14:320397デフォルトの名無しさん
2010/12/11(土) 18:22:30互換性のために残してあるとかなら仕方ねーなと思うが
0398デフォルトの名無しさん
2010/12/11(土) 18:25:370399デフォルトの名無しさん
2010/12/12(日) 15:11:120400デフォルトの名無しさん
2010/12/12(日) 15:17:200401デフォルトの名無しさん
2010/12/12(日) 15:27:15ループさせるんですか?
0402デフォルトの名無しさん
2010/12/12(日) 16:28:410403デフォルトの名無しさん
2010/12/12(日) 17:58:03もう少し詳しく教えてくれると助かります
0404デフォルトの名無しさん
2010/12/12(日) 19:39:44Me.MinimumSize = New System.Drawing.Size(200, 28)
Me.MaximumSize = New System.Drawing.Size(2000, 28)とやっても
何故か縦方向にリサイズ出来るんだけどどうすれば縦方向にリサイズさせないように出来るの
0405デフォルトの名無しさん
2010/12/12(日) 20:36:320406デフォルトの名無しさん
2010/12/13(月) 10:13:39Dim IsFirst() As Boolean
をやめて
Dim IsNotFirst() As Boolean
にする
0407デフォルトの名無しさん
2010/12/13(月) 12:07:35オレだけか?
0408デフォルトの名無しさん
2010/12/13(月) 23:46:56簡単にやるならたとえば以下
Dim img1 As Bitmap = New Bitmap("in.jpg")
Dim st As IO.Stream = New IO.MemoryStream()
img1.Save(st, Imaging.ImageFormat.Gif)
st.Seek(0, IO.SeekOrigin.Begin)
Dim img2 As Bitmap = New Bitmap(st)
img2.Save("out.png", Imaging.ImageFormat.Png)
ただし、この例はハーフトーンパレットのディザ描画になるため、あまりきれいではない
きれいに減色処理するためには色の量子化などの特殊なテクニックを使って頑張る必要があるが、
これに対する .NET の便利なクラスはない
減色、量子化などのキーワードで検索して、参考になりそうなサンプルを探すしかないと思う
また、減色だけでなく、そもそも256色のパレット付き画像の処理自体、.NETではまともなサポートが
ないので、細かなピクセル処理を行うには LockBits/UnlockBits などを使ってピクセルをバッファとして
読みだして処理する必要があるが、これも簡単には説明できないので、いろいろ検索して調べてみて欲しい
0409408
2010/12/14(火) 00:48:59.NET3.0以降だと、
System.Windows.Media.Imaging.GifBitmapEncoder
というクラスが追加されてて、簡単にそれなりの減色結果が得られるようです
一応修正版
Dim src As New System.IO.MemoryStream(System.IO.File.ReadAllBytes("in.jpg"))
Dim enc As New System.Windows.Media.Imaging.GifBitmapEncoder()
enc.Frames.Add(System.Windows.Media.Imaging.BitmapFrame.Create(src))
Dim mem As IO.Stream = New IO.MemoryStream()
enc.Save(mem)
mem.Seek(0, IO.SeekOrigin.Begin)
Dim img As System.Drawing.Bitmap = New System.Drawing.Bitmap(mem)
img.Save("out.png", System.Drawing.Imaging.ImageFormat.Png)
0410デフォルトの名無しさん
2010/12/14(火) 02:11:070411デフォルトの名無しさん
2010/12/15(水) 12:58:43IEの取得はできたのですが、Firefoxのウインドウがうまくいかず、原因がわかりません。
Dim ObjShell As Object
Dim ObjFF As Object
Dim n As Integer
Set ObjShell = CreateObject("Shell.Application")
Set ObjFF = Nothing
Set ObjFF = ObjShell.Windows(0)
Set ObjShell = Nothing
IEをひとつだけ起動させると、Set ObjFF = ObjShell.Windows(0)がうまくいくのですが、
Firefoxの場合、ObjFFがNothingのままになってしまいます。
解決方法等、わかる方がいたら教えて下さい。
宜しくお願い致します。
0412デフォルトの名無しさん
2010/12/15(水) 13:02:080413デフォルトの名無しさん
2010/12/15(水) 13:07:310414デフォルトの名無しさん
2010/12/15(水) 21:36:40http://hibari.2ch.net/test/read.cgi/mac/1291602001/
詳しい奴、ちょっと↑きてくれ
0415デフォルトの名無しさん
2010/12/16(木) 19:16:060416デフォルトの名無しさん
2010/12/16(木) 19:27:370417デフォルトの名無しさん
2010/12/16(木) 20:03:580418デフォルトの名無しさん
2010/12/18(土) 01:19:39しているのですが法則がわかりません。
RGB値で(0.0.255)の場合16776961と変換され≒256^3に
なってしまいます。AARRGGBBと並べるのであれば
青の変換値は255になると思うのですが違うのですか?
0419デフォルトの名無しさん
2010/12/18(土) 09:11:2616進で表示すればもっとわかりやすい
0420デフォルトの名無しさん
2010/12/18(土) 09:36:1516進ならFF0000FFなので4278190335になってしまうんでしょうか?
0421デフォルトの名無しさん
2010/12/18(土) 11:04:13RGBも0からはじまるので
(0.0.255)も実は
0〜254なので
254を変化すればよろしい
0422デフォルトの名無しさん
2010/12/18(土) 17:27:5816776961じゃなくて-16776961だろ?
アルファ値が255なら符号ビットが1で負になる
直感的にわかりやすい値が欲しければConvert.ToUInt32で直接変換してみればいい
0423デフォルトの名無しさん
2010/12/20(月) 17:22:48おすすめのマニュアルをご存知ないでしょうか?
0424デフォルトの名無しさん
2010/12/20(月) 20:26:420425デフォルトの名無しさん
2010/12/20(月) 20:35:370426デフォルトの名無しさん
2010/12/21(火) 13:43:490427デフォルトの名無しさん
2010/12/21(火) 18:43:150428デフォルトの名無しさん
2010/12/22(水) 01:18:190429デフォルトの名無しさん
2010/12/22(水) 04:06:45Public i as integer
と書いても
Form2でiを使えないんだけど
0430デフォルトの名無しさん
2010/12/22(水) 13:17:55Sharedはいらないのか
どんなエラーが出てんのか
0431デフォルトの名無しさん
2010/12/22(水) 18:32:48Form1からForm2.Show
したもの
0432デフォルトの名無しさん
2010/12/22(水) 23:17:170433デフォルトの名無しさん
2010/12/23(木) 03:22:080434デフォルトの名無しさん
2010/12/23(木) 10:25:30Form1.iで参照できる かもしれない
>>432
バージョンとかにもよるが、VBには既定のインスタンスってのがあってな
ユーザがインスタンス作成しなくても、勝手に作成されて参照できるインスタンスがあるんだ
本来なら>>432の言うようにForm1のインスタンスへの参照もってないとダメなんだが
Form1だけでForm1の既定のインスタンスを参照できたりするんだ
まあ、既定のインスタンス使うようなコードは書くべきではないと思う
0435デフォルトの名無しさん
2010/12/23(木) 10:50:13VBにあってC#に無い機能のほとんど全部じゃん
0436デフォルトの名無しさん
2010/12/23(木) 11:17:51既定のインスタンス使ってたら >>429 は発生してないと思う
0437デフォルトの名無しさん
2010/12/23(木) 12:10:50規定のインスタンスはVB6時代から悪者扱いされてたと思うけど。
0438デフォルトの名無しさん
2010/12/23(木) 14:35:09>>429が何をどうして使えないっていってるかわからんからな
だからForm1.iで参照って書いてある
>>437
.netで1回廃止しようとしたんだけどな
いきなり廃止するんじゃなくて、使うか使わないか選べるようにしといて
その次ぐらいで廃止すればよかったのにな
0439デフォルトの名無しさん
2010/12/23(木) 15:18:28ルールを逐次変更するなんて最悪のやり方。
0440デフォルトの名無しさん
2010/12/23(木) 15:22:27オブジェクト指向的に良くないというような考えを持ち込むんだったらそもそもVBなんかいらん
0441デフォルトの名無しさん
2010/12/23(木) 23:42:53http://www.amazon.co.jp/Microsoft-Visual-Studio-Professional/dp/B003LTZ1VA/ref=pd_sim_b_6
これ買っておけば一応問題ない?
0442デフォルトの名無しさん
2010/12/23(木) 23:47:200443デフォルトの名無しさん
2010/12/23(木) 23:59:260444デフォルトの名無しさん
2010/12/24(金) 06:35:35vb6
2002
2003
2005
2008
2010
と何回も買わなければならないのでそろそろ考えねば
0445デフォルトの名無しさん
2010/12/24(金) 07:49:070446デフォルトの名無しさん
2010/12/24(金) 11:10:130447デフォルトの名無しさん
2010/12/24(金) 11:18:580448デフォルトの名無しさん
2010/12/24(金) 11:44:45> Form1に
> Public i as integer
> と書いても
> Form2でiを使えないんだけど
手抜きしとらんでプロパティでやりとりしろよ
0449デフォルトの名無しさん
2010/12/24(金) 12:45:58それを言い出すと、フォームのインスタンスをそのまま子フォームに渡すのも、結合が強くなるので悪い手抜きだし
フォームに貼ってあるテキストボックスをむやみに他のクラスに渡したりプロパティで公開したりするのも
フォームの実装をさらけ出してて良くないよ
0450デフォルトの名無しさん
2010/12/24(金) 13:01:54手抜きはいいとしても・・・
インスタンス化してない可能性のが高くないか?
0451デフォルトの名無しさん
2010/12/24(金) 14:26:38VBだからとか、お前アホだろ
0452デフォルトの名無しさん
2010/12/24(金) 14:29:35ここでクダ巻いてるのは VC++ 使いか?
0453デフォルトの名無しさん
2010/12/24(金) 14:29:54気楽に行こうぜ
0454デフォルトの名無しさん
2010/12/24(金) 14:37:19どうせ今練習で書いてるものなんて慣れた後で必ず全部捨てて書き直すことになるんだから
0455デフォルトの名無しさん
2010/12/24(金) 20:34:510456デフォルトの名無しさん
2010/12/24(金) 21:11:26ちょっとしたCSVのデータを加工する案件があったんだけど
まさにうってつけの機能だと感じたよ
0457デフォルトの名無しさん
2010/12/24(金) 21:22:23生活がかかってるんだぜ
0458デフォルトの名無しさん
2010/12/24(金) 21:31:47スペルが全然違うのは何か理由が?
0459デフォルトの名無しさん
2010/12/24(金) 21:54:290460デフォルトの名無しさん
2010/12/25(土) 19:46:17以下のコードを実行して、Button1をクリックすると、
画面の左上にタイトルバーの未表示されるんですが、
何か間違ってるんでしょうか?
user32.dllはデフォルトで用意されているんですよね?
OSはWindowsXP、
開発環境はMicrosoft Visual Basic 2008 Express Edition SP1 です。
詳しい方よろしくお願いします。
Public Class Form1
Public Declare Function SetWindowPos Lib "user32" _
(ByVal hwnd As Long, ByVal hWndInsertAfter As Long, _
ByVal X As Long, ByVal Y As Long, _
ByVal cx As Long, ByVal cy As Long, _
ByVal wFlags As Long) As Long
Private Sub Button1_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Button1.Click
SetWindowPos(Me.Handle, -1, 100, 100, 500, 500, &H40)
End Sub
End Class
0461デフォルトの名無しさん
2010/12/25(土) 21:20:080462デフォルトの名無しさん
2010/12/25(土) 21:25:590463デフォルトの名無しさん
2010/12/25(土) 21:59:11タイトルバーのみ表示の間違いです。
>>462
最終的には、別exeで表示されているウィンドウを常に最前面に表示させたいんです。
こんな感じで
Dim hWnd As IntPtr = FindWindow(Nothing, "別ウインドウのタイトル")
If Not hWnd.Equals(IntPtr.Zero) Then
SetWindowPos(hWnd , -1, 100, 100, 500, 500, &H40)
End If
それで、まず自分自身のフォームで試したら、
TopMostにもならずタイトルバーしか表示されない状態で左上に描画されてしまうんです。
どなたか助言お願いします
0464デフォルトの名無しさん
2010/12/25(土) 22:03:070465デフォルトの名無しさん
2010/12/25(土) 22:48:410466デフォルトの名無しさん
2010/12/26(日) 00:33:070467デフォルトの名無しさん
2010/12/26(日) 02:40:32引数LongってVB6のやつでしょw
0468デフォルトの名無しさん
2010/12/26(日) 09:11:21別の実行ファイルを常に最前面にしたいなら、そっちに制御任せりゃいいんだよ
0469デフォルトの名無しさん
2010/12/26(日) 09:42:56Public Class Form1
Public Declare Function SetWindowPos Lib "user32" _
(ByVal hwnd As Integer, ByVal hWndInsertAfter As Integer, _
ByVal X As Integer, ByVal Y As Integer, _
ByVal cx As Integer, ByVal cy As Integer, _
ByVal wFlags As UInteger) As Boolean
Private Sub Button1_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
SetWindowPos(Me.Handle, -1, 100, 100, 500, 500, &H40)
End Sub
End Class
0470デフォルトの名無しさん
2010/12/26(日) 10:21:56フォームデザイナが生成するコントロールのアクセス修飾子デフォルトでPrivateにする方法を教えて欲しいです
ウザ過ぎて死にそう
0471デフォルトの名無しさん
2010/12/26(日) 10:41:23全部選択してPrivate指定するしかないと3年前のこのスレの質問が出てきた
誰に合わせた仕様なんだよこれ
まぁ分かってるけど
0472デフォルトの名無しさん
2010/12/26(日) 13:02:11>>469
ありがとうございます!
VB6の構文を使っていたんですね、引数の型を直したらうまく動きました。
>>468
AppActivateの存在を知りませんでした。
調べてみます。
0473デフォルトの名無しさん
2010/12/26(日) 13:18:25気持ちは分かるけど、Formで外から呼ぶパブリックメンバなんてせいぜいShowかShowModalぐらいなんだから
インテリセンスに余計なものが表示されても普通は事実上そう困らないはずだと思うけど。>Modifierの件
0474デフォルトの名無しさん
2010/12/26(日) 14:55:29469の場合、HandleはIntPtr型を返すから変換するか宣言のhwndをIntPtr型にした方がいい
それとOption StrictはOnにするクセ付けたほうがいい
0475デフォルトの名無しさん
2010/12/26(日) 18:08:38intSum = intSum + i
i = i +1
Next
0〜100までの足し算の結果がバグってるけどなぜ
0476デフォルトの名無しさん
2010/12/26(日) 18:14:35i = i +1がいらないんじゃ。
それかintSumの初期値が0以外とか。
0477デフォルトの名無しさん
2010/12/26(日) 18:21:140478デフォルトの名無しさん
2010/12/26(日) 20:31:530479デフォルトの名無しさん
2010/12/26(日) 20:37:120480デフォルトの名無しさん
2010/12/26(日) 20:37:21intSum = 0
For i = 0 To 100
intSum += i
Next
0481デフォルトの名無しさん
2010/12/26(日) 20:39:450482デフォルトの名無しさん
2010/12/28(火) 18:08:04クリックした瞬間に最小化や移動→マウスの位置を取得→その位置のウィンドウを左(右)クリック→またウィンドウを元に戻す
ということはAPIというものでできるようなのですが、他に簡単な方法は無いでしょうか
具体的にやりたい事は、デスクトップに時計や画像を少し透過で表示させるけど、
作業の邪魔にはならない・・そんな物を考えています
よろしくお願いします。
0483デフォルトの名無しさん
2010/12/28(火) 19:36:29C++でWin32API使ってやってるサンプルを見つけたのなら
それを移植しましょう
0484デフォルトの名無しさん
2010/12/28(火) 20:40:12マウスが乗った時点で裏に回るとか移動して逃げるってのならどう?
0485デフォルトの名無しさん
2010/12/28(火) 20:45:060486デフォルトの名無しさん
2010/12/29(水) 02:50:10>>483
考えついたものを調べたらAPIであったというレベルなので・・C++も面白そうですね。やってみようかな
>>484
おー、なるほど、そんなてもあるんですね
ttp://www.gizcollabo.jp/vbtomo/log/archive/vbqanda_4324_2.html
でイケそうですね
>>485
こんなことができるんですね!DeleteObjectですか、知りませんでした。ありがとうございます
0487デフォルトの名無しさん
2010/12/29(水) 14:34:53これで実現できるんじゃない?
ttp://msdn.microsoft.com/ja-jp/library/ms997507.aspx
>ヒット テスト
>レイヤード ウィンドウのヒット テストは、ウィンドウの形状と透明度に基づいています。これは、色分けされているウィンドウの領域やアルファ値がゼロの領域は、マウス メッセージが透過することを意味します。
>レイヤード ウィンドウが WS_EX_TRANSPARENT 拡張ウィンドウ スタイルを持つ場合、レイヤード ウィンドウの形状は無視され、マウス イベントはレイヤード ウィンドウの下の他のウィンドウに渡されます。
0488デフォルトの名無しさん
2010/12/29(水) 14:45:080489デフォルトの名無しさん
2010/12/29(水) 18:03:00グローバルフックせんといかんのか
0490デフォルトの名無しさん
2010/12/29(水) 19:56:04ポインタがフォームの範囲内ならその座標を中心に
適当な色でFillEllipse
その色をMakeTransparent
そのビットマップを表示
で出来たよ
あ、ただそれを抑制する手段作っておかないと一切操作
出来なくなるからねw
0491デフォルトの名無しさん
2010/12/29(水) 19:57:410492デフォルトの名無しさん
2010/12/29(水) 20:49:00ソースコードください
0493デフォルトの名無しさん
2010/12/29(水) 20:52:41調べて試せよ
0494デフォルトの名無しさん
2010/12/29(水) 21:55:24青いトコは壁紙
ttp://www.gazo.cc/up/23223.jpg
0495デフォルトの名無しさん
2011/01/01(土) 12:47:46今更だけど、下記で参照できる。
My.Forms.form1.i (iがpublic宣言)
もちろん、iはコントロールのオブジェクト名でも参照できる。
たとえば、
My.Forms.Form1.TextBox1.Text というような感じです。
0496デフォルトの名無しさん
2011/01/01(土) 20:02:080497デフォルトの名無しさん
2011/01/01(土) 20:07:490498デフォルトの名無しさん
2011/01/01(土) 20:10:31そんなに気にすることじゃないが、select caseの方が一般に処理が速くなる(可能性がある)
0499デフォルトの名無しさん
2011/01/01(土) 20:24:170500デフォルトの名無しさん
2011/01/01(土) 22:50:27>select caseの方が一般に処理が速くなる(可能性がある)
どういう意味?
IfもSelect Caseも全く同じパフォーマンスになると思うけど
VB6ならまだしも、VB.NETからは短絡評価できるようになったわけだし
全く変わらなくなったと思うけど、ILだと結果が異なってたりするの?
具体的な例を挙げて欲しいんだけど
0501デフォルトの名無しさん
2011/01/01(土) 22:53:10だとしたら分岐が多い場合は単純ifより速くなると思うけど
0502デフォルトの名無しさん
2011/01/01(土) 23:25:530503デフォルトの名無しさん
2011/01/01(土) 23:37:540504デフォルトの名無しさん
2011/01/01(土) 23:40:390505デフォルトの名無しさん
2011/01/02(日) 07:47:43ttp://homepage1.nifty.com/rucio/main/dotnet/Samples/Sample033ConnectSQLServer.htm
に書かれているようにやっても
ステップ イン: 非ユーザー コード 'WindowsApplication1.My.MyApplication.New' をステップ オーバーしています
のようなエラーがたくさん出てできません。
これはどういう意味でしょうか?
どのようにすればよいですか?
現在 VBでデータソースとして接続はできました。
その際ユーザーインターフェースとマルチアクティブリザルトセットを
変更したのですが、関係ありますでしょうか?
長文で申し訳ないですがよろしくお願いいたします。
0506デフォルトの名無しさん
2011/01/02(日) 09:48:55do loop
exit do
loop
A
loop
B
はAとBのどこえジャンプかしら
0507デフォルトの名無しさん
2011/01/02(日) 11:45:33Else if function()=yy
と羅列していくとpgm上は分岐の数だけ演算を行うのでしょうか?
0508デフォルトの名無しさん
2011/01/02(日) 15:26:57ILにコンパイルする段階では何度も呼ばれる状態のまま。
ILからJITされる段階で関数にI/Oやその他の作用がないかどうか、
毎回同じ値を単純に返すだけの関数かどうかを検査して、
まとめても問題ないようなら最適化される。
0510デフォルトの名無しさん
2011/01/02(日) 15:43:51話が噛み合ってない気がする....
>>507はたぶんそんな高尚なことは聞いてない。
0511デフォルトの名無しさん
2011/01/02(日) 15:45:44いや、当たり前だがElseまたはElseIf以降の式は対応するIfで評価された値が
Falseの時しか実行されないって。
そうでなきゃ怖くて使えるか。
0512507
2011/01/03(月) 15:28:15If a=100
else if functionA(a,b,c)=100
else if functionA(a,b,c)=50
Else
Endif
(functionは値渡しで他の変数の数値を変える事はないものとする)
という文をかいて、functionA()が1回につき計算が10秒かかった時に
最後のelseに到達するまで10+a秒かかるのか20+a秒かかるのか知りたかったのですが、
回答はJITcompilerで決定されるとのことでした。
最適化されるならどの様に書いても問題はないのでしょうが、
Functionが1回実行か2回実行されるかをプログラマが制御できない様な文章は
書くべきではないなと思っただけです。
直前にif文だけの為に dim a as integer, a=functionA(a,b,c)としてaをif文で評価するのって
あまり美しくない気がしていまして、、、。
0513デフォルトの名無しさん
2011/01/03(月) 16:59:21なんでやってみないんだ。
Visual Basic 2010 Express もインストール出来ないのか?
0514デフォルトの名無しさん
2011/01/03(月) 20:32:21>あまり美しくない気がしていまして、、、。
>else if functionA(a,b,c)=100
>else if functionA(a,b,c)=50
俺から見りゃ、こんな書き方する方がよっぽど美しくないし無駄にしか思えないわ。
0515デフォルトの名無しさん
2011/01/03(月) 20:33:28Else
Dim aa as integer = functionA(a,b,c)
if aa=100
else if aa=50
EndIf
Endif
これじゃダメなのか
0516デフォルトの名無しさん
2011/01/03(月) 21:13:38SelectCaseならまだしも、ElseIfで逐次実行して連続評価とか
センスなさすぎ
0517デフォルトの名無しさん
2011/01/04(火) 01:57:23その段階で最適化されるなら、最適化オンオフ制御できない気がするんだが
もし最適化されることによる弊害がでたらどうするんだ?コード修正しかないのか
最適化するかどうかはコンパイルオプションとかで制御できるのが普通だと思うんだが
>>508のあたり詳しく説明してるところとかあったら教えてくれ
0518デフォルトの名無しさん
2011/01/04(火) 02:03:350519デフォルトの名無しさん
2011/01/04(火) 11:06:44インライン展開なんかもJIT
JITの最適化のONOFFは実行時のオプションや属性などで決まる
0520デフォルトの名無しさん
2011/01/04(火) 14:46:15https://www.miraiz.bz/Template/Index/
にあるテンプレートを一括してダウンロードしたいのですが、可能でしょうか?可能なら誰か作ってくれませんか?
0521デフォルトの名無しさん
2011/01/04(火) 15:23:41>可能かどうか
出来る
>可能なら誰か作ってくれませんか?
スレ違い つうかベンチャーやる気か知らんが甘えるな
ページのリンク抽出して拡張子を条件にしてファイルダウンロードするようなやついくらでもあるだろ
それくらい探してみれば?
0522デフォルトの名無しさん
2011/01/04(火) 15:27:58> ページのリンク抽出して拡張子を条件にしてファイルダウンロードするようなやついくらでもあるだろ
> それくらい探してみれば?
それでは無理なので、相談させて頂いています。
尚、ベンチャーやる気はありません。
今後の様々な応用の為のプログラミングの勉強にもなるとも思っての相談です。
だいぶ前にwshで単純なwebページダウンロードを行うプログラムを組んだ事があったのですが、それもどこかに失ってしまいました。
0523デフォルトの名無しさん
2011/01/04(火) 15:50:42貴方の相談は作ってもらうことですか?
0524デフォルトの名無しさん
2011/01/04(火) 16:41:411つずつ質問したり調べたりするよりも合理的に、最も勉強にもなると私は思っていますが。
0525デフォルトの名無しさん
2011/01/04(火) 17:09:290526デフォルトの名無しさん
2011/01/04(火) 23:49:22何の会社かしらんけど、減価償却費シュミレーションとか恥ずかしすぎるw
0527デフォルトの名無しさん
2011/01/04(火) 23:59:23いきなり参考書の答えみて勉強になるとでも重ってんのかよ
0528デフォルトの名無しさん
2011/01/05(水) 13:34:32あまり程度は良く無いという事でしょうか?
>>527
教師有り学習ではそうなりますが、私の様な教師無し学習ではそうとは限りません。
学生時代から他の人のソースで勉強してきましたので。
> いきなり参考書の答えみて勉強になるとでも重ってんのかよ
なりますよ。
15秒わからなければ答えを見ろという和田秀樹さんの数学の学習法の書籍なんかも参考にどうぞ。
教師無し学習で仮説実験的思考回路を養うとすごい勢いで学習できる脳になります。。。という話はスレチなのでおいときますが、
自分の思っている事が全てだと思わないことです。
0529デフォルトの名無しさん
2011/01/05(水) 15:09:11そうした場合どうするんだろね。この手の人は?
「くれ!!!」って大声で叫ぶエネルギーがあったら、自分で調べたらいいのに。。。
0530デフォルトの名無しさん
2011/01/05(水) 15:39:09> 答えがない問題のほうが世の中には多いよ。
本題と無関係の仮定を出して逃げる、、、どこぞのガイドラインのまんまだな
0531デフォルトの名無しさん
2011/01/05(水) 15:42:03調べる能力にしろ、作る能力にしろ
0532デフォルトの名無しさん
2011/01/05(水) 15:49:27どうぞ。
この情報の組み合わせだけで十分可能です。
どうぞ組み合わせておつくりください。
http://www.google.co.jp/search?hl=ja&source=hp&q=C%23+WEB%E3%83%9A%E3%83%BC%E3%82%B8%E3%82%92%E5%8F%96%E5%BE%97&btnG=Google+%E6%A4%9C%E7%B4%A2&aq=f&aqi=&aql=&oq=&gs_rfai=
http://www.google.co.jp/search?hl=ja&source=hp&q=C%23+HTML%E3%80%80%E8%A7%A3%E6%9E%90&btnG=Google+%E6%A4%9C%E7%B4%A2&aq=f&aqi=g1g-m1&aql=&oq=&gs_rfai=
http://www.google.co.jp/search?hl=ja&source=hp&q=C%23+%E3%83%80%E3%82%A6%E3%83%B3%E3%83%AD%E3%83%BC%E3%83%89&btnG=Google+%E6%A4%9C%E7%B4%A2&aq=f&aqi=g1g-m1g-r2g-mr6&aql=&oq=&gs_rfai=
0533デフォルトの名無しさん
2011/01/05(水) 15:53:56間にユーザ名とパスを入力するフォームがある
0534デフォルトの名無しさん
2011/01/05(水) 16:02:16そうですか
ではこれでどうぞ
http://www.google.co.jp/search?hl=ja&source=hp&q=C%23%E3%80%80%E8%87%AA%E5%8B%95%E3%83%AD%E3%82%B0%E3%82%A4%E3%83%B3&aq=f&aqi=g1&aql=&oq=&gs_rfai=
0535デフォルトの名無しさん
2011/01/05(水) 16:12:440536デフォルトの名無しさん
2011/01/05(水) 16:48:25開発環境:VB2008 Express
OS:XP pro SP3
フォームアプリで他のWindowにフォーカスを移さない、という制御は可能でしょうか。
FormイベントのLostFocusの中で、Me.Activate() しても上手く行きません。
MSではあまりLostFocus使うなみたいな記述もあり、
別な方法があるのかと思いましたが見つかりませんでした。
何かヒントだけでも教えて頂けるとありがたいです。
よろしくお願いします。
0537デフォルトの名無しさん
2011/01/05(水) 17:46:30まんま答えがあるじゃねぇかwww
わざわざ答えるようなもんでもない
ログインして
WEBページのリンク抽出して
ダウンロードする
たったこれだけだろ?
0538デフォルトの名無しさん
2011/01/05(水) 18:40:180539デフォルトの名無しさん
2011/01/05(水) 19:23:050540デフォルトの名無しさん
2011/01/05(水) 20:30:340541デフォルトの名無しさん
2011/01/05(水) 22:14:000542デフォルトの名無しさん
2011/01/06(木) 09:05:28無理じゃないか?
ユーザーエージェントとかその辺使うんだと思うけど
0543デフォルトの名無しさん
2011/01/06(木) 10:22:05�@Form1.Load の後に Form1.Shown が発生するように
同一フォーム内の特定の関数が終了したことを条件として関数を起動させる方法は存在するのでしょうか?
現在 Hide で隠したフォームを
AddHandler 【別フォームが閉じた時】, AddressOf 【フォーム表示関数】
という記述で表記し、【フォーム表示関数】内でフォームの更新と表示を行っています。
この更新が非常に遅いので、先にフォーム表示のみを行い、その後更新が出来ないものかと考えています。
�Aまた、更新に際してループ処理を行っているのですが、 「X件完了しました」 というアナウンスを
【Xを示すテキストボックス】.Text = 【現在処理した項目数(=ループカウンタ)】(処理Xとする)
という形で行おうとした所、処理が完了するまでフォームが表示されないため、途中経過が見れずに
アナウンスの体を成しませんでした。
フォームの先表示とともに、処理Xに関しては更新処理中も即表示させることで
『フォームはすぐ表示され、更新中も現在の更新件数が随時表示される』
という機能が実現できるのかなぁ、と考えています。
そもそも発想が間違っている、もっと良い手段があるなどアドバイス頂けると嬉しいです。
0544デフォルトの名無しさん
2011/01/06(木) 10:25:010545デフォルトの名無しさん
2011/01/06(木) 10:43:500546デフォルトの名無しさん
2011/01/06(木) 11:09:07純粋なマルチスレッドよりも
>>544がウヌヌメ
0547sage
2011/01/06(木) 11:18:54>544 さん
早速ぐぐってみましたが、非常にそれっぽい文章が見つかり大喜びです。
現在、必死に内容を解読中です。
最後に DataGridView の表示を更新しようとすると有効でないスレッド間操作って怒られる・・・。
>555 さん
544さんのように、表の処理と BackgroundWorker の裏処理でマルチって事ですかね?
理解に誤りがあったらごめんなさい。
多分�Aの進捗アナウンスも検索時に出てきた ProgressChanged あたり調べれば対応できそうなので、
DataGridView の更新手段と BackgroundWorker の理解に取り組んでいます。
取り急ぎお礼のみ
0548デフォルトの名無しさん
2011/01/06(木) 11:20:51入れ違いですがアドバイスありがとうございます。
やりたい事はこれっぽいので、苦戦中です。
・・・sageさんとか>とかなにこれはずかしい。
0549デフォルトの名無しさん
2011/01/06(木) 12:01:21これはどういうこっちゃ?
察するに
1.データを取得
2.データをDataGridViewに表示
3.編集させる
4.なんか登録ボタンみたいなものを押すとデータを保存
(この処理が重くて時間がかかるので、画面が固まらないように
バックグラウンド処理で行い、進捗だけプログレスバーかなんかで表示したい)
こんな感じ?
釣りじゃないとすれば・・・
2ch sage
2ch アンカー
で調べれば幸せになれると思う
0550デフォルトの名無しさん
2011/01/06(木) 12:03:45ProgressChangedやCompletedイベントハンドラはUIスレッドで呼び出されるのでそっちでやる
0551543
2011/01/06(木) 16:15:29【処理X】
1.メインフォームを隠し、別フォームを開く。
2.別フォームでCSVを指定し、別フォームを閉じる。
3.別フォームが閉じた事にハンドルして、メインフォームを表示し、処理Xを起動。
【処理Y】
1.処理Xで指定したCSVを開き、データを DataTable に取得
2.DataTable のデータを一行ずつ編集し、内容を修正(結合や計算など)
3.2で修正したDataTable の行を DataSet.【テーブル名】DataTable に代入
(2と3をFor文で行数回ループ)
4.DataGridView.DataSource = 4のテーブル と指定してDataGridView を表示(大量データ)
�@の目的は、処理Yを行う前に処理Xを完了させ画面を表示。その後で処理Yを走らせること
だったので、>>544 さんの指摘通り処理Yを BackgroundWorker で行うことで解決しました。
0552543
2011/01/06(木) 16:16:27参考資料:下記URLのVB版コード
http://www.atmarkit.co.jp/fdotnet/dotnettips/436bgworker/bgworker.html
DataGridView については、 >>550 さんの指摘通り手順4に対し発生しました。
これについては
’Invoke を利用するためのおまじない?程度の理解です
Delegate Sub SetDelegate()
’関数をフォーム側で実行させる
Invoke(New SetDelegate(AddressOf 【関数名】))
’処理内容を関数として作成
Sub 【関数名】()
処理内容
End Sub
このような関数を作成し
Invoke(New SetDelegate(AddressOf 【DataGridViewへの書き込み(手順4)】))
という形で対応できました。(この行には下記の致命的な問題あり)
また、プログラムの開始時に
Invoke(New SetDelegate(AddressOf 【Formのロック/プログレスバーなどの表示】))
終了時に
Invoke(New SetDelegate(AddressOf 【Formの開放/プログレスバーなどの非表示】))
を加え『フォームはすぐ表示され、処理は裏で行われる』部分については対応できました。
(・・・Formをロックすると処理中のメッセージもロックされ見えにくくなってしまいますし、
【処理中表示ラベル.Enabled = True】 では駄目なようなので、 Form はロックせず、ボタン
などを個別ロックするしかないのかな?と考えています)
0553543
2011/01/06(木) 16:17:16ただ、問題が数点あり、現在それに取り組んでいる所です。
A:参考資料の System.Threading.Thread.Sleep(100) 部分に処理Yを全て入れると
参考資料のFor i As Integer = 1 To bgWorkerArg の部分で bgWorkerArg = 0 となり抜けてしまう。
B:そもそも資料の方法では、処理Yの手順3はFor文の『連続した細かい作業』なので対応できるが、
手順4のような『一つの大きな作業』の進捗を表示できない。(と、私が思っているだけかも)
C:二度目以降 Invoke(New SetDelegate(AddressOf 【DataGridViewへの書き込み(手順4)】))
を通る際に、フリーズすることが頻繁にあります。
特徴として
・該当行にブレークポイントを挟むと発生しなくなる。
・進捗表示部分をコメントアウトすると、発生しなくなる。
(現在は手順2・3のFor文部分のみ参考資料の方法で進捗を表示している)
・データ量が小さいCSV読み込み時は、発生しない。
このような症状と見受けられるので、現在はこれの原因を探っています。
凄まじい長さになってしまいましたが、ご意見などいただけるとありがたいです。
なお、未熟なもので内容に誤りがあったらごめんなさい。
0554543
2011/01/06(木) 16:22:00処理Xの手順3は『処理Yを起動』です。
AddHandler 【別フォーム】, AddressOf Me.Show
AddHandler 【別フォーム】, AddressOf 【処理Y】
この形だと処理Yが走っている間はフォームが表示されなかったので・・・。
0555デフォルトの名無しさん
2011/01/06(木) 16:36:020556543
2011/01/06(木) 20:03:47DataGridView.DataSource = DataSet1.TblAddrListDataTable
を
DataGridView.DataSource = DataSet1.【テーブル名】DataTable
という形にし、Dataset側を毎回初期化することで1行ずつ渡す事は成功しました。
しかし、DataSorce 側に行を追加する機能が見つからず、現状では最後に渡した
行だけが表示されてしまいます。
DataGridView.DataSource『.Rows.Add』
のような機能を探しましたが見つからず、ここで引っかかっています。
もしかして、そもそも方向性が間違っていますか?
0557デフォルトの名無しさん
2011/01/06(木) 20:29:39今のPCはDPI設定が115%で、文字や画像の表示がずれてしまいます。
自動スケーリングの機能があるみたいなんですが、どこを操作すればよいのでしょうか?
0558デフォルトの名無しさん
2011/01/07(金) 09:12:02もしそうしたいのならDataGridView.DataSource をDataTableにキャストしてやらにゃぁ…
'データソースがテーブルと決め打ちされているんであれば
dim temp as datatable = directcast(DataGridView.DataSource)
こんな感じだった気がするけど・・・ 今IDEないから構文忘れたが
0559デフォルトの名無しさん
2011/01/07(金) 10:19:30PC1 にDBのmdfファイルがある。
PC1とPC2は同じLAN内にあり、PC1の共有ファイルに、VBで発行した
windowsアプリケーションがある。
質問
PC2から PC1で発行したアプリケーションを実行すると
DBのデータを参照できませんでした。
コードで c:\programfile\〜〜 と書いた場合、
PC1の cドライブを参照するのか PC2のcドライブを参照するのか
どちらでしょうか?
0560デフォルトの名無しさん
2011/01/07(金) 10:33:56\\pc名〜
で書かないといけないと思うんだけど・・・
それ以前にSQLSERVER使うんだったらそういう使い方よりは普通にDBにつないだ方が早いんじゃ?
0561デフォルトの名無しさん
2011/01/07(金) 10:49:05ちょっとやり方違うと思うけど
例えばこんなやり方はどうだろ?
http://www.dotup.org/uploda/www.dotup.org1344821.zip.html
もう見てない可能性のが高いかw
0562543
2011/01/07(金) 15:19:45>>558 さん >>561 さん アドバイスありがとうございます。
1:DataSet 内に テーブルA を作成
2:DataGridView のプロパティ DataSource として テーブルA を指定
(DataGridView の列構造は、テーブルAと完全一致)
3:CSVの値を DataTable テーブルBに取り、様々な編集を加える
4:テーブルB を テーブル?C(宣言した型:DataSet1.【テーブルAの名前】DataTable)に代入
5:DataGridView.DataSource = テーブルC
このような手段で現在は処理を行っています。いっそソース全文載せた方がいいですかね・・・長いですが。
テーブルCを一行取得するごとに手順5を行い、その後テーブルCを初期化する事で、手順5の
段階で常に最新行を取得することができました。
ただ、この場合手順5を行うたびに最新行で上書きされてしまい、最終的な表示が1行のみとなってしまいます。
(初期化を行わないと 1行⇒2行⇒3行・・・・⇒全行)となり、全行最後に代入するならそれ以外の工程が完全に
無駄ですし、そもそもの目的である『全行コピーのような単体(非ループ)の進捗を現す』ことになりません。
現在詰まっているのは、この部分です。
0563543
2011/01/07(金) 15:21:58directcast は型の強制変換と認識しているのですが、この場合ですとテーブルCを DataTable に変換するという
解釈で間違っていませんか?
Dim テーブルD As DataTable = directcast(テーブルC , DataTable)
DataGridView.DataSource = テーブルD
この形では上手くいかなかったので、他にも色々調べましたが上手い手段が見つかりませんでした。
>> 561 さん
参考URLを見ましたが、パスワードがかかっているようで落とせませんでした。すいません。
(追記)>>553 の最も致命的な問題Cについて
相変わらず意味不明で未解決ですが
http://www.pctec.2chmatome.info/?p=767
ここの 393 さんと似た症状だったのでビルドしてみたら、完成品では全く発生しませんでした。
原因不明なのが非常に気がかりですが、一応表面上は解決です。
0564デフォルトの名無しさん
2011/01/07(金) 15:32:17むしろこちらがすみません。
ごめんパス書き忘れてた
PASS:vb
0566559
2011/01/07(金) 20:19:16自宅からすいません
ありがとうございます。
普通のつなぎかたがわかりませんが、複数台でアプリを使いたかったので、
PC1以外での動作確認をするために、行いました。
0567デフォルトの名無しさん
2011/01/08(土) 18:56:59DataGridView関連なのですが、
起動時にDataGridViewをアクティブにしているのですが、
Form.Load イベントでImeModeをonにしているのですが、、
Windows Vista では日本語入力になり、
Windows7 ではなりません。
くぐっても解決方法が見つかりませんでした。
どなたかアドバイスを宜しくお願いします。
0568567
2011/01/08(土) 18:59:01Visual Basic 2008 Pro です。
0569デフォルトの名無しさん
2011/01/09(日) 00:30:51普通てのはDBサーバとしてSQLSERVERを使うことじゃないかな?
ファイルを共有して使うようなやり方ではないて事。
ただ、複数でやる場合クライアントOのライセンスの問題もあるので注意が必要
それはムとは関係ない別件か
0570デフォルトの名無しさん
2011/01/09(日) 17:22:04右から左に読むやUnicode制御文字の表示というメニューがありますが、
これらを選択できないようにする方法はあるでしょうか?
TextBoxのContextMenuプロパティを見てもNothingとなっており、
どこを修正していいか分かりません。
やはり自作するしかないのでしょうか?
0571デフォルトの名無しさん
2011/01/09(日) 17:51:16dobonさんのところに解答があるよ
0572デフォルトの名無しさん
2011/01/09(日) 19:16:02ありがとうございます。
コンテキストメニュー自体を表示しないようにする方法は見つかったのですが、
コンテキストメニュー内の一部を選択できないようにする方法は見つかりませんでした。
よろしければ詳しい場所を教えていただけませんか?
0573デフォルトの名無しさん
2011/01/09(日) 22:08:07PC1 にDBのmdfファイルがある。
PC1でデバッグしていますが、
接続文字列が、 c:\programfile〜 だと接続できるのですが
\\pc1\c$\programfile〜 とすると接続できません。
TCP/IPは有効
SQLサーバーのリモート接続は許可
ファイヤーウォールはポート開放済み(現在無効にしてます)
書き方がまずいのか、サーバーになってるPC1からは接続できないのか
設定が何かたりないのか、誰かエスパーお願いします
インスタンス名も
.\インスタンス名 だといけますが
\\PC1\インスタンス名,ポート番号 にすると、接続できなくなります。
こちらについても誰かエスパーお願いします。
0574デフォルトの名無しさん
2011/01/10(月) 15:12:530575543
2011/01/11(火) 11:08:44>>561
サンプルを組んで下さるとか感激しました。
現在参考にしているコードは巨大すぎ、私のスキルでは必要な情報を探すことが非常に困難でしたが
561さんの洗練されたコードを見て、とても理解の助けとなりました。
質問部分以外でも『Useing』等の使い方など参考になる点が多く、ぜひ味わいつくそうと思います。
動け!動けよ!!と半ギレ状態でキーボードを叩く作業から開放されました。
結局
・CSVの取り込みとDataGridViewへの書き込みは BackgroundWorker にお願いする
・元フォームの全コントロールへのEnable設定により、ロックとロック解除を行う
・更新状況は ProgressBar 及び 進捗状況を表すラベル.Update() による表記で現す
・DataTable 上に CSV データを書き込む際は、Castをループさせると便利。
以上により
『フォームを先に表示し、裏で重い作業を行う。かつ、その進捗状況を随時表示する。』
という目的が達成されました。
>>544 >>545 >>546 >>549 >>550 >>555 >>558 >>561
アドバイスくださった方ありがとうございます。
聞ける相手がおらず困っていたため、とても助かりました。
0576デフォルトの名無しさん
2011/01/11(火) 11:20:10PGはどうかしらんが、少なくともスポークスマンの才能はあると思う
0577デフォルトの名無しさん
2011/01/12(水) 04:09:27正規表現を使い、二行以上の文章から検索し、抽出したいと思いました
一度変数に入れて改行を置換したらできたのですが、こういう時は他にやり方はありますか?
0578デフォルトの名無しさん
2011/01/12(水) 13:06:56この辺が意味不明
二行以上の文章からどの部分を抽出すればいいの?
0579デフォルトの名無しさん
2011/01/12(水) 23:53:51メモ帳にさえついてるんだから消す必要ないだろ
0580デフォルトの名無しさん
2011/01/13(木) 11:00:24返事が遅くなってすいません
Sub Main()
Dim hoge As String = "abc" & vbNewLine & "de"
hoge = System.Text.RegularExpressions.Regex.Replace(hoge, "b.*d", "ghj")
Dim moga As String = "abcde"
moga = System.Text.RegularExpressions.Regex.Replace(moga, "b.*d", "qwert")
End Sub
このような感じです。hogeだとうまく行くのですが、mogaだとうまくいきません。
作っているプログラムは、ブラウザのNGワードなんです(練習用に作っています)。
"氏ね"をNGにしたいとき、"氏"と"ね"の行がまたがってるとうまく置換出来ませんでした。
0581デフォルトの名無しさん
2011/01/13(木) 11:21:340582デフォルトの名無しさん
2011/01/13(木) 12:16:59Substringは一文字ずつ取り出すといくつかのサイトに書いて会ったのですが、
このコードだと1バイトずつ見てる感じがします。私が何を間違えてるんでしょうか
それとも第一引数は文字数、第二引数はバイト数ということなんでしょうか?
Sub Main()
Dim khonbun As String = vbNewLine
If khonbun.Substring(0, 1) = vbNewLine Then '偽
MsgBox("vbNewLine")
End If
If khonbun.Substring(0, 1) = vbCr Then '真
MsgBox("vbCr")
End If
If khonbun.Substring(0) = vbNewLine Then '真
MsgBox("vbNewLine")
End If
End Sub
0583デフォルトの名無しさん
2011/01/13(木) 12:20:560584デフォルトの名無しさん
2011/01/13(木) 13:04:49うおおおおすべての疑問が解けました!!ありがとうございました!
0585デフォルトの名無しさん
2011/01/13(木) 16:32:21�@某DLLファイルが参照する辞書ファイル(.DEC)の指定方法
もしくは参考URLを理解する上で有効な書籍など。
参考URL http://codezine.jp/article/detail/444?p=1
�ADataGridViewへの『追記』方法
【詳細&経緯】
�@某DLLファイル内の関数α(値Xを代入すると、辞書ファイルβからXに対応する値Yを返す)
を使う際に「新辞書と旧辞書を同時に使いたい」という指定がありました。
DLLファイルの中身をいじることは不可能そうなので、フォルダを辞書別に用意して
プログラムで呼び出すDLLのパスを指定することはできないかと考えています。
(DLLが操作できないなら、参照する辞書ファイル名βもいじれないと予想。フォルダを辞書
ごとに作成し、フォルダにDLLと辞書を一対ずつ用意、参照する予定。)
(作成元メーカー曰く、新辞書は旧辞書と同名で更新の際には上書きする仕様らしい。)
一応参考URLは発見したのですが、ちょっと私のレベルでは意味不明なので、理解するうえで
必要な知識などアドバイスいただければうれしいです。
0586デフォルトの名無しさん
2011/01/13(木) 16:33:331:CSVなりDBの中身を『空の』 DataTable に保存。
2:上記 DataTable を 『空の』 DataSet.TblAddrListDataTable に1行ずつ保存。
3:DataGridView.DataSource = 上記 DataSet.TblAddrListDataTable で表示を変更する。
という手法によって DataGridView の中身を表示してています。
ただ、この方法だと手順2を行うたびに表示内容が更新されてしまうので、手順2を
『現在の DataGridView の中身をコピーした DataSet に対して、追加で』 一行ずつ保存。
とできないものかと考えています。
(扱うデータ量が多大なので、なるべく処理が早いほうが望ましい。)
そもそも発想が間違っている、もっと良い手段があるなどアドバイス頂けると嬉しいです。
よろしくおねがいします。
0587デフォルトの名無しさん
2011/01/13(木) 16:41:14こないだの人?
�@むしろメーカーにといあわせたほうがいいんじゃない?
そう言う使い方を想定していない場合、ライセンス違反になる可能性もあるだろうから
�Aはわけわかめ
0588デフォルトの名無しさん
2011/01/13(木) 16:49:26いくらでも早くできるよ
0589デフォルトの名無しさん
2011/01/13(木) 17:00:02http://dobon.net/vb/dotnet/links/extractarchive.html
0590585
2011/01/13(木) 19:37:29ものすごく早いレスありがとうございます。
度々お世話になります、こないだの人です。
�@については問い合わせてみたところ、技術の方が調べてくれました。結果
『参照する辞書ファイルのパスを指定する』
という素晴らしい関数が存在することを知り、解決です。
・・・さっさとサポートに電話しろって話でした、ありがとうございます。
�Aについても
Dim DataSet As New DataSet1.TableName
If DataGridView1.RowCount > 0 Then
DataSet = DataGridView1.DataSource
Else
'なにもしない
End If
以下、DataSet.AddTableName = (追加したい行) を行数回繰り返し
DataGridView1.DataSource = DataSet
これでOKでした、お騒がせしてすみません。
0591585
2011/01/13(木) 19:39:07アドバイスありがとうございます。
>>588
解決はしましたが、後学のためにキーワードだけでも落としていってもらえると
とても嬉しいです。
DataGridView 以外に描画方法を知らないだけなので・・・。
>>589
実はそこも調査中に見つけて途中で良く判らなくなって困ってたURLの一つでした・・・。
でも、これが知識として基本になっているようですし、まずはそのURLから理解できるよう
読み進めていこうと思います。
0592デフォルトの名無しさん
2011/01/14(金) 01:15:40ってのを言ってこないようにするには
0593デフォルトの名無しさん
2011/01/14(金) 09:01:38宣言して初期値が入ってないものを条件分岐などで使うとそう言われるね
dim i as integer
if i== 0 then
dim i as integer = 0
なら怒られないんじゃね?
0594デフォルトの名無しさん
2011/01/14(金) 15:14:15それは元々言われないだろ
0595デフォルトの名無しさん
2011/01/14(金) 17:09:18ごめん、C#でしかも未割当の変数で怒られる
疲れてるな俺
0596デフォルトの名無しさん
2011/01/14(金) 18:07:26Visual Studioのスレで聞け
0597デフォルトの名無しさん
2011/01/14(金) 20:47:54俺もあったと記憶してたが…違ったかな?
0598デフォルトの名無しさん
2011/01/14(金) 21:40:380599デフォルトの名無しさん
2011/01/15(土) 00:21:18プロジェクトのプロパティの「コンパイル」タブで「未使用のローカル変数」の
通知を「なし」にすればいいだけじゃないの?
0600デフォルトの名無しさん
2011/01/15(土) 06:28:27a - (b * (a \ b))
a - (b * Fix(a / b))
↑がなぜ おなじ なのかわけわかめ
0601デフォルトの名無しさん
2011/01/15(土) 18:18:29a \ b と Fix(a / b) が同じなのがわからないのか?
a Mod b が下の二つの式で計算できるのがわからないのか?
どっちにしても演算子と関数の意味を理解できればあとは算数の世界なんだが
0602デフォルトの名無しさん
2011/01/15(土) 18:39:24Intってやつもあるよね
0603デフォルトの名無しさん
2011/01/15(土) 19:42:090604デフォルトの名無しさん
2011/01/15(土) 19:56:240605デフォルトの名無しさん
2011/01/15(土) 20:06:540606デフォルトの名無しさん
2011/01/15(土) 20:12:590607デフォルトの名無しさん
2011/01/15(土) 20:24:420608デフォルトの名無しさん
2011/01/15(土) 20:31:300609デフォルトの名無しさん
2011/01/21(金) 14:16:28【困ってること】
○「種類 'System.OutOfMemoryException' の例外がスローされました。」というエラーの発生。
○Try & Catch を用いた場合にファイルが閉じられない。
【やりたいこと】
○DataGridView に表示された一覧表のうち
『選択した行』の『特定の列(予め指定)』のみをCSVに書き出す。
【やっていること】
長すぎるため次レスで投稿
【詳細】
下記プログラムで、一応動きはしました。
ただ、データが10万件とかあると凄く心許ないです。20万件とかあるとほぼ確実にエラー吐きます。
20万件だと進捗チェックαの95%完了前後でエラー、10万件でもβの98%前後で稀にエラー。
安定性を高めるため、メモリに優しい改善案を募集しています。(原因をメモリが溢れているためと想定)
また、手順1〜11は全て Try 内で行われており、エラー時は Catch に飛ぶのですが
手順11前に Catch に飛んだ場合、CSVが開きっぱなしになってしまいます。
(Dim sr As New System.IO.StreamWriter(csvPath, False, enc)で宣言、sr.close() で閉じていますが
Catch 内に sr.close() と書いても無効でした・・・。)
エラー時でもきちんと閉じる方法を教えていただきたいです。
宜しくお願いします。
0610デフォルトの名無しさん
2011/01/21(金) 14:18:02(変数の中身については、10行の DataGridView の奇数行を選択した場合として例示)
0:書き込み先CSVを指定
(以下 bgWorker)
1:指定されたCSVを開く。
2:全行をループさせ、選択されていた場合行番号を変数 X に確保、","を繋げる( X = ,1,3,5,7,9)
3:X の最初の一文字目(不要な "," )を削除し、文字列配列である XX に代入する。(XX() = 1/3/5/7/9)
★進捗チェックα
(大ループ(列ごと))
4:For Each Y In XX() によって、XX(選択行の個数)分ループさせる。(選択行)
5:DataGridView の DataSorce に対し、 DataSorce.Rows(Y) で書き込むべき列を取得
6:取得行に対し、さらに列数Z回ループを行う。(カウンタは i とする)
(小ループ(セルごと))
7:DataSorce.Columns(i).Caption にて、列ヘッダ HeaderName を取得。
8:HeaderName を条件に Select 文で分岐、『書き出すべき列か』を判定。
9:書き込む場合、 "," & row(i).ToString を変数 XXX に追記。列項目に編集が必要な場合は、適宜行う。
(小ループ完了)
10:XXX の最初の一文字目(不要な "," )を削除し、CSVに XXX の内容および改行を書き込む。
★進捗チェックβ
(大ループ完了)
11:CSVを閉じる。
0611デフォルトの名無しさん
2011/01/21(金) 15:57:38つうか、また君かwwww
先に書き出す列をどっかに保持ってから行ごとに処理していけばループの回数は減るんじゃない?
晒せるならソースとデータ(データを差し支えないように置換するなんかして)晒した方が早いんじゃないか?
0612デフォルトの名無しさん
2011/01/21(金) 16:52:48処理4で全行ループさせて、該当行かどうかチェックすればいいだけ
最後にまとめてファイルに書くんじゃなくて、行単位で書き出せ
書きだす内容を変数にためると、サイズチェックしないといずれ入りきらなくなる
0613デフォルトの名無しさん
2011/01/21(金) 17:51:230614デフォルトの名無しさん
2011/01/21(金) 18:56:460615609
2011/01/21(金) 19:14:43>>611 >>612
早速アドバイスありがとうございます。
A:DataGridView のデータを取捨選択して書き込み用 DataTable に取る
⇒DataTable の中身をCSVに直接書き出す
B:ループカウンタあたりを作成し、DataGridView.Rows(カウンタ).Selected で判別
⇒True のみ手順5以下を行う
こう解釈してただいまソースと格闘中です。
>>613 >>614
うーん・・・。スレ人口?的にその方が判りやすいですかねいっそ。
自分なら「人恋し」とか付けそうですw
0616デフォルトの名無しさん
2011/01/21(金) 19:26:190617609
2011/01/21(金) 20:55:52アドバイスありがとうございます。
・・・そういえばそんな便利なものありましたね、忘れてました。
折角以前 >>561 で素晴らしいサンプルを貰ったのに。OTZ
・・・以前ついでに
>>576
コミュ障の気があるので、実は物凄く嬉しかったです。
雑談でレス数を延ばすのが申し訳なかったから自重しただけなんですよ!
0618609
2011/01/21(金) 21:06:24困りごと�@
今回は >>612 の手法を使いました。
>>611 を試していて「DataTable.newrow = DataGridView.rows(行番号)」と書いたところ
型が違うと怒られてシフトしましたごめんなさい。
結局
・手順4の行ループの直後にカウンタ(cnt)を設置
・『if DataGridView.Rows(cnt).Selected = true のみ処理を行う』指定(手順5の位置)
・Else までの間に手順6〜10を行う
・End if の後ろでカウントアップと進捗チェックを行う。
この手順で動かしたところ、CPU/メモリ共に使用率は50%前後をキープ。
安心して動かせる(放置できる)ようになりました。
困りごと�A
Dim sr As New System.IO.StreamWriter(csvPath, False, enc) の行を
Using sr As New System.IO.StreamWriter(csvPath, False, enc) で宣言
手順11の位置に End Using を入れると、エラー時にもきちんとファイルを閉じてくれました。
こっちも明らかに11飛ばして Catch に直行してるのに何故・・・。
>>611 >>612 >>613 >>614 >>616
お世話になりました、ありがとうございます。
聞く相手の居ない環境なので、真面目な話このスレの人が師匠です。
0619デフォルトの名無しさん
2011/01/23(日) 14:16:27視覚的にリストを配置したり、ラベルを置いたりすることって無理?
検索すると 有料ソフトばっかヒットするしやたら高いし・・・
0620デフォルトの名無しさん
2011/01/23(日) 14:55:15バージョンは?
Crystal Reportsじゃだめなの?
0621619
2011/01/23(日) 15:26:05サンクス ちょっと頑張ってみる
ちなみにVB2010express(新しくて無料の奴)
日本語版が最近でたみたいだけど、導入方法載ってるページがないっす
0622デフォルトの名無しさん
2011/01/23(日) 20:55:230623デフォルトの名無しさん
2011/01/23(日) 21:00:170624デフォルトの名無しさん
2011/01/25(火) 14:27:01VBはpublic shared classとするとエラーが出ます
VBの対応物はないんですか?
0625デフォルトの名無しさん
2011/01/25(火) 14:38:59> Visual Basic は静的クラスをサポートしません。
> 静的クラスと同等の機能はモジュールで実現されます。
> 詳細については、「Module ステートメント」を参照してください。
0626デフォルトの名無しさん
2011/01/25(火) 15:03:280627デフォルトの名無しさん
2011/01/25(火) 21:33:18モジュールは旧VBから引き継いだレガシーだから使わない方がいいよ。
VBでは静的クラスはコンストラクタをprivateにして実装するのが普通。
0628デフォルトの名無しさん
2011/01/25(火) 21:39:190629デフォルトの名無しさん
2011/01/25(火) 21:39:240630デフォルトの名無しさん
2011/01/25(火) 21:40:10MustInherit+NonInheritable
0631デフォルトの名無しさん
2011/01/25(火) 21:53:57moduleをコンパイルしてReflectorすると
internal sealed class Aや
.class private auto ansi sealed A
って出ますね
>>627
普通のクラス+shared sub newで動きました、ありがとう
0632デフォルトの名無しさん
2011/01/27(木) 13:20:14DefaultCellStyle.Format
を指定しても反映されないのは仕様なんでしょうか。
対応方法ってないでしょうか。
0633デフォルトの名無しさん
2011/01/27(木) 15:56:040634デフォルトの名無しさん
2011/01/28(金) 00:51:32Me.DataGridView1.Columns(0).DefaultCellStyle.Format = "#,0"
Me.DataGridView1.Rows(0).Cells(0).Value = 12345D
でできる。
書式にあわないデータを設定しているとかじゃないの?
Me.DataGridView1.Columns(0).DefaultCellStyle.Format = "#,0"
Me.DataGridView1.Rows(0).Cells(0).Value = "12345" ' ←数値用の書式設定なのに文字列を設定してる
とかだとダメ。
0635デフォルトの名無しさん
2011/01/29(土) 20:08:34正規化されていないDBを受け取って
正規化されたDataSetやDataTableを返すような用途に使えますか?
0636デフォルトの名無しさん
2011/02/01(火) 11:10:13する方法ってどうやればいいんでしょうか?
SPREDやGridを使わずにExcelの機能をロードして使えないのかな?
って事です。
単純にコントロールとして追加できらと
Dim xlSheets As Microsoft.Office.Interop.New Excel.Sheets
Controls.Add(xlSheets)
みたいな感じやりましたが当然のように例外でます。
VSTOソリューションで近い事ができそうなんだけど、あれだとEcxel
ブックに実装って感じですよね。
あくまでWindowsフォームアプリにExcelのユーザインターフェース
だけ引っ張ってくるのを望んでいます。
情報持ってる方お願いします。
0637デフォルトの名無しさん
2011/02/01(火) 11:25:500638デフォルトの名無しさん
2011/02/01(火) 11:54:12Excelの設定によっちゃダウンロードしちゃうとかいろいろ問題はあるが
0639デフォルトの名無しさん
2011/02/01(火) 12:52:52前調べた感じだと無理そうだったけど
>>638の方法だとExcel固まっちゃうんだよね
0640デフォルトの名無しさん
2011/02/01(火) 12:58:100641デフォルトの名無しさん
2011/02/01(火) 13:06:58http://support.microsoft.com/kb/304562
Visual Basic .NET で、WebBrowser コントロールを使用して Office ドキュメントを開く方法
http://support.microsoft.com/kb/304643
0642デフォルトの名無しさん
2011/02/01(火) 19:17:550643デフォルトの名無しさん
2011/02/01(火) 23:30:34cn.Open()
cn.Close()
これだけのプログラムを実行して、postgresqlのログに
could not receive data from client: No connection could be made because the target machine actively refused it.
unexpected EOF on client connection
というエラーが出るんですが何ででしょうか
このエラーを無視してDataTableにAdapter経由で値をFillすると何故かDBの中身は表示出来ます
ただ、もう一つ接続を用意してNpgsqlCommandBuilderを使って値を書き換えるコードを書いても
データは更新されませんでした
0644デフォルトの名無しさん
2011/02/02(水) 00:17:12データテーブル内のデータを直接書き換えた直後、DataGridViewの
表示が書き換えた内容にならない場合があります。
表示が出来てないだけで、スクロールなどして対象セルを表示しなおさせると
きちんと書き換えた内容になっているのですが、
ちょっとなんとかしたいです。
指定セルの表示を更新させるとか、そういった対処法は
何かないでしょうか?
0645人恋し
2011/02/02(水) 00:42:47テーブルA:No,固有値,値1,値2
テーブルB:No,固有値,値B
テーブルC:No,固有値,値C
テーブルD:No,固有値,値D
このような4つのテーブルを結合して
テーブルX:No,固有値,値1,値2,テーブルB.固有値,テーブルC.固有値,テーブルD.固有値
という項目数6のテーブルXを DataTable で作成、DataSet にセットしようとしています。
なお、DataSet 上では No はキーとして設定されており、重複はNGです。
また、固有値は全テーブルで共有しており、固有値に対して値1,値2,値BCDが存在します。
(ある固有値は、テーブルAのみに存在。別の固有値は、全テーブルに存在など。)
データベースは Oracle を使用しています。
0646人恋し
2011/02/02(水) 00:46:29SELECT A全部とB/C/Dの固有値 FROM テーブルA
LEFT JOIN テーブルB ON テーブルA.固有値 = テーブルB.固有値
LEFT JOIN テーブルB ON テーブルA.固有値 = テーブルC.固有値
LEFT JOIN テーブルB ON テーブルA.固有値 = テーブルD.固有値
WHERE あれこれ
という文を書いた時、取得できるテーブルは
テーブルX:
No1,固有値X,値1,値2,テーブルB.固有値X,DBNull,DBNull
No2,固有値Y,値1,値2,テーブルB.固有値Y,テーブルC.固有値Y,DBNull
No2,固有値Y,値1,値2,テーブルB.固有値Y,テーブルC.固有値Y,DBNull
No3,固有値Z,値1,値2,テーブルB.固有値Z,テーブルC.固有値Z,テーブルD.固有値Z
No3,固有値Z,値1,値2,テーブルB.固有値Z,テーブルC.固有値Z,テーブルD.固有値Z
No3,固有値Z,値1,値2,テーブルB.固有値Z,テーブルC.固有値Z,テーブルD.固有値Z
と、複数テーブルに存在するデータが分裂してしまいます。
このまま書き込むと3行目で「キーが重複していますよ」と怒られるのですが、
DataTable の行を『重複したものは、一つ残して削除する』といった便利な
SQLの命令文は存在しないものかと困っています。
命令文、対処法などアドバイスいただけると嬉しいです。
0647デフォルトの名無しさん
2011/02/02(水) 01:57:24UpdateとかRefreshとかでできないかな?
とか想像で言ってみる
>>645
A・B・C・Dがどういうのかよくわかんない
キーはNo?固有値?
固有値で結合してるなら固有値がキーな気もするけど、DataSetはNoがキーなんだよね
そもそも固有値がキーなら、結合しても分裂しないか
キーが同じテーブルを結合するなら分裂しないだろうから、
そもそもテーブル構成自体がおかしいんじゃないかなー
結果セットの重複を消したいだけなら、SQLのSELECT句ににdistinctを書けばいいけど
でもやっぱり問題はそこじゃない気がする
0648デフォルトの名無しさん
2011/02/02(水) 03:26:30VB.NETまったく関係ない質問だな
そのSQLの3行目と4行目のテーブルBはCとDの間違いだよな?
その結果が本当なら、テーブルAに No2,固有値Y や No3,固有値Z の行が複数あるんだが
出力でNoをキーにしたいなら、複数行をどうまとめる気なんだ?
データセットのキーをNoにするのが理解できん
固有値に対して値1,値2,値BCDが存在 なんだから、固有値をキーにするべきじゃないのか?
固有値をキーにするならまず重複のない固有値の一覧つくって、それにテーブルA-Dをouter joinすればいい
まあどっちにしろテーブル設計とSQLの問題だから、これ以上はDB関係の板できけ
0649デフォルトの名無しさん
2011/02/02(水) 05:07:30VB.NETとか終わコンでしょww
0650デフォルトの名無しさん
2011/02/02(水) 07:39:47ここはVB.NETスレだから
SQLの質問はこっちで
SQL質疑応答スレ 10問目
http://hibari.2ch.net/test/read.cgi/db/1274791771/
0651デフォルトの名無しさん
2011/02/02(水) 15:08:21DISTINCTすればいいよ
0652デフォルトの名無しさん
2011/02/03(木) 13:19:55全ページに総ページ数を印字したい場合って、
PrintPageを発生させる前に
事前に総ページ数を数えておくしかやり方はないでしょうか?
PrintPageで印字時に総ページを示すタグの様な物を
印字しておいて、最後に全ページのタグを置き換え
みたいな事を妄想してましたが、そんな方法は可能ですか?
0653デフォルトの名無しさん
2011/02/03(木) 14:06:070654デフォルトの名無しさん
2011/02/03(木) 14:56:57どうやって呼び出すんでしょうか?
0655デフォルトの名無しさん
2011/02/03(木) 15:35:360656デフォルトの名無しさん
2011/02/03(木) 15:36:160657人恋し
2011/02/03(木) 22:41:03お陰さまで解決です、DISTINCT が私の探していた魔法の言葉でした。
そして皆さまスレ違い失礼しました。
>>647
テーブルAとDataSetのキーはNo テーブルBCDのキーは固有値ですね。
固有値はBCD各テーブル間ではユニークですが、複数テーブルに同じ固有値が存在する
可能性があり得る、という状況です。
説明下手ですいません、問題はそこでした。
>>648
SQLは誤字ですごめんなさい。
まさにその「複数行をどうやって纏めるんだ?」という部分で詰んでました。
>>650
適切なスレの紹介ありがとうございます。
>>651
それが答えでしたありがとうございます。
>>647 >>648 >>650 >>651
毎回迅速かつ完璧なアドバイスありがとうございます。
0658デフォルトの名無しさん
2011/02/04(金) 04:30:04スレ違いなんであんまりあれなんだが
テーブルAの主キーがNoで結合結果に同じNoが2行でるには、
結合条件でテーブルAの1行に対して相手のテーブルが2行必要
結合条件が相手テーブルの主キーならこれはあり得ない
Distinctなんてする必要ない。説明のどこかに間違いがある
0659人恋し
2011/02/05(土) 17:30:59ありがとうございます。
まずキー設定が間違ってました、Aは固有値(Noはユニーク)、BCDはNoがキーですごめんなさい。
色々と残念すぎる質問でごめんなさい。
0660デフォルトの名無しさん
2011/02/06(日) 03:56:07x(n)=e.Xと書いたのですが、NullReferenceExceptionエラーが出てしまいます。
eクラスの使い方自体よく分からない上に
VB2002の本を読みながらVB2010を使っているので…アドバイスお願いします。
0661デフォルトの名無しさん
2011/02/06(日) 09:05:130662デフォルトの名無しさん
2011/02/06(日) 09:26:58以前VB(DOS版〜)を使っていました。確かVB5前後まで
現在見るとVB.NETとなっていますが、違いを説明しているページ・書籍等ありますか?
またVBナンバーを辞めた理由をご存知の方は理由を教えてください。
プログラムと言うより言語の歴史で恐縮ですが、1つよろしくお願いします
0663デフォルトの名無しさん
2011/02/06(日) 09:35:29違いとか言われても困る
と言いつつ言語バージョンは引き継いでるんだけどな。今VB10。開発環境の名前にはなってないけど
0664デフォルトの名無しさん
2011/02/06(日) 09:35:54.net frameworkというC#,VB,J#,F#他多数の言語で共通のライブラリが使える基盤に移行したから
そのため文法は似ているもののVB6以前とは互換性も無い
0665デフォルトの名無しさん
2011/02/06(日) 10:14:45なるほど、ありがとう
ちょっと凝った事遣り出すと「おろ?」って感じなのね
イベントドリブンな構造は窓の仕組み上変えようがないだろうが
ライブラリまわりやコンポーネント関係流用は要検討か…
逆にC#やJ#との親和性は良くなったのかな?
0666>>660
2011/02/06(日) 10:27:06学びはじめたばかりでブレークポイントも知りませんでした。雑な質問かもしれませんがお付き合いお願いします。
1行目がx(n)=e.Xで、この行を実行するとe.Xに赤二重下線が引かれて「オブジェクト参照がオブジェクトインスタンスに
設定されていません」と出ます。
だからe.XがNullなのかなと思って質問したのですが、試しにx(n)=2に書き換えて実行しても2の下に下線が出て
同じ文章が出ます。x(n)はIntegerで定義していますし、2がNull扱いになる理由もまったく想像できず困っています。
0667デフォルトの名無しさん
2011/02/06(日) 10:31:19じゃあ、e.XがNothingかどうか調べてみようよ
それがNothingじゃなかったら、x(n)の方があやしい
0668667
2011/02/06(日) 10:33:50> >>661
> 設定されていません」と出ます。
> だからe.XがNullなのかなと思って質問したのですが、試しにx(n)=2に書き換えて実行しても2の下に下線が出て
> 同じ文章が出ます。x(n)はIntegerで定義していますし、2がNull扱いになる理由もまったく想像できず困っています。
ちゃんと見てませんでしたすみません
それなら、x(n)が何も参照してないんじゃないだろうか
0669デフォルトの名無しさん
2011/02/06(日) 11:05:30(出てなかったらメニューのデバッグ>ウィンドウで)
それでそれぞれの変数の状態を確認する
0670デフォルトの名無しさん
2011/02/06(日) 11:07:08おっしゃるとおり配列の宣言をよく理解していなかっただけの単純なミスでした。恥ずかしい。
それよりブレークポイントや、おかしい値のチェックを知れたことのほうがずっと有益でした。
デバッグって大事ですね。どうにか初めてのプログラムが完成しそうです。
重ねて回答くださってありがとうございます。
0671デフォルトの名無しさん
2011/02/06(日) 11:52:18今日来たやつが偉そうに言うのもなんだが、こんなサイトを見つけた
ttp://homepage1.nifty.com/rucio/main/dotnet/shokyu/standard34.htm
「4.値型と参照型の違い」が今回のエラーの原因だと思われる
数多情報とみんなのアドバイスと熱意?で完成目指して頑張って欲しい
0672デフォルトの名無しさん
2011/02/07(月) 00:44:380673デフォルトの名無しさん
2011/02/07(月) 00:48:230674デフォルトの名無しさん
2011/02/07(月) 00:48:35MSDNライブラリ。
.NETライブラリのリファレンスは書籍化されてたはずだけど、
アホみたいに高いし東京都全部の電話帳ぐらいのボリュームがある。
0675デフォルトの名無しさん
2011/02/07(月) 00:52:270676デフォルトの名無しさん
2011/02/07(月) 09:20:170677デフォルトの名無しさん
2011/02/07(月) 09:27:58おまえMSDNは10年ぶりか、力抜けよ
0678デフォルトの名無しさん
2011/02/07(月) 10:07:200679デフォルトの名無しさん
2011/02/07(月) 10:55:580680デフォルトの名無しさん
2011/02/07(月) 20:15:45KBと勘違いしてるんじゃないの
0681デフォルトの名無しさん
2011/02/07(月) 20:18:440682デフォルトの名無しさん
2011/02/07(月) 22:55:53機械翻訳の割には普通の文書だなって思ってた。
0683デフォルトの名無しさん
2011/02/08(火) 01:18:56そのサイト罠に見えるぞ
0684デフォルトの名無しさん
2011/02/08(火) 01:44:29次ページも一緒に見とくといい
http://msdn.microsoft.com/ja-jp/library/dd314344.aspx
0685デフォルトの名無しさん
2011/02/08(火) 01:47:30書いてる人はそれなりにきちんと理解してはいるんだろうけど
いかにもVBしかわからないの丸出しな感じ
0686デフォルトの名無しさん
2011/02/08(火) 02:42:45ボタンが押されるアニメーション
が起こらないんだけど
0687デフォルトの名無しさん
2011/02/08(火) 05:21:11それに気付けば「卒業」する場なんじゃないかな。「中学校」だし。
俺はdobonがまだ理解不能な頃にけっこうお世話になったんで悪く言いたくなかったり。
0688デフォルトの名無しさん
2011/02/08(火) 19:50:56あまり真面目に読んだことないけど、そこそこちゃんと分かってる人が書いてる印象だったが
0689デフォルトの名無しさん
2011/02/08(火) 21:03:25クラスが消滅するまで とか意味不明な言葉が出てくる
0690デフォルトの名無しさん
2011/02/08(火) 21:27:38form_main(スタートアップフォーム)にボタンが3つ有り
1つめはデータ入力フォームを、他の2つは検索用フォームを開く
ようにしてあります。form_a,form_b,form_c
ここで、入力フォームが開いているときは他のフォームは閉じておきたい
また、検索用フォームが開いているときは他のフォームを閉じておきたいですが、どうすればいいのでしょう?
Form_a_Loadプロシージャで
If Form_b.Visible=true then
Form_b.Close()
End if
としてみたんですが駄目でした
0691デフォルトの名無しさん
2011/02/08(火) 22:49:420692デフォルトの名無しさん
2011/02/08(火) 23:09:430693デフォルトの名無しさん
2011/02/08(火) 23:12:580694デフォルトの名無しさん
2011/02/08(火) 23:18:210695デフォルトの名無しさん
2011/02/08(火) 23:22:53子フォームから閉じなきゃダメなの?
0696690
2011/02/08(火) 23:41:57メインフォームの検索ボタンを押したときにでも勿論構いません。
検索フォームと入力フォームが同時に開いているのが嫌なだけですから。
0697デフォルトの名無しさん
2011/02/08(火) 23:43:560698デフォルトの名無しさん
2011/02/09(水) 00:50:08インスタンスとかイベントとか、基本的な概念が分かってなさそうだから
手を動かす前に勉強した方がいい段階かもしれんね。
0699デフォルトの名無しさん
2011/02/09(水) 01:11:04迷惑でしかないから教えない
0700デフォルトの名無しさん
2011/02/09(水) 09:06:51じゃぁこんな時はどんな風な遷移設計がいいのですか?せんせい!!
0701デフォルトの名無しさん
2011/02/09(水) 10:38:26送信済みトレイに送信メールを残しておくために、
SmtpClientを使用せず
MAPIを利用してメール送信プログラムを作成しています。
メーラーはOutlookExpressを使用しており、
複数メールアドレスがアカウントとして設定されています。
�@yahoomail(既定) �Ahotmail
�Aのアドレスからメールを送信したい時に
MAPIにて
�AのログインID,パスワードにてログインを行い、
メールの送信を行うと
送信元アドレスが�@の既定のアドレスのほうに
なってしまいます。
既定のアカウントが�@の状態で�Aでログインした場合に
送信元アドレスを�Aのアドレスををすることは
できないのでしょうか?
0702デフォルトの名無しさん
2011/02/09(水) 10:50:20OutlookはMAPI対応だけど。
0703デフォルトの名無しさん
2011/02/09(水) 10:58:250704デフォルトの名無しさん
2011/02/09(水) 15:48:28sub hoge(kurasu as class)
end sub
call hoge(kurasu)
みたいに。
0705デフォルトの名無しさん
2011/02/09(水) 15:55:15静的メンバで多態したいとか言うの?
0706デフォルトの名無しさん
2011/02/09(水) 16:19:200707デフォルトの名無しさん
2011/02/09(水) 20:33:32キチガイでドボンだのの解説サイトに粘着してるカス(>>295)
を何とかしてほしいわ
0708デフォルトの名無しさん
2011/02/09(水) 20:39:04これがアスペ脳か。
まあ、>>295みたいな奴がカスなのだけは同意するけどね。
0709デフォルトの名無しさん
2011/02/09(水) 22:22:000710デフォルトの名無しさん
2011/02/09(水) 22:43:410711デフォルトの名無しさん
2011/02/09(水) 23:12:400712デフォルトの名無しさん
2011/02/09(水) 23:32:470713デフォルトの名無しさん
2011/02/10(木) 00:09:010714デフォルトの名無しさん
2011/02/10(木) 00:16:23理解できないけど
0715デフォルトの名無しさん
2011/02/10(木) 11:55:020716デフォルトの名無しさん
2011/02/10(木) 14:31:03必要なのは占い師か?だったらスレ違いだな
0717デフォルトの名無しさん
2011/02/11(金) 10:51:54配列には3要素のみが格納されると思っていたらなぜか
4要素が格納されてしまうのですがどこに見落としがあるのでしょうか?
(TABでsplitしているのだから行末の改行文字は無視されると思っているのですが)
1 武田1 営業部1(改行)
2 武田2 営業部2(改行)
3 武田3 営業部3(改行)
line には、
1 武田1 営業部1(改行)
という読取ったデータの1行分が入っているとします。
vec_tab = Split(line, vbTab) 'TABで分割
を実行すると
vec_tab の要素数は3では無く
4となり vec_tab(4)の中身は "" (空文字)となっています。
0718デフォルトの名無しさん
2011/02/11(金) 10:59:430719デフォルトの名無しさん
2011/02/11(金) 11:01:36vec_line = Split(readData, vbCrLf) '1行分のデータで分割
For Each line As String In vec_line
vec_tab = Split(line, vbTab) 'TABで分割
Next
0720デフォルトの名無しさん
2011/02/11(金) 11:03:23じゃあtsvファイルをバイナリエディタで見せろ
0721デフォルトの名無しさん
2011/02/11(金) 11:26:37サンクス
解決しました。
0722デフォルトの名無しさん
2011/02/11(金) 11:32:240723デフォルトの名無しさん
2011/02/11(金) 12:18:17その列定義がTextBoxか否かという判定を行いたいのですが
どういうコードを書けばよいでしょうか?
Private Sub dgv_test_CellClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles dgv_test_list.CellClick
If e.ColumnIndex >= 0 Then
If dgv_test.Columns(e.ColumnIndex).CellType Is DataGridViewTextBoxCell Then
End If
End If
End Sub
このコードを書くと
DataGridViewTextBoxCellは型です。有効な式ではありません。
というエラーが出てしまいます。
0724デフォルトの名無しさん
2011/02/11(金) 12:29:44まさかケツにタブが付いてたとか言わないよな
頼むからそう言ってくれ
0725デフォルトの名無しさん
2011/02/11(金) 12:46:53if typeof hoge is fuga then
end if
0726デフォルトの名無しさん
2011/02/11(金) 13:04:29試してみましたがエラーが出てしまいます。
どうすれば正常に判定することが出来ますか?
If TypeOf dgv_test.Columns(e.ColumnIndex).CellType Is System.Windows.Forms.DataGridViewTextBoxCell Then
'ここで色々やりたい
End If
○エラー
'System.Type' の式を型 'System.Windows.Forms.DataGridViewTextBoxCell' にすることはできません。
0727デフォルトの名無しさん
2011/02/11(金) 13:14:170728デフォルトの名無しさん
2011/02/11(金) 13:30:410729デフォルトの名無しさん
2011/02/11(金) 14:23:07>>727 の記載の様に修正したところやはり下記のエラーが出てしまいます。
なぜ!?
型 'System.Windows.Forms.DataGridViewColumn' の式を型 'System.Windows.Forms.DataGridViewTextBoxCell' にすることはできません。
0730デフォルトの名無しさん
2011/02/11(金) 14:24:270731デフォルトの名無しさん
2011/02/11(金) 14:34:28でどうだ
0732デフォルトの名無しさん
2011/02/12(土) 17:20:05Object型に入れても、メソッド使うときに遅延バインディングになってしまいます
0733デフォルトの名無しさん
2011/02/12(土) 23:20:48TableAdapterのBaseClassプロパティをそれに変更
後は野となれ山となれ
0734デフォルトの名無しさん
2011/02/12(土) 23:58:36天才だな
0735デフォルトの名無しさん
2011/02/13(日) 10:14:44>>683
罠サイトか?気をつけるわ>>684のページ見ておく
0736デフォルトの名無しさん
2011/02/13(日) 15:32:190737デフォルトの名無しさん
2011/02/13(日) 17:27:290738デフォルトの名無しさん
2011/02/15(火) 00:03:10どうも画像認証の所で詰まってしまいます。
これはどうしたら処理できるのかご存知の方おられますか?
できれば、教えていただけませんか?
0739デフォルトの名無しさん
2011/02/15(火) 00:07:060740デフォルトの名無しさん
2011/02/15(火) 00:26:41とりあえずOCRとかで検索すればいいんじゃない
0741デフォルトの名無しさん
2011/02/15(火) 01:01:46遅くなったけどうまくいきました。ありがとう!
0743デフォルトの名無しさん
2011/02/16(水) 00:39:39>>739であり、>>740が何故中国かを考えた方が良いアル
つかあんまりやらんで欲しい
画像がどんどん難解にひん曲がっていって普通に視認できねーよ
0744デフォルトの名無しさん
2011/02/16(水) 22:22:27どれぐらい一致(=テンプレート内に収まるドットの数)を見るかって、
そういう感じらしいよ
テンプレート多ければ多いほど信頼性が上がるってやつ
0745デフォルトの名無しさん
2011/02/21(月) 10:12:35.830746デフォルトの名無しさん
2011/02/21(月) 10:22:51.17走査線みたいなのだったり色のついた水玉だったりとかの
その辺除去して白黒の変な文字だけにすれば少しなんか見えてきそうな気がする。
0747デフォルトの名無しさん
2011/02/21(月) 11:57:43.150748デフォルトの名無しさん
2011/02/21(月) 16:36:54.08簡単にできる方法ないですか?
0749デフォルトの名無しさん
2011/02/21(月) 16:51:11.77好きなの選べば?
hoge.exe
のビルドした日付をhoge.exe内から取得する方法はありますか?
ビルドしたバージョンを取得する方法は分かったのですが
0751デフォルトの名無しさん
2011/02/24(木) 05:48:29.810752デフォルトの名無しさん
2011/02/24(木) 06:10:45.810753デフォルトの名無しさん
2011/02/24(木) 13:21:26.030754750
2011/02/25(金) 00:37:41.25なんか別の方法を考えてみます
(もしくはあきらめる)
0755デフォルトの名無しさん
2011/02/25(金) 13:27:03.86縦方向には移動するものの、横方向に移動することができません。
対処方法がよく分からないのですが、ご教示頂きたいと思います。
宜しくお願いします。
------------宣言---------------
Private Declare Sub mouse_event Lib "user32" _
(ByVal dwFlags As Long, ByVal dx As Long, _
ByVal dy As Long, ByVal cButtons As Long, _
ByVal dwExtraInfo As Long)
Private Const MOUSE_MOVED = &H1 'マウスを移動する(相対座標)
------------実行---------------
Call mouse_event(MOUSE_MOVED, 300, 0, 0, 0) ←縦方向に正常に動きます。
Call mouse_event(MOUSE_MOVED, 0, 300, 0, 0) ←横方向に全く動きません。
0756デフォルトの名無しさん
2011/02/25(金) 16:24:59.420757デフォルトの名無しさん
2011/02/25(金) 23:08:25.34Newはいったいどんな効果が?
0758デフォルトの名無しさん
2011/02/25(金) 23:30:53.30の略
Newはコンストラクタを呼び出している
ちゃんと理解するならオブジェクト指向勉強してこい
0759デフォルトの名無しさん
2011/02/25(金) 23:36:13.060760デフォルトの名無しさん
2011/02/26(土) 01:49:26.75これをWindowsフォルダ名に使える文字列に書きかえるプログラムかいて
↓
0761デフォルトの名無しさん
2011/02/26(土) 05:58:41.110762760
2011/02/26(土) 11:24:00.06なんでWindowsエンコードはないんだよ
0763デフォルトの名無しさん
2011/02/26(土) 13:31:41.240764デフォルトの名無しさん
2011/02/26(土) 15:35:58.73md "\\?\c:\temp\11/02/26(土)00:42:12"
0765デフォルトの名無しさん
2011/02/26(土) 15:55:45.34古いか?
0766デフォルトの名無しさん
2011/02/26(土) 16:01:56.62Win2kに対応可能なセットアップを作れるのは2005までだから、
そういう事情で2005を使ってるところはまああるでしょ。
それに、某川俣氏みたいにMSマンセーな人は最新版の優位性をやたら煽るけど、
C#にろしVBにしろ、2005より後に追加された機能なんてなけりゃなくてもなんとかなるし。
0767デフォルトの名無しさん
2011/02/26(土) 16:33:22.660768デフォルトの名無しさん
2011/02/26(土) 16:42:16.13WPFやSilverlightアプリ作りたいなら別だが
WinFormなら最新版である必要ないな。
0769デフォルトの名無しさん
2011/02/26(土) 17:08:56.54コピペのマジレスされても・・・
0770デフォルトの名無しさん
2011/02/26(土) 20:28:51.63例えば、10行のデータが存在しているとして
3行目をアクティブにしたいのですがやりかたがわかりません。
0771デフォルトの名無しさん
2011/02/26(土) 21:46:01.27特定してるのにあえて某ってつけるのが面白いと思ってるの?
0772デフォルトの名無しさん
2011/02/26(土) 22:13:35.87っていうか、ガイジンじゃないなら婉曲表現ぐらい分かれよ。
0773デフォルトの名無しさん
2011/02/26(土) 22:32:49.75C#, C♯, C#相談室 Part64
http://hibari.2ch.net/test/read.cgi/tech/1294734221/743
マルチなんで放置推奨
0774デフォルトの名無しさん
2011/02/26(土) 22:36:39.69ですが誘導されたので質問しました。
エスパーの方お教え下さい。
DataGridViewで指定した行をアクティブにするにはどうすれば良いのでしょうか?
例えば、10行のデータが存在しているとして
0775デフォルトの名無しさん
2011/02/26(土) 22:39:41.81甘えんなよカス
0776デフォルトの名無しさん
2011/02/26(土) 23:06:51.28自己解決
0777デフォルトの名無しさん
2011/02/27(日) 23:47:42.16ODACだと9iクライアントに対応するものがなくて困ってます。
どのミドルウェアを使えば出来るでしょうか?
0778デフォルトの名無しさん
2011/02/27(日) 23:52:21.020779デフォルトの名無しさん
2011/02/28(月) 00:10:37.03JDBCってJava以外から使えるの?
0780人恋し
2011/02/28(月) 02:02:50.00Private Sub UpdataMaintLoad(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles _DataGridView.CellDoubleClick
If 『ダブルクリックされたセル(場所)がヘッダである』 Then
'イベントは起こさない
Else'(=ヘッダではなく、表の中のセルがダブルクリックされている。)
イベント(sender, e)
End If
End Sub
この『』に入れるべき条件式が判らない。
【背景】
・セルの詳細を表示する関数が、ヘッダのクリック時に暴発してしまうことを防ぎたいです。
・ヘッダをクリック禁止にする対策法は、ソート機能が使えなくなるためNGです。
度々お世話になりますが、宜しくお願いします。
0781デフォルトの名無しさん
2011/02/28(月) 02:47:03.88eをDataGridViewCellEventArgsにキャストして
if e.ColumnIndex<0 or e.RowIndex<0 then
で行けるかと
0782人恋し
2011/02/28(月) 22:50:06.79朝一で確認したのですが、会社が掲示板書き込み禁止だったので・・・。
>>781
ありがとうございます、ご指摘の方法でばっちり解決しました。
いつも素早く素晴らしいアドバイスをいただきとても助かっています。
0783デフォルトの名無しさん
2011/03/03(木) 01:23:55.930784デフォルトの名無しさん
2011/03/03(木) 01:29:09.12具体的にどういうとこ?
0785デフォルトの名無しさん
2011/03/03(木) 11:29:45.090786デフォルトの名無しさん
2011/03/03(木) 12:37:33.440787デフォルトの名無しさん
2011/03/03(木) 12:47:55.70セルをエクセルに見立てて質問する。
A〜Dまで列があって、C1の次はB2に移動させたい。
「次」とはタブキーもしくはエンターキーを押したときの動作
KeyDown イベントで書くと正しく動作するように見えるけど
セルを編集してて編集終了の意味でエンター押すと KeyDown イベントが起きなくて D1 に行ってしまう。
仕方なく CellEditEnd にも KeyDown と同じように CurrentCell を変更するコードを書いてみるが
一瞬B2に移動する挙動を示しつつも、D1へ移る内部処理が生きてて、C1→B2→D1 となってしまう。
最終的に、CellEditEnd の中で SendKeys "{Right}{Right}" として所望の動作にはなったんだが
セル列の増減に自然対応できない強引すぎるコードで嫌いだ。
なにか良い手はないのか
0788デフォルトの名無しさん
2011/03/03(木) 12:54:33.86といって左右使わせることにしている
フォーカスも同じ
Tabでいどうしてくれ WEBフォームなんかでもどこでもTABでいどうでしょ?
て見せて無理やり納得させてる
古い産物いつまで引きずるつもりなんだよカス
0789デフォルトの名無しさん
2011/03/03(木) 13:09:47.630790デフォルトの名無しさん
2011/03/03(木) 16:40:00.85論点はエンターをタブ化する部分ではないんだが。
編集中の内容を確定するときはエンター押すだろ?
C1の編集が終わって、そのエンターでB2にしたいだけよ
0791デフォルトの名無しさん
2011/03/03(木) 16:40:41.92カーソルキーが使えなくならないか
0792デフォルトの名無しさん
2011/03/03(木) 23:16:40.03Control.KeyDown イベント
Tab キー、Enter キー、Esc キー、方向キーなどは、コントロールによって自動処理されます。
これらのキーで KeyDown イベントを発生させるには、フォーム上の各コントロールで
IsInputKey メソッドをオーバーライドする必要があります。
0793デフォルトの名無しさん
2011/03/03(木) 23:22:52.84Excelみたいに選択レコードそのままにソートってできないの?
0794デフォルトの名無しさん
2011/03/04(金) 04:36:24.52お前の家ぐらい覚えとけ。
とっとと家に帰れ。
0795デフォルトの名無しさん
2011/03/04(金) 05:54:40.14シネ
0796デフォルトの名無しさん
2011/03/04(金) 16:05:35.830797デフォルトの名無しさん
2011/03/06(日) 12:27:29.81わざわざVB.NetでExcel紛い作る意味あるの?
0798デフォルトの名無しさん
2011/03/06(日) 12:57:21.090799デフォルトの名無しさん
2011/03/06(日) 18:05:02.27Dim MyDate1 As DateTime = DateTime.Parse("2011/3/4")
Dim MyDate2 As Integer = Integer.Parse(MyDate1.ToString("yyyyMMdd"))
これでいいの?もっとスマートな方法ある?
0800デフォルトの名無しさん
2011/03/06(日) 18:47:49.190801デフォルトの名無しさん
2011/03/06(日) 18:47:59.850802801
2011/03/06(日) 18:49:02.720803デフォルトの名無しさん
2011/03/06(日) 18:52:16.390804デフォルトの名無しさん
2011/03/06(日) 19:29:25.31その後何したいのか気になるんだけど
0805デフォルトの名無しさん
2011/03/06(日) 20:39:48.17文字型でやってる所もあれば数値型でやってる所もあるだろう
0806デフォルトの名無しさん
2011/03/06(日) 20:43:55.44Dim idt = dt.Year * 10000 + dt.Month * 100 + dt.Day
スピードはこっちのほうが速そうだけど、コードのスッキリさでは
>>799 >>800 かな。
0807デフォルトの名無しさん
2011/03/06(日) 20:57:44.890808デフォルトの名無しさん
2011/03/07(月) 01:51:34.540809デフォルトの名無しさん
2011/03/07(月) 13:08:56.360810デフォルトの名無しさん
2011/03/07(月) 14:33:13.98DateTime.ToString("yyyyMMdd")なりでやってればその例外は無視するほうがきれいだろ
それ失敗するとかあくまでもホントの例外になるんだから
やり方次第だから反射レスで
例外考えない糞コードてのは言いすぎじゃないか?
0811デフォルトの名無しさん
2011/03/07(月) 14:48:48.04DateTime.Parseの方は考えるべきだろ。
0812デフォルトの名無しさん
2011/03/07(月) 18:19:31.05単体の命令とってみて例外処理してないからどうこうって言えるわけがない
子の場合はデータ読み込みなんだから、不正なデータがあったときに
どうするのかっていうプログラム仕様を考えた上で例外処理すればいいだけ
0813デフォルトの名無しさん
2011/03/07(月) 18:33:08.35当たり前のことをドヤ顔で言うな
お前はすっ込んでロリ
0814デフォルトの名無しさん
2011/03/07(月) 18:59:47.09しかつかったことないけどFinalyってなに?
0815デフォルトの名無しさん
2011/03/07(月) 19:03:36.630816デフォルトの名無しさん
2011/03/07(月) 19:50:02.06主にファイルを閉じたりDispose呼んだりするのに使う
でも上の場合はUsing使ったほうがいい
0817デフォルトの名無しさん
2011/03/07(月) 22:25:56.47C#の
public void Hoge(int n) : this(n, 0) {・・・}
みたいなやつ。
0818デフォルトの名無しさん
2011/03/07(月) 22:45:10.00コマンドライン引数 or プロセス間通信(Accessにできるの?)以外に良い接続方法が思い浮かびません
何方かヒントをよろしくお願いします
0819デフォルトの名無しさん
2011/03/07(月) 22:54:42.64Newすりゃそのクラスのコンストラクタが呼ばれる
継承元のコンストラクタを呼ぶならMyBase.New
0820デフォルトの名無しさん
2011/03/07(月) 23:02:04.09C#みたいにオーバーロードされたコンストラクタの呼び出し専用の構文はない。
あたかもNewっていう名前のメソッドがあるかのように書くだけ。
ただもちろん、別のコンストラクタ呼び出しの前に他の処理を書けない点はC#と同じ。
っていうか、MSDNライブラリに普通に解説があるんじゃないかと...
0821デフォルトの名無しさん
2011/03/07(月) 23:15:48.86MyBase.New()の継承元を呼び出す説明はそこかしこに書いてあるけど、
自分のコンストラクタを呼ぶ方法が書いてあるところは見つけられない。
http://msdn.microsoft.com/ja-jp/library/2z08e49e(v=VS.90).aspx
ためしにideoneで、コンストラクタの一行目でNew(…)とか書いて
自分以外のコンストラクタを呼ぶコードを試してみたけど、やっぱり
コンパイルエラー。
書き方が悪いからか、monoだからなのかよくわからない。
0822デフォルトの名無しさん
2011/03/08(火) 00:37:50.20まぁReadOnly付いてるのは無理だったりするけど
0823デフォルトの名無しさん
2011/03/08(火) 02:14:08.41しかつかったことないけどFinalyってなに?
0824デフォルトの名無しさん
2011/03/08(火) 02:25:54.540825デフォルトの名無しさん
2011/03/08(火) 05:09:40.41Try Catch抜ける前に必ずとおる処理を書く
0826デフォルトの名無しさん
2011/03/08(火) 20:02:35.810827デフォルトの名無しさん
2011/03/08(火) 20:52:12.65不正解だ
よく見るんだ
0828デフォルトの名無しさん
2011/03/08(火) 22:34:37.67いちいちタイポ指摘すんのめんどくせ
0829デフォルトの名無しさん
2011/03/13(日) 11:42:24.44文字列として"82A083A282A482A682A8"と格納されている値を
"あいうえお"と変換したいのですが方法がよく分かりません…
いい方法ございますでしょうか。
0830デフォルトの名無しさん
2011/03/13(日) 13:12:21.432文字目と思われる"83A2"は"82A2"の間違い?
0831デフォルトの名無しさん
2011/03/13(日) 13:17:53.17返答ありがとうございます。
すみません…"82A2"の間違いです。
0832デフォルトの名無しさん
2011/03/13(日) 13:27:54.14DirectCast(Int32.Parse("82A2", NumberStyles.AllowHexSpecifier), Char)
でいけるかな
0833デフォルトの名無しさん
2011/03/13(日) 13:34:36.54普通に2文字ずつByte.Parseしてって配列化して最後にEncodingでGetString
0834デフォルトの名無しさん
2011/03/15(火) 10:02:22.57確認してきたらどうなのよ?
0835デフォルトの名無しさん
2011/03/15(火) 22:24:51.79地震の影響か、grapecityのサイトに繋がらん・・・
オフィシャル以外で配布されてたりするんだっけ?
知ってる方いたら教えてください><
0836デフォルトの名無しさん
2011/03/15(火) 23:30:48.98グレープシティのサービスは全て停止している
ttp://codezine.jp/article/detail/5838
0837デフォルトの名無しさん
2011/03/16(水) 09:03:50.31アクティベーションを要求されるソフトは最悪だな
0838デフォルトの名無しさん
2011/03/17(木) 04:04:53.97VisualBasic 2010 Expressでフォームmainformの背景色を変更したくてmainformと言うフォーム上で
mainform.BackColor = Color.Purple
と言う命令を使いましたが、
'WindowsApplication1.mainform'は 規定のインスタンスからそれ自体を参照できません。'Me'を使用してください。
とのエラーメッセージが出ました。そこで、
Me.BackColor = Color.Purple
と言う命令を使うとエラーが出なくなりましたが、mainformの背景色が変わりません。
どのようなコードを書けば背景色が変わるのか教えてください。
0839デフォルトの名無しさん
2011/03/17(木) 10:13:17.67どこでそのコードを記述してるのか
0840デフォルトの名無しさん
2011/03/17(木) 10:54:52.63プロジェクトの中で、フォームはmainformだけであります。
0841デフォルトの名無しさん
2011/03/17(木) 12:09:15.92hogehoge_Load
とか
InitializeComponent() とか書かれた部分の前だとか
ソースコピペで晒してみれば?
0842デフォルトの名無しさん
2011/03/18(金) 09:48:24.43bin/Releaseと、
obj/x86/Release
は何が違うのでしょうか?
0843デフォルトの名無しさん
2011/03/18(金) 10:27:33.36よくあるページ移動をこういうリンクにしたいのが
↓
<<最初 <前 1 2 3 次> 最後>>
これしか出来ないと。(涙
1 2 3
実装段階になって先方にコントロールが無いから出来ないって言われた。
信じられん。
0844デフォルトの名無しさん
2011/03/18(金) 10:35:22.67binはコンパイルされた結果が入るんで開発者側でも使うけどobjはVSがコンパイルしたりいろいろやってるときの作業用に使うんだったはず
ふつうobjは意識しないだろ・・・とおもうんだけど俺だけ?
0845デフォルトの名無しさん
2011/03/18(金) 10:36:29.03ページング位自前で実装させろ
やったことないとか言ったらその会社経験なさすぎ
0846デフォルトの名無しさん
2011/03/18(金) 11:34:59.54ですよね。
自分で他言語では、やってるので泣きそうになった。
これから交渉してきます。
ありがとう。
0847デフォルトの名無しさん
2011/03/20(日) 08:15:15.43URLをもとに某SNSサイトから動画みたいなのをダウンロードするプログラムを作ってる。
このプログラムはそのページでないとArgumentExceptionを吐いてくるから、それを阻止したいなー って思って。
一応、
try
ダウンロード処理
catch ex as ArgumentException
Exit sub
end try
みたいな感じで纏めてるけど…
もっとスマートな方法を知りたいです。
よろしくお願いします。
0848デフォルトの名無しさん
2011/03/20(日) 09:42:36.33そのページってのを事前にチェックすればいいだけじゃないの
例外は言葉通り、事前に対処できるなら出来る限り発生させない設計のほうがいい
0849デフォルトの名無しさん
2011/03/20(日) 15:44:01.070850デフォルトの名無しさん
2011/03/20(日) 16:31:09.89http://msdn.microsoft.com/ja-jp/library/system.web.ui.htmltextwriter.aspx
0851デフォルトの名無しさん
2011/03/20(日) 16:46:51.07すいません、WebじゃなくてWindowsformです
0852デフォルトの名無しさん
2011/03/20(日) 16:53:21.11じゃあこっち
http://msdn.microsoft.com/ja-jp/library/system.windows.forms.htmlelement.aspx
あと無暗に上げなさんな
0853デフォルトの名無しさん
2011/03/20(日) 17:07:46.27有難うございます。
こいつを使用してWebBrowserコントロールに表示する感じであっていますでしょうか
0854デフォルトの名無しさん
2011/03/25(金) 21:14:25.43BoldプロパティがReadonlyでいじれません
0855デフォルトの名無しさん
2011/03/25(金) 22:36:52.50A = DateAdd("M",3,CDate(A))
なぜか、Aの値が「#05/01/2000#」と返ってきます
一体なぜなのかわかりません…Aに"2000/05/01"と設定する上手い方法がありませんでしょうか?
0856デフォルトの名無しさん
2011/03/25(金) 22:53:50.19B = DateAdd〜
でした
BはDate型です
変な値が返ってくるのも、上手く設定したいのもBです
0857507
2011/03/25(金) 23:00:08.23Format関数で適当に整形すれ
0858デフォルトの名無しさん
2011/03/25(金) 23:19:49.65!!
ありがとうございます
0859デフォルトの名無しさん
2011/03/25(金) 23:56:37.07Font自体をBoldで作って割り当てたらいいんじゃないの。
0860デフォルトの名無しさん
2011/03/26(土) 00:13:15.00columnsコレクションのdefaulecellstyleが?
0861デフォルトの名無しさん
2011/03/26(土) 00:17:00.26テキストボックスの中を選択状態にしたいのですが、これはプロパティで設定するものなのでしょうか?
(わかりにくくてすみません…)
0862デフォルトの名無しさん
2011/03/26(土) 03:18:27.99MyString = String(10, "ABC") ' "AAAAAAAAAA" を返します。
というのがString関数の仕様だけど
これをABCABCABCABCABCABCABCABCABCABC
のようにABCを10回書きたい場合はどうすれば
0863デフォルトの名無しさん
2011/03/26(土) 07:34:07.060864デフォルトの名無しさん
2011/03/26(土) 07:51:16.16拡張メソッドでも定義すりゃいい
<System.Runtime.CompilerServices.Extension()>
Public Function Repeat(ByVal s As String, ByVal count As Integer) As String
Dim buff As New System.Text.StringBuilder
For i = 0 To count - 1
buff.Append(s)
Next
Return buff.ToString
End Function
0865デフォルトの名無しさん
2011/03/26(土) 08:11:35.460866デフォルトの名無しさん
2011/03/26(土) 08:12:39.620867デフォルトの名無しさん
2011/03/26(土) 11:21:45.46テキストボックス = " / "
なにか設定が足りないのでしょうか?
0868デフォルトの名無しさん
2011/03/26(土) 12:03:01.87PasswordCharプロパティのこと?
0869デフォルトの名無しさん
2011/03/26(土) 12:18:05.85いえ、MaskedTextBoxのMaskプロパティです
0870867
2011/03/26(土) 12:44:33.38テキストボックスには" / "と表示されていました
ただ、以下のようにした場合、IF文が真になりません
テキストボックス.text = " / "
IF テキストボックス.text = " / " Then
Exit Sub
Else
処理
End If
0871デフォルトの名無しさん
2011/03/26(土) 12:56:25.99せっかくMaskしてんのに" / "を代入する意味が分からんが
99/99でMaskした場合は" /"になる
" /"で比較すりゃTrueになんだろ
0872デフォルトの名無しさん
2011/03/26(土) 12:58:01.10連続した半角スペースは2chだと潰れるんだった
半角スペースの代わりにアンダーバーで表すと"__/"
0873デフォルトの名無しさん
2011/03/26(土) 13:03:02.08出来ました…ありがとうございます
ちなみになぜ" /"になるのでしょう?
違ってたら申し訳ないんですが、確か.net化する前は" / "の比較がいけたと思うのですが
0874デフォルトの名無しさん
2011/03/26(土) 13:21:20.26例えばMaskを9999にして"123 "をセットした場合は、"123 "ではなく"123"と
後ろが切り詰められる
厳密には切り詰められる訳じゃなく、後方の任意数のスペースは
無かったものと見なされてるっぽい
.NET可する前ってのはVB6だと思うが、そもそも標準でMaskedTextBoxみたいな
コントロールがあったか覚えていない
0875デフォルトの名無しさん
2011/03/26(土) 15:02:42.97ショボスギ
0876デフォルトの名無しさん
2011/03/26(土) 16:31:48.030877デフォルトの名無しさん
2011/03/26(土) 17:33:54.28binの中のexeとexe.configを別フォルダに移して実行してもconfigで設定した内容が反映されません
0878デフォルトの名無しさん
2011/03/26(土) 17:53:45.340879デフォルトの名無しさん
2011/03/26(土) 18:07:31.22>>877
とりあえず@itのアプリケーション設定関係の記事を一通り読めと。
話はそれから。
DataGridView.Rows(rowindex).Cells("colの名前").Value
ってことかえ
0881デフォルトの名無しさん
2011/03/26(土) 20:09:53.59効かないのは何故?
0882デフォルトの名無しさん
2011/03/26(土) 20:38:00.79一応読んでみましたが、特にそれっぽい情報がなかったです。
シャットダウン時にMy.Settingを保存する。にチェックが入っているのに保存されないとはどのようなことでしょうか。
configファイルに保存されるってことはconfigファイルとexeファイルのみがあれば正常に動作するはずなんですけどね・・・
0883デフォルトの名無しさん
2011/03/26(土) 20:49:01.67なぜ
Dt.Rows(i)("フィールド名")
であって
Dt.Rows("フィールド名")(i)
でわないの?
だれが
まず行indexを指定して
それからフィールドを指定する
という順番にしたはったん?
0884デフォルトの名無しさん
2011/03/26(土) 20:54:11.97頭大丈夫か?
rowsつーたらまず行選ばんとフィールドもへったくれも無いだろうが
0885デフォルトの名無しさん
2011/03/26(土) 20:56:40.390886デフォルトの名無しさん
2011/03/26(土) 20:58:53.340887デフォルトの名無しさん
2011/03/26(土) 21:03:08.51構造体の配列として捉えれば行が先の方が自然
0888デフォルトの名無しさん
2011/03/26(土) 21:07:15.400889デフォルトの名無しさん
2011/03/26(土) 21:41:59.61フィールドはItemに含まれてるのだから、Itemなしに指定することはできない
0890デフォルトの名無しさん
2011/03/26(土) 22:22:15.97(1)アプリ起動→(2)アプリ内で設定変更→(3)アプリ終了→(4)再度アプリ起動、で変更が保存されていないってことか?
とりあえず、上の流れを試してみて保存されていれば正常(で、>>879に戻ると)
ああ、当たり前だけど3、4の間に移動/コピーやリビルドなんかするなよ
0891デフォルトの名無しさん
2011/03/26(土) 23:00:26.83デバッグフォルダ内で起動した場合は普通に保存されます。
exeとconfigファイルのみ別のフォルダに移動して上記の流れで操作した場合のみ、保存されません
0892デフォルトの名無しさん
2011/03/26(土) 23:06:53.25>>891
だから、こんなところでグダグダ言ってる暇に@ITの記事をちゃんと読めって。
アプリケーション設定がどこに保存されるとか、configの意味とかちゃんと書いてあるから。
0893デフォルトの名無しさん
2011/03/26(土) 23:34:46.07A222BあああA555BえええAおおおB55A454B
と入っていたとします。
この文字列の
AとBとその間の文字を1セットにして、AとBの間の文字に5が入っていたときだけ、AとBを削除する
このようなロジックをつくっていただけないでしょうか?
0894デフォルトの名無しさん
2011/03/26(土) 23:38:24.82宿題スレでどうぞ
0895デフォルトの名無しさん
2011/03/26(土) 23:46:35.81つまり、
デバッグフォルダで起動して設定した内容は、デバッグフォルダでもう一度起動すると保存されている
移動先のフォルダで起動して設定した内容は、移動先のフォルダでもう一度起動すると保存されていない
ということか?
0896デフォルトの名無しさん
2011/03/26(土) 23:53:05.32そういうことです。
exeとconfig以外に必要なファイルがあるか探してみます
0897デフォルトの名無しさん
2011/03/27(日) 01:16:07.10ヒント
Contains IndexOf Remove
0898デフォルトの名無しさん
2011/03/27(日) 01:27:54.000899デフォルトの名無しさん
2011/03/27(日) 02:01:13.75インストーラ自体は作成されるのですが、いざsetup.exeを実行すると
インストール中にエラーが発生し、デバッグすると
パス 'C:\Users\○○\AppData\Local\Apps\2.0\D4T01EYC.LQB\ico\ico1.ico' の一部が見つかりませんでした。
と例外が発生します。
同様の現象が出たことある方がいらっしゃいましたら、どうか解決方法をご教示くださいませ。
VS2010でOSはVISTA SP2です。
0900デフォルトの名無しさん
2011/03/27(日) 06:09:24.12Sの初期化はS=""
でわ
日付変数の初期化は?
0901デフォルトの名無しさん
2011/03/27(日) 08:33:35.29その通りなんだろ
大体アイコンとか埋め込みリソースにするもんじゃね?
0902デフォルトの名無しさん
2011/03/27(日) 11:35:54.79変数の初期化を定義しろ
0903デフォルトの名無しさん
2011/03/27(日) 11:45:12.35もし定義しただけで自動的に初期化されてると思うなら
定義しただけの変数参照してみろよw
0904デフォルトの名無しさん
2011/03/27(日) 11:48:31.67Int32は0
Stringは参照型だからnull
DateTimeは西暦0年1月1日0時0分0秒
0905デフォルトの名無しさん
2011/03/27(日) 11:58:31.01Dim dt As New DateTime
とか
Dim dt = DateTime.Now
とか
Dim dt = DateTime.MinValue
お好きなように。
0906デフォルトの名無しさん
2011/03/27(日) 12:07:18.42A〜Bの〜を消すなら(?<=A)[^B]+5[^B]+(?=B)
A〜BのA、Bだけを消すならA(?=[^B]+5[^B])|(?<=[^A]+5[^A])B
まぁ試してないから間違っているかも
0907デフォルトの名無しさん
2011/03/27(日) 12:11:56.03正規表現より文字列舐めたほうが楽かな
0908デフォルトの名無しさん
2011/03/27(日) 12:15:15.61906の1番目も+は*じゃないと漏れちゃうね
0909デフォルトの名無しさん
2011/03/27(日) 17:45:14.21は=nothingも=""もTrueになる不思議!
0910デフォルトの名無しさん
2011/03/27(日) 17:55:02.82不思議でも何でもない
0911デフォルトの名無しさん
2011/03/27(日) 17:57:11.26と同じ
0912デフォルトの名無しさん
2011/03/27(日) 18:30:11.920913デフォルトの名無しさん
2011/03/27(日) 18:36:20.840914デフォルトの名無しさん
2011/03/27(日) 18:39:10.92ちゃんとMSDNでも説明されているだろ
http://msdn.microsoft.com/ja-jp/library/ms233957.aspx
ここら辺ちゃんと読んどけ
http://msdn.microsoft.com/ja-jp/library/hzcd8ze0.aspx
0915デフォルトの名無しさん
2011/03/27(日) 19:00:42.360916デフォルトの名無しさん
2011/03/27(日) 19:18:00.86そんな力んでいうような事か?
カルシウム足りないんじゃないの?
まあちゃんとMSDNライブラリの参照先を貼ってる点は買うけどさ。
>>915
それは違うよ。
Nothingは空文字として扱うが、逆は成立しない。
0917デフォルトの名無しさん
2011/03/27(日) 19:30:32.95Visual Basic
という名前に戻っちゃったから
ヘルプ見てもわからないんだよ!
0918デフォルトの名無しさん
2011/03/27(日) 19:31:41.78どこが力んでんだよw
突っ込むにしてもここは初めてか?力抜けよくらいのネタで返しとけよ
0919デフォルトの名無しさん
2011/03/27(日) 19:39:19.47俺はそういう気色の悪いノリは大嫌いなんだよ君と違って
0920デフォルトの名無しさん
2011/03/27(日) 19:41:14.95あらあら^^
0921デフォルトの名無しさん
2011/03/27(日) 20:50:31.65exeとconfigのみを移動させれば大丈夫ということがわかりました。
移動先でも保存されました、でもその2ファイルを別のとこに移動するとsettingが初期化されてしまいます。
あと保存後でもconfigの内容に一切変化がないんですが、基本的にどこのファイルに保存されるのでしょうか?
どこかの隠しファイルとかでしょうか?
0922デフォルトの名無しさん
2011/03/27(日) 20:58:46.69アンタが知りたいことは全部書いてある。
必用なのは記事を読む時間と少しの根気だけだ。
しかしどっか足りない奴に限って妙に頑固だな。
0923デフォルトの名無しさん
2011/03/27(日) 21:18:31.44一通り読めで用が足りるなら粘着はしないとw
つーか怒る位ならアドレス全部書いとけよ
それで読まないならいくら怒ってもいいから
0924デフォルトの名無しさん
2011/03/27(日) 21:23:04.960925デフォルトの名無しさん
2011/03/27(日) 21:25:02.58読みましたが、よくわかりませんでした。
ので訊きに来ました
0926デフォルトの名無しさん
2011/03/27(日) 21:28:04.59OK.
とりあえず↓から芋づる式に関連する記事を一通り読めばいいと思う。
http://www.atmarkit.co.jp/fdotnet/dotnettips/558appsettings/appsettings.html
>>925
そんな難しい話じゃないから読めば分かるはず。
0927デフォルトの名無しさん
2011/03/27(日) 21:54:10.92有難うございます
読んでみましたが、結局のところexe.configには初期設定のみが記載してあり、
settingを保存するところはuser.configということは理解できました。
使い勝手があんまりよくないので、同一フォルダの別ファイルに設定を保存したいのですが、
それにはiniファイルなどを使用するしかないのですか?
初期値を設定するためだけにexe.configを使うんならexeに組み込んじゃったほうがいいと思うのですが、気のせいでしょうか。
0928デフォルトの名無しさん
2011/03/27(日) 22:04:16.94設定値を保存することはできません。
自前で実装してください。
0929デフォルトの名無しさん
2011/03/27(日) 22:20:15.26.NETはXMLを簡単に操作できるクラスやLINQとかの機能まで用意してんだから
xml形式のconfigファイルで十分だと思うんだけどなぁ
iniファイル使うくらいならRegistryKeyクラスがある分レジストリいじるほうが
まだマシなもんだろ
0930デフォルトの名無しさん
2011/03/27(日) 22:22:25.66論点ずれてますよ
0931デフォルトの名無しさん
2011/03/28(月) 06:12:47.99のメソッドが無くなったので助けてくだしぃ
0932デフォルトの名無しさん
2011/03/28(月) 12:00:31.81DataTable.CreateDataReader() はどう?
0933デフォルトの名無しさん
2011/03/28(月) 17:21:18.190934507
2011/03/28(月) 18:53:26.17検索してもC#ばっか出てくるから
C#勉強したほうが良いかなあ?
0935デフォルトの名無しさん
2011/03/28(月) 18:55:48.700936デフォルトの名無しさん
2011/03/28(月) 20:01:47.06レコードの中に数値項目がいくつかあっていて、それらをCSVに落としたのですが、負数だけなぜかCSVに出力すると空になってしまいます
(値は.textで取得してます)
これは一体なぜなのでしょうか?
※ちなみにvalueで取得してもだめでした
0937デフォルトの名無しさん
2011/03/28(月) 20:15:32.690938デフォルトの名無しさん
2011/03/28(月) 20:48:17.67ファイル作成日を変更するプログラムはどうかけば
0939デフォルトの名無しさん
2011/03/28(月) 22:11:27.69http://msdn.microsoft.com/ja-jp/library/system.io.file.setcreationtime.aspx
0940デフォルトの名無しさん
2011/03/28(月) 22:35:32.320941デフォルトの名無しさん
2011/03/29(火) 04:19:28.23了解
0942デフォルトの名無しさん
2011/03/29(火) 19:47:16.090943デフォルトの名無しさん
2011/03/29(火) 20:27:10.79どこでNullって出てきたのか解らんから、それだけではなんとも
VBではNothingってのもあるからな
0944デフォルトの名無しさん
2011/03/29(火) 20:32:12.19C#→NullはNull
VB.NET→NullはNothing
DBNullは別の物
DBNull≠Null
0945デフォルトの名無しさん
2011/03/30(水) 03:02:48.010946デフォルトの名無しさん
2011/03/30(水) 22:34:41.00っていう表現変だと思うんだけど
この直線をx軸に4並行移動させると
が
ただしくないかぃ?
0947デフォルトの名無しさん
2011/03/30(水) 23:35:19.85画面にテキストボックスが10個ありまして、そのテキストボックスすべてクリックした時のイベントを統一しています
クリックしたときセルの中身を選択状態にするという統一されたイベントを、一つのプロシージャでなんとか処理できないでしょうか?
今のところ各テキストボックスのクリックイベントが一つずつ存在してますが、長いし同じ処理なのにすごく効率悪く感じます
クリックしたテキストボックスの名前を取得する方法などがあればいいのですが…
効率化するにはどうすればよいでしょうか?
0948デフォルトの名無しさん
2011/03/30(水) 23:46:36.140949947
2011/03/30(水) 23:46:39.50自分で書き込んでおいてアレですが、senderの存在を忘れてました
すみませんでした
0950デフォルトの名無しさん
2011/03/31(木) 00:05:40.89abc ; xyz ; あいう
というデータがあるとします。
このうち;毎にデータを区切ってそれぞれコレクションに追加する、のようなプログラムはどのように書けばいいなでしょうか。
0951デフォルトの名無しさん
2011/03/31(木) 00:08:15.51collection.AddRange(str.Split(";"))
0952951
2011/03/31(木) 00:09:39.180953デフォルトの名無しさん
2011/03/31(木) 00:12:06.02サンクス
0954デフォルトの名無しさん
2011/03/31(木) 00:17:51.73My.Settings(内部ファイル)
ini
レジストリ
xml(外部ファイル)
とかあるけどどれが一番いいの?
俺は分かりやすいiniが好きなんだが知り合いにバカにされた
0955デフォルトの名無しさん
2011/03/31(木) 00:24:47.61俺はXMLファイルに保存してる。単に好みってだけだけど。
0956デフォルトの名無しさん
2011/03/31(木) 00:28:44.55XML>レジストリ>INIの順かな
規模によっちゃDBにするだろうけど、まぁ好きにすりゃいい
0957デフォルトの名無しさん
2011/03/31(木) 11:33:54.05keyDownイベントで
F1キーを押したらボタンを押された処理をできるよにしたいのですが、
vbkeyF1はVB2010Exp.edでは使えないのでしょうか?
0958デフォルトの名無しさん
2011/03/31(木) 13:45:22.36If e.KeyCode = Keys.F1 Then
0959デフォルトの名無しさん
2011/03/31(木) 13:59:32.15区切り文字が2文字の場合はどうすればいいでしょうか
[]毎に区切りたいです
0960デフォルトの名無しさん
2011/03/31(木) 14:21:45.09http://msdn.microsoft.com/ja-jp/library/system.string.split(v=VS.100).aspx
0961デフォルトの名無しさん
2011/03/31(木) 22:34:41.92Dim hoge As String = "abc[]xyz[]あいう"
Dim fuga = Strings.Split(hoge, "[]")
Array.ForEach(fuga, Sub(s) Console.WriteLine(s))
それとも[]ってのは"[abc][xyz][あいう]"こういうの言ってる?
0962デフォルトの名無しさん
2011/04/02(土) 14:56:47.91俺は.NETではXML(ユーザー別に設定を保存したい時はMy.Settings)、WIN32APIではINIを使ってる
レジストリはなるべく使わない
0963デフォルトの名無しさん
2011/04/02(土) 19:33:05.51レジストリのほうが楽だし。
0964デフォルトの名無しさん
2011/04/02(土) 21:34:44.78裏切られた事しかないだろう?
0965デフォルトの名無しさん
2011/04/02(土) 21:51:44.200966デフォルトの名無しさん
2011/04/02(土) 22:46:08.71XNAやMFのように、新しいプラットフォームのVB対応にMSは消極的で切り捨てられつつあるので
そういうのに興味があるならC#に移行するべき
0967デフォルトの名無しさん
2011/04/02(土) 23:19:53.81VBもC#も同じ.NET Frameworkっていうプラットフォームで動作していると思ってんだが
WindowsPhone7上では違うんか?
0968デフォルトの名無しさん
2011/04/02(土) 23:28:01.16基本的にC#優先でVBは遅れて対応するかそのまま放置
0969デフォルトの名無しさん
2011/04/02(土) 23:30:37.39レジストリかiniかって行ったらiniが危ないだろ。ダントツで。
0970デフォルトの名無しさん
2011/04/02(土) 23:34:40.630971デフォルトの名無しさん
2011/04/02(土) 23:41:37.3216bitの互換性のために残してあるから使うなって書いてある。
0972デフォルトの名無しさん
2011/04/02(土) 23:46:14.18msが悪いみたいな感じで、作り方が悪いって言ってるやつは少なかったから
ini使ってて動かなくなっても「まーたmsに裏切られたw」とか言ってれば
まあ体面はたもてるな。
0973デフォルトの名無しさん
2011/04/02(土) 23:57:14.26MSもそんなことに口ばしを挟んでいた記憶はないけどね。
MSが問題にしてたのは設定値の保存先だけじゃなかったのかな。
バイナリと同じディレクトリとか、下手するとシステムフォルダとか、
もっと最悪なのはCドライブの決め打ちのパスとかに、しかもマルチユーザーを
意識せずに保存する悪い習慣は止めてねって言ってただけでしょ。
0974デフォルトの名無しさん
2011/04/02(土) 23:59:07.48C#が優先されているわけじゃなくて、もともとMSの.NET戦略として新規に作られた言語がC#な訳で
新しい機能を試験的にも組み込みやすいからVBよりも先に対応されてんだよ
だから後続のVSバージョンでVBにも機能が追加されてる(ジェネリック、ラムダ式、LINQ、自動プロパティとか)
VB6から無理して.NET対応したくらいだし、急にMSがVBを見捨てるとは思えんけどな
0975デフォルトの名無しさん
2011/04/03(日) 00:02:50.67くちばしを挟むっていうか、iniじゃなくてレジストリ使えって書いてある。
0976デフォルトの名無しさん
2011/04/03(日) 00:06:11.34しっかりしてればiniでも独自形式もなんでも問題ないわな。
まあ、おれは使わないけど。
0977デフォルトの名無しさん
2011/04/03(日) 00:13:45.33しやすいからだと思ってるんだが、まぁ設定管理画面くらい別に実装しろって言うとそれまでだけど
0978デフォルトの名無しさん
2011/04/03(日) 00:26:59.27むしろ.NET立ち上がり時にレジストリはもう使うな、という話はあった。
ファイルの形式については問題にする意味がわからない。
常識的に言って大きなお世話だろう。
せっかくあるシリアル化等の機能を使った方が生産性が高いですよ、というのなら話はわかる。
0979デフォルトの名無しさん
2011/04/03(日) 00:47:44.44XNAのVB切捨てとか明らかにサポートコスト削りだよ
0980デフォルトの名無しさん
2011/04/03(日) 01:16:20.45対応するみたいだけど
http://blogs.msdn.com/b/lisa/archive/2011/03/28/xna-is-coming-to-visual-basic.aspx
そもそもXNAってVB対応してたっけ?
0981デフォルトの名無しさん
2011/04/03(日) 01:31:16.05問題にする意味って、APIは使うなってアナウンスがあるし、
iniの読み書きルーチンでも独自に作ればいいけどそんなことを
するほうが意味が分からない。
物好きで、もうiniファイル関連のライブラリを作ってしまってるなら
それでも使ってればいいだろうけど、初心者がiniとレジストリのどっちが
いいですかって聞いてたらレジストリを勧めとけばいい。
0982デフォルトの名無しさん
2011/04/03(日) 10:43:42.77しかし社内便利屋の俺としてはVBの方が角が立たなくて良い。
C#じゃ爺さんはメンテしてくれなさそうだし。
0983デフォルトの名無しさん
2011/04/03(日) 11:00:51.310984デフォルトの名無しさん
2011/04/03(日) 11:26:24.680985デフォルトの名無しさん
2011/04/03(日) 12:04:14.86stringの最大値は何になるのでしょうか?
Char.MaxValueが解となるように思えますが
文字数も定義せずにChar.MaxValueが最大になるということが
今ひとつ納得できません。
0986デフォルトの名無しさん
2011/04/03(日) 12:10:51.86Char型の値はUnicodeの文字コードの数値で、Char.MaxValueはその最大値
文字数は全く関係ない
0987デフォルトの名無しさん
2011/04/03(日) 12:13:34.26やっぱVBでいいや
0988デフォルトの名無しさん
2011/04/03(日) 13:30:19.72文字列の最大長のことかね。
2Gとか4Gとかそのあたりだろうけど、そんな限界まで使わないから分からないな。
0989デフォルトの名無しさん
2011/04/03(日) 13:33:27.400990985
2011/04/03(日) 15:46:39.66"aaa"と"a"を比較するときは
[0x0061 0x0061 0x0061] と [0x0061 0x0020 0x0020]を
左から順番に評価していくから
string型もchar型も文字数は関係なく最大値はChar.MaxValue[0xFFFF]
であるという認識で宜しいのでしょうか。
それなら納得いく
0991デフォルトの名無しさん
2011/04/03(日) 15:57:37.93頭おかしいのか?
0992デフォルトの名無しさん
2011/04/03(日) 15:58:32.14"a" は { 0x0061 } であって後ろに半角空白なんか付かない
比較するなら2文字目で 0x61 と「存在しない」を比べることになる
で最大値って何よ
0993デフォルトの名無しさん
2011/04/03(日) 16:06:13.75…いろいろ検索してその内容ってどこを検索してきたんだよ
0994デフォルトの名無しさん
2011/04/03(日) 16:20:42.43大きいって判定される文字列ってことだろうか > 最大値
コミュ力に難のある人みたいだから、こういう質問しても答えかえってこないと思うけど。
0995985
2011/04/03(日) 16:29:03.88>>994
まさに私が質問したかったことです。
私の表現と知識が足りずにうまく伝わらなかったようですが。
0996デフォルトの名無しさん
2011/04/03(日) 16:34:16.22文字列の最大値は、Char.MaxValueのCharが、文字列の最大長まで
入ってる文字列だよ。
Dim s as new string(Char.MaxValue, Int32.MaxValue)
みたいなやつ。
(実際にInt32.MaxValueの長さの文字列を作れるかどうかは知らんけど)
0997デフォルトの名無しさん
2011/04/03(日) 19:21:34.37文字列の比較は通常カルチャ依存だから絶対的な最大値はないよ
0998デフォルトの名無しさん
2011/04/03(日) 19:46:29.60実用上は new string(Char.MaxValue)でよさそうな感じだけど > どの文字列より大きい文字列
0999デフォルトの名無しさん
2011/04/03(日) 19:53:54.141000デフォルトの名無しさん
2011/04/03(日) 19:59:00.14番兵とかHIGH_VALUE的な使い方とか。
10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。