VB.NET質問スレ (Part22)
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2007/07/10(火) 12:23:42VB.NET質問スレ (Part21)
http://pc11.2ch.net/test/read.cgi/tech/1177299756/
テンプレは2〜10くらいまでの間にある予定
0002デフォルトの名無しさん
2007/07/10(火) 12:24:43http://msdn2.microsoft.com/ja-jp/library/ms229284.aspx
どぼん!のVB道のトップページとTipsページ
http://dobon.net/vb/
http://dobon.net/vb/dotnet/index.html
Microsoftクイック スタート チュートリアル
http://ja.gotdotnet.com/quickstart/default.aspx
Insider.NET
http://www.atmarkit.co.jp/fdotnet/index.html
宇宙仮面の C# プログラミング
http://ukamen.hp.infoseek.co.jp/
.NET のつぼ
http://park16.wakwak.com/~mimi/dotnet/top.html
.NET TIPS
http://www.atmarkit.co.jp/fdotnet/dotnettips/index/index.html
緑のバイク ★ 初めてのC# プログラム全般
http://homepage3.nifty.com/midori_no_bike/CS/
VB.NETとC#でデザインパターン
http://hccweb1.bai.ne.jp/tsune-1/
匣の向こう側
http://www.ne.jp/asahi/nami/mei/index.html
WisdomSoft
http://wisdom.sakura.ne.jp/
じゃんぬねっと
http://jeanne.wankuma.com/
どっとねっとふぁん - C# Tips And Samples -
http://homepage3.nifty.com/dotnetfan/index.html
C#プログラミングTips
http://www.atmarkit.co.jp/fdotnet/csharptips/index/csharptips_index.html
0003デフォルトの名無しさん
2007/07/10(火) 12:25:25http://www.codeproject.com/vb/net/
the GotDotNet Home Page
http://www.gotdotnet.com/
KEN's .NET
http://www5b.biglobe.ne.jp/~yone-ken/VBNET/index.html
Cetus Links: 19,498 Links on Objects and Components / .NET
http://www.cetus-links.org/oo_dotnet.html
HIRO's.NET
http://vbdotnet.fc2web.com/index.html
@IT:特集 .NET開発者のためのオンライン・リソース・ガイド
http://www.atmarkit.co.jp/fdotnet/special/onlineres/onlineres_01.html
.NETでいきまっしょい!
http://santamartadotnet.hp.infoseek.co.jp/
これがほしかった!厳選サンプルツール集
http://anetm.com/dev/tools/vbdotnet.htm
ぬーやんのdotNET講座
http://www.geocities.jp/nuu_yan/dotNET/index.html
PINVOKE.NET
http://www.pinvoke.net/
WinAPI Database for VB Programmer
http://www.geocities.co.jp/SiliconValley-Cupertino/5872/
0004デフォルトの名無しさん
2007/07/10(火) 12:26:10http://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 行でズバリ !!」シリーズ
http://www.microsoft.com/japan/msdn/thisweek/wednesday/default.asp
PAPA'n VB
http://www.mitene.or.jp/~sugisita/index.html
VB レスキュー花ちゃん
http://www.bcap.co.jp/hanafusa/dotnet/index.html
(Java覚え書き)デザインパターンあれこれ
http://www.dmz.hitachi-sk.co.jp/Java/Tech/pattern/
algorithm
http://www.mnet.ne.jp/~tnomura/algorithm.html
ラムダ計算入門
http://www.kb.ecei.tohoku.ac.jp/~sumii/class/keisanki-software-kougaku-2005/lambda.pdf
数値計算の基礎
http://www7.ocn.ne.jp/~kawa1/numeric.pdf
0005デフォルトの名無しさん
2007/07/10(火) 12:30:24http://pc11.2ch.net/test/read.cgi/tech/1182120520/
-OOP限定-プログラム設計相談室
http://pc11.2ch.net/test/read.cgi/tech/1127547359/
■(((Microsoft.NET総合スレッド)))■
http://pc11.2ch.net/test/read.cgi/tech/1124784480/
【VB.NET】VS2005 選ぶならどっち?【C♯】
http://pc11.2ch.net/test/read.cgi/tech/1106538237/
VisualBasic6.0 対 VisualBasic .NET 2003
http://pc11.2ch.net/test/read.cgi/tech/1116555483/
VB.NETのとんでもない欠陥に気づいた
http://pc11.2ch.net/test/read.cgi/tech/1147201705/
VB6 >>>>>>>>>> VB.NET
http://pc11.2ch.net/test/read.cgi/tech/1159388733/
VBプログラマ質問スレ(6.0以前) Part52
http://pc11.2ch.net/test/read.cgi/tech/1179563617/
0006デフォルトの名無しさん
2007/07/10(火) 12:34:47そういうことはお前さんが自分で糞webページ立ち上げてそこで好きなだけやれよ。
0007デフォルトの名無しさん
2007/07/10(火) 13:36:15HtmlDocumentにする方法ってないっすか?
OpenReadで読み込んでテキストにする前にHtmlDocumentにする方法でもいいっす。
0008デフォルトの名無しさん
2007/07/10(火) 15:52:59まぁ乙
もすこしひねりのある一言追加がほしかったな
0009デフォルトの名無しさん
2007/07/10(火) 16:06:17あれば知りたく。
また、すべての関数プロシージャ、プロパティを同時に閉じたり
開いたりする方法もあれば、知りたいです。
もしご存知の方がおられましたら、すみませんが、教えてください。
0010デフォルトの名無しさん
2007/07/10(火) 16:38:57HtmlDocumentはNotInheritabledだから直接は作れないみたいね。
この辺を使ってみたらどうでしょう。
WebBrowser.DocumentText
WebBrowser.DocumentStream
0011デフォルトの名無しさん
2007/07/10(火) 16:58:19NotInheritabledだからインスタンス作れないってなにその理解
0012デフォルトの名無しさん
2007/07/10(火) 19:19:46WebBrowserに依存しないHTMLのパーサークラスってあったっけ?
XmlDocmentだったらnewしてLoadでTextReaderかStringを渡せばOKだから、
Htmlでもそれと同じように出来ないかという質問だと思うのだが。
0013デフォルトの名無しさん
2007/07/10(火) 21:27:55DataTableの値を、DataGridViewComboBoxColumnのDataSourceに設定すれば、
ValueMemberの値がDataPropertyNameで指定したフィールドに
入ってくれるんじゃないのか??
コンボボックスで選択する所までは、上手くいくのですが、
そこからフォーカスを移すと
「DataGridViewComboBoxCellの値が有効ではありません」と
エラーメッセージが出てしまう。
そもそもDataGridViewComboBoxCellなんて何時使われているんだろか。
誰か助けてください!
0014デフォルトの名無しさん
2007/07/10(火) 21:35:00書き込み内容だけではよくわからんが
俺の記憶では DataGridViewComboBoxCellの値が有効ではありません
が出た時、データソースにない値を入れようとしたらこうなったけど・・・・
事例が違うし何とも言えないな
0015ももんが
2007/07/10(火) 21:37:090016デフォルトの名無しさん
2007/07/10(火) 22:01:12表示時のデータフォーマットの部分で詰まっています。
カラムAAAがあり型はStringです。
カラムBBBがあり型はStringです。
カラムAAAのデータはYYYYMMDDの形式で必ず8文字のデータがあります。
カラムBBBのデータはHHMMSSの形式で必ず6文字のデータがあります。
この両者をTextBoxColumnの列にデータをバインドさせて表示するときに
AAAはYYYY/MM/DD
BBBはHH:MM:SS
とフォーマットして表示したいのですが、CellStyleプロパティのDataFormatに
0000/00/00や####/##/##を設定してもフォーマットしてくれませんでした。
解決策はないでしょうか?
0017デフォルトの名無しさん
2007/07/11(水) 00:28:46具体的には読み込んできたWebページの
1.テキストボックスに値を入力
2.チェックボックスをチェックする
3.送信ボタンをクリックする
4.リンクンをクリックする
vb 6.0 は document.all(0).value="1111"
とかdocument.all(0).click とかできたのが
.netでできなくて悩んでます
お助け願えませんでしょうか?
0018デフォルトの名無しさん
2007/07/11(水) 00:58:02単一 Region なら Ctrl + M M ... だった希ガス。
複数Regionはマクロ必要じゃないかな
VB6との相互運用を目的とし、 tlbimp で InterOp DLLを作成(sn使用, PIA扱い)。
.NET (2005)で実装に入ると、VB6 から読み込んだ当該DLLのインタフェースを
実装できない(;ω;)
* 特定のプロパティでだけ発生する(同じDLL内の他は問題なく実装できる)
* 問題を起こすプロパティは、VB6 では Bool 型の変哲のないソース
Public Property Let A(flgFinish As Boolean) : isFinished = flgFinish : End Property
Public Property Get A As Boolean : A = isFinished : End Property
* InterOp DLL を ildasm で見ても、おかしいところはみあたらず。
* プロパティはシステム上必須で、Implements しないと相互運用できない。
でも、Implements しようと同じシグネチャでプロパティ書くと Implements できないと言われる。
何か原因に心当たりある人おります?(ここ確認せい、とかでも大変助かります...)
00197
2007/07/11(水) 01:34:43今はWebBrowser1_DocumentCompletedでHtmlElementを取得してから
Tagでコレクションしてるっす。
TagNameコレクションだとInnerTextでタグのプロパティなんかを拾わなくてすむので
楽っすけど、読込に時間かかってます。
WebBrowserに依存しないHtmlを使えるクラスってやっぱないっすか?
0020デフォルトの名無しさん
2007/07/11(水) 02:14:150021デフォルトの名無しさん
2007/07/11(水) 04:06:03キー操作とマクロですか、なるほど!!
ありがとうございました!!
0022デフォルトの名無しさん
2007/07/11(水) 11:43:46スタート画面(frmStart)でボタン形式でメニューを表示し,いずれかのボタンを
選択すると,該当するフォームが表示されます.そのときにfrmStartでMe.Hide()
と記述し,スタート画面を非表示にします.(frmStartはスタートアップに設定されてます)
それを別フォームからスタート画面に戻るには(再表示するには)どうしたらいい
でしょうか?
新たなインスタンスを作るとそのプログラムは終わらないし,frmStart.Show()
はオブジェクト参照されてないし,どうしたらいいでしょうか?
0023デフォルトの名無しさん
2007/07/11(水) 12:13:46子フォームの閉じるイベントで再表示するようにする
0024デフォルトの名無しさん
2007/07/11(水) 15:35:25DataGridViewには値は正しく表示されるのですが、DBへ反映させる事が出来ません。
以下が、まとめたソースなんですが、どこらへんが駄目でしょうか?
エラー等は表示されず、DBの値にまったく変化無しな状態です。
=====
Dim cn1 As New System.Data.SqlClient.SqlConnection("Data Source=Server;Initial Catalog=hogeSQL;User ID=hogeID;Password=hogePass;")
Dim da1 As New System.Data.SqlClient.SqlDataAdapter("SELECT * FROM m_Table", cn1)
Dim cn2 As New System.Data.OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties=text;Data Source=" & System.IO.Path.GetDirectoryName("C:\test.csv") & "\;")
Dim da2 As New System.Data.OleDb.OleDbDataAdapter("SELECT * FROM C:\test.csv", cn2)
Dim ds As New DataSet
da2.Fill(ds, "ds_m_Table")
DataGridView1.EndEdit()
Dim cmdBuilder As New System.Data.SqlClient.SqlCommandBuilder(da1)
da1.Update(ds, "ds_m_Table")
DataGridView1.DataSource = ds.Tables("ds_m_Table")
=====
0025デフォルトの名無しさん
2007/07/11(水) 16:03:21002624
2007/07/11(水) 16:35:48同じです。
上記のCSVは、同じDetaSetから出力されています。
DBもCSVもDataGridViewに同じフィールドで表示されます。
0027デフォルトの名無しさん
2007/07/11(水) 18:12:370028デフォルトの名無しさん
2007/07/11(水) 20:25:310029デフォルトの名無しさん
2007/07/12(木) 00:03:17なんだこれ。
クリップボードにコピーしようとすると、現状が起きる。
こうなると、devenv.exeのプロセスが高負荷になって戻ってこない。
もう50回は落ちたよ。
誰か改善案など知っている方おりますか?
OS:WinXpSP2
VS2005 Ver8.0.50727.762(SP.050727-7600)
なお、クリップボードを操作するアプリは入れていません。
0030デフォルトの名無しさん
2007/07/12(木) 00:13:38俺はSP1にする前 頻繁に落ちてたけどSP1にした今は別に問題ないな
ついでにいうとメモリ少なくって仮想メモリガリガリ使いながらだと落ちやすいみたい
同じ無印2005でマシン変えたら全然落ちなかったし
0031デフォルトの名無しさん
2007/07/12(木) 11:42:14フォルダにアクセス権がるかどうかを調べる場合どうすればいいんでしょうか?
具体的には指定されたフォルダを再起ループで回してエクスプローラ風にツリーを作るのですが
チェックを行わないとSystemVolumeInfomationなどのシステム専用フォルダのアクセスでエラーが出ます。
エラーをキャッチしてスルーしてもいいのでしょうが、エラー発生のたびに遅くなるのと スマートでないため
フォルダの中を再帰的に回すときにアクセス権をチェックした後で再起処理をしたいのです。
ご存知の方はお教え願えませんか?
0032デフォルトの名無しさん
2007/07/12(木) 12:49:44なんで他のアプリの影響とか自分の環境を疑わないのか…
なんならWindowsにVS2005だけ入れて使ってみれば?
0033デフォルトの名無しさん
2007/07/12(木) 13:03:17PCは3台変えた。OSは全てWinxpSP2です。
内1台は新規インストール状態での利用。
(ただし、Office2003SP2は入っている。)
事の頻度は違うかも知れないが、それら全てで似たような状態ですが?
と言うか、例え環境の問題であったとしても、今の時代で、
どんだけ作りが悪いんだよ!
と思わなくも無いですが。
0034デフォルトの名無しさん
2007/07/12(木) 14:36:28e.Location をクライアント座標に変換することって簡単にできますか?
0035デフォルトの名無しさん
2007/07/12(木) 15:22:21Control.PointToScreen(e.location)
でいいんじゃ?
0036デフォルトの名無しさん
2007/07/12(木) 15:25:51それ普通にクライアント座標だろ
0037デフォルトの名無しさん
2007/07/12(木) 15:51:49たぶんそうだと思ったんでスクリーンじゃないかとエスパったおれは負け組の予感
0038デフォルトの名無しさん
2007/07/12(木) 17:18:22やっぱフォーム閉じたりするときに
IsBusy=trueでCancelAsyncメソッド使った後に
IsBusy=Falseになるまでループでスレッド終了まちしてから終了すべき?
0039デフォルトの名無しさん
2007/07/12(木) 18:32:32もう半年ほど毎日仕事で使ってるが、
落ちるなんてことあったのはたぶん1度あったかどうかぐらいだぞ。
ただ、参考になるかどうか分からないけど
Winアプリでコードに問題のある自作コントロールを貼り付けたフォームを
デザイナで開くと落ちる場合があることは経験した。
環境のせいでないとしたら、こういう自分のコードに問題がある可能性も
一応疑った方がいいと思うよ。
もちろんバグがあるからって落ちる開発環境ってどうなの?
なんだけどさ。
0040デフォルトの名無しさん
2007/07/12(木) 20:01:540041デフォルトの名無しさん
2007/07/12(木) 21:41:570042デフォルトの名無しさん
2007/07/13(金) 00:39:58>環境のせいでないとしたら、こういう自分のコードに問題がある可能性も
>一応疑った方がいいと思うよ。
これはIDEとして失格では・・・
俺もSP1にする前はデバッグするたびにかなりの頻度で落ちてたよ。
セットアップ失敗してるのかと思ってインストールしなおしても変わらなかった。
SP1後は一回も落ちなくなったけど。
0043デフォルトの名無しさん
2007/07/13(金) 01:20:06VS擁護する気はないがどんなソフトもバグぐらいある。
そんなことより、たまたまバグに遭遇しただけで「ソフトの作りが悪い」とか
全体を批判する性格のが悪い。
人間にも同じような事言ってるの?
0044デフォルトの名無しさん
2007/07/13(金) 08:46:34まぁ確かにそうだけどこれだけ頻繁に落ちればデバッグ不足だ絽
0045デフォルトの名無しさん
2007/07/13(金) 09:49:42>人間にも同じような事言ってるの?
例えば「しょっちゅうサボる派遣は、技術力があっても使い物にならない」、くらいは
言うんじゃね?普通。
0046デフォルトの名無しさん
2007/07/13(金) 12:54:36コードを書いていると落ちたりする。
コピったり、ツールバーのボタンからコメントアウトしたり、
インテリセンスをだしたり。
0047デフォルトの名無しさん
2007/07/13(金) 13:56:47社会保険庁の解体については、基本がそもそも間違ってる。
そもそも、年金をまかなうのに、保険料として徴収しようとするから、特別に省庁をおくかという
話に摩り替わる。 つまり税金として徴収してしまえば、
1. 不払いなどという問題もそもそもあり得ない。
2. 「特別会計というインチキ財布の肥やし」 にされる心配が全然ない。
つまり、2年で2億などという法外な天下り役人の泥棒が封じられる。これ大きい!
3. 徴収機関 が、税務署になるから、徴収コストは基本的にゼロ。
4. しかも、税務署なら、銀行と比較しても同レベルに信頼性が高い。
(社会保険庁がなぜ当たり前の経理も窓口も成り立たないのか全く不明、
郵便局で肩替わりしても全く問題ない程度の仕事のはず)
5. 支給のための仕事だけならば、住民票のある地方自治体を通じて行えば
これもコストはほとんどゼロ。いったん登録すれば自動的に振り込まれる。
6. こうすれば、余分な厚生施設を勝手に作られたり、無用なものに勝手に
流用されて目減りすることもありえないし、天下り先などにもなりえない
これだけのメリットは計り知れないほどのものだ、なのになぜ税方式にしないか?
それは、
基本的に 「社会保険庁という役所を残す、形を変えてでも」
ということにあり、
その意味は、「結託している公務員利益を形だけ変えてでも優先したい」
というもの、、つまり自民党政権側の意図は要するに、、
裏では、天下り先を確保できるように官僚役人と結託しており、
国家利益を限りなく泥棒して国民の権利と利益をむさぼり取ろうぜ
というのが実態。
0048デフォルトの名無しさん
2007/07/13(金) 16:09:40それ例え方まちがってね?
たまたま今回自分だけに起こった不都合な部分だけを取り上げて
そいつを全否定するってことを言いたいんだろ。
0049デフォルトの名無しさん
2007/07/13(金) 17:22:17水掛け論だよね。
「操作中に強制終了する奴は使い方が悪い使用者が問題。」
「操作中に強制終了するのはソフトをつくった人がわるい。」
両方とも立派な暴言だけど、立場を違えれば理解は出来る。
少なくとも開発者なら一つ目の発言は致命的だと思うけど。
0050デフォルトの名無しさん
2007/07/13(金) 17:48:07だからっつって切り捨てるわけにもいかず、騙し騙し使うしかなかったり。
0051デフォルトの名無しさん
2007/07/13(金) 18:25:000052デフォルトの名無しさん
2007/07/13(金) 18:30:02どうでもいいけど使用者が悪いとか誰もいってないでしょ。
ただ特殊な状況でしか発生しないと思われる問題を一般的に起こりうる問題と勘違いして
騒ぐのは馬鹿みたいだよ、って話じゃないの?
>>50
だから被害妄想強すぎるんだよw
俺なんかむしろVSのIDEはあれだけ複雑なアプリケーションの割には不具合少ないな、とか思っちゃうけど。
もちろんこれはプログラマ目線の話であって、一般ユーザーがプログラム一般について
このように認識すべき、なんて言うつもりはない。
0053デフォルトの名無しさん
2007/07/13(金) 18:44:51VSのSP1以前については特殊な状況と言えるのかい?
MSは特殊な状況下での使用法をSP1で改善してくれたことになるのか?
0054デフォルトの名無しさん
2007/07/13(金) 18:50:49一度言われたら理解しろよw
特殊な状況 = >>33の状況
いや俺のところでも>>33と同じ状況だぞ、って奴がいたら挙手してね
0055デフォルトの名無しさん
2007/07/13(金) 19:00:340056デフォルトの名無しさん
2007/07/13(金) 22:54:15なんか >52 みたいに、わけのわからん方向に行ってるし…
>>53
お前は黙ってろw
005756
2007/07/13(金) 22:55:18誤 なんか >52 みたいに、わけのわからん方向に行ってるし…
正 なんか >53 みたいに、わけのわからん方向に行ってるし…
0058デフォルトの名無しさん
2007/07/13(金) 23:01:030059デフォルトの名無しさん
2007/07/13(金) 23:10:370060デフォルトの名無しさん
2007/07/14(土) 00:13:58うちの環境じゃ落ちないよなあ。めちゃ安定。
DellだとかHPの業務用に売られているマシンでしか使ってないから
他の環境のことはわかんないや。
Visual Basic 4の頃に、環境がたまに落ちていたのが、マウス付属の
ユーティリティドライバを外したら治った経験はあります。
なににせよ、プログラミングが安心して出来ないのは辛いでしょうね。
その3台に共通の部分を抽出できたら原因の特定も出来るのでは
ないかと思いますよ。
0061デフォルトの名無しさん
2007/07/14(土) 10:19:49みなさん教えて下さい、これまで使えてきてた部分が突然例外メッセージが出て止まる
ようになったのですが、
そこは単に初期化のところで、
#Region " 初期化 "
Public Sub New()
' この呼び出しは、Windows フォーム デザイナで必要です。
Me.InitializeComponent() <----------------------[*1]
' InitializeComponent() 呼び出しの後で初期化を追加します。
InitializeSettings()
End Sub
#End Region
ここの [*1] において、突然、次の例外メッセージが出てしまうようになりました。
「指定されたアセンブリ名またはコードベースは無効です。 (HRESULT からの例外: 0x80131047)」
[*1]は、単にPartial記述されたFormのコントロール配置の部分なのですが、
こういう基本的な部分が自分のクラス内からこのようなメッセージ内容で
呼び出せなくなるようなことはあるものでしょうか、すみませんがよろしければ
ご指導お願いしたく。
ここはこれまで普通につかえてきていた部分で、全く意外なところなのですが、
これまでのWindows2000の環境から、別のPCに移りまして、そこですぐにWindowsXp
のオンライン更新が掛かったようでしたが、その2日後ぐらいで初めて出るように
なりました。自分自身のクラス内の Me.InitializeComponent() が呼び出せない
といったようなことはあるものなのでしょうか?よろしくです。
006261
2007/07/14(土) 10:23:51電源を完全に落としてからやると直ることが多いようでした。
こうしたことはあり得るものでしょうか・・・???
0063デフォルトの名無しさん
2007/07/14(土) 13:02:32Form1.Designer.vbのInitializeComponent()の属性をコメントにしてみると
InitializeComponentのどこで落ちてるかはっきりする。
この属性があるとこの中のどこで落ちても
InitializeComponent()の呼び出しに失敗したように見える。
'<System.Diagnostics.DebuggerStepThrough()> _
Private Sub InitializeComponent()
0064デフォルトの名無しさん
2007/07/14(土) 15:34:24ありがとうございます!!助かります!!
すぐに調べてみます!!
0065デフォルトの名無しさん
2007/07/14(土) 23:38:09006665
2007/07/15(日) 00:56:470067デフォルトの名無しさん
2007/07/15(日) 01:03:58してねええええええええええええええええええええええええええ!!!!!!
勝手に解決すな!
006866
2007/07/15(日) 01:39:21具体的にはBindingNavigaterでDataTableに行を追加した直後に発生する
イベントを知りたいんだけど。
currentitemchangedもcurrentchangedもaddingも行を追加する直前みたい。
0069デフォルトの名無しさん
2007/07/15(日) 01:49:06そこで継承ですよ。
継承してイベント発生直前に自前のイベントを投げると。
0070デフォルトの名無しさん
2007/07/15(日) 02:05:41順序にもよるが データテーブルで発生したイベントの後でナビゲータ側でイベント発生してるはずだし
007169
2007/07/15(日) 02:08:24お前とはまったく気が合わない><;
フックする前にもうちょっと自前でなんとかできないか考えるのが俺流!
007270
2007/07/15(日) 02:12:50イベントハンドラに関数追加するだけだと思うが・・・・
継承とかのが大げさだと思うけど
007368
2007/07/15(日) 02:21:280074デフォルトの名無しさん
2007/07/15(日) 02:24:59007569
2007/07/15(日) 02:28:31あ、そうなんだ。
フックなんていうから、Windows メッセージを拾うのかと思ってた。
この会話を>>68が理解できればいいのだが・・・。
0076デフォルトの名無しさん
2007/07/15(日) 02:42:45どうなんだろうね
つうかDataGridViewとかで表示してるならDataGridViewのRowsAddedイベントがあったような気がするんだけどなぁ・・・・
007768
2007/07/15(日) 03:24:15BindingNavigatorの新規追加ボタンを押すとSelectedIndexが-1に初期化されます。
これを直前のインデックスを保持させるか、変数に取っておいたものを再設定したいです。
DataGridViewのRowsAddedも試してみましたがタイミングは追加された行の制御を渡す前に
発生しているようで、しっかり初期化されちゃった。 ><
例えば>72さんの方法だと、TableNewRowイベントハンドラに自作関数を追加するという
ことですか?
0078デフォルトの名無しさん
2007/07/15(日) 03:28:15それだったら新規追加ボタンのクリックイベントでSelectedIndexいじればいいんじゃないのかと・・・・?
>>72
イベント名は忘れたけど まぁそういうことかな
まぁ簡単にできるんであればそんなことする必要もないんだけど
007968
2007/07/15(日) 03:40:10新規追加ボタンに書いても、それがダメなんです。 ><
consoleにも書き出して確認したんだけど、新規追加ボタンのクリックイベント時点では
Me.ComboBox.SelectedIndexがまだ前の値なんで、イベント終了すると初期化されちゃう。
なんで?新規追加したときはcurrentがインスタンスじゃないから?
それで、制御もらってから発生するイベントがないかなとおもったんです。
0080デフォルトの名無しさん
2007/07/15(日) 03:48:30008168
2007/07/15(日) 17:08:31Form_LoadだとSelectedIndex設定できるのになんでだじょ?
だれかヘルプミー (´;ω;)
008268
2007/07/15(日) 17:18:540083デフォルトの名無しさん
2007/07/15(日) 17:28:18共通処理(変数宣言)
Try
メソッド特有処理(メソッドによって異なる処理)
Catch ex As Exception
共通処理2(ロールバック)
Finally
共通処理3(戻り値の設定やログ書き出し)
End Try
End Function
このようなメソッドがいくつもある状態なのですが、
共通処理の部分をまとめて部品化させたいと思っています。
あたらしく、どんな処理をさせればいいかの文字列を受け取って、
TryCatchを組み、文字列によって、Try内の処理をSwitchで分けるようにしてみたのですが・・・
もっとスマートに組む方法はないでしょうか?
0084デフォルトの名無しさん
2007/07/15(日) 17:39:25ポリモフィズム
0085デフォルトの名無しさん
2007/07/15(日) 17:58:55オーバーロードでしょうか?
メソッドが計20種類あり、それぞれ引数がString型2〜4つになっており
その中には同じ引数のものも存在するので、自動的な分岐ができないんです。
0086デフォルトの名無しさん
2007/07/15(日) 18:23:35決まり文句 「例外処理を分岐に使うな」
でもその前にExecute("計算")はアホ設計の典型
0087デフォルトの名無しさん
2007/07/15(日) 18:36:23唐突ないいがかり、あるいは思い込みによる罵倒。
0088デフォルトの名無しさん
2007/07/15(日) 18:41:13Try内でメイン処理
Catchではメイン処理でエラーが発生した際のデータ復元(どのメソッドでも行う)
Finallyで処理内容を書き出し(どのメソッドでも行う)
このような処理をしているのですが、これも例外処理で分岐させていることになるのですか?
だとしたらどのように記述するのがベターなんでしょうか?
あとExecute("計算")がダサイのは自分でも把握しています(;´Д`)
より良い方法があればご教授お願い致します。
同じようなTryCatchを毎回それぞれのメソッドに記述しており
「Finally区で処理をひとつ増やしたい」などの時に、メソッド全てを書き直す必要があり大変なので
メソッドごとに違うメイン処理以外を部品化させたいというのが要望です。
制約として、引数が同じでオーバーロードによる自動分岐ができませんorz
008986
2007/07/15(日) 18:51:44>>84の言ってるようにポリモルフィズムを使えば?
すべての「特有処理」を表すインターフェイスを定義して、
それぞれの特有処理クラスはそれを実装する
009083
2007/07/15(日) 19:35:22ありがとうございます。少し前進しました。
もう少し質問をさせてください(長文すみません)
↓インターフェース
Public Interface hoge
Function 特有処理()
End Interface
↓特有処理を行うクラス(特有処理の数だけ作成)
Implements hoge
Public Sub 特有処理() Implements hoge.特有処理
特有処理を行う
End Sub
↓メインクラス内の処理
Function(ByVal huge As hoge)
共通処理
Try
huge.特有処理()
Catch ex As Exception
共通処理
Finally
共通処理
End Try
End Function
特有処理の種類によって引数が同じだったり違ったりする為、インターフェースを実装できないものがあります
Nothingあたりで無理矢理に引数の数を同じにしてでも実装するべきでしょうか・・・・?
それと、それぞれの特有処理クラスが処理を行っている最中にエラーが発生した場合、
そのエラーをメインクラスがCatchできるようにするにはどうすればよいのでしょうか?
0091デフォルトの名無しさん
2007/07/15(日) 19:50:05なんとなく多態ポリモーフィズムよりデリゲートを引数に渡して動作を
切り替えるやり方の方が向いてる雰囲気だね.
0092デフォルトの名無しさん
2007/07/15(日) 19:53:10割り込んで悪いけどインターフェイスを使うって話はヨタだと俺は思うよ。
この場合は、
Function Hoge()
Initialize()
Try
DoSomething()
Catch ex As Exception
Rollback()
Finally
Cleanup()
End Try
End Function
のHoge()、DoSomething()(これはMustOverrideにする)、Rollback()、Cleanup()をもつ
MustInheritなクラスを作った方がいい。
0093デフォルトの名無しさん
2007/07/15(日) 19:57:01> そのエラーをメインクラスがCatchできるようにするにはどうすればよいのでしょうか?
特有処理クラスの中でCatchしなければおk
>>92
それなら特有処理インターフェイスのメンバにRollback()とCleanup()を定義したほうがいいと思うよ
共通処理をばらばらにやってたら結局同じ
0094デフォルトの名無しさん
2007/07/15(日) 20:25:44Dim a(10) As Integer
Dim i As Integer
a(0) = 32
a(1) = 14
a(2) = 56
a(3) = 15
a(4) = 7
a(5) = 18
a(6) = 102
a(7) = 88
a(8) = 11
a(9) = 57
a(10) = 58
'-------------------
'この間で
'-------------------
For i = 0 To 10
Debug.Print a(i)
Next
End Sub
超初心者質問ですみません。
上のようにa(10)にランダムの数字が格納されていて
これを昇順(若い順)に格納しなおしてから
表示するようなプログラムを作りたいの
ですがどのようなやり方があるでしょうか。。
0095デフォルトの名無しさん
2007/07/15(日) 20:35:18自分でソートの順序も最悪決定できるし
0096デフォルトの名無しさん
2007/07/15(日) 20:40:30おまえすごいなw
ttp://pc11.2ch.net/test/read.cgi/tech/1099112351/590
ttp://pc11.2ch.net/test/read.cgi/tech/1165574205/487
素晴らしいwwwwww
別に叩く気はないが
プログラム覚える前にネットの人との付き合い方の常識勉強しろよ
0097デフォルトの名無しさん
2007/07/15(日) 20:48:36おいおい継承すら理解してない人間がポリモーフィスムがどうこう言ってたのかよ
0098デフォルトの名無しさん
2007/07/15(日) 20:50:41思いっきりスタックトレースとかメモリ情報集めてパフォーマンス落ちるじゃないか
パフォーマンスが問題ないとしても 使われざる所に使ってるのは最悪だな
見分けをつけなきゃいけないじゃないか
エラーが起きるか起きないかで判定するならBoolの関数でも作れよカス
009988
2007/07/15(日) 21:13:41デリゲートを始めて使ってみたのですが、
引数の数が固定されるのでインターフェースと同じように無駄引数を準備する必要が、orz
何か使い方が間違っているのでしょうか?
Delegate Sub MyDlg(ByVal x1 As String, ByVal x2 As String)
Dim hoge As New 特有処理(3).特有処理
Dim Dlg As MyDlg
Dlg = AddressOf hoge
Dlg.Invoke("test","test")
>>92
確認も含めて質問させてください。
共通処理の部分(部品化したい部分)をスーパー抽象クラス(?)にして、
特有処理の部分をオーバーライドで変化させる形ですよね?
間違っていたら恥ずかしいのですが、オーバーライドの存在を忘れていました。
確かにこうすれば、引数が同じものと違うものが混ざっていても、確実に処理を分けられますね。
ありがとうございました。
>>93
メソッドの返り値をエクセプション型にして返そうとしてたのですが、
Catchを組まないだけでメインの方に飛ぶんですね。
勉強になりました。ありがとうございます。
0100デフォルトの名無しさん
2007/07/15(日) 21:36:350101デフォルトの名無しさん
2007/07/15(日) 21:37:59ああDoSomething()がとる引数は可変なんだね。
その場合は、
Public Sub Hoge(ByVal myDelegate As [Delegate], ByVal ParamArray params As Object())
Try
myDelegate.DynamicInvoke(params)
Catch ex As Exception
............
みたいにすればいいんじゃない?(ご免、実際こういう処理はやったことがないので
あんまり自信がない)
後半の継承の話についてはおっしゃるとおり。
処理によって必要な引数が変わるならやっぱり継承をつかった多態は向いてないかもね。
010288
2007/07/15(日) 22:22:06そのような方法もあるんですね。
ソースを参考にさせていただき、DynamicInvokeの方も勉強したいと思います。
一応現段階では↓のような形になって、部品化も成功したと思います。
(もし何かおかしなコードがあれば、ご指摘をお願いします)
↓共通処理クラス
Public MustInherit Class hoge
Try
Me.Load()
Catch ex As Exception
Finally
End Try
Public MustOverride Function Load()
Public Function 特有処理() End Function ※引数の種類だけ特有処理を記述
Public Function 特有処理(ByVal str As String) End Function
Public Function 特有処理(ByVal str As String, ByVal i As integer) End Function
↓特有処理クラス
Public Class 特有処理(1)
Inherits hoge
Public Overrides Function Load()
特有処理( "TEST" )
End Function
Public Shadows Function 特有処理(ByVal Tag As String)
特有の処理を行う
End Function
End Class
0103デフォルトの名無しさん
2007/07/15(日) 23:40:07ごめんそのコードじゃ何をしたいのか誰にも理解できないと思うわ。
普通に考えれば、"特有処理"なんてメソッドをベースクラスに定義する
必要な何もないんだけど。
その"特有処理()"に書く処理を、各子クラスのオーバーライドしたLoad()
の中に直接書けば済む話だと思うけど。
0104デフォルトの名無しさん
2007/07/16(月) 10:37:35うん確かに>>102ならインターフェイスかデリゲートでまったく問題ない
0105デフォルトの名無しさん
2007/07/16(月) 10:42:23>>92のコードでいう
Initialize()
Rollback()
Cleanup()
これらのメソッドは共有したいのだから。
0106デフォルトの名無しさん
2007/07/16(月) 10:46:40外の枠組みを共通化したいんだから外でやればいいこと
>>92のDoSomethingの中で任意のタイミングでInitializeとか
呼びたいっていうなら別だけど
0107デフォルトの名無しさん
2007/07/16(月) 10:53:56まあ、OOPのこんな基本もわかってないなら無理しなさんな。
これはプログラマによって意見が分かれるような問題じゃないと思うよ。
(まともな)プログラマなら100人中100人がこういう場合にインターフェイスを
使おうなんてナンセンスだ、と言うだろう。
ようするにただ君がインターフェイスの意義や継承がよくわかってないだけ。
0108デフォルトの名無しさん
2007/07/16(月) 12:46:00010988
2007/07/16(月) 16:14:21Public Interface hoge
Sub Syori()
End Interface
Public MustInherit Class huge
Implements hoge
フィールド宣言 ←特有処理で使われる引数の種類分だけフィールドを作成
Sub Syori() Implements hoge.Syori
Try
Me.MainSyori() ←ここのTry句以外に、共通に使用するコードを記述
Catch ex As Exception
End Try
Public MustOverride Function MainSyori()
End Class
Public Class 特有処理(1) ←特有処理の種類だけクラスを生成
Inherits huge
Public Sub Set引数(ByVal Test As String) ←その特有処理に必要な引数のみを受け取りSETする
フィールドに値をセット
End Function
Public Overrides Function MainSyori()
特有処理(1)を行う
End Function
End Class
011088
2007/07/16(月) 16:34:51フィールド宣言を派生クラスの方にしようか、抽象クラスにしようか迷ったんですが、
結局、派生クラスの数が多く記述するのが大変だったので、
使わないフィールドができることになりますが、抽象クラスに記述しました…、やっぱり派生クラスのほうが良いでしょうか?
それともうひとつ気になるのが、抽象クラスのSyoriメソッド内の共通に使いたいコード内で、
「実際に派生クラスを使うメインクラス内のフィールド」を使いたいのですが、
派生クラスとメインクラスを継承関係にすることはできないので、
毎回Syoriメソッドにポインタ型で渡しています。
すごく違和感を感じるのですが、何かより良い方法はないでしょうか?
それと最後にもうひとつだけ・・・
抽象クラス内では例外処理を利用した共通のコードが記述されているので、
例外処理を省くことができないのですが、この場合だとメインクラスや実際のプログラムなどで
エラーを受け取れないので、Catch内にThrow New Exception(ex.Message, ex)を記述してみたのですが、
これを書くと、エラーが起こったときにちゃんとメインの方にもエラーが飛んでくる代わりに、
Finally句でプログラムがダウンしてしまいます。何かよい方法があればアドバイスをお願いします。
0111デフォルトの名無しさん
2007/07/16(月) 16:36:03な・・・なんかなぁ・・・・・
まぁ動いてるならいいんじゃなかろうか・・・・
0112デフォルトの名無しさん
2007/07/16(月) 18:17:51やっぱり無理に継承使うべき場面じゃないよ。
例外処理のパターンが共通してるからこれを共用したい、と思うのは無理もないけど
そのために無理に継承つかって、その結果処理につかう引数をフィールド渡しにするんじゃ
本末転倒でしょ。
愚直に同じ構造をコピペすべし。
どうしてもパターンを共用するのなら、>>101のようにデリゲート使うほうが
まだしもマシ。
ついでに、人にコード見てもらおうっていうんだから
もうちょっと見やすいコード書こうよ。
日本語のメソッド名とか意味のつかめない捨て名のメソッド名じゃ
タチの悪い釣り扱いされても文句言えないよ。
0113デフォルトの名無しさん
2007/07/16(月) 19:36:47「最もマシなコードを選択しろ」って言われたら
・インターフェイスを使ったやつ
欠点:引数の違いを補うためにParamArrayか、最大値をとって無理に引数をあわせる必要がある
・デリゲートを使ったやつ
欠点:インターフェイスと変わらなくね?結局引数の違いがネックでParamArrayに頼る感じ
・継承を使ったやつ
0114デフォルトの名無しさん
2007/07/16(月) 19:43:34引数の違いなんて事にはならなくね?
設計に問題がある気ガス。
0115デフォルトの名無しさん
2007/07/16(月) 20:04:11何が言いたいのか分からんが
おまいの言ってることってまんま>>109と一緒でないかい?
今既に引数の違いは関係がなくなって
どうやってeクラスからメインのフィールド受け取ろう?って話じゃないかな
0116デフォルトの名無しさん
2007/07/18(水) 00:04:020117デフォルトの名無しさん
2007/07/18(水) 01:57:18Locationに値を与えても位置が変わりません。
Me.Splitter1.Location = New System.Drawing.Point(0, 300)
MessageBox.Show(Me.Splitter1.Location.Y.ToString) '初期位置のY座標が表示される
一度表示したSplitterのLocationをコード上から変更することはできないのでしょうか?
0118デフォルトの名無しさん
2007/07/18(水) 02:13:56Widthとかさ
0119デフォルトの名無しさん
2007/07/18(水) 02:14:310120デフォルトの名無しさん
2007/07/18(水) 10:49:47透過GIFを使って背景は透過出来ましたがPictureboxどおしが重なると四角い枠が見えてしまいます
Pictureboxの重ね合わせはどのようにしたらよいのでしょう?
0121デフォルトの名無しさん
2007/07/18(水) 11:24:19普通スプリッタはパネル>スプリッタ>パネルって貼るでしょ?
最初のパネルの幅や高さ(要はスプリッタが付く方向)を変えてみ?
0122デフォルトの名無しさん
2007/07/18(水) 11:34:54ボーダーとかの問題じゃないのか?
0123デフォルトの名無しさん
2007/07/18(水) 11:45:43auからのメールで(アド以降が)@ezuibe.nemaharikumaharetaa@ezってなってて返信押してメールしようとクリックするとマハリクマハリタの文字だけ消えます!何故?Σ(゚Д゚;≡;゚д゚)
0124デフォルトの名無しさん
2007/07/18(水) 11:58:02教えてくださいm(__)m
>(アド以降が)@ezuibe.nemaharikumaharetaa@ezってなってて
なんで“@”が2つ?
更に不思議なのは、何故このスレで訊く?Σ(゚Д゚;≡;゚д゚)
0125デフォルトの名無しさん
2007/07/18(水) 12:06:43@ezweb.nemaharikumaharetaa@ez
マジ解る人居るかなぁ?
2chならきっと居るよね
ヽ( ̄∇ ̄)ノ
0126デフォルトの名無しさん
2007/07/18(水) 12:07:45自分で言うか?<秀作
そんなもん臭作だw
0127デフォルトの名無しさん
2007/07/18(水) 12:48:55お前もにおうぞ
風呂入ったか?
遺作より
0128デフォルトの名無しさん
2007/07/18(水) 12:58:51もういいからバイバイ
>>120
習作な。
先は長いぞガンバレ
0129デフォルトの名無しさん
2007/07/18(水) 13:11:06ギャハハーw
(・∀・)/ヾ〜〜╋┓
0130デフォルトの名無しさん
2007/07/18(水) 14:15:100131デフォルトの名無しさん
2007/07/18(水) 15:26:340132デフォルトの名無しさん
2007/07/18(水) 15:49:59ギャハハーw
(・∀・)/ヾ〜〜╋┓
0133デフォルトの名無しさん
2007/07/18(水) 15:51:27ギャハハーw
(・∀・)/ヾ〜〜╋┓
0134デフォルトの名無しさん
2007/07/18(水) 16:28:190135デフォルトの名無しさん
2007/07/18(水) 17:03:500136120
2007/07/18(水) 18:50:42>>122
ボーダーってPictureboxのプロパティのBorderStyleですか?
境界はnoneにしてますが
pictureboxじゃなくDrawImageメソッドを使う方がいいのかな?
しかし何で命令をいちいちdimで宣言する必要があるんだろ?
面倒なだけで何のメリットがあるのか、ちっともわからん
HSPしか使ったことのない工房の愚痴です、すいません
0137デフォルトの名無しさん
2007/07/18(水) 18:59:42マウスカーソルの位置座標を小数単位で取得する方法が無いでしょうか
よろしくお願いします
0138デフォルトの名無しさん
2007/07/18(水) 19:09:52釣りですか?
0139デフォルトの名無しさん
2007/07/18(水) 19:16:50ない
0140デフォルトの名無しさん
2007/07/18(水) 19:39:28マウス座標も取得する方法が無いかと思い質問しました
>>138
マジです
>>139
回答ありがとうです
0141117
2007/07/18(水) 19:52:56ご指摘の通りPanelのサイズを変化させたらそれに伴ってSplitterの位置を変化させることができました。
解決を導く回答をいただきありがとうございました。
0142デフォルトの名無しさん
2007/07/18(水) 20:13:20マウスは画面でしか使わないのでピクセル単位のみ。
0143デフォルトの名無しさん
2007/07/18(水) 20:31:43絵文字が消えるみたいな現象です
お分りになる方教えてくださいm(__)m
0144デフォルトの名無しさん
2007/07/18(水) 20:35:00windowsをアップデートすると直るよ
0145デフォルトの名無しさん
2007/07/18(水) 20:38:02Vistaにすれば問題なし
0146デフォルトの名無しさん
2007/07/18(水) 20:54:39受信の端末は携帯なんです
何故、英字コードが消えたりするのでしょう?
0147デフォルトの名無しさん
2007/07/18(水) 21:01:150148デフォルトの名無しさん
2007/07/18(水) 21:23:57死ね。
0149デフォルトの名無しさん
2007/07/18(水) 21:53:14outlook Expressのバグ
正規のoutlookか他のメーラーを使えば良いよ
0150146
2007/07/18(水) 21:58:28ここの人間はクソの役にも立ちませんでした(´・∀・`)
0151デフォルトの名無しさん
2007/07/18(水) 23:16:24プログラム初心者です
子フォームでラジオボタンでインターフェースの切り替えの操作をしていて、
親フォームである計算の途中でラジオボタンの操作を自動で行わせるプログラムを作成したいのですが
子フォームの該当箇所メソッドをPublicにした後親フォームで呼び出したところ
「パラメータ'e'に対する引数が設定されていません」的なエラーを言われました。
どうしてやればいいんですか?
0152デフォルトの名無しさん
2007/07/18(水) 23:16:59クソの役にもたちませんですたゝ( ゚∀゚)メ(゚∀゚ )ノ
てか、自己解決してないってば(・∀・)ニヤニヤ
0153デフォルトの名無しさん
2007/07/18(水) 23:20:470154デフォルトの名無しさん
2007/07/18(水) 23:29:06エラー内容そのまんまだけど、パラメータ'e'に対する引数を設定すればいいよ。
ソースも書かずにどうすればいいかって意味わからないけど、多分こう。
Call RadioButton1_Click(RadioButton1, New EventArgs())
>>153
>>123?
>(アド以降が)@ezuibe.nemaharikumaharetaa@ez
それきっとauからのメールじゃないよ。変だモンヾ(*´∀`*)ノ キャッキャ
0155151
2007/07/18(水) 23:37:25サンクスです!
やってみます!
0157デフォルトの名無しさん
2007/07/19(木) 00:11:200158154
2007/07/19(木) 00:11:32おぉ、訂正してたの気づかなかったわ。ごめん。
>@ezweb.nemaharikumaharetaa@ez
これきっとauからのメールじゃないよ。@が2個あるとか最後が@ezとかおかしいモン。
これはPCから送られてきた偽装メールだから、返信もおかしくなって当たり前。
0159デフォルトの名無しさん
2007/07/19(木) 00:18:22クリックして返信画面になると(アド)@ezweb.ne.jp.
表示になるんです!!
マハリクマハリタは消えてしまうから不思議なんです
マジ何故消えてしまうか知りたいんです
0161デフォルトの名無しさん
2007/07/19(木) 00:38:14だれかAAはっといて
ヽ(´ー`)ノ
ワッショイヽ(゚∀゚)メ(゚∀゚)メ(゚∀゚)ノワッショイ
0162デフォルトの名無しさん
2007/07/19(木) 00:39:36さそれじゃタダのバカと同じじゃん( ´∀`)σ)Д`)
0163デフォルトの名無しさん
2007/07/19(木) 00:42:010164デフォルトの名無しさん
2007/07/19(木) 00:45:130165デフォルトの名無しさん
2007/07/19(木) 00:47:310166デフォルトの名無しさん
2007/07/19(木) 00:53:300167デフォルトの名無しさん
2007/07/19(木) 00:56:430168デフォルトの名無しさん
2007/07/19(木) 00:59:22いいの?いいの?
0169デフォルトの名無しさん
2007/07/19(木) 01:01:33じゃ教えてミソ(-"-)y-゚゚゚
じゃ教えてミソ(-"-)y-゚゚゚
じゃ教えてミソ(-"-)y-゚゚゚
じゃ教えてミソ(-"-)y-゚゚゚
じゃ教えてミソ(-"-)y-゚゚゚
じゃ教えてミソ(-"-)y-゚゚゚
じゃ教えてミソ(-"-)y-゚゚゚
じゃ教えてミソ(-"-)y-゚゚゚
0170デフォルトの名無しさん
2007/07/19(木) 01:04:100171デフォルトの名無しさん
2007/07/19(木) 01:10:23教授は居ないポィ┐(´─`)┌
0172デフォルトの名無しさん
2007/07/19(木) 01:30:38(・∀・)/ヾ〜〜╋┓
(・∀・)/ヾ〜〜╋┓
(・∀・)/ヾ〜〜╋┓
0173デフォルトの名無しさん
2007/07/19(木) 01:35:300174デフォルトの名無しさん
2007/07/19(木) 06:30:430175デフォルトの名無しさん
2007/07/19(木) 10:13:21Reply-Toが(アド)@ezweb.ne.jp
になっていれば、表示アドは(アド)@ezweb.nemaharikumaharetaa@ez
でも、返信を押せば(アド)@ezweb.ne.jpが出るよ。
0176デフォルトの名無しさん
2007/07/19(木) 10:17:27「VB.NET (Compact Framework 1.1) による
フォーム派生クラスのデザイン時コントロールの作り方」に
詳しいWebページや本の紹介をして下さいマセヨ。
0177デフォルトの名無しさん
2007/07/19(木) 13:29:59問題は何故テクマクマヤコンの文字が消えるかなんですょ?
>>176知的障害だって言われるなら答えられるよね?知的障害の話だなんて
話をすり替えて逃げないで答えてね!!
解らないくせに(゚ε゚)
0178デフォルトの名無しさん
2007/07/19(木) 13:32:31サッサトシネヨテイノウ
0179デフォルトの名無しさん
2007/07/19(木) 13:40:53テクマクマヤコン×
マハリクマハリタ〇
0180デフォルトの名無しさん
2007/07/19(木) 13:44:320181デフォルトの名無しさん
2007/07/19(木) 13:48:130182デフォルトの名無しさん
2007/07/19(木) 13:50:340183デフォルトの名無しさん
2007/07/19(木) 14:03:21Reply-Toが(アド)@ezweb.ne.jp
こうなっている場合、返信ボタンを押すと
(アド)@ezweb.nemaharikumaharetaa@ezから
maharikumaharetaが取り払われて(アド)@ezweb.ne.jpがセットされるのではなく、
単純にReply-Toに設定されている(アド)@ezweb.ne.jpがMailToに格納される。
別に文字が消えたわけではない。
該当メールのヘッダをココに貼ってみろ。はっきりするから。
0184デフォルトの名無しさん
2007/07/19(木) 14:05:04maharikumaharetaが取り払われて(アド)@ezweb.ne.jpがセットされるのではなく、
単純にReply-Toに設定されている(アド)@ezweb.ne.jpがMailToに格納される。
↓
maharikumaharetaが取り払われて(アド)@ezweb.ne.jpがMailToに格納されるのではなく、
単純にReply-Toに設定されている(アド)@ezweb.ne.jpがMailToに格納される。
0185デフォルトの名無しさん
2007/07/19(木) 14:34:35ありがとうございますm(__)m
単純にReply-Toに設定されている(アド)@ezweb.ne.jpがMailToに格納される。
とありますが
maharikumaharetaはReply-Toに設定されてされていない事になるんですか?
端末は携帯です。どの様な操作をすれば出来ますか?
私自身アドにmaharikumaharetaa@で試みましたがmaharikumaharetaは消えませんでした
0186デフォルトの名無しさん
2007/07/19(木) 14:49:05パソコンからだと、一般的なメーラはReply-toの設定ができるはず。
"(利用しているメーラ名) Reply-to"なんかで検索するといい。
それでReply-toの設定が出来たら、自分の携帯宛にメールをしてみるとよい。
auはReply-toの設定が有効だから、再現できると思うぞ。
0187デフォルトの名無しさん
2007/07/19(木) 15:04:29私の携帯はDoCoMoなのですがau同様に出来ますでしょうか?
0188デフォルトの名無しさん
2007/07/19(木) 15:05:240189デフォルトの名無しさん
2007/07/19(木) 15:19:09>>188デフォルトの名無しさん→気違いのお陰で勉強になったでしょ?
有り難く思いなさい(ノ`Д´)ノ ■━⊂(・∀・)彡ガッ
0190デフォルトの名無しさん
2007/07/19(木) 15:47:500191デフォルトの名無しさん
2007/07/19(木) 15:55:14世の中、尊敬する人ばかりで大変だなw
0192デフォルトの名無しさん
2007/07/19(木) 16:08:10 ̄ ̄
ここ重要ね!ヽ(・∀・)ノ
0193デフォルトの名無しさん
2007/07/19(木) 16:09:200194デフォルトの名無しさん
2007/07/19(木) 16:13:37教えて頂いた積み重ねが今のお前なだけ(゚ε゚)
0195デフォルトの名無しさん
2007/07/19(木) 16:20:100196デフォルトの名無しさん
2007/07/19(木) 16:41:46スレチだから今度からこっちで聞くようにね?
ttp://pc11.2ch.net/test/read.cgi/tech/1179394713/
0197デフォルトの名無しさん
2007/07/19(木) 16:50:56私専属の先生に任命してあげるからシッカリ教えてね!
m9(・∀・)ビシッ!!
0198151
2007/07/19(木) 22:03:14やってみたところ出来ました!!
本当にありがとうございます!!
俺の中で154さんは神様です
ただ子フォームのラジオボタンが、見た目何も変化していないのが気になります。
いまのフォームではラジオボタン1と2がありまして最初は1になるように設定してあります。
先程のやり方でデバッグすると、
本来ならラジオボタン2にクリックされた試行をしているはずなのですが
(実際その試行は行われているんですが)
子フォームのラジオボタンの表示は変化していません。
対応させるにはどうしたらいいのでしょうか。
よろしくお願いします。
0199デフォルトの名無しさん
2007/07/19(木) 22:08:59あなたのやってることも>>154の回答もうんこ。
Click or CheckedChanged のイベントハンドラ実行したって
もとのラジオボタンにはなんの影響もありませんことよ。
radioButton2.Checked = trueしたらよかっぺ
0200デフォルトの名無しさん
2007/07/19(木) 22:23:14お前、結構前からレスしてるよな。
間抜けな回答してた香具師として覚えてるww
0201デフォルトの名無しさん
2007/07/19(木) 22:40:30うるせー死ねハゲ
0202デフォルトの名無しさん
2007/07/20(金) 01:04:180203デフォルトの名無しさん
2007/07/20(金) 09:56:31どっかから無料でダウンロードできる?
0204デフォルトの名無しさん
2007/07/20(金) 10:02:38開発ツールのところにあるだろ
それぐらい見てからしゃべれカス
だから馬鹿みたいなくだらない質問するんだろうが!!!!!!
0205デフォルトの名無しさん
2007/07/20(金) 10:08:22アスペルガーのあなたに
言われたくありませんよ(藁
0206デフォルトの名無しさん
2007/07/20(金) 10:28:27スレ違いですこちらへどうぞ
最高に頭の悪い発言をしてくださいinム板(XII)
ttp://pc11.2ch.net/test/read.cgi/tech/1179394713/
0207デフォルトの名無しさん
2007/07/20(金) 20:18:42microsof なんとかIDとやらを取得しろってでた
0208デフォルトの名無しさん
2007/07/20(金) 20:30:29入門書の付属CDに入ってることも多いよ
0209デフォルトの名無しさん
2007/07/20(金) 20:36:09コントロールに値が入力(選択)されているかのチェックに
例外を使ったんだけど、こういう場合は使わない方が良いのかなー。
例:
If TextBox1.Text.Equals("") Then
TextBox1.Select()
Throw New Exception("TextBox1が入力されていません。")
End If
0210デフォルトの名無しさん
2007/07/20(金) 21:06:430211デフォルトの名無しさん
2007/07/20(金) 22:03:04「ユーザーはこのアプリの更新をどこで確認するのですか?」
とか余計なこと聞いてきやがった
いいからさっさとコンパイルしろや
0212デフォルトの名無しさん
2007/07/20(金) 22:44:270213デフォルトの名無しさん
2007/07/21(土) 00:25:07それ例外じゃないからメッセージボックスがいいと思うよ。
0214デフォルトの名無しさん
2007/07/21(土) 04:52:00RAD内で実行、テストするのが
できなくなったの?
なんかデスクトップの「a」ってフォルダ作って
そこの中に発行して、setup.exe実行して
ようやく動作を確認する感じ。
6.0だったらRAD内で動作確認できたよね?
0215デフォルトの名無しさん
2007/07/21(土) 06:12:07オンメモリでの実行は出来なくなったが、セットアッププログラムまでは作らなくてもいいぞ。
ファイルは作るがIDEから実行できる。
0216デフォルトの名無しさん
2007/07/21(土) 06:59:01・デザイナでボタンを作って、フォームロードの時に「Me.Button1 = New MyButton」を実行
・Button1.AddHandle...で、ButtonのClickイベント「MyEvent」を登録
・MyEventではsenderとeを受け取り、処理内容に sender.Test() を記述
こんな感じでボタンイベントに自作の処理を追加したかったんだけど、ボタンが動かない・・・
ボタンがいっぱいあってどれも同じような処理してるんで、
処理内容が違う部分だけクラスにしてAddHandleをループでまわしてコードへらそうと思ったんですけど・・
そもそもこんな処理をするのはおかしいですか?
0217デフォルトの名無しさん
2007/07/21(土) 07:01:26そのIDEから実行、のやり方をおしえてくれる?
どこのメニューなのかわからん
0218デフォルトの名無しさん
2007/07/21(土) 08:31:03Const cString As String = "文字列1" & VbCrLf & "文字列2"
というものがあって、このうち文字列1と文字列2を別々に使いたいので、
Dim sArray() As String
sArray = cString.Split(VbCrLf.toCharArray)
としてみたのですが、結果が
sArray(0) = "文字列1"
sArray(1) = ""
sArray(2) = "文字列2"
となってしまいます。
できればsArray(1)に"文字列2"が入ってほしいのですが、
何が原因なのでしょうか?
0219デフォルトの名無しさん
2007/07/21(土) 09:10:23いや、メソッドの引数に意味くらい調べてから使えよ。
0220デフォルトの名無しさん
2007/07/21(土) 09:11:16普通に実行すりゃできるのにわざわざ発行してるなんてありえん。
発行のがよっぽどわかりにくいはずだろ。
0221デフォルトの名無しさん
2007/07/21(土) 09:32:506なら実行というメニューがあったが
2005にはない
0222デフォルトの名無しさん
2007/07/21(土) 09:34:200223デフォルトの名無しさん
2007/07/21(土) 09:42:08VB6つかっててプログラミングは素人じゃないはずなのに。
ツールバーのデバッグ開始ボタンよりも発行を先にやるとは器用なやつだw
0224デフォルトの名無しさん
2007/07/21(土) 09:48:19前のはもっと感嘆だったのに。
どういうことだよ
↓
普通に再生すりゃできるのにわざわざダビングしてるって意味わからんw
ダビングの方がよっぽどわかりにくいだろ
↓
ばかはお前だ、再生ボタンなんてどこにもないだろ。
↓
いや、右三角ボタン…、普通みなまで言わんでも意味わかるだろ…
0225デフォルトの名無しさん
2007/07/21(土) 09:50:02実行をデバッグって読んでるのはどういうことよ
責任者呼んでくれる
0226デフォルトの名無しさん
2007/07/21(土) 09:54:51| ノ\ ヽ |
/ ●゛ ● | |
| ∪ ( _●_) ミ j
彡、 |∪| | J
/ ∩ノ ⊃ ヽ
( \ / _ノ | |
.\ “ /__| |
\ /___ /
0227デフォルトの名無しさん
2007/07/21(土) 10:59:34ちと早くね?
0228デフォルトの名無しさん
2007/07/21(土) 11:28:52F5
0229デフォルトの名無しさん
2007/07/21(土) 14:10:41タスクトレイにNotifyIconでアイコンを表示させたいのですが、
Windows2000でアイコンがモノクロ表示になってしまいます。
最近買ったVistaのほうではカラーで正常に表示されます。
Windows2000上で発行したEXEとVista上で発行したEXEのどちらを
使用しても、結果は同じです。(Windows2000だけモノクロアイコン)
※もちろん他のアプリのアイコンは正常にカラーで表示されます。
どなたかよろしくお願いします。
0230デフォルトの名無しさん
2007/07/21(土) 14:15:29XPより前のOSは32Bitのアイコンには対応してないと思ったけど
0231デフォルトの名無しさん
2007/07/21(土) 14:18:372000は16色
XP以降は32bit
0232デフォルトの名無しさん
2007/07/21(土) 14:24:4824bitは普通に使えるよ。
0233デフォルトの名無しさん
2007/07/21(土) 15:08:05ありがとうございました。
ただ@iconというフリーソフトで見る限り、24ビットのようです。
うーん、なんでしょう。
8bit(256色)にして試してみましたが、同じくモノクロ表示です。
ほかに原因等は考えられないでしょうか・・・
0234デフォルトの名無しさん
2007/07/21(土) 15:21:55>いつの時代の話よそれw
Windows 2000 の時代。
因みに、エクスプローラの問題。
>>233
どーしても気に入らない場合、"TrayNotifyWnd" の HWND から
スレッド探して、そいつにフック。
0235デフォルトの名無しさん
2007/07/21(土) 15:38:08が16色で描かれてると思ってる人初めて見たよw
0236デフォルトの名無しさん
2007/07/21(土) 15:49:570237デフォルトの名無しさん
2007/07/21(土) 16:01:20NotifyIconのはなしでしょ。
普通のアイコンはそりゃ24bitだけども。
0238デフォルトの名無しさん
2007/07/21(土) 16:06:24制限があるみたいだね。
全然知らなかったよ。。
0239デフォルトの名無しさん
2007/07/21(土) 16:17:37何の話をしてるのか解ってなかったんかい!w
0240デフォルトの名無しさん
2007/07/21(土) 16:33:090241デフォルトの名無しさん
2007/07/22(日) 04:01:20"文字列"の文字列中で " を使うには ""
ずっと \" だと思っていて時間15分食った。
0242デフォルトの名無しさん
2007/07/22(日) 04:48:41ってのを作りたいんだが、どうすればいいかな
パスワード生成ソフト。
8桁で、
半角のアルファベットと、
半角の数字が混在したもので、
数字は2つ以上必須。
アルファベットは
2つ以上の半角大文字と
2つ以上の半角小文字が
必ず入ったもの。
0243デフォルトの名無しさん
2007/07/22(日) 06:39:20ってでるんだが、指定の方法がわからん
指定なんてできるのか?
0244デフォルトの名無しさん
2007/07/22(日) 08:07:51必ず改行しないとだめなんだわ
改行で識別してるってどんなアホ言語だよ?
0245デフォルトの名無しさん
2007/07/22(日) 08:31:51Python使いの俺にケンカ売ってんのか
0246デフォルトの名無しさん
2007/07/22(日) 10:06:02条件に当てはまらなければやり直しでいいんじゃね?
下手な小細工するよりはね
0247デフォルトの名無しさん
2007/07/22(日) 10:15:08うん。それでいこうとおもうんだ。
で、いま、Rnd()関数で1−62の数字を生成させて、
1だったら1
2だったら2
、、、、、、
9だったら9
10だったら0
11だったらa
12だったらb
、、、、、、、
○○だったらz
XXだったらA
△△だったらB
、、、、、、、、
□□だったらZ
ってやろうとおもって、
最初if ,,,then a=1
else if then ,,,,
end if
ってコード書いて、改行入れないと認識されないってのが
わかんなっくて、それで3時間悩んで、いまようやっと
改行入れればいいんだ、ってわかって、それで次は
ifでなくてcaseにしたほうが賢いよね、って思って、
それをいますぐコーディングするか、あるいは
図書館いって紅の豚見るか、本屋いって立ち読みするか、
WoWやるかUOやるか、グーグルで検索してみつけた
大学生のプロブラマーさんにメールだすか、、、、
ってところで悩んでる
0248デフォルトの名無しさん
2007/07/22(日) 10:48:58要は以下の機能を作れば実現可能じゃないか
(1) Nの中からランダムな一文字を吐くメソッドGetN
(2) Uの中からランダムな一文字を吐くメソッドGetU
(3) Lの中からランダムな一文字を吐くメソッドGetL
(4) Cの中からランダムな一文字を吐くメソッドGetC
(5) 上の各メソッドそれぞれについて2つずつ値を取得し、それらの文字を組み合わせて
8文字の文字列を吐くメソッド
(6) 引数にとった文字列中の文字をランダムに並び替えた文字列を吐くメソッド
ここで、
N: 半角数字の文字の集合
U: 半角数字と半角英字の大文字の集合
L: 半角数字と半角英字の小文字の集合
C: 半角英数字の文字の集合
0249デフォルトの名無しさん
2007/07/22(日) 10:49:45VBなら、そうだな、wchrだったか、chrでも同じだったか
とにかくその辺の関数でどうにでもなる。
文字種別だけifとかで分けて、もしくは足す数値を変えて
chrやらで文字にすればいい。
0250デフォルトの名無しさん
2007/07/22(日) 13:33:35TextBox を単純なログ垂れ流し領域として使いたいのですが、Text プロパティに
文字を追加しただけでは勝手にTOP位置までスクロールしてしまいます。
その直後に最下行へスクロールさせても表示がガタついて上手くありません。
TextBoxの表示位置を変えずに、文字列だけ追記する方法はありませんでしょうか。
通常であれば AppendText を使うのですが、これが実装されていない環境( Compact)
なので・・・・・・・
よろしくお願いいたします。
0251デフォルトの名無しさん
2007/07/22(日) 14:25:54お願いします
0252デフォルトの名無しさん
2007/07/22(日) 14:31:29またはエスパーを召還してください。
0253デフォルトの名無しさん
2007/07/22(日) 21:40:10難しかったですか?
簡単に言うと
「AppendText を使わずに、AppendTextと同じ機能を作る方法は?」
です。
0254デフォルトの名無しさん
2007/07/22(日) 22:54:50いやエスパー召還が必要と思われるのは>>251の方。
>>250は難しそうだね。
Compactって思いのほか制約が多いんだね。
SuspendLayoutもWndProcも使えないんじゃどうやって良いかわからない。
ただ、ログを表示するだけならスクロールバーとラベルを組み合わせて
コントロールを自作すれば済むことのような気もする。
0255デフォルトの名無しさん
2007/07/22(日) 22:59:580256デフォルトの名無しさん
2007/07/23(月) 00:18:08ListBox
0257デフォルトの名無しさん
2007/07/23(月) 09:07:34end だとアプリそのものがとまってしまいます
exit sub にすると呼び出されている関数の場合
もとの式に戻って実行を続けます
その以降の処理だけとめて、
入力待ち状態にしたいのですが
こういう場合はどうすればよいのでしょうか?
0258デフォルトの名無しさん
2007/07/23(月) 09:29:47thred.sleep
これでよくね?
0259デフォルトの名無しさん
2007/07/23(月) 09:31:08だたorz
0260デフォルトの名無しさん
2007/07/23(月) 09:48:53プログラムを実行中止状態にすれば、入力待ち状態にはならない。
VBはイベントドリブンだから、普通に書けば、入力待ち状態だろ。
0261デフォルトの名無しさん
2007/07/23(月) 10:12:55Thread.Sleep だと、指定時間後に制御が戻ってしまいました
スンマセン
>260
まさしくそのとおりなんです
その普通の入力待ち状態に持っていきたいのですが
Sub a
call b()
call c()
end sub
sub b()
exit sub
end sub
上の例でa() を実行した場合にb()の中で
Exit Subを行うと
呼び出した側のa()に制御が戻るだけですので
c()が実行されます
そうではなくて、b()内でメソッドを実行するだけで
a()の以降の処理も停止する、上の例で行けばc()の処理を
発生させないメソッドはないものかと思案中です・・・。
0262デフォルトの名無しさん
2007/07/23(月) 10:17:44フラグもってイベントでフラグチェックしてe.Cancel使えばどうなのさ?
0263デフォルトの名無しさん
2007/07/23(月) 10:52:03フラグはちょっと気持ちが悪い(笑)
Subじゃ無くてFunctionを使って、Returnで値を返して、
条件分岐....
0264デフォルトの名無しさん
2007/07/23(月) 11:01:05例外にしてSub Aのレベルでキャッチする。
ただ通常の分岐なら使うべきではない。
0265デフォルトの名無しさん
2007/07/23(月) 12:28:45何か策を弄そう、という発想がこの場合間違い。
そんなことが可能だとして、そんなプログラマの予期を裏切るような
コードが「よいコード」だと思う?
フラグでも何でも使って愚直にやってください。
0266デフォルトの名無しさん
2007/07/23(月) 12:53:36dim blnExit as booLean = false
Sub a
call b()
if blnExit = True then Exit Sub
call c()
end sub
sub b()
if ----
----
else
blnExit = True
end if
end sub
てなかんじでフラグたてて毎回チェックさせてみます
アドバイスありがとうございました
0267デフォルトの名無しさん
2007/07/23(月) 12:55:00もしくはダイアログ出すとか
0268デフォルトの名無しさん
2007/07/23(月) 15:21:28戻り値とかには出来んの?
0269デフォルトの名無しさん
2007/07/23(月) 15:48:080270デフォルトの名無しさん
2007/07/23(月) 16:53:18の中で最後にcall c()するようにして、
sub bの中で条件によりexit sub するようにしちゃいかんの?
0271デフォルトの名無しさん
2007/07/23(月) 17:05:560272デフォルトの名無しさん
2007/07/24(火) 14:44:35MessageBoxで、String型の引数1つだけ指定するShow()を実行したとき、
OKボタンはちゃんと現れてくれたのですが、戻り値を受ける形で記述しないと、
OKボタンを押さない内に、表示と同時に先に進んでしまう、といったことは
あり得るでしょうか?
というか、実はそういう現象になったのですが、以前からMessageBoxって
こうでしたっけ?少なくともVB6以前ではこういう事象は経験したことがなく
ちょっと驚いております・・・。それともこれは記述に依存する仕様なの
でしょうか・・・?
0273デフォルトの名無しさん
2007/07/24(火) 15:36:20そもそもMessageBox.Show関数に引数1つだけのオーバーロードなんかないと思うが?
0274273
2007/07/24(火) 15:38:22つうか、
MessageBox.Show("hagehage")
これで次へ進むにはOK押さないとすすまないんだが?
うちのフレームワークの場合
ちなみに2.0 SP1
0275デフォルトの名無しさん
2007/07/24(火) 15:54:52、ですよね、そうであるはずなのですが、どういうわけか
「ボタン押下を待たずに」、先に行ってしまい、MessageBoxだけは残ったまま
という状態となり、後からボタンを押すとMessageBoxは消えてくれるという
変な状態だったのでした。
これって何だったのか・・・。しょうがないので、とりあえずボタンなどの
引数入れて書き直したところ、ちゃんと待つようになりましたが・・・、
こんなことっておかしいですよね?ちなみにこっちも同じFrameworkは同じ
バージョンでした。
0276デフォルトの名無しさん
2007/07/24(火) 16:55:25あらかじめデザイナでカラムを追加し、バインドするカラムの名前をDataPropertyNameを設定していてやる
DataGridView.DataSource=dt
で、バインドさせるとまず正常にバインドされて表示
このあと同じカラム構造の別のデータテーブルをデータソースに入れるときに
Directcast(DataGridView.DataSource,DataTable).dispose
DataGridView.DataSource = Nothing
としたらこの時点でもともと追加していたカラムがColumnコレクションから消えちゃってる・・・
そのあと
DataGridView.DataSource=新しいdt
としたら当然DataGridViewcolumnオブジェクトがないので空のDataGridViewにバインドさせたのと同じ状態に・・・・
この動作は仕様ですか?( ゚Д゚)?
テーブルバインドさせる時みんなどうやってんの?
0277デフォルトの名無しさん
2007/07/24(火) 16:59:10ありますでしょうか?
0278デフォルトの名無しさん
2007/07/24(火) 17:03:49WindowsXP + VisualStudio + VB2005 でWindowsアプリを作ってます。
ここで、タスクトレイにアプリを常駐させて、ショートカットキーで
起動したいと思ってます。例えば、UWSCや日本語FEPのように、
他のアプリがアクティブな状態でもショートカットキーで処理を起動
するのが目的ですが、その方法がわからないで困っています。
FormにNotifyIconコンポーネントを追加して、ContextMenuStripを
関連づける方法で、タスクトレイ上でアイコンを右クリックして、
メニューを表示し、その上でショートカットキーで動作させることは
できました。
しかし、メニューをポップアップしていない状態でショートカットキー
を入力しても、処理が起動されません。
ヒントでもいいので、よろしくお願いします。
0279278
2007/07/24(火) 18:14:39お騒がせしました。
0280デフォルトの名無しさん
2007/07/24(火) 20:13:50VB2005EXPRESSである機能をもつフォームを作りました。そのフォームをスタートアップフォームにしたときはちゃんと動くのですが、別のフォームをスタートアップにしてそのフォームを呼び出したときはちゃんと動きません。こんなことってあるのでしょうか?
(詳細続く)
0281デフォルトの名無しさん
2007/07/24(火) 20:46:53この中にあるマスタのコード入力用列と名称表示用列を作りました。セルの値が変化したときにDATASETの中身をFINDBYで検索し名称列に値をを自動セットする仕組みです。
この名称取得が該当フォームを別のフォームより呼び出した場合のみ動きません。
何か分かる事があれば教えてください。よろしくお願いします。
0282デフォルトの名無しさん
2007/07/24(火) 21:29:02SystemFonts
>>280
何かの変数の中身が呼ぶ順番に依存してるんだろとしか
0283デフォルトの名無しさん
2007/07/24(火) 21:56:07レスありがとうございます!
仰ているのは例えば変数Aをフォーム1(スタートアップ)、2(DATAGRIDのある方)で共有していてフォーム1から呼び出した場合はフォーム1が変数Aの値を書き込んでいるのでその影響を受けるとかいうことですかね?
頑張って調査します。
0284部長
2007/07/25(水) 09:43:20*.co.jpからのアクセスだけ残して、
他は全部捨てる、ってプログラムを
VBで書こうと思ったんだけど、どんなもんかな?
0285部長
2007/07/25(水) 09:44:30afeda.ocn.ne.jp
awefre.unko.co.jp
fedwa.tinpo.ac.jp
co.jpの行だけ残して
他はみたくないんだよ。できる?
0286デフォルトの名無しさん
2007/07/25(水) 09:52:05If Me.TextBox1.Lines(i) Like "*.co.jp" Then
MessageBox.Show(Me.TextBox1.Lines(i))
End If
Next i
0287デフォルトの名無しさん
2007/07/25(水) 10:03:10これ試しにOffice97しかはいってないWin2000に入れたらうごかねぇのw
こんなエラーが・・・・
保護されているメモリに読み取りまたは書き込み操作を行おうとしました。他のメモリが壊れていることが考えられます。
アプリケーション動作中の予期せぬ例外が発生した為、処理を中断しました。
俺涙目orz
0288デフォルトの名無しさん
2007/07/25(水) 10:16:07APIみたいなもんか?
ところでゲイツってCOMとか.NETとか
インターネットで使われる用語をすぐに
ぱくりたがるよね?
0289デフォルトの名無しさん
2007/07/25(水) 11:05:28ソースをパッケージでまとめたいのですが
0290デフォルトの名無しさん
2007/07/25(水) 11:08:240291デフォルトの名無しさん
2007/07/25(水) 11:23:560292デフォルトの名無しさん
2007/07/25(水) 11:26:41おぉ!
たぶんそれです。調べてみます。
0293デフォルトの名無しさん
2007/07/25(水) 11:33:12バージョン依存のインターフェイスメソッドとか使ってるんじゃね?
0294デフォルトの名無しさん
2007/07/25(水) 12:11:400295デフォルトの名無しさん
2007/07/25(水) 12:25:260296デフォルトの名無しさん
2007/07/25(水) 12:30:33俺はまず9割方別の理由だと思う
0297デフォルトの名無しさん
2007/07/25(水) 12:38:340298デフォルトの名無しさん
2007/07/25(水) 16:42:14買った本のサンプルだと使う度にその場所で宣言してるようです。
みなさんどっちですか?
0299デフォルトの名無しさん
2007/07/25(水) 16:44:330300デフォルトの名無しさん
2007/07/25(水) 17:51:510301デフォルトの名無しさん
2007/07/25(水) 22:45:440302デフォルトの名無しさん
2007/07/25(水) 22:48:37もっとやさしく
0303デフォルトの名無しさん
2007/07/25(水) 22:52:34うまく例を挙げられないけど、小出しに使う直前に宣言するより
まとめて宣言した方が分かりやすい場合も稀にはあるし。
0304デフォルトの名無しさん
2007/07/25(水) 22:53:39dim i as long
.
200行の下で使ってるやつすらもここで宣言
.
dim hogehoge as hoge
----延々と200行とか
i = 1
hogehoge = new hoge
end sub
こんな感じじゃね?
0305デフォルトの名無しさん
2007/07/25(水) 22:54:23負の遺産
0306デフォルトの名無しさん
2007/07/25(水) 22:58:53使うたびに一々初期化するぐらいなら、ステートメント内で宣言したほうがすっきり。
0307デフォルトの名無しさん
2007/07/25(水) 23:01:38後で見た時とか、何をどこで使ってるのかもうわけわかめ
経験すれば必要な時に必要なものを宣言するようになると思うんだけど
0308デフォルトの名無しさん
2007/07/25(水) 23:02:09カウンタ変数って初期化いらなくね?
0309デフォルトの名無しさん
2007/07/25(水) 23:05:390310デフォルトの名無しさん
2007/07/25(水) 23:07:15宣言した時点で数値なら0に初期化されてるだろ? ってことじゃないか?
0311デフォルトの名無しさん
2007/07/25(水) 23:12:130312デフォルトの名無しさん
2007/07/25(水) 23:13:23いや、俺もそう思うんだがw
つうか だよもんね とかお前かわいいな( ゚Д゚)
0313デフォルトの名無しさん
2007/07/25(水) 23:15:120314デフォルトの名無しさん
2007/07/25(水) 23:18:360315デフォルトの名無しさん
2007/07/25(水) 23:22:24ちょwwwwwwwwwwwwwwww
0316デフォルトの名無しさん
2007/07/25(水) 23:37:01通常の機能じゃ無理で
PARAFORMAT2をEM_SETPARAFORMATで使って
SendMessageでなげる
というのを過去スレで見ました。
試してみたのですが、
数字を右寄せにする方法がわからないのですが
ご存知の方がいらっしゃいましたらご教示お願いします。
しかも何故か空白で改行をすると急に番号が振られなくなります。
また、もっと簡単に左側にラベルを配置して
行番号をふるのも試したのですが
フォントを合わせても行間が違うのでズレが生じてしまいます。
これも結局、EM_SETPARAFORMATを使ってRichTextBoxの行間を
狭めるしかないのでしょうか?
行番号もRIchTextBoxを使えば行間の違いはなくなるのですが
行番号を表示するだけの為にRichTextBoxを使うのはなんか気持ち悪いので。
よろしくお願いします
0317デフォルトの名無しさん
2007/07/25(水) 23:39:28最初の3行しか読んでないけどこれじゃだめなんだっけ?
ttp://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=8248&forum=7
0318デフォルトの名無しさん
2007/07/25(水) 23:47:37あ、ごめん規定値だったか…
0319デフォルトの名無しさん
2007/07/26(木) 00:01:02VB.NETはVB6の仕様を一部継承してるからプリミティブ型の値型は
明示的に初期化されない場合既定値になる筈
0320デフォルトの名無しさん
2007/07/26(木) 00:26:310321308
2007/07/26(木) 00:47:07dim i as Integer
For i = 0 to 9
Next i
For i = 0 to 99
Next i
だと初期化いらなくね?
0322デフォルトの名無しさん
2007/07/26(木) 01:05:120323308
2007/07/26(木) 01:17:16まず i に0が代入されて・・・
って初期化は勝手にされるけど
>>306が言った
>使うたびに一々初期化するぐらいなら、ステートメント内で宣言したほうがすっきり。
という言い方から
dim i As Integer
i = 0 ' ※ 一々初期化する } この2行をまとめて
For i = 0 to 9 ' } For i as Integer = 0 to 9 のほうがすっきり
Next i
っていう書き方してるのかと勝手に想像して
それなら※部分の行いらなくねって言ったわけ。
0324デフォルトの名無しさん
2007/07/26(木) 01:23:45数値型[0]
Char[0]
Boolean[False]
String[Nothing]※
Date[0001年1月1日0:00:00]
Object[Nothing]※
※参照型
これって.NETも一緒じゃないの?
つうか、なにこの浅い議論。
0325デフォルトの名無しさん
2007/07/26(木) 01:27:340326デフォルトの名無しさん
2007/07/26(木) 02:02:01カウンタ変数はForステートメントの変数の呼び名で
ForEachやDoLoopで使うループカウンタはカウンタ変数じゃないだろ?ってこと?
0327デフォルトの名無しさん
2007/07/26(木) 03:19:25初期化を強制してるのはコンパイラだし。
0328デフォルトの名無しさん
2007/07/26(木) 09:55:28ApplcationDataじゃなければ各ユーザーごとに違った値になってしまうので嫌なんですが・・・
0329デフォルトの名無しさん
2007/07/26(木) 12:24:57っていうかMySettingの存在意義が理解できん俺には。
My爺さんなんか使わずに普通にシリアル化使っても手間は変わらないと思うんだけど。。
0330デフォルトの名無しさん
2007/07/26(木) 13:56:03現在.netでDBはMysql、そしてodbcを用いてデータグリッドにテーブルの情報を表示させたいのですが、
formにデータグリッドを貼り付けて、その後が全くわかりません。
教えてくださいorz
0331デフォルトの名無しさん
2007/07/26(木) 14:00:01↓
0332330
2007/07/26(木) 14:18:510333デフォルトの名無しさん
2007/07/26(木) 14:19:15↓
0334330
2007/07/26(木) 14:24:020335デフォルトの名無しさん
2007/07/26(木) 14:33:57ここから分岐するw
0336デフォルトの名無しさん
2007/07/26(木) 14:37:210337330
2007/07/26(木) 14:37:220338デフォルトの名無しさん
2007/07/26(木) 14:40:27↓
0339デフォルトの名無しさん
2007/07/26(木) 14:41:37もうめんどくさいから
3.ツールボックスのデータからOdbcDataAdapterを選んで対象のフォームに貼り付けるとウィザードが出るので選択しつつ進めていきます
0340330
2007/07/26(木) 14:47:160341デフォルトの名無しさん
2007/07/26(木) 14:51:290342デフォルトの名無しさん
2007/07/26(木) 14:54:49教えて下さい。
0343デフォルトの名無しさん
2007/07/26(木) 15:26:59で、今どこまで終わったんだっけ?
0344デフォルトの名無しさん
2007/07/26(木) 15:32:11OnPaintででも、どこでも好きにしてください
>>340
4.データアダプタの作成が終わったら、そのデータアダプタを右クリックしてデータセットの生成クリッコクリッコします。
0345デフォルトの名無しさん
2007/07/27(金) 01:38:51Delphiだとこんな感じでかけたんだけど・・・
TAAAClass = class of TAAA;
0346デフォルトの名無しさん
2007/07/27(金) 01:44:40しいて言えばリフレクション方面? Typeとか
0347デフォルトの名無しさん
2007/07/27(金) 10:56:36あるパネル内にアクセスキー付きラベル 例(&1) があり、パネル外のテキストボックスにあります。
このままですとALT+1キーを押下した場合、フォーカスがテキストボックスに移動しません。
どうすればよろしいでしょうか?
0348デフォルトの名無しさん
2007/07/27(金) 11:04:35次へボタンを押すと次のデータを表示させていくやりかたを教えてください
0349デフォルトの名無しさん
2007/07/27(金) 11:13:11Visual Basic 2005 Express Editionで
timerを使って、設定時間(例えば 11.5秒や30.7秒)毎にカウントを1ずつ増やすプログラムを作っているのですが、
プログラムの表示時間をストップウォッチで計ってみると、プログラム中では19.8秒なのにストップウォッチでは21.67秒だったりとズレが出ています。。。
プログラムは、 timerのintervalを100 変数『i』に0.1を100ms毎に足して、『i』が設定時間と同じになったらカウント『k』に+1を行なうようにしています。
このズレは直せないのでしょうか・・・
そもそもこのやり方が間違っているのでしょうか?
0350デフォルトの名無しさん
2007/07/27(金) 11:20:40>あるパネル内にアクセスキー付きラベル 例(&1) があり、パネル外のテキストボックスにあります。
日本語でよろしく(´・ω・`)
>>348
取得ってのはDataTableにデータを格納したのか?
>>349
ツールボックスにあるTimerの精度なんてそんもんだ。
別のTimerつかいなされ
0351デフォルトの名無しさん
2007/07/27(金) 11:23:15Tickイベントで処理を行っていると仮定して、
プログラム1行1行を処理する時間もかかるわけで、
秒数(特にmsec単位)を性格に求めるのは難しいのでは?
0352デフォルトの名無しさん
2007/07/27(金) 11:24:22このままですとALT+1キーを押下した場合、フォーカスがテキストボックスに移動しません。
どうすればよろしいでしょうか?
これでどう?
0353デフォルトの名無しさん
2007/07/27(金) 11:29:36他にもtimerあるんですね。。。ちょっと探してみます
>>351
正直0.1sec毎に表示処理とかイロイロやったら遅くなるよなぁ・・・
とは思ったのですがやっぱり影響ありますよね
0354デフォルトの名無しさん
2007/07/27(金) 11:41:26途中に経過表示などの割り込みを入れる場合や、
インターバルが長い場合はクロックの時刻と組み合わせる。
StartTime = DateTime.Now // で保存しておいて
一定時間ごとのタイマーイベントで 経過時間 = DateTime.Now - StartTimeを計算。
予定の時間以上経過したかどうか確認。
0355348
2007/07/27(金) 11:48:57そうです
初期画面はID1のデータの氏名住所などが表示されるようにつくりました
0356デフォルトの名無しさん
2007/07/27(金) 11:51:37なるほど・・・
その方法で作ってみます。
遅くなりましたが皆さんありがとうございます
知恵をお借りできて本当に助かります m(_ _)m
0357デフォルトの名無しさん
2007/07/27(金) 12:06:33横れすだが
現在表示させているデータテーブルのインデックスわかってるんなら次へボタン押したときに+1したデータテーブルのインデックスの情報表示させればいいんじゃないかな?
こんな単純な方法じゃ駄目?
0358348
2007/07/27(金) 12:18:09for文使えばいけますかね?
初心者ですいません
0359デフォルトの名無しさん
2007/07/27(金) 12:22:58IF 表示位置 < DataTable.Rows.Count - 1 THEN
表示位置 += 1
ID = DataTable.Rows(表示位置)(ID).Value
名前 = DataTable.Rows(表示位置)(名前).Value
住所 = DataTable.Rows(表示位置)(住所).Value
END IF
でいいんじゃ?
0360348
2007/07/27(金) 13:12:07表示位置ってのはTextBox1.Textとかのことですよね
エラーで実行できませんでした
0361デフォルトの名無しさん
2007/07/27(金) 13:49:15ちょっと長くなってしまいますが、前提から。
今現在、自分のドキュメント作業をExcelをベースに行っており、
また、ドキュメント作成の効率化を進めようとしています。
そのために、Excel VBAで各種マクロを組み、ショートカットキー
にマクロを登録して各種ユーティリティを起動する方法をとって
ます。
この際、個々に作成されるExcelワークブックに個別に処理を記入
していては、無駄なので、一つのワークブックにマクロ記述を集約
させ、つねにそのマクロ用ワークブックを開いておくことで、別の
ワークブックでもマクロ用ワークブックに記載されたマクロを利用
可能としています。
もともとは、Excelのアプリケーションレベルでマクロを作成して、
ワークブックでの操作をしたかったのですが、Excelにはこの機能
がないために断念したためにこういう構成になりました。
しかし、最近ではマクロが大きくなって動作が重いなど厳しい状態
になっているのと、VBAでは開発効率が悪すぎるので、ここをなんと
かしたいと思ってます。そこで、Visual Studio Tools for Office
を導入したのですが、行き詰まってしまっています。そもそも、こう
いうことが出来るのでしょうが。
つまり、やりたいこととしては、
�@ Excelのショートカットキーとしてユーティリティが動作する
�A 擬似的でもアプリケーションレベルの機能として動く
�B 上記のVisualStudioで開発する
ということです。
助言お願いいたします。
0362デフォルトの名無しさん
2007/07/27(金) 13:50:09表示位置を管理する変数のことですよ。
Dim iSelectRow As Integer = 0 ' 表示位置
Dim tblData As DataTable ' 住所録
tblDataの中にID、名前、住所が入っているとして
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
IF iSelectRow < tblData.Rows.Count - 1 THEN
' 次の行を選択
iSelectRow += 1
' IDの取得
TextBox1.Text = tblData.Rows(iSelectRow)(0).Value
' 名前の取得
TextBox2.Text = tblData.Rows(iSelectRow)(1).Value
' 住所の取得
TextBox3.Text = tblData.Rows(iSelectRow)(2).Value
END IF
End Sub
0363348
2007/07/27(金) 14:30:20.Valueを消したら次のデータは表示されるようになりました
その次のデータは表示されません
0364デフォルトの名無しさん
2007/07/27(金) 15:01:55もう、Accessにリンクテーブル作成して直接開いて、検索や追加編集をやってもらえよ。
それが一番まともになるぞ。
0365デフォルトの名無しさん
2007/07/27(金) 15:21:31だめだ・・・すべてを聞こうとすんなよ
ちったぁ勉強してからじゃないと話にならん
0366デフォルトの名無しさん
2007/07/27(金) 15:34:30ああ、思いつきで書いたからね。
正しくは、tblData.Rows(iSelectRow)(0).ToStringだね。
0367デフォルトの名無しさん
2007/07/27(金) 15:54:42tblData.Rows(iSelectRow)(0).Value.ToStringだ
0368デフォルトの名無しさん
2007/07/27(金) 16:06:180369デフォルトの名無しさん
2007/07/27(金) 22:43:37>テキストボックスにあります
ここが悩ましいんだよ!w
0370名無しさん@そうだ選挙に行こう
2007/07/29(日) 13:18:35Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim g As Graphics = Me.PictureBox1.CreateGraphics()
Dim bg As Image = My.Resources.back
g.DrawImage(bg, New Point(0, 0))
End Sub
だと表示されないのに、これを
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim g As Graphics = Me.PictureBox1.CreateGraphics()
Dim bg As Image = My.Resources.back
g.DrawImage(bg, New Point(0, 0))
End Sub
のようにボタンを押したら実行するとちゃんと表示されるんですが何故?
フォームのロードもボタンクリックも同じようにコードが実行されるんじゃないんですか?
0371名無しさん@そうだ選挙に行こう
2007/07/29(日) 13:23:16なんで質問する前にちったあ自分で勉強しようとは思わないんだ?
0372名無しさん@そうだ選挙に行こう
2007/07/29(日) 15:33:26自分じゃよくわからないので誰か作って下さいますか?
環境はVB2005です
ttp://pict.or.tp/
[13293.doc}課題3.doc
[13292.doc]課題4.doc
0373デフォルトの名無しさん
2007/07/29(日) 15:43:46ちなみに、学校って何の?もしかして中学校とかじゃないよね??
0374名無しさん@そうだ選挙に行こう
2007/07/29(日) 15:47:41高校の夏休みの課題です
0375名無しさん@そうだ選挙に行こう
2007/07/29(日) 15:51:21よし、俺にまかせとけ!!
0376名無しさん@そうだ選挙に行こう
2007/07/29(日) 16:01:32ところで提出日はいつ?何月何日?
0377名無しさん@そうだ選挙に行こう
2007/07/29(日) 16:10:460378名無しさん@そうだ選挙に行こう
2007/07/29(日) 16:51:49これ、小数とか負の数だったらどうするの?
0379名無しさん@そうだ選挙に行こう
2007/07/29(日) 17:18:130381名無しさん@そうだ選挙に行こう
2007/07/29(日) 18:12:48じゃ、細かいことは気にしないで作ってみました。
>>372と同じロダ [13311.zip] 課題4ね。
0382名無しさん@そうだ選挙に行こう
2007/07/29(日) 19:03:280383名無しさん@そうだ選挙に行こう
2007/07/29(日) 19:13:160384名無しさん@そうだ選挙に行こう
2007/07/29(日) 19:31:050385名無しさん@そうだ選挙に行こう
2007/07/29(日) 19:33:57間違えた
>>370と>>372だ
0387名無しさん@そうだ選挙に行こう
2007/07/29(日) 19:44:40関数は?
0388名無しさん@そうだ選挙に行こう
2007/07/29(日) 19:52:10今は高校でVBやるんだ
工業系?
0390デフォルトの名無しさん
2007/07/29(日) 20:28:09おまぃら・・・PGかSEかしらんがこんなの手伝うなよ・・・・
意味がないだろ
お前らが手伝ってるってことは 将来の無能SEやPGを育ててることとそう変わらないんだぞ
0391デフォルトの名無しさん
2007/07/29(日) 20:31:260392デフォルトの名無しさん
2007/07/29(日) 20:34:21[13334.zip]
>>390
後でプログラムの説明が出来なくて困るのは>>372だしいいんじゃね?
0393デフォルトの名無しさん
2007/07/29(日) 20:42:10そうだよねw
つうか、他の人のソースどんなかな?とかって見ててリアルにコーヒー吹いたwwwww
俺のコーヒーかえせwwwwww
0394デフォルトの名無しさん
2007/07/29(日) 20:44:44なんで?
0395デフォルトの名無しさん
2007/07/29(日) 20:47:37おま・・・計算結果の書式フォーマットいじってるところのコメント見ろ
0396デフォルトの名無しさん
2007/07/29(日) 20:52:16Kadai4\Kadai4\frmClac.vb
の40行目だ
0397デフォルトの名無しさん
2007/07/29(日) 20:55:200398デフォルトの名無しさん
2007/07/29(日) 20:57:33>>392はものすごい欲求不満
0399デフォルトの名無しさん
2007/07/29(日) 21:07:270400デフォルトの名無しさん
2007/07/29(日) 21:09:19なぁに
どうせ読んでないから気づきゃしないさ
というのを期待したい
0401デフォルトの名無しさん
2007/07/29(日) 22:25:55おまいらの優しさに泣いた
0402デフォルトの名無しさん
2007/07/29(日) 23:05:050他の板じゃあるまいし
そんなものに興味はない
0403デフォルトの名無しさん
2007/07/29(日) 23:46:150>>370, >>371 をみてみろよ。
0404デフォルトの名無しさん
2007/07/30(月) 00:05:47説明するより、コード書いてた方が楽だから
0405デフォルトの名無しさん
2007/07/30(月) 00:32:02少なくとも371は俺だが、俺は学生クンは一切シカトしてたから一貫はしてるよ。
他人にまでそれを強制するつもりはないが。
0406デフォルトの名無しさん
2007/07/30(月) 00:51:29でも、そしたらほとんど初心者スレに逝け、で終りかもなのね
0407デフォルトの名無しさん
2007/07/30(月) 00:54:28気持ちはわかるが書いてはダメだ。
0408デフォルトの名無しさん
2007/07/30(月) 01:19:34シカトしてない件について
0409デフォルトの名無しさん
2007/07/30(月) 09:56:30自分で情報系入ったわけだから、宿題丸投げとか、ありか?
宿題の言語が多過ぎでそのうちの一部がやりきれないとかならわかるけどね・・・
0410デフォルトの名無しさん
2007/07/30(月) 10:04:040411デフォルトの名無しさん
2007/07/30(月) 10:41:15大局変数を使え。
0412デフォルトの名無しさん
2007/07/30(月) 10:58:30ALT+1キーを押下した場合、フォーカスがテキストボックスに移動しません。
アクセスキーを使用してフォーカスをテキストボックスに移動させるにはどうすればよろしいでしょうか?
0413410
2007/07/30(月) 11:00:43ぐぐったけどわかりません
0414デフォルトの名無しさん
2007/07/30(月) 11:23:35意味がわかりません。
なんのモードなのか?
0415デフォルトの名無しさん
2007/07/30(月) 11:53:51アクセスキーは同じコンテナ内じゃないと無理だと思う。
同じパネル内に入れない理由は何?
どうしても両コントロールをパネルの内外に置かなければならない理由があるなら、
FormのKeyPressイベントとかで擬似的にアクセスキー押下の挙動を作るしかないんじゃないかな。
0416410
2007/07/30(月) 11:58:57照会、新規、修正モードです
0417デフォルトの名無しさん
2007/07/30(月) 12:02:42TabControlにて見出しの背景色を変更したいのですが、調べたところ
DrawModeをOwnerDrawFixedにして自分で描画する方法が見つかりました。
そこでDrawModeをOwnerDrawFixedにしてみたらTabControlのVisualStyleが
無効になってしまいました。
VisualStyleを有効にしたまま見出しの背景色を変更する方法ってありませんでしょうか。
0418デフォルトの名無しさん
2007/07/30(月) 12:05:24お前頭腐ってねえか?
照会、新規、修正モードとか言われても、こっちにはわかるわけないだろ?w
0419デフォルトの名無しさん
2007/07/30(月) 12:09:560420デフォルトの名無しさん
2007/07/30(月) 12:46:36thx
パネルは装飾用に使っていたんだけど、やっぱり無理か。
LabelのPaintイベントでやるしかないな。
0421デフォルトの名無しさん
2007/07/30(月) 12:47:54手っ取り早い方法としてTabControl使えば?
0422デフォルトの名無しさん
2007/07/30(月) 13:14:14装飾に使っているだけなら、デザイナいじってパネルの上にラベルを乗せる(パネルのアイテムには含めない)ってのはどうよ?
0423デフォルトの名無しさん
2007/07/30(月) 13:51:55ちなみにユーザーコントロールにしても同じだよね?
0424デフォルトの名無しさん
2007/07/30(月) 13:58:00何が同じ?
いちいち言葉抜かんでくれ。口で会話してるんじゃないんだから。
0425デフォルトの名無しさん
2007/07/30(月) 14:04:01VisualStyleも含めて自分で描画する
0426417
2007/07/30(月) 14:36:37どこにどういうふうに記述すればよいのでしょう…。
tabcontrolにはPaintイベントがありません。
DrawItemイベントはDrawModeがOwnerDrawFixedの時にしか起こらないようです。
0427410
2007/07/30(月) 16:00:04ラジオボタンで切り替えたいんです
ラジオボタンをチェックするとIDや氏名欄は空白にしたいんです
0428デフォルトの名無しさん
2007/07/30(月) 16:10:50だからお前頭腐ってるだろ?
>ラジオボタンで切り替えたいんです
>>410の時点でそんなことは一言も言っていない
>>416といい、>>427といい、こっちはそっちがどういうモノを作っているのか、
どんなコントロールを使用しているのか、どういう仕様にしたいのか、何一つ知らないんだぜ?
いきなり何モードにしたいだの、何を空白にしたいだの言われても解かるわけねーだろ。
まず、質問の仕方から勉強して来い。
0429デフォルトの名無しさん
2007/07/30(月) 16:22:57出て、ソフトのデバッグが出来ません。
使っているOSはWindowsVistaHomePremium、
adoministrator権限を持ったユーザーアカウントを使っています。
他のPCとは接続していません。
0430デフォルトの名無しさん
2007/07/30(月) 16:25:51仕様を書け。
0431デフォルトの名無しさん
2007/07/30(月) 17:23:04どうしようか?ww
0432デフォルトの名無しさん
2007/07/30(月) 17:32:50>>410
とりあえず
条件別に表示が必要な項目をあげてみろよ
0433デフォルトの名無しさん
2007/07/30(月) 18:05:240434434 ◆nf55XyzMAg
2007/07/30(月) 19:04:09スレとあんま関係ないんだけど。
VB.Netで特殊なメモ帳を今作っています。
DBを用いたメモ帳なんですけど、
開いた時にアカウントの選択ダイアログが出て、選択したアカウントのメモグループをツリービューに表示するのです。
メモグループをクリックするとそれに関連付けられた、メモの一覧が出てきます。
一覧のメモをクリックするとメモした文字列とファイルを別ウィンドウに表示するものを先輩と作っています。
本題は実際にはこのソフトのメモグループはミドル、メモ本体はディティールというのですが、先輩はミドルを親、ディティールを子と呼んでいます。
ではツリービューの+マークの付いている行やその下のすこし横にずれている行をなんというのでしょうか?
先輩は親、子と呼んでいますが、ミドルに属していないディティールもあるのでそれを親の無い子って呼んでるんです。
いくら「ミドルですよ。」「ディティールですよ。」っていっても罵倒雑言の嵐。
本でツリービューの+マークの付いている行やその下のすこし横にずれている行を親、子って説明しているんです。
先輩が間違っているのか本が間違っているのか教えてください。お願いします。
0435デフォルトの名無しさん
2007/07/30(月) 19:10:10ttp://homepage1.nifty.com/rucio/main/kiso/Kiso11TreeView.htm
0436デフォルトの名無しさん
2007/07/30(月) 20:01:47もうそろそろ、>>370に手を差し伸べてはいかがですか?
0437デフォルトの名無しさん
2007/07/30(月) 20:52:38というかこの程度の問題を自分で解決できないなら(以下略
0438デフォルトの名無しさん
2007/07/30(月) 21:00:01わからないから違うかも知れないけど、
Loadで書いたプログラムでは「一度描画されているが消えている」んだと思う。
Clickで描画したものも他のウインドウを手前に持ってくるとその部分消えるし。
0439370
2007/07/30(月) 21:24:05いや436は私じゃないです
>Clickで描画したものも他のウインドウを手前に持ってくるとその部分消えるし。
本当だ、消えますね?
HSP厨から卒業しようと思ってVB Expressの勉強始めたんですが全然勝手が違いますねえ
何で命令使うのにいちいちdimで宣言するのかすら分からない
何の利点があるんだろ?
>>437
入門書見ながら頑張ってみます
0440デフォルトの名無しさん
2007/07/30(月) 21:36:17たぶんその宣言でメモリ領域を予約するためだ
つうか、普通の言語はどれもそういう宣言があるんだよ
宣言強制しとけば間違った使い方もなくなるし
VB6みたく2005でも変数宣言の強制はオプションではずせるんじゃなかったっけか・・?
俺は絶対いやだけど
0441デフォルトの名無しさん
2007/07/30(月) 21:38:55ずっと見てたなら質問しなおせばいいのに。
0443デフォルトの名無しさん
2007/07/30(月) 21:47:51変数は分かるんですけど、
Dim g As Graphics = Me.PictureBox1.CreateGraphics()
g.DrawImage(bg, New Point(0, 0))
何故DrawImageを使うのにgという変数?を宣言するのかがわからんです
>>370の件、timerイベントで試してみたけど表示されなかった
イベントによって同じコードでも動き方が違うのか?
>>441
いやそんなふいんきじゃなかったんで・・・・・・
0444デフォルトの名無しさん
2007/07/30(月) 21:54:07描画と表示は別なんですか
ありがとう、がんばって調べてみます
しかしじゃあ何でボタンの時だけ表示されるんだろう?
全部表示されないなら分かるが
0445デフォルトの名無しさん
2007/07/30(月) 21:58:29本当真面目に勉強したほうがいいよ。
GDI+(というかWindowsの描画の考え方)は別に難しくない。
っていうか、どぼんとか@itとか、今時初歩的な内容ならタダで親切な解説が
いくらでも読めるのになんでいきなり「掲示板で質問」とか短絡するんだろう。
>>442
おいおいいい加減なこと吹き込むなよお馬鹿さん。
なにがヒントだw
0446436
2007/07/30(月) 22:07:15ん?
ピクチャボックスに画像表示でしょ?
PictureBox1.Image = Image.FromFile()
プロジェクトリソースの場合は
PictureBox1.Image = My.Resource.リソース名
CreateGraphicsはPaintイベント使わないと消えるんじゃないの?
CreateGraphics自体あんまり使わないから詳しいことは知らないけど。
馬鹿アホ呼ばわりされてもいいけど、きちんとどこを指してるのか
指摘してくれないと困る。
0447デフォルトの名無しさん
2007/07/30(月) 22:07:17何で同じコードなのに?という疑問が先にたって書き込んでしまいました
すいません
紹介していただいたサイト見て勉強します
0448デフォルトの名無しさん
2007/07/30(月) 22:10:33ピクチャーボックスのImage プロパティにImageを設定するやり方は
あくまで(コスト度外視で)簡易的に画像を表示する方法であって王道ではない。
もしこれが言いがかりだと思ってるなら君も初歩から勉強が足りなすぎるよ。
0449436
2007/07/30(月) 22:14:28何を勝ち誇ってるのか知らないけど
どういう方法を選択するのかを決めるのはプログラマでしょ?
>>370ぐらいの初心者にそういうアドバイスは
あなたの単なる自己満足でしょ。
あなた回答もしないのに性格極悪だね。
0450デフォルトの名無しさん
2007/07/30(月) 22:18:51地獄への道は善意で舗装されている、という言い古された言葉をしらないのか君は。
0451370
2007/07/30(月) 22:24:030452436
2007/07/30(月) 22:24:30だから、そういう抽象的な自己満足ならレスしないでよ。
>>442をどう解釈するかは>>370なんだって。
>>448の主張こそ>>370を縛る「善意の舗装」だってどうして気づかないわけ?
某スレにも回答しないのに回答者にダメ出しばっかりしてる人がいるみたいだけど
あなたじゃないの?
0453デフォルトの名無しさん
2007/07/30(月) 22:28:16ちょいまて。
PictureBox.Image を使うのが王道でないならそもそも PictureBox を使う意味なんか一切ない。
ということを踏まえての発言だよな?
0456370
2007/07/30(月) 22:36:35参考にしたもので、本ではその後別の画像を透過色を指定して描画しています
試しにまず一枚描画したとこformのロードイベントでは表示されなかったので質問した次第です
0457デフォルトの名無しさん
2007/07/30(月) 22:44:38いつもこんな感じだから別にあなたのせいじゃないよw
0458デフォルトの名無しさん
2007/07/30(月) 22:52:26なんでそういう風に短絡するかね。
たとえ話で言えば、スナップショットを撮るときにコストを度外視していつもポラロイドを
使う奴がいたらそいつは馬鹿だが、だからといってポラロイドの価値がゼロってわけじゃない。
たとえばスプラシュスクリーンとかバージョン情報のダイアログにPictureBoxを
使うのが悪い選択とは俺も思わない。
ただ、王道をスキップしてコスト高の手抜き手法のみ教えるのは馬鹿だといってるだけね。
0459デフォルトの名無しさん
2007/07/30(月) 22:56:58君の論理の飛躍のほうが世間的には受け入れられないと思うが・・・
0460デフォルトの名無しさん
2007/07/30(月) 22:58:49からもういいや。
0461デフォルトの名無しさん
2007/07/30(月) 23:12:21Private bg As Image = My.Resources.back
Private Sub PictureBox1_Paint(ByVal sender As System.Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles PictureBox1.Paint
e.Graphics.DrawImage(bg, New Point(0, 0))
End Sub
でいいの?
0462436
2007/07/30(月) 23:23:33全部文章で1行も回答しないところも一緒。
こっちでも玄人のフリできると思ったのかな。
0463デフォルトの名無しさん
2007/07/30(月) 23:37:32下らん。
そういうのを「逆ギレ」という。
もし反論があるのなら俺の言った内容に関して反論してくれ。
PictureBoxのImageプロパティを使う方法は画像の描画方法としては邪道の部類。
これ間違ってる?
エクセルスレなんて行ったこともないが、仮に俺がそのエクセルスレの人物と
同一人物だったら何だというのだw
0464デフォルトの名無しさん
2007/07/30(月) 23:48:34>これ間違ってる?
もっと自信もちなよ。
>エクセルスレなんて行ったこともないが、仮に俺がそのエクセルスレの人物と
>同一人物だったら何だというのだw
時にこういう開き直りも大事だと思うよ。
ごめん、勉強があるから。
0465デフォルトの名無しさん
2007/07/31(火) 00:19:190466デフォルトの名無しさん
2007/07/31(火) 07:41:55王道コードプリーズ
0467デフォルトの名無しさん
2007/07/31(火) 07:44:35王道!王道!王道!
0468デフォルトの名無しさん
2007/07/31(火) 07:47:340469デフォルトの名無しさん
2007/07/31(火) 08:44:16おそらく超初心者だな
最初は疑問だらけだろうがガンガレ
0470デフォルトの名無しさん
2007/07/31(火) 08:56:57俺にもその「王道」とやらのコードを教えてくれないか。
後学のためにぜひともお願いしたい。
0471デフォルトの名無しさん
2007/07/31(火) 09:14:21王道よろしく
0472デフォルトの名無しさん
2007/07/31(火) 09:38:150473デフォルトの名無しさん
2007/07/31(火) 09:45:12ストロングスタイルのコードを見せろよ。
0474デフォルトの名無しさん
2007/07/31(火) 09:46:17どういうこと?
0475デフォルトの名無しさん
2007/07/31(火) 09:49:41処理の早さ?
0476デフォルトの名無しさん
2007/07/31(火) 09:51:07リソースコスト?
金額コストw
手間(作成こすと?)?
0477デフォルトの名無しさん
2007/07/31(火) 09:54:290478デフォルトの名無しさん
2007/07/31(火) 11:33:45>これ間違ってる?
「それを邪道とするのが一般的だ」という主張であれば、間違ってますね。
そもそもそんな瑣末なコストを気にしなければならないシチュエーションで
VB.NET なんか使う奴は莫迦です。
0479デフォルトの名無しさん
2007/07/31(火) 12:27:34こういうくだらないレスが連続すれば、回答者側に回るポテンシャルの持ち主ほど
必然的にここに来なくなる可能性が高いことぐらい理解できないほど馬鹿なのかね。
それとも、昔話のサソリみたいに、自分も沈むと分かっていても自分が乗ってる
蛙を刺さずにはいられない類の精神の病み方をしているのか。
たぶん両方だろうね。
0480デフォルトの名無しさん
2007/07/31(火) 12:40:53御託はいいから早く王道書いてよ
0481デフォルトの名無しさん
2007/07/31(火) 12:50:11その高いポテンシャルのコードを見せてくれ
0482デフォルトの名無しさん
2007/07/31(火) 12:53:27お前にぴったりのスレがあるぞ
http://pc11.2ch.net/test/read.cgi/tech/1179394713/
0483デフォルトの名無しさん
2007/07/31(火) 14:08:421.出品一覧を取得しGridに表示
2.SHDocVw.InternetExplorerを使ってソースを読み取りStringReaderに展開(innerHTML)
3.1行づつ読み込み、設定
という流れで処理していますが、3で無理やり感がしています。
特に3での処理が長くいので、連続してやっていくとエラーが良く出るのです。
スマートでエラーが出にくい書き方ってありますか?
0484デフォルトの名無しさん
2007/07/31(火) 14:31:24王道!王道!王道!
0485デフォルトの名無しさん
2007/07/31(火) 15:15:120486デフォルトの名無しさん
2007/07/31(火) 15:57:030487デフォルトの名無しさん
2007/07/31(火) 16:49:16If Right(hoge, 2) = vbNewLine Then
VB.NET なんだからさ派:
If hoge.EndsWith(Environment.NewLine) Then
まあその前に >>486 か。
0488デフォルトの名無しさん
2007/07/31(火) 17:25:02プログラムスレなのに文系丸出しじゃないですか
まさに王道ですね
0489デフォルトの名無しさん
2007/07/31(火) 17:26:50双方とも厨まるだし
0490デフォルトの名無しさん
2007/07/31(火) 17:44:370491デフォルトの名無しさん
2007/07/31(火) 17:52:450492デフォルトの名無しさん
2007/07/31(火) 18:25:560493デフォルトの名無しさん
2007/07/31(火) 18:42:02vbCrLf と vbCr & vbLf も等価。
Environment.NewLine と vbNewLine は Windows では等価。
0494デフォルトの名無しさん
2007/07/31(火) 20:20:320495デフォルトの名無しさん
2007/07/31(火) 20:50:240496デフォルトの名無しさん
2007/08/01(水) 10:01:34ToolStripSplitButtonやToolStripDropDownButtonに、
選択中を示す「Chekedプロパティ」みたいなのってないんでしょうか?
ToolBarから移行しようと思ったんですが、にんともかんとも…。
ってか、この2つ、見た目(分かれてる)以外に何が違うの?
0497デフォルトの名無しさん
2007/08/01(水) 10:12:02ListViewを使用してアイコン表示してるのですが、場合により
そのアイコンに記号を重ね合わせて表示したいのです。
たとえていうなら、Explorerでショートカットファイルはオリジナルファイルの
アイコンと、ショートカットを示す小さな矢印アイコンが合成される、あのイメージです。
あらかじめ使用するだけのアイコンをすべて用意しておいて、ImageListに埋め込んでおけば
いいのかもしれませんが、そういうわけにもいかないので・・・。
具体的にやりたい方法は、
FormLoad時にListViewの各種ImageListを設定
それらのImageListにはImage.FormFileで動的に取得
条件により小さな記号を重ね合わせて表示
てな感じです。
.Net1.1のListViewではオーナードローは無いみたいですし、2.0にはまだ移行できない現状ですし・・・。
何か良いアイディアがあれば教えてください。
0498496
2007/08/01(水) 10:59:57イメージをクリアしたToolStripDropDownButtonを配置することで、
希望していたものが作成できそうです。
どうもお騒がせしました。
0499デフォルトの名無しさん
2007/08/01(水) 11:52:40ListView.ImageListを切り替えて使うのはどう?
If ある条件 Then
TreeView1.ImageList = ImageList1
Else
TreeView1.ImageList = ImageList2
End If
0500497
2007/08/01(水) 12:09:25レスありがとうございます。
やりたいのは、動的に生成したImageListと、ListViewItemの状態により
記号の付加です。
付加したい記号は固定なのでImageListにしてしまおうと考えています。
つまり、動的に生成したImageListでListViewItemを表示し、そのListViewItemの
状態が1なら○
状態が2なら△
状態が3なら×
状態が0なら記号なし
みたいに状態をあらわす記号を付加してListViewItemに表示したいのです。
言いたいことが伝わりますでしょうか?
0501デフォルトの名無しさん
2007/08/01(水) 13:08:22記号を付加したアイコンをその都度作成するしか方法はないんじゃない?
0502497
2007/08/02(木) 14:01:16レスありがとうございます。
やはりそうなりますよね・・・。
ListViewのアイコンにレイヤみたいなのが使用できればよかったんですけど。
ありがとうございました。
0503デフォルトの名無しさん
2007/08/02(木) 18:49:40ComboBoxのOnDrawItemの中で、DrawItemEventArgsのGraphicsプロパティではなく、
あえてComboBox.CreateGraphicsでGraphics取得して描画した場合何か想定される
問題ってあるかな?
そもそもそんなことする必要ないだろ、って突っ込みがきそうですが、
説明すると長くなるので省略しますがとにかくその必要はあるのです。
こういうのは結局Win32に明るくないとよくわからない。
0504デフォルトの名無しさん
2007/08/02(木) 19:34:47やらないだろうけど。
0505デフォルトの名無しさん
2007/08/02(木) 20:11:330506デフォルトの名無しさん
2007/08/02(木) 20:31:53よかったら詳しく。
それと、それは(Win9xの場合も含めて)通常は問題ない、という意味にとっていい?
0507デフォルトの名無しさん
2007/08/03(金) 12:16:54ビルドしたら突然IDEが落ちる!!!
DebugでもReleaseでもIDEが落ちる!!!!
さっきまで普通にビルドできていたのに!
そういや全てのフォームのリソースがどうのこうのってビルドエラーが1回でたな・・・
どうやったらビルドできるようになるんだ!?!?
0508デフォルトの名無しさん
2007/08/03(金) 12:32:470509デフォルトの名無しさん
2007/08/03(金) 12:35:34前にもどこかに書いたけど、WinFormのGUI部品を継承したクラスで妙なことやってると
そういった現象が発生する場合はあるみたいだ。
0510デフォルトの名無しさん
2007/08/03(金) 13:42:09フォームを閉じるとき,その操作が(戻るボタンなどの)ボタンによるもの
なのか,それともフォームの閉じるボタンによるものなのかを判定するには
どうしたらよいでしょうか?
ボタンが一つ(btnBackとする)なら,Closingイベントで, If sender Is btnBack Then〜
とできるのですが,ボタンが複数ある場合はどうしたらいいでしょう?
0511510
2007/08/03(金) 13:58:34senderはどちらにしても該当フォームになるんでしたね.
0512デフォルトの名無しさん
2007/08/03(金) 14:18:25http://jeanne.wankuma.com/tips/form/closingreason.html
0513デフォルトの名無しさん
2007/08/03(金) 15:09:420514510
2007/08/03(金) 15:23:51ありがとうございました.けっこう面倒なんですね…
0515デフォルトの名無しさん
2007/08/03(金) 16:11:27何言ってんだ。
OSも開発環境も、買わせる為にバージョンアップを繰り返してるってのに。
0516507
2007/08/03(金) 16:49:28ビルドしたかったプロジェクトを含むソリューションには複数のプロジェクトがあったんだけど
とりあえず今ビルドしたかったプロジェクトだけを含むソリューションを1つだけ作成して
ビルドしたら正常にビルドできて普通に動作してるよorz
これ以外のプロジェクトもそれぞれ単体でビルドすればイケるんだけど、
まとめてあるソリューションを開いてビルドすると落ちる・・・
>>509
kwsk
0517デフォルトの名無しさん
2007/08/03(金) 18:31:30だからさ、もしプロジェクトで自作の継承コントロールとか複合コントロールを
使ってるならそいつが臭いかもよ、って話よ。
ただ、俺の経験した現象は、その自作のコントロールを使ってるフォームを
デザイナで開くとIDEが落ちる落ちる、というものだったけど。
もちろん落ちるのはその自作コントロールのコードに問題があるからであって、
意味なくやたらと落ちるわけじゃないけどね。
0518デフォルトの名無しさん
2007/08/03(金) 21:10:36さんくす。
確かに自作コントロールを使用しているプロジェクトはあるんだけど、
そのプロジェクト単体のソリューションではちゃんとビルドできるんだ。
で、結局、新規に空のソリューションを作成してから今までの各プロジェクトを
追加したら普通にビルドできるんでやんのw
>>517みたいにデザイナで開くとIDEが落ちる、というのとはちょっと現象が
異なっているんよ。
原因はわかっていないけど、とりあえず今は正常にビルドとかできてるし
なんとかこのまま乗り切れたらいいのになぁ。
原因が解明できてないのでまた同じ現象に陥ることもあるかもしれないけど。
0519デフォルトの名無しさん
2007/08/03(金) 21:48:09後々安心だよ。
とりあえず別のPCにIDEインストールして「落ちる」リソルーションを読ませて
確認することで、原因が環境にあるのかプロジェクトにあるのかの切り分けはできるでしょう。
0520デフォルトの名無しさん
2007/08/03(金) 22:16:550521デフォルトの名無しさん
2007/08/03(金) 22:17:410522デフォルトの名無しさん
2007/08/03(金) 22:21:54Icon.ExtractAssociatedIconでは複数のアイコンが含まれたexeから
2番目以降のアイコンを取得することは出来ますか?
0523デフォルトの名無しさん
2007/08/03(金) 22:29:54WebBrowser上のマウスの座標を取得する方法を教えてください。
0524デフォルトの名無しさん
2007/08/03(金) 22:56:35無理 頑張ってWin32API
Webを探せば余裕で見つかりそうだが
0525デフォルトの名無しさん
2007/08/03(金) 23:08:44�dクス
あちゃーWin32か…
ちょっと頑張ってみます
0526デフォルトの名無しさん
2007/08/05(日) 13:12:35ControlPaint.DrawCaptionButtonで、閉じるボタンなどの描画ができますが、
ビジュアルスタイルを適用していないボタンしか描画できません。
ビジュアルスタイルが適用された閉じるボタンを描画する方法はありますでしょうか?
よろしくお願いします。
環境はVB2005 Expressです。
0527デフォルトの名無しさん
2007/08/05(日) 22:30:130528デフォルトの名無しさん
2007/08/05(日) 22:46:570529デフォルトの名無しさん
2007/08/06(月) 00:51:43A = list(cnt++)
B = list(cnt++)
・
・
・
みたいな感じで取得できませんか?
0530デフォルトの名無しさん
2007/08/06(月) 01:34:300531デフォルトの名無しさん
2007/08/06(月) 07:59:33作りたいのですがうまくいきません。
縁無しウインドウをモーダルで開くとそれっぽく見えるのですがタスクが移動して
しまいコンボボックスのそれとは違うようです。
良い方法がありましたら教えて下さい。
0533デフォルトの名無しさん
2007/08/06(月) 16:15:06皆さん教えてください、よろしくお願いします。
MessageBox のように戻り値を持つFormを作成するにはどのようにすればよいでしょうか。
何かそれように使える特定のクラスがあるでしょうか。
0534デフォルトの名無しさん
2007/08/06(月) 16:34:15閉じられたときに、そのプロパティを取得する。
みたいな感じでいいんじゃない?
まんまダイアログでいいなら、追加→新しい項目→ダイアログ
でダイアログ追加してそれをカスタムするとか。
0535デフォルトの名無しさん
2007/08/06(月) 17:37:460536デフォルトの名無しさん
2007/08/06(月) 17:41:590537533
2007/08/06(月) 18:08:26DialogResult というプロパティがあってそれを変更しておけばいいのですか、
なるほど、わかりました!!
ありがとうございました。
0538デフォルトの名無しさん
2007/08/06(月) 18:30:19いつものことだけど、このスレにもc#のスレにも結構テキトーなこという奴がいるんで
話半分に聞いた方がいいよ。
モーダレスなフォームで閉じられた時に何らかの値を「返す」ようにしたいのなら
例えばValueEnteredのようなイベントを自作して、ValueEnteredEventArgsのプロパティとして
返り値が取得できるようにした方がわかりやすいと思う。
0539デフォルトの名無しさん
2007/08/06(月) 22:49:580540デフォルトの名無しさん
2007/08/06(月) 23:08:100541デフォルトの名無しさん
2007/08/07(火) 08:58:11VB6とちがって、 AddHandlerつう便利な呪文があるんだから。
イベント関数は別にそのイベント発生フォームにある必要がない。
0542デフォルトの名無しさん
2007/08/07(火) 09:44:49モーダレスなフォームが閉じられた場合、どこがその返り値を受け取るのさ?
モーダレスの場合は、閉じられる側のフォームが値を押し付けるしかできないだろ。
ってか533は「MessageBox のように戻り値を持つFormを作成するには」って書いてるのに、なんでモーダレスの話になるのさ?
0543デフォルトの名無しさん
2007/08/07(火) 10:03:02>>538じゃないが、つくりにもよるが、>>541に書いたとおりだよ。
モードレスフォームから受け取りたいと思ってる画面が、Closeingイベントか何かにイベント関数登録しとけばいいだけ。
その、受け取りたい側は別に1つである必要はない。
モードレス側がイベントをブロードキャストするだけ、おらっちしぬけどいいべか?って。
0544デフォルトの名無しさん
2007/08/07(火) 10:07:55んなことできるのか!
0545デフォルトの名無しさん
2007/08/07(火) 10:16:02コントロールダブルクリックしてイベント書いてるだけじゃVB6と変わらない。
Delegateの仕組みというか其のあたりを理解すれば、また違う世界が・・・。
0546544
2007/08/07(火) 10:20:39(*´Д`*)試したよ。出来たよ。
戻り値欲しいときは全部モーダルで開いてたんだが、これで世界が変わりそうだぜ!
AddHandlerもよく使うのにこういうことに頭回らなかったなー。
0547デフォルトの名無しさん
2007/08/07(火) 10:26:27イベント発生時に、そのスタックのDelegateを順次呼び出し。
まあ、注意点は順序でしょうか?基本は登録順だから(確か変えられたけど)
通信系とか、その他でも、この使い方知れば、関連フォーム、クラスにブロードキャスト可能。
フォームだけじゃないことも大事なところ。
0548デフォルトの名無しさん
2007/08/07(火) 12:11:49>>542
×モーダレス
○モードレス
>>544
そりゃ、
・ 一つのイベントハンドラを複数のコントロールで共用したいとき
・ 動的に生成されるコントロールのイベントを捉まえたいとき
なんかのために、イベントハンドラを動的に設定するためのもんなんだから
出来なきゃ困る。
0549デフォルトの名無しさん
2007/08/07(火) 12:27:41よくある勘違いだが、それは「モードレス」っていう表記の方が間違ってるんだよ。
モーダル ⇔ モーダレスという表記が正しい。
0550デフォルトの名無しさん
2007/08/07(火) 12:34:470551デフォルトの名無しさん
2007/08/07(火) 12:38:20いや、modeの語尾変化でmodalとmodelessだからモーダルとモードレスだろw
0552デフォルトの名無しさん
2007/08/07(火) 12:44:130553デフォルトの名無しさん
2007/08/07(火) 12:44:210554デフォルトの名無しさん
2007/08/07(火) 12:54:360555デフォルトの名無しさん
2007/08/07(火) 12:59:05ってかくだらんことで意地張ってレス消費させるなw
0556デフォルトの名無しさん
2007/08/07(火) 12:59:42オマエモナー
0557デフォルトの名無しさん
2007/08/07(火) 13:01:060558デフォルトの名無しさん
2007/08/07(火) 13:02:010559デフォルトの名無しさん
2007/08/07(火) 13:04:17グーグル先生に聞いてみた。あとはご自由に。
モーダレス 1,470 件
モードレス 29,500 件
0560デフォルトの名無しさん
2007/08/07(火) 13:52:391点目が、データグリッド内に指定した行数だけデータを表示させる方法。
2点目が、ページング機能のプログラムの書き方。
この二つの方法をご教授ください。
0561デフォルトの名無しさん
2007/08/07(火) 13:59:41環境も書いてくれ。
VS2005とか。
0562デフォルトの名無しさん
2007/08/07(火) 14:04:31書き忘れです。
.net2003でmysql、odbc使ってます。
0563531
2007/08/07(火) 16:47:330564デフォルトの名無しさん
2007/08/07(火) 18:34:12答えが返ってこないのは、質問が漠然としているからでもあると思うよ。
君は読み手のESP能力を無意識に期待してるんだよ。
なぜ読み手の立場にたった文章が書けない?
例えばこのスレの標準的な読み手ならこう思うんじゃないか?
-------------------------------------------------------------
結局こやつは何がしたいのだ?
パネルやラベルを任意の位置に表示すれば済むように感じるのだが、
それではダメなのだろうか?
ダメだとしたら何故?
というか、なぜこやつは読み手にエスパーであることを要求して平気なのだ?
-------------------------------------------------------------
0565デフォルトの名無しさん
2007/08/07(火) 19:50:100566デフォルトの名無しさん
2007/08/07(火) 21:27:51ShowInTaskbarをFalseにする。
0567デフォルトの名無しさん
2007/08/07(火) 22:01:42Form を画面の中央に配置する場合、最も普通に行う方法はどのようなものでしょう?
VB6の時代には、Screenのサイズから割り出してTopとLeftを指定しました。
そうではなく、何か簡単な一発メソッドか何かで指定可能でしょうか。
また、画面が複数ある場合にも対応可能でしょうか。
なにとぞよろしくお願いします。
0568デフォルトの名無しさん
2007/08/07(火) 22:04:250569567
2007/08/07(火) 22:16:59おお、助かります。やはりなんでも用意されているのですね!!
ありがとうございました!!
0570デフォルトの名無しさん
2007/08/07(火) 22:25:15率直に言わせてもらう。
意味がわからん。
0571デフォルトの名無しさん
2007/08/08(水) 09:27:52パネルとかを動的に生成して、任意の位置に最全面で表示させればええんじゃない?
試してないけど。
0572デフォルトの名無しさん
2007/08/08(水) 12:02:16SQL文で必要な行数を持ってこいとすれば解決するのでは?
そうすればグリッドはただ表示するだけなんだし。
0573デフォルトの名無しさん
2007/08/08(水) 13:34:45すみません、ボタン・コントロールの ForeColor に教えてください。
このプロパティを標準以外に変更しようとしてBlueなどを代入してみたのですが
変更できませんでした。これは単純には変更できないとしますと、
何か別のプロパティを先に変更しておく必要があるでしょうか。
その場合何を変更しておけばよいでしょう?よろしくお願いします。
0574573
2007/08/08(水) 13:36:02>ForeColor に教えてください -> ForeColor について教えてください
0575デフォルトの名無しさん
2007/08/08(水) 13:40:03VisualStyleが腐ってるんじゃね?
0576デフォルトの名無しさん
2007/08/08(水) 13:57:44FlatStyleプロパティがSystemになってるとForeColorの設定いじっても変わらない。
0577デフォルトの名無しさん
2007/08/08(水) 14:53:25DataGridViewにて、CellPaintingイベントで、セルの中身を自分で描画しようと思ったのですが、
Dim rect As New Rectangle(e.ClipBounds.X, e.CellBounds.Y, e.CellBounds.Width / 2, e.CellBounds.Height)
e.Paint(rect, DataGridViewPaintParts.Background + DataGridViewPaintParts.Border)
e.Handled = True
イベント内に以上のように書いた場合、セルの左半分だけ背景とボーダーが描画されると思ったのですが、
実際実行してみたところ、セル全体に背景とボーダーが描画されてしまいました。
rectを(1,1,1,1)なんて指定してみたところで、関係なくセルの全体が描画されているようでした。
これってrectで範囲指定ができないバグなんでしょうか?
それとも自分の書き方が間違ってるんですかね?
0578デフォルトの名無しさん
2007/08/08(水) 16:18:26FlatStyle プロパティを System にしていました。><
むかし VB6 のときは、GraphicStyle だとかにすると色関係が
帰られたかと思いましたが、VB.NETではどうやっても無理ということ
なのでしょうか?
>>575
VisualStyle はググッたのですが、もしかすると WinXpの
ということでしょうか。
0579デフォルトの名無しさん
2007/08/08(水) 16:22:11FlatStyle プロパティを System にしていましたのは、
Flat ですと見た目のインパクトが弱いためで、
その形が使いからでした・・・
0580デフォルトの名無しさん
2007/08/08(水) 16:26:56Standardじゃだめ?
0581デフォルトの名無しさん
2007/08/08(水) 16:59:37なるほどー。
ただやってみたのですが、BackColor が
System のときと同じように、立体的なテキスタイルになる
とうれしいのですが、可能でしょうか?
0582デフォルトの名無しさん
2007/08/08(水) 17:54:410583デフォルトの名無しさん
2007/08/08(水) 18:18:15そうなのでした、これはもしかしたら、WinXPの設定なのですかね・・・。
0584デフォルトの名無しさん
2007/08/08(水) 18:19:370585デフォルトの名無しさん
2007/08/08(水) 20:03:51すみません、OS は WindowsXp で、IDE は VS2005Pro でした。
そういえば、Xp は >>575さんの VisualStyle がありました、
これで変更してるから表示が変わるのですね。
0586デフォルトの名無しさん
2007/08/08(水) 23:32:38ttp://msdn2.microsoft.com/ja-jp/library/twsk0311(VS.80).aspx
Delegateについて勉強中なのですが教えてください。VB2005EEです。
上記の使用例で書かれているコードについてなのですが
Delegateがどのように役立っているかが全くわかりません。
Protected Sub Test()
AddNumbers(5, 3)
SubtractNumbers(9, 3)
End Sub
と書いたほうが良い様に思うのですが。
0587デフォルトの名無しさん
2007/08/08(水) 23:34:27あんまりいい記事じゃないけど、デリゲートの存在意義は馬鹿じゃなきゃ理解できるはず
0588デフォルトの名無しさん
2007/08/08(水) 23:36:250589デフォルトの名無しさん
2007/08/08(水) 23:37:49コレクションのSortとか
0591デフォルトの名無しさん
2007/08/09(木) 11:30:48ユーザーコントロールを作成し中にLabelとPictureBoxを配置しました。
このユーザーコントロールを貼り付けたフォームで、このユーザーコントロールのMouseHoverイベントを
使用したいのですがLabelとPictureBox以外の領域でしかMouseHoverイベントが発生しません。
このユーザーコントロール中(LabelとPictureBoxとそれ以外の領域全て)でMouseHoverイベントを
発生させるにはどのようにすれば良いでしょうか。
0592デフォルトの名無しさん
2007/08/09(木) 11:44:20Private Sub Label1_MouseHover()
Private Sub PictureBox1_MouseHover()
でいいんじゃね?(未確認)
0593デフォルトの名無しさん
2007/08/09(木) 12:27:15しばらく前にほとんど同じ質問があったなあ。
過去ログ見れば参考になるサンプルコードが見つかるはず。(確か俺が書いた)
まあ要は、自分の内部コントロールのイベントを拾って、
あたかも自分のイベントのように偽装(っていってもOnXXXX呼ぶだけ)すればいいだけだよ
0594デフォルトの名無しさん
2007/08/09(木) 12:30:23解答ありがとうございます。
その記述をフォーム側に書くと言うことはLabelとPictureBoxをパブリックなプロパティにするということですね。
この場合、ユーザーコントロール内のマウスの位置によって3種類のMouseHoverイベントが起こるのが
ちょっとまずいです。
ユーザーコントロール内でマウスを動かしているだけで何度もイベントが発生するからです。
イメージとしてはユーザーコントロールと同じ大きさの透明のコントロールを最前面に配置して
その透明のコントロールのMouseHoverイベントを使用したい感じです。
0595デフォルトの名無しさん
2007/08/09(木) 12:32:23ありがとうございます。
過去ログを探してみます。
よろしければ検索のためのキーワードみたいなものを教えてもらえないでしょうか。
0596デフォルトの名無しさん
2007/08/09(木) 12:41:55内部のイベントを全て自作のイベント(MouseHoverExみたいな)にまとめて外部に公開するってことですかね。
そうするとやっぱりそのコントロール内でそれぞれのコントロールにマウスを合わせる度に同じイベントが発生
してしまいます。
Clickイベントなどはこの方法で実装しています。
0597デフォルトの名無しさん
2007/08/09(木) 12:42:35一個前のスレの363以降だね。
っていうか、593のヒントから自分でゼロから考えた方が楽しいぞ
0598デフォルトの名無しさん
2007/08/09(木) 12:43:31じゃあさ、MouseHoverイベントを使って
何をやりたいのかも書いておいたほうが回答もらいやすいぞ。
君がこれだ!って思う方法が可能とは限らないんだから。
0599デフォルトの名無しさん
2007/08/09(木) 12:57:13やりたいことはメニュー型のランチャーのサブメニュー項目のようなコントロールです。
使ってない人にはさっぱりかもしれませんがメニュー型ランチャーのOrchisでいう
サブメニューのような感じです。
画像とテキストを含んだユーザーコントロールにMouseHoverすると新しいFormを
Showすると言うような動きがしたいです。
>>597
了解です。
しばらくちゃんと自分で考えてみます。
0600デフォルトの名無しさん
2007/08/10(金) 18:19:38単純に合成はできるのですが、乗算で合成したいなぁ、と思って
Graphics.MultiplyTransformなるメソッドを使用してみたのですが
乗算になっているようには見えません。
Photoshopでレイヤーを乗算にして描画される、あのイメージだったんですが
このメソッドで良かったのでしょうか?
g.DrawImage(imgA, rect)
Dim transformMatrix AS New System.Drawing.Drawing2D.Matrix
transformMatrix.Translate(1.0F, 1.0F)
g.MultiplyTransform(transformMatrix, System.Drawing.Drawing2D.MatrixOrder.Append)
g.DrawImage(imgB, rect)
こんな感じでやってます。
0601デフォルトの名無しさん
2007/08/10(金) 19:35:40つまり座標変換。
System.Drawing.Graphicsというかその基になってるGDI+には色合成処理は用意されてない。
アルファブレンドはできるけど。
ので頑張って自前で実装するしかない。探せば見つかるかもしれないけど。
ttp://blog.livedoor.jp/junki560/archives/23254191.html
DelphiのコードだけどGDI+の乗算カラーフィルタのサンプルを見つけた。
参考になるかもしれない。
// そういえばPaint.NETは今どうなってんだろ。
0602デフォルトの名無しさん
2007/08/10(金) 19:42:26レタッチソフトの「乗算」の処理内容を具体的に知らないので抽象的なアドバイスになって
申し訳ないけど、たぶんカラー行列を使うんじゃないかな?(DrawImageのオーバーロードを見るべし)
0603デフォルトの名無しさん
2007/08/10(金) 22:38:02アルファベットしか入力し得ないテキストフィールドなので、そのフィールドでの
入力時はIMEの変換モードを英数に固定しようとして
hWnd = TextBox1.Handle
hIMC = ImmGetContext(hWnd)
If hIMC <> 0 Then
ImmSetConversionStatus(hIMC, IME_CMODE_ALPHANUMERIC, IME_SMODE_NONE)
ImmReleaseContext(hWnd, hIMC)
End If
のようなことをFormのActivate時に実行してみたのですが、指定したフィールドだけでなく、
全ての項目にこの設定が適用されてしまいます。
その項目だけに効果を与えるにはどうすればよいのでしょうか?
0604デフォルトの名無しさん
2007/08/10(金) 22:50:04MSDNライブラリのTextBoxのメンバ一覧を穴があくまでじっくり読む
0605デフォルトの名無しさん
2007/08/10(金) 23:09:33お返事ありがとうございます。
ただ、もし ImeMode の事を言われているのであれば、それが使えない環境なので・・・・・・。
そうでないのであれば、ちょっと判りませんでした。
0606デフォルトの名無しさん
2007/08/11(土) 00:47:24それどういう環境?
0607デフォルトの名無しさん
2007/08/11(土) 00:59:180608デフォルトの名無しさん
2007/08/11(土) 11:37:08すみません、教えてください。
Labelコントロールにおいて、現れている文字列を、マウスの操作でクリップボードに
コピーすることは普通はできないと思いますが、もしかしてそういうことができるように
するためのプロパティとかは存在しないでしょうか?
どうしても不可能な場合はボタンかまたはコンテキストメニューでもつけて
クリップボードにコピーするなどは考えられるのですが、テキストボックスと同様に
手軽に使えて、しかも文字列が変更されてしまわないものが望みです。
ちょうど、プロパティ・ダイアログの中のURLなどがそのようにできるものでした。
同様の機能を実現するのには特別なコントロールを自作する必要があるでしょうか?
すみませんがよろしくお願いします。
0609デフォルトの名無しさん
2007/08/11(土) 11:47:05あとはボーダーとか消してラベルっぽくすれば。
0610デフォルトの名無しさん
2007/08/11(土) 12:26:22おお、TextBox に ReadOnly というプロパティがあったのですね!
わかりました、ありがとうございます!
いろいろ新しくなっているのですね!助かりました。
0611デフォルトの名無しさん
2007/08/11(土) 12:33:180612デフォルトの名無しさん
2007/08/11(土) 12:43:08C#.NETとVB.NETの違いって何ですか?
調べてみると、(触り程度)
C#.NETにメモリーを切る概念が無くなったと。
だったら、方言とコンパイルの速度だけの違いになりますか?
0613デフォルトの名無しさん
2007/08/11(土) 13:56:520614デフォルトの名無しさん
2007/08/11(土) 13:59:460615デフォルトの名無しさん
2007/08/11(土) 14:26:3421世紀にその言葉を聞けるとは思わなんだ
0616デフォルトの名無しさん
2007/08/11(土) 17:57:37何が何でも切るって言うんだぜ?
0617デフォルトの名無しさん
2007/08/12(日) 10:06:08ReadLineなどで、画面から読み込む文字列を
[******]のようにマスクして、読み込む方法はあるのでしょうか?
すみませんが、よろしくお願いします
0618デフォルトの名無しさん
2007/08/12(日) 13:05:52VB.NETはリフレクションを使用するコードが勝手に生成されて凄く遅くなることがある
回避はできるからそれさえ注意すれば一緒
0619デフォルトの名無しさん
2007/08/13(月) 09:08:53PGさんにはそれがわからんとです。
0620デフォルトの名無しさん
2007/08/13(月) 10:44:010621デフォルトの名無しさん
2007/08/13(月) 14:16:59Graphics.DrawLine(Pens.Black, New PointF(10, 10), New PointF(10.1, 10.1))
のようにPointF使うしかないの?
0622デフォルトの名無しさん
2007/08/13(月) 15:21:560624デフォルトの名無しさん
2007/08/13(月) 16:24:46あとなんで1ピクセルが0.1だと思ってるんだ?
0625621
2007/08/13(月) 17:38:46Graphics.DrawLine(Pens.Black, 10, 10, 10, 10)
だと何も描かれないですし、
Graphics.DrawLine(Pens.Black, 10, 10, 11, 11)
や
Graphics.DrawLine(Pens.Black, 10, 10, 11, 10)
だと2ピクセル分描かれます。
10.1を指定するときれいに1ピクセル分描かれるのですが。
何かとんでもないトコを見落としているのかなぁ。
もうちょっと調べてみます。
0626デフォルトの名無しさん
2007/08/13(月) 17:48:01短いラインがどのなんドットなるかなんて、
ディスプレイディバイスの種類が違ったり、
スケールとか座標系いじったりしたら意味ないだろ。
0627デフォルトの名無しさん
2007/08/13(月) 18:05:15あほすぎて話にならん。
そんなのディスプレイの都合上、1ピクセル分の直線が引かれているように見えるだけだろ。
プログラム上では0.1ピクセルの直線を引いてる。
結果さえよければどうでもいいのか?
説明が面倒なので、答えを書く。
お前が書きたい1ピクセルの点というのは、数学的に言えば「一辺1ピクセルの面」だ。
面を書くのはDrawLineではない。
e.Graphics.FillRectangle(Brushes.Black, 10, 10, 1, 1)
0628デフォルトの名無しさん
2007/08/13(月) 18:07:38.netじゃ座標や幅の基本単位がピクセルだから関係ないんじゃね?
twipならディスプレイの設定で変化してくるが。
0629621
2007/08/13(月) 18:17:21もちろんFillRectangleやSetPixelを使うことは知っています。
1ピクセルの点をPenを使って書く時に10.1のように
書くしかないのですかという質問なのですが。
0630デフォルトの名無しさん
2007/08/13(月) 18:17:57.NET2.0用に作成したアプリケーションは、3.0しかインストールしていないWindowsでは
動作しないのでしょうか?
0631デフォルトの名無しさん
2007/08/13(月) 18:24:080632デフォルトの名無しさん
2007/08/13(月) 18:24:521x1のビットマップを作成してDrawImageという手もあるけど
それならまだ10.1の方がスマートな気がする
>>630
3.0は、2.0に一切手を入れずに新機能を追加しただけのもの
MSを信じるなら全く問題ないはず
0633デフォルトの名無しさん
2007/08/13(月) 19:13:37だからよ、お前はDrawLineの仕様がわかってないって言われてるの。
DrawLineはあくまで座標ペアで指定された2つの点を結ぶ直線を描画するんだ。
「点」ってのは直線じゃないだろう?
Graphics.DrawLine(Pens.Black, New PointF(10, 10), New PointF(10.1, 10.1))
お前のこれは、「見かけ上」1ピクセルの点に見えるだけで、プログラム上じゃ(10, 10)to(10.1, 10.1)の直線なワケ。
お前が厳密に1ピクセルの点を書きたいわけじゃなく、ただ見かけだけそうなってりゃいいや、っていうならそれでいいよ。
ただ、そんなのに甘んじるようなお前は果てしなくセンスが無いってだけだ。
0634デフォルトの名無しさん
2007/08/13(月) 19:25:550635621
2007/08/13(月) 21:25:54すみません。怒らせちゃって。
確かにおかしいんですよ。
僕も通常点を描くだけならFillRectangleで済ますんですが
ただ描画するのは違うクラスでこのクラスはもう変更きかなくて
Penと座標しか指定できないので
困ってたんです。
で、やっとこさ10.1というのを発見してあなたの言う見かけだけ
はできたのですが、他に何かないかなと思った次第でして。
あなたと私はたぶん似ているんだと思います。
私もDrawLineの仕様を言いたいですが、
Penと座標しか指定できない場合、10.1と指定するのことに
甘んじたくなくて質問したんです。
あなたも同じ状況なら他になにかないか探すと思います。
0636デフォルトの名無しさん
2007/08/13(月) 21:31:330638621
2007/08/13(月) 21:36:12他の方法というのは
例えば独自のPenを作成するとか
Penのプロパティにそういうのが指定できるとか
もしあったらと思いまして。
ですのでPenを使って何かないのかなと質問しました。
0639デフォルトの名無しさん
2007/08/14(火) 02:14:46My.Forms.Form1.TextBox1.text = "2ch2ch"
とか使う?それとも引数で渡す?
俺はMSがせっかく用意してくれてるんだからMy使うんだけど、みんなはどっち?
0640デフォルトの名無しさん
2007/08/14(火) 04:42:20Selected 状態と Active 状態とで異なるでしょうか?
Explorer上の TreeView や ListView では、点線でかこまれただけの状態の Item
と、実際に選択されて薄いパープル色あるいはグレーのバックカラーになって現れている
場合の2種類がありますが、それらに対応するものなのでしょうか。
0641デフォルトの名無しさん
2007/08/14(火) 04:51:130642640
2007/08/14(火) 05:21:30そうですね、よくわからないんですが、OnItemAvtivated() の Protected メソッドが
動くときのイベントが発生したとき、という意味のつもりでした。
Explorer では「単なる点線囲み状態」 と 「BackColorが色付く状態」 の両方があったので
そういう違いがある2つの状態というものがあって、それが Selected とは別の何かなのかなと
思ったのでした。
そういうもの自体存在しないのでしょうか。
0643デフォルトの名無しさん
2007/08/14(火) 09:43:48> 「単なる点線囲み状態」「BackColorが色付く状態」
ListViewItem にそれぞれ対応するプロパティがある。
TreeView は単一選択なんでこの辺は無関係。
0644デフォルトの名無しさん
2007/08/14(火) 09:49:15ほんとは引数で渡した方がいい
テキストボックスも直接公開するんじゃなくてForm1にString型のプロパティを定義した方がいい
でもどうせ使い捨てなら別にどうでもいい
0645640
2007/08/14(火) 14:15:33ご指導どうもです、この 「点線囲み状態」 は ListViewItem の Focused プロパティに
関係ありそうですね。さらにあちこち見て調べてみます。
ありがとうございました!
0646デフォルトの名無しさん
2007/08/14(火) 15:07:48プププ何コイツ
久々に笑わせられたぜww
>数学的に言えば「一辺1ピクセルの面」だ。
何が数学的だよ1ピクセルはプログラム上は点に決まってんじゃん。www
>e.Graphics.FillRectangle(Brushes.Black, 10, 10, 1, 1)
ちゃんと4ピクセルの面を指定しるじゃん。wwwうぇwww
FillRectangleってのは領域の内側を塗るんだよ。おバカさん
内側ってのは右辺と下辺から1ピクセル分引いた値。w
で結果1ピクセル分だけ塗られているだけだぽwww
直線上にない異なる3点以上を指定しないと面にならないことくらい
消防でも知ってるっつうの。
>一辺1ピクセルの面 プププププww
一番小さい面は3ピクセルの三角形だよwwwwww
ってかムキになってる638はその前に氏ねよwww。
こいつらくだんね。
0647デフォルトの名無しさん
2007/08/14(火) 15:15:400648デフォルトの名無しさん
2007/08/14(火) 16:09:05>FillRectangleってのは領域の内側を塗るんだよ。おバカさん
>内側ってのは右辺と下辺から1ピクセル分引いた値。w
FillRectangleには下辺の指定とかないんだけど、勝手に定義を変更しているあなたはなんなの?
>e.Graphics.FillRectangle(Brushes.Black, 10, 10, 1, 1)
これは座標(10,10)から始まる幅1高さ1の面ってことだろ?
ってか文章からして釣りだよなw
0649デフォルトの名無しさん
2007/08/14(火) 16:14:46>僕も通常点を描くだけならFillRectangleで済ますんですが
>ただ描画するのは違うクラスでこのクラスはもう変更きかなくて
>Penと座標しか指定できないので
>困ってたんです。
こういう背景も書かずに、いきなり>>621みたいな聞き方するから、Bitmap.SetPixel/GetPixelやFillRectangleなんて話がでてきたんではないの?
『定義の使用上、通常1ピクセルの直線は描画できないDrawLineで、
1ピクセルの点を描画する方法はありませんか』
とか聞けばいいのに。
0650デフォルトの名無しさん
2007/08/14(火) 17:13:09>これは座標(10,10)から始まる幅1高さ1の面ってことだろ?
これ読んだら吹いたwww
お前633で「点」ってのは直線じゃないだろう?
って言ってたじゃん。
点は直線じゃないが面になるのかよwww
お前まさか座標のことピクセルとピクセルの間だと思ってないかww
GetPixelでカラー取得できなくなるっちゅうのwwww
Rectangle( 10, 10, 1, 1)ってのは
(10,10)(10,11)(11,10)(11,11)の4点を表すんだよwww
DrawRwctangleやってみろよwwうぇぇぇぇwwww
>1ピクセルの面なんてねぇぇぇよwwうふ
0651デフォルトの名無しさん
2007/08/14(火) 18:14:34俺は627で「1ピクセルってのは点じゃなくて幅1高さ1の面だ」って言ってるんだが…。
だからこそ1ピクセルの「いわゆる」点を書くのは、面を塗りつぶす
e.Graphics.FillRectangle(Brushes.Black, 10, 10, 1, 1)
だと言うているんだが…?
目に見える「点」なんて存在しないだろ?
お前の言いたい事がてんでわからん。
0652651
2007/08/14(火) 18:16:58e.Graphics.FillRectangle(Brushes.Black, 10, 10, 1, 1)
ちなみにこれは座標(10,10)だけが塗りつぶされます。
あおる前に試してから書き込め、糞が。
0653デフォルトの名無しさん
2007/08/14(火) 19:52:580654デフォルトの名無しさん
2007/08/14(火) 19:55:350655デフォルトの名無しさん
2007/08/15(水) 11:52:54データベースの内容をエクセルに出力したいのですが(行は100行×列は10列くらい)、
この場合、VB.NETからエクセルのセルに直接書き込んだ方が早いですか?
それとも、エクセルのマクロを呼び出して、マクロ側でデータベースの内容を
セルに書き込んでいった方が早いですか?
0656デフォルトの名無しさん
2007/08/15(水) 12:23:040657デフォルトの名無しさん
2007/08/15(水) 15:17:28DataGridViewにて、指定したセルの左上の座標を取得する方法はありますでしょうか?
ありましたらその方法を教えてください。
宜しくお願いします。
0658デフォルトの名無しさん
2007/08/15(水) 15:22:300660デフォルトの名無しさん
2007/08/15(水) 20:51:23(http://www.atmarkit.co.jp/fdotnet/dotnettips/312ctrlinvoke/ctrlinvoke.html)
引数がない場合、サンプルのように次の書き方でOK。
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
TextBox2.Focus()
End Sub
↓
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim t As New Thread(New ThreadStart(AddressOf worker))
t.Start()
End Sub
Delegate Function FocusDelegate() As Boolean
Sub worker()
' textBox2.Focus()の実行
Invoke(New FocusDelegate(AddressOf TextBox2.Focus))
End Sub
次のように引数も渡したい場合、どのように書きなおせばよいのでしょうか?
Dim dtNow As DateTime = DateTime.Now
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
TextBox2.Text += dtNow.ToString() & vbcrlf
End Sub
↓
?
0661デフォルトの名無しさん
2007/08/16(木) 09:59:26"abcdefgh" という文字列を "abcd-ef-gh" という風に変換したい場合、
VB6の時は
Format("abcdefgh","@@@@-@@-@@")
で出来ました。
これをVB2005で表現するには、
VB6.Format("abcdefgh","@@@@-@@-@@")
といった風にしかできないのでしょうか?
VB6.Formatを使わずに簡単に上記操作が出来る方法があれば教えてください。
0662デフォルトの名無しさん
2007/08/16(木) 10:07:340663デフォルトの名無しさん
2007/08/16(木) 12:51:090664デフォルトの名無しさん
2007/08/16(木) 13:05:33あるノードが、あるノードより上にあるか下にあるか
調べたいのですが簡単にわかる方法はありますでしょうか?
If hogeNode.index > hoge2Node.index Then
End If
ですと階層が同じでないと比較できないので困っています。
よろしくお願いします。
0665デフォルトの名無しさん
2007/08/16(木) 13:22:030666デフォルトの名無しさん
2007/08/16(木) 13:29:26ツリーを全展開したときに、より左上にあるものが上といった感じです。
0667デフォルトの名無しさん
2007/08/16(木) 13:34:310668デフォルトの名無しさん
2007/08/16(木) 13:48:040669デフォルトの名無しさん
2007/08/16(木) 13:58:41より親
0670デフォルトの名無しさん
2007/08/16(木) 15:34:460671デフォルトの名無しさん
2007/08/16(木) 16:02:58会社の先輩にクラスのフィールドは必ずプロパティで介せよ!って言われたのですが、
以下のコードのようにmfield1とmfield2の違いがよくわかりません。
mfield1はプロパティ内で入出力操作みたいなことはできるのですが、下のコードのように
特に何もしないプロパティなんて意味あるのでしょうか?こういうプロパティがクラスに沢山あるのですが、正直面倒です。
先輩に聞いたら元請にそう指示されたと言ってましたが・・・
Public Class Class1
Private mfield1 As String
Public mfield2 As String
Public Property Field1() As String
Get
Return mfield1
End Get
Set(ByVal value As String)
mfield1 = value
End Set
End Property
End Class
確かに以前Javaの引継ぎの仕事で貰ったソースも、getter、setterが無数に書かれてましたが、return とクラスの変数の割り当て以外何もしていませんでした。
いまいち利点がわかりません。
0672デフォルトの名無しさん
2007/08/16(木) 16:11:34そのうち昔は無駄なことをしていたなぁ
ということになるからそれまでは我慢
0673デフォルトの名無しさん
2007/08/16(木) 16:41:000674デフォルトの名無しさん
2007/08/16(木) 16:55:15読み書きの処理をインターセプトして値のチェックや変換ができるというのも利点だが、
そういう処理の必要でない単純なプロパティを含む場合の利点としては
フィールドと違いInterfaceにしたり継承でoverrideできること。
特にリモート呼び出しなどではInterfaceであることは重要になる。
その為プロパティが花盛りなのは事実だが大半が単純な構造のプロパティであることから、
プロパティによるコードの増大を何とかしようとする動きはある。
1.IDEのサポート機能で強引にsetter/getterを大量生産する。
2.基本的な構造のプロパティを簡単な構文で書けるようにする。
3.パブリックなフィールドは自動的にプロパティにする。
1は現状のJavaやらC#で盛ん。
2と3は言語の拡張で対応。次版のVBやC#はこの方向。
3はあまりみないが、VB6のActiveXクラスのパブルックフィールドがこのやり方だった。
0675デフォルトの名無しさん
2007/08/16(木) 20:02:10解決しました。
660の質問は却下します。
0676デフォルトの名無しさん
2007/08/16(木) 21:38:41nodeにlevelってプロパティがあった様な。
0677デフォルトの名無しさん
2007/08/16(木) 21:48:32ドラッグアンドドロップのコードを記述してるのですが、
ドラッグ元のオブジェクト名を取得するにはどうすればいいのでしょうか?
VB2005EEを使っています
0678デフォルトの名無しさん
2007/08/16(木) 21:54:51型名? それともひょっとして変数の名前のこと?
0679デフォルトの名無しさん
2007/08/16(木) 22:09:06picturebox1とかlabel1みたいなクラス?の名前のことです
0680デフォルトの名無しさん
2007/08/16(木) 22:14:08で、そんなもんは仮の名前なのでとれるわけもないが
結局その名前を使って何がしたいの?
0681デフォルトの名無しさん
2007/08/16(木) 22:14:300682677
2007/08/16(木) 22:24:00ドラッグ元の画像を非表示にしたかったのですが、ドラッグ元の情報を
どうやって取得したらいいのか分からなかったので質問しました。
0683デフォルトの名無しさん
2007/08/16(木) 22:29:25ドラッグ元とかドラッグ先とかの状況が分からないから一般論だが
0684671
2007/08/17(金) 00:09:30ありがとう。とりあえずプロパティにしておくのは間違いではないのですね。
ググルと既にJava界ではgetter setterでいろいろ賛否両論が行われてました(@ITの掲示板はついて行けませんでしたが…)
しかし、オブジェクト指向のソースとか何の為?って思う箇所が多々あって辛い。
周りに詳しい人もいないんで、何を頼りにすべきか…。デザインパターンとかとりあえず目を通した方が良いのかな。
0685デフォルトの名無しさん
2007/08/17(金) 10:49:21DataGridViewで、”スクロールバーが現在表示されているかどうか”を取得できるプロパティみたいなものはあるのでしょうか?
それともDataGridViewの高さ(幅)と、表示されている行(列)の高さ(幅)の合計を比較するしかないでしょうか?
0686デフォルトの名無しさん
2007/08/17(金) 13:40:41HorizontalScrollBar.Visible
で判定できるみたいですね。
それでいってみます。
0687デフォルトの名無しさん
2007/08/17(金) 15:27:14No Control に設定(デフォのまま)してあるのに、実行時に
普通に入力できていたのに突然、カナ入力になったり、
オフ固定になったりします。
フォーカスが、他のアプリなどへ移動して、再度該当の
TextBoxに来た時に症状がおきやすい様ですが、明確な
発生状況の原因は突き止められていません。
ネットで検索した所、似たような症例が見受けられたが、
クリティカルな回避方法が分かりません。
何か良い方法はありませんでしょうか?
0688デフォルトの名無しさん
2007/08/17(金) 21:52:19この文字を、BMP保存したい場合どうすればいいのでしょうか?
Dim g As Graphics = PictureBox1.CreateGraphics() ' PictureBox1のGraphicsオブジェクトを取得
Dim fnt As New Font("MS 明朝", 20, FontStyle.Bold) ' フォントオブジェクトの作成
g.DrawString("文字をを描画", fnt, Brushes.Blue, 50, 20) ' 文字を描画
'リソースを開放する
fnt.Dispose()
g.Dispose()
0689デフォルトの名無しさん
2007/08/17(金) 21:56:530690デフォルトの名無しさん
2007/08/17(金) 21:57:14保存しない場合でもPictureBoxに直接書くよりBitmapに描画してDrawImageの方がいいと思うよ
0691デフォルトの名無しさん
2007/08/17(金) 22:04:38うまくいきました、ありがとうございます
0692デフォルトの名無しさん
2007/08/17(金) 22:58:20すみません、教えてください。
TreeView において、+ 印をクリックしたときにも、MouseUp イベントが発生する
のですが、、
それを、Node 本体をクリックしたときと区別する方法はあるものでしょうか?
IsSelected プロパティを見てみたのですが、無関係のようで、どうしたらいいもの
かと思いまして。すみませんがよろしくお願いします。
0693デフォルトの名無しさん
2007/08/17(金) 23:13:02.NET 1.1 以前なら駄目か、じゃあ HitTest だな
0694デフォルトの名無しさん
2007/08/17(金) 23:26:06どうもです。
2.0でしたが、NodeMouseClick でもやはり + 印の方でも反応していました。
HitTest でしたか。調べてみます、ありがとうございました!
0695デフォルトの名無しさん
2007/08/18(土) 08:47:26TreeViewMouseDownで
マウスダウンポイント = New Point(e.X, e.Y)
選択ノード = ツリービュー.GetNodeAt(マウスダウンポイント)
範囲 = 選択ノード.Bounds()
If 範囲.Contains(マウスダウンポイント) Then
ボディを選択した
Else
+を選択した
End If
0696デフォルトの名無しさん
2007/08/18(土) 12:15:27おお!!そうやってやるのですか!!!
すばらしい、どうもありがとうございました!!
助かりました!!!
0697デフォルトの名無しさん
2007/08/18(土) 15:07:21検索で移動したり、「シンボルの検索結果」での選択で移動したり、とこれらの操作で
キャレットの位置が変わっていったとき、その位置を復元して逆たどるためのツールボタン
があったと思うのですが、
PCが壊れて、別のPCに変えて同じボタンと思われるものを使ってみたのですが、
同じその機能が働いてくれません。
この機能のボタンはありますよね。なんという名前のボタンかがわかりません。
(試してみたのは、「前の検索結果1の場所へ移動」「前の検索結果2の場所へ移動」
「前の場所へ移動」などですが、これらでは復元しませんでした。ツールボタンの欄で
右クリック->「ユーザー設定」->「編集」を選択->その中のボタンから選択してみました。)
0698デフォルトの名無しさん
2007/08/18(土) 15:13:24それともIDEのメニューやツールバーのカスタマイズ方法を知らないの?
0699デフォルトの名無しさん
2007/08/18(土) 15:56:40ですから、それをやってみたと書いていますが・・・。それでもできなかったもので。
↓
(試してみたのは、「前の検索結果1の場所へ移動」「前の検索結果2の場所へ移動」
「前の場所へ移動」などですが、これらでは復元しませんでした。ツールボタンの欄で
右クリック->「ユーザー設定」->「編集」を選択->その中のボタンから選択してみました。)
0700デフォルトの名無しさん
2007/08/18(土) 17:14:24俺も見つかられんのだわw
0701デフォルトの名無しさん
2007/08/18(土) 17:14:550702デフォルトの名無しさん
2007/08/18(土) 17:46:360703697
2007/08/18(土) 20:36:38あー、それでした!!どうもありがとうございました!
0704デフォルトの名無しさん
2007/08/20(月) 01:05:24設定した場合に、太字(もしくは斜体)のみを標準状態に
戻す場合のコードってどう書けばいいのでしょうか?
0705704
2007/08/20(月) 01:12:050706デフォルトの名無しさん
2007/08/20(月) 09:31:20自己解決した場合でも、解決法は書くべき。
現在のスタイル-太字
TextBox1.Font = New Font(TextBox1.Font, TextBox1.Font.Style Xor FontStyle.Bold)
ちなみに
現在のスタイル+太字
TextBox1.Font = New Font(TextBox1.Font, TextBox1.Font.Style Or FontStyle.Bold)
0707デフォルトの名無しさん
2007/08/20(月) 12:31:46そういう「善意」は、結局のところ、基礎の理解や自分の頭で考えることをスキップする
「コピペ馬鹿」を生み出すだけだと思うが。
0708デフォルトの名無しさん
2007/08/20(月) 13:14:31善意から莫迦が産まれるとでも思ってんのか?
莫迦は元々莫迦なんだよ。
0709デフォルトの名無しさん
2007/08/20(月) 14:47:180710デフォルトの名無しさん
2007/08/20(月) 16:43:070711デフォルトの名無しさん
2007/08/20(月) 17:36:01例えばForm1上にButton1があったとすると、
Dim btn As Button = hoge("Button1")
みたいなことがしたいのです。
ググると、Form上のコントロールのコレクションをFor eachで回して、名前が一致するかどうかで
探すというのは見つけたのですが、名称からダイレクトに選択したいです。
0712デフォルトの名無しさん
2007/08/20(月) 18:27:440713デフォルトの名無しさん
2007/08/20(月) 20:42:55>Form上のコントロールのコレクションをFor eachで回して、名前が一致するかどうかで
>探す
という関数を作成すれば
>名称からダイレクトに選択
できますよ。
0714デフォルトの名無しさん
2007/08/20(月) 21:01:40Form.Controls(string)
やめとけやめとけやめとけやめとけ
0715デフォルトの名無しさん
2007/08/20(月) 21:04:12>>711みたいな「要求」は、ほとんどの場合勘違いの産物だと思うぞ。
ありていに言えば頓珍漢なんだよたぶん。
0716デフォルトの名無しさん
2007/08/20(月) 21:49:530717デフォルトの名無しさん
2007/08/20(月) 21:53:11>>711はそれ以外に方法がないと思い込んでるだけだろうな
0718デフォルトの名無しさん
2007/08/20(月) 23:06:46MouseUpイベントが連続して2回立つ、ということはありうるでしょうか?
そういう現象が出て悩んでいました。
下に何もないところをClickしたときはMouseUpは正常に一回しか立たない
のですが、下にItemがあるところをMouseでClickすると、2回連続してMouseUpが
立つのでした。
そのためか、そのListViewItemは、選択された印のBackColorが付かず、
Selected状態になっているのかどうかわからないのでした。
MouseDownイベントを挟まずにMouseUpが2回連続するというのは変だと
思うのですが、どこを通ってきてそうなっているのかわからないのでした。
こういう現象になった方いらっしゃったら何かご指導ください。よろしくお願いします。
0719デフォルトの名無しさん
2007/08/21(火) 01:21:52ありうるかどうかはdebug.printしてみればわかる。
0720デフォルトの名無しさん
2007/08/21(火) 07:53:11Win32APIのGetPixel等では不可能のようでしたが、何か良い方法は
ないでしょうか。
0722デフォルトの名無しさん
2007/08/21(火) 09:59:05そうなのです、それをやってみた結果、それがわかったのでした。
MouseUpというのはMouseDownが起きて初めて起こるはずなので、Upだけ
2回連続するというのは、理屈でいけばおかしいと思われました。
しかし、確かにDownを挟まずに、2回通っているのでした。
これは、どこかでDownに準じる何かが起きているが、それがおもてに
現れずにいるというようなことなのか、それとも、どこかまだ不明なところを
経由して再びMouseUpが実現してしまうという構造なのか・・・??
それで、そういったことは起こりうるのか、それが疑問になったのでした。
で、現実にItemが選択状態のBackColorにならない、ということは、その
2回連続しているMouseUpがおきてしまうことと関係があるのだろう、
と推測されたわけでしたが、どなたかアドバイスがありましたらお願いしますです。
0723デフォルトの名無しさん
2007/08/21(火) 10:14:55DirextXを使用している「もの」って具体的に何
>>722
再現しなかったのでした。
そのListViewItemについて詳しく教えてほしいと思ったのでした。
0724デフォルトの名無しさん
2007/08/21(火) 10:19:28スルーされるの覚悟ですが、フルスクリーンで動作するゲームです。
DirectXについて詳しくないのですが、普通にSpy++でハンドル調べて
Findwindow等で取得したハンドルを使ってGetPixelしたのですが
駄目でした。
0725デフォルトの名無しさん
2007/08/21(火) 10:29:500726デフォルトの名無しさん
2007/08/21(火) 10:35:200727デフォルトの名無しさん
2007/08/21(火) 11:31:28Dim ary(,) As Integer = {{1, 0}, {0, 1}}
Dim matrix As New Matrix(ary)
のようにやっていますが、
Dim matrix As New Matrix({{1, 0}, {0, 1}})
とやることはできないでしょうか。
また、a22 = matrix(2, 2) で a22に1が入るなどとやりたいのですが、
そういうことは可能でしょうか。
Array は Inherits できないようなので、無理なんですかね?
0728デフォルトの名無しさん
2007/08/21(火) 11:34:12FPSゲームのチートソフトでも作る気かw
0729デフォルトの名無しさん
2007/08/21(火) 11:38:29>Dim matrix As New Matrix({{1, 0}, {0, 1}})
コンストラクタの引数に配列をとる
>a22 = matrix(2, 2)
既定のプロパティ
0730729
2007/08/21(火) 12:00:46Dim matrix As Matrix = New Matrix(New Integer(,) {{1, 0}, {0, 1}})
にするだけ
0731724
2007/08/21(火) 13:23:15チートだなんてとんでも無い。ちょっとしたマクロ程度です。
>>725も試してみたんですが、上手く使えずWin32APIで
GetWindowDC(0)としてデスクトップ全体のDCからGetPixelしたん
ですが、DirectX(フルスクリーン)だと上手く行かないみたいですね。
今会社なので試せてませんが…。
ググってみると、どうも出来ないという話ばかりありました。
もう何て言うか、他のソフトで窓化してから組んだ方が手っ取り早い
気がしてきました。UWSCのPeekColorなんかだと出来るんですが
どうやって実現しているんだろう…。
0732デフォルトの名無しさん
2007/08/21(火) 14:23:02DirectXで描画しているDCを取得しないと駄目なんでないの?
0733デフォルトの名無しさん
2007/08/21(火) 14:39:070734733
2007/08/21(火) 14:40:270735デフォルトの名無しさん
2007/08/21(火) 14:43:37可能です
0737デフォルトの名無しさん
2007/08/21(火) 14:54:33ここで質問していいかわからないので、もし他スレが適切なら
誘導をお願いします。
OSがWin2003Serverでドメインコントローラになっているサーバに
Everyoneでフルコントロールできる共有フォルダがあります。
この共有フォルダに、LANで繋がっているOSがXpHomeEditionのPC
からファイルをアップロードしたりダウンロードしたりするアプリを
作りたいのです。
使用するPCはちょっと特殊なPCでHomeEditionしかプリインストールされていません。
ドライバ類の事を考慮して、OSをProfessionalEditionに乗せかえることは
しません。
クライアントがProfessionalEditionなら問題はないのですが、HomeEdition
なのでサーバの共有フォルダにアクセスしようとすると、ユーザ名と
パスワードを要求されてしまいます。
最初にエクスプローラから共有フォルダを開こうとしてユーザ名とパスワードを
通しておけば次からは要求されないので問題がないのですが、この開発中の
アプリからいきなり共有フォルダにアクセスしようとすると、ユーザ名と
パスワードが通っていないためにエラーになります。
プログラムからユーザ名とパスワードを認証させる方法はありますでしょうか?
0738724
2007/08/21(火) 14:55:53そうなんですか。すいません。あまり詳しくなくて。。
http://oshiete1.goo.ne.jp/kotaeru.php3?q=1145477
この辺みて勘違いしてたかもしれません。
取りあえず、↓みたいな感じの関数で帰ってから試してみます。
有り難う御座いました。
Private Function PeekColor(ByVal x As Integer, ByVal y As Integer) As Integer
Dim ret As Integer
ret = GetWindowDC(0) 'スクリーン全体のデバイスコンテキストを取得
PeekColor = GetPixel(ret, x, y)
ret = ReleaseDC(0, ret) 'スクリーン全体のデバイスコンテキストを解放
End Function
0739デフォルトの名無しさん
2007/08/21(火) 15:00:47WNetUseConnection
0740デフォルトの名無しさん
2007/08/21(火) 15:03:46どんなフルスクリーンか知らんが解像度が変更されている場合もあるので気をつけれ
多分デスクトップのDCのピクセル情報はフルスクリーンキャプチャに移るのと一緒だと思うから一回撮ってペイントに貼り付けてみて確認してみるのもいいかも
0741デフォルトの名無しさん
2007/08/21(火) 15:16:15>ドライバ類の事を考慮して、OSをProfessionalEditionに乗せかえることは
>しません。
これだけの為にProにアップグレードするべきだとは思わんが、一応教えておく。
ドライバはHomeだろうがProだろうが一緒。互換性を心配するのは間違い。
0742デフォルトの名無しさん
2007/08/21(火) 17:20:47TextBoxで未入力のときに数値の0とみなしたいのですが、次のようなやり方以外に
簡単な方法はありますか?
if textbox1.text.length = 0 then
val = 0
elseif isnumeric(textbox1.text) then
val = cint(textbox1.text)
else
'error
end if
0743737
2007/08/21(火) 17:47:49さっそくWNetUseConnectionをぐぐってみました。
で参考になるサンプルを見つけたので
ttp://64.233.167.104/search?q=cache:e1IfQnfsW9UJ:www.vbalab.net/vbaqa/c-board.cgi%3Fcmd%3Dntr%3Btree%3D36579%3Bid%3Dexcel+WNetUseConnection&hl=ja&ct=clnk&cd=9&gl=jp&lr=lang_ja
真似てやってみたのですが
その関数の戻り値が 487 となり、失敗します。
で、その戻り値を調べたら
ERROR_INVALID_ADDRESS 487 0x000001E7 無効なアドレスにアクセスしようとしています。
とありました。
しかし、そのアドレスは確実に間違っていないはずなんですが・・・。
そのアドレスをエクスプローラのアドレス欄に貼り付けるとちゃんと表示されます。
これ以上はスレ違いでしょうかね?
apiスレに移動したほうがいいでしょうか?
>>741
ドライバの互換性云々というのではなく、ドライバ類がOSの再セットアップ用に
提供されていないという問題なんです。
一応、ハードディスクにはリカバリイメージが格納されているのですが
隠蔽されているっぽいのです。
ドライバCDもなく、webでも公開もされておらず・・・
0744デフォルトの名無しさん
2007/08/21(火) 18:14:50ヒント:上書きインストール
0745デフォルトの名無しさん
2007/08/21(火) 18:33:56それで十分簡単だと思われ。
0746727
2007/08/21(火) 18:57:05a22 = matrix(2, 2) はできました。ありがとうございます。
Dim matrix As New Matrix({{1, 0}, {0, 1}})
の方は、以下のようにしてみましたが、式が必要です
というエラーが出ます。対策を教えていただけないでしょうか。
Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim matrix As new Array2({1, 0})
End Sub
End Class
Public Class Array2
Public elements As Array
Public Sub New(ByVal ary As Array)
elements = ary
End Sub
End Class
0747デフォルトの名無しさん
2007/08/21(火) 20:15:26Win32APIの意味や失敗の原因を調べるならWin32API質問箱スレに移動すべきだが、
Win32APIを呼び出すためのVB.NETの記述方法について知りたいなら、ここのままでも
よいのでは?
0748737
2007/08/21(火) 21:10:20ありがとうございました。
0749デフォルトの名無しさん
2007/08/21(火) 21:24:00>>730
0751デフォルトの名無しさん
2007/08/22(水) 10:15:43変数名じゃなくて型名の後に括弧を付ける方がその意味では正しい
0752デフォルトの名無しさん
2007/08/22(水) 11:06:560753デフォルトの名無しさん
2007/08/22(水) 12:16:12誤変換に生活史が見て取れる
0754デフォルトの名無しさん
2007/08/22(水) 12:44:18こう書いたらもうC#だなw
0755デフォルトの名無しさん
2007/08/22(水) 21:19:29どうやらキーを入れるみたいなんですが、キーを教えてもらえませんか?
0756デフォルトの名無しさん
2007/08/22(水) 21:46:24お前頭悪過ぎ
わざとボケたならすまない。
だが、ここでなく低脳スレに行くことをオススメする。
0757デフォルトの名無しさん
2007/08/22(水) 21:53:17マイクロソフトに問い合わせればいいじゃん
0758デフォルトの名無しさん
2007/08/23(木) 11:13:09フォームのNew()の中でInitializeComponent()が呼ばれますが、InitializeComponent()内で
設計時に設定したプロパティを設定するときに、それぞれのイベントハンドラが呼ばれたりします。
全てが初期化されるまでに呼ばれると困るイベントハンドラもあるので、今のところは
以下のようなコードでしのいでますが、VB2005に用意されている機能でこれを実現することはできますか?
Class Form1
Dim mConstructed as Boolean
Public Sub New()
InitializeComponent()
mConstructed = True
End Sub
Private Sub SomeEventHandler(...)
If Not mConstructed Then
Exit Sub
End If
End Sub
End Class
0759デフォルトの名無しさん
2007/08/23(木) 12:39:16まあ別にそれでも良いんじゃない?
(ただ、未確認だけど自分で判定用のフィールド作らなくてもForm.Createdが使えると思う)
そういう場合はHandles句を使わずに自分でイベントを紐付けするのが正攻法だと思うけど。
0761デフォルトの名無しさん
2007/08/23(木) 15:11:07タブが多くなり2段になりました。
どうせなら自分の好きなタブで区切り2段になるようにしたいのですが
タブ何個で段分割するとかいう指定はないでしょうか?
0762デフォルトの名無しさん
2007/08/23(木) 15:13:150763デフォルトの名無しさん
2007/08/23(木) 15:54:000764デフォルトの名無しさん
2007/08/23(木) 20:58:380765733
2007/08/23(木) 22:05:44WebBrowser.Document.ActiveElement.InnerText
WebBrowser.Document.ActiveElement.InnerHtml
を使ってWebBrowserの選択範囲・クリックした画像のソース等の取得ができました。クリックイベントと併用したら便利でした。
0766デフォルトの名無しさん
2007/08/24(金) 11:56:51継承コントロールでプロパティを追加した場合、デザイナでそのコントロールの該当プロパティを選択した時の説明文
(例えばFormのTextプロパティなら「コントロールに関連付けられたテキストです」)は、どこに書けば反映されるのでしょうか?
プロパティの<summary></summary>に書けば良いのかと思いましたが、そうではないようです。
解かる方、ご教示お願いします。
0767デフォルトの名無しさん
2007/08/24(金) 12:16:580768デフォルトの名無しさん
2007/08/24(金) 12:37:22間違いなくハマるよw
0769デフォルトの名無しさん
2007/08/24(金) 12:44:160770デフォルトの名無しさん
2007/08/24(金) 12:58:390771デフォルトの名無しさん
2007/08/24(金) 13:00:020772デフォルトの名無しさん
2007/08/24(金) 13:14:480774デフォルトの名無しさん
2007/08/24(金) 20:59:58TextBox プロパティ
これでググったりMSDN見たりする頭もないのか
先行き不安だな
0775デフォルトの名無しさん
2007/08/24(金) 21:12:15>思いつく限りの単語で調べてみたけど、わかんなかったのよ!
0776デフォルトの名無しさん
2007/08/24(金) 21:15:27MSDNのメンバの説明ではDescription属性は省かれてる
0777デフォルトの名無しさん
2007/08/25(土) 17:44:23継承しているコントロールがTextBoxでも無い限り、そんな単語で検索しないと思うぜ?
0778デフォルトの名無しさん
2007/08/27(月) 17:06:12OpenFileMapping()、MapViewOfFile()にて読み出しております。
VC++から
struct data{
char str1[256];
char str2[256];
char str3[1024];
}
という構造体、または構造体の配列が書き込まれた場合、
VB側ではどのようにすればそれぞれを受け取ることができるでしょうか
0779778
2007/08/27(月) 18:03:29Private Declare Function MovePointer Lib "mydll" _
(ByVal ptr As IntPtr, _
ByVal movesize As Integer _
) As IntPtr
・・・他に真っ当な方法は無いでしょうか(汗
0780デフォルトの名無しさん
2007/08/27(月) 18:05:030781778
2007/08/27(月) 18:31:03ありがとうございます。
nAddress = MapViewOfFile(hOpened, FILE_MAP_READ, 0, 0, 0)
str1 = Marshal.PtrToStringAnsi(nAddress)
と先頭を取ることはできるのですが、
Public Structure DATASTRUCT
Dim str1 As String
Dim str2 As String
Dim str3 As String
End Structure
Dim cds As DATASTRUCT
cds = CType(Marshal.PtrToStructure(nAddress, GetType(DATASTRUCT)), DATASTRUCT)
ですと、
「オブジェクト参照がオブジェクト インスタンスに設定されていません」のエラーが出てしまいます。
Marshal.PtrToStructure()をどのように使えば宜しいでしょうか
0782デフォルトの名無しさん
2007/08/27(月) 18:47:35MSDNライブラリ読めばいいのに。
たぶんDATASTRUCTの定義が不適切。
http://msdn2.microsoft.com/ja-jp/library/795sy883(VS.80).aspx
0783778
2007/08/27(月) 19:02:11ありがとうございます。
どこを読めばいいのかさっぱりの状態でしたorz
Public Structure DATASTRUCT
<MarshalAs(UnmanagedType.ByValTStr, SizeConst:=256)> _
Dim str1 As String
<MarshalAs(UnmanagedType.ByValTStr, SizeConst:=256)> _
Dim str2 As String
<MarshalAs(UnmanagedType.ByValTStr, SizeConst:=1024)> _
Dim str3 As String
End Structure
としたところうまくいきました!
構造体のメンバのサイズを宣言できるんですね!
(散々ググったページには「できない」とあったのですが・・・)
大変助かりましたありがとうございましたm(_ _)m
0785778
2007/08/27(月) 19:22:55この構造体が配列で渡されたときの受け取り方をお教えいただければ幸いです。
0786デフォルトの名無しさん
2007/08/27(月) 19:50:19エクセルの20個のファイルに(1a、2b・・・から20tとする)のファイル名
をそれぞれにつけて、とある1つのディレクトリにまとめて保存し
たそれらを一つずつオープンして、それぞれのファイルのSheet1
にあるセルの情報(それぞれのファイルで1行目(1,1)〜(1,40)に
まとめてある)を、情報をまとめるためのファイル「Answer」のSheet1に
1行ずつ出力するプログラムを教えていただけないでしょうか。
(最終的にはAnswerのSheet1は20行情報が貼り付けられることになります)
(ファイル名に規則性がなくても出来るのであればなお嬉しいです)
どうかよろしくお願いしますm(_ _)m
0787デフォルトの名無しさん
2007/08/27(月) 20:09:38Excel操作はここら辺を参考にがんばって。
ttp://jeanne.wankuma.com/tips/excel/
ttp://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/dv_wrcore/html/wrgrfexcelapplicationobject.asp
0788デフォルトの名無しさん
2007/08/27(月) 20:11:33>>782の前後に書いてる
0789デフォルトの名無しさん
2007/08/27(月) 22:10:29たとえるなら、薬師みたいなもんだよ。
調合の材料を客先に持ち込んで、客に合わせて調合するんだ。
もちろん、調合の仕方を覚えてれば、調合は早いだろうけど、リファレンス見ながらでも誰も怒らないよ。
そんな覚える技術や努力なんて馬鹿みたいだし、そんなところにしか技術の差が出ないなんて悲しいよな。
てか、薬師よりおとるかもなぁ。。薬師なら、難病を治すために適切に薬を選べるけど、programmerは、言われたように作るだけだから。。
0790デフォルトの名無しさん
2007/08/27(月) 22:22:110791デフォルトの名無しさん
2007/08/27(月) 22:26:370792デフォルトの名無しさん
2007/08/27(月) 22:38:58えーと……とかって本見ながら調合始めたら引くよな
0793デフォルトの名無しさん
2007/08/28(火) 09:39:51言われたようにつくるだけのマもいるけど、「こんなことできないかしら?できたらいいな!」って言われて、それを成す為の最適な方法を考案するマだっているさ。
何も言われずとも「こういうものをつくったら売れるんじゃないか!?」って創作するマもいるし、病人がいないと作ったものが効果を発揮しない薬師より、マの方がいろいろ可能性はあるさ。
調合、調整、やり直しが楽なところもマの魅力。
給料は低いが!!!!(つД`)
給料の為に働いてるマも多いだろうが、自分は創る行為自身が楽しくてマをつづけている。
0794778
2007/08/28(火) 11:40:57ありがとうございます。
プラットフォーム呼び出しによるデータのマーシャリング
http://msdn2.microsoft.com/ja-jp/library/fzhhdwae(VS.80).aspx
配下を読んでみました。
「Marshal.Copyというものがありアドレスから整数配列を取得することが可能」
ということはわかりましたが、
アドレスから文字列を含む構造体の配列を取得する方法
についてはどうしてもわかりませんでした。
勉強不足で申し訳ございませんが、ヒントをいただけませんでしょうか。
0795デフォルトの名無しさん
2007/08/28(火) 12:44:00とにかく一通りMSDNライブラリに目を通したほうがいいよ。
>>788がどういうつもりでああ書いているか知らないが、
恐らくArraysのサンプルが参考になるんじゃない?
あるいは、ドトネトのややこしいマーシャリングのルールに縛られるのが嫌なら、
アンマネージコードとの受け渡しは全部バイト配列でやって、Encodingとかその他使って
自分で必要に応じて手動で変換するのも一つの手かもね。
0796デフォルトの名無しさん
2007/08/29(水) 21:56:59"abc123"なら6を、"テストテスト"なら12を、"あ12い"なら6
を返す感じで・・・
0797デフォルトの名無しさん
2007/08/29(水) 22:00:34君はまず「文字列」の正体を勉強するのが先。
その後ではそういう「うかつ」なことは恥ずかしくていえなくなるだろう
0798デフォルトの名無しさん
2007/08/29(水) 22:01:110799デフォルトの名無しさん
2007/08/29(水) 22:05:40ですよね・・・やっぱり無理か
0800デフォルトの名無しさん
2007/08/29(水) 22:09:49知らないならすっこんでろ糞虫(笑)
0801デフォルトの名無しさん
2007/08/29(水) 22:11:50Encoding sjisEnc = Encoding.GetEncoding("Shift_JIS");
int num = sjisEnc.GetByteCount(str);
Console.WriteLine(num);
0802796
2007/08/29(水) 22:16:51即レスありがとうございます!助かりました!!
↑のレスは自分ぽいけど偽者です・・・
>>797
恥ずかしい奴、未だにC言語シコシコ組んでる人?
0803デフォルトの名無しさん
2007/08/29(水) 22:17:540804デフォルトの名無しさん
2007/08/29(水) 22:20:06本気で言ってるのか?
801がほのめかしているように、今時文字列のエンコーディングはANSI(S-JIS)
とは限らない。
まあ、こういう「幸せな馬鹿」に言っても通じないかな。
0805デフォルトの名無しさん
2007/08/29(水) 22:24:130806デフォルトの名無しさん
2007/08/29(水) 22:26:20"abc123"なら6を、"テストテスト"なら12を、"あ12い"なら6
を見る限りにおいてはS-JISとみなしても正解だわな
0807デフォルトの名無しさん
2007/08/29(水) 22:35:42当然Encodingクラスについても知っているか、知らなくても容易に発見しているはずで、
それならばそもそも796のような質問は発しないだろう。
質問の文面や受け答えから見て、どうみても旧VBプログラマにありがちな、
理解しもせずサンプルをコピペして使うタイプの「お馬鹿さん」だろう796は。
0808デフォルトの名無しさん
2007/08/29(水) 22:46:380809デフォルトの名無しさん
2007/08/29(水) 22:47:38>「文字のエンコード」という概念を796が知っていれば、
>当然Encodingクラスについても知っているか、知らなくても容易に発見しているはずで、
おまえニュータイプかよおまえニュータイプかよ(ふかわ風に)
0810デフォルトの名無しさん
2007/08/29(水) 23:06:28それを左右上下できて、画面の端にいったら、反対側からでてくるようにするにはどうやったらいいんでしょうか?
サンプルソース等あればお願いします
0811デフォルトの名無しさん
2007/08/29(水) 23:39:37うまくソースを絡めるにはどうすればいいんでしょう?
ビニール樹脂製のサンプルなどがあれば、すごく…欲しいです
0812デフォルトの名無しさん
2007/08/30(木) 02:03:32左を押したらなどはフォームのキーダウンイベントで取得
ラベルの移動はleftやtopをいじくる。
反対側から出てきるようにするにはleftとwidth、topとheightとか。
っていうかそれvbでやることなのか。
>>811
巷のプログラマーの間では
難しいプログラムをつくろうとすればするほどソースは絡みつく
と言われている。
0813デフォルトの名無しさん
2007/08/30(木) 02:13:56学校の課題です
もうずっとやってるのにできない・・・
もうあきらめてアホみたいな量の追加課題をやるか
0814デフォルトの名無しさん
2007/08/30(木) 10:03:22俺も勉強中の身なんで微妙だけど、こんなんでどうよ。
Private Sub MyBase_Down(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles MyBase.KeyDown
Select Case e.KeyCode
Case Keys.Left
If Label1.Left < -Label1.Width Then
Label1.Left = Me.Size.Width
End If
Label1.Left = Label1.Left - 1
Case Keys.Right
If Label1.Left > Me.Width Then
Label1.Left = -Label1.Width
End If
Label1.Left = Label1.Left + 1
Case Keys.Up
' 処理
Case Keys.Down
' 処理
End Select
End Sub
上と下も同じような考えでおkなはず。
0815814
2007/08/30(木) 10:11:24これだと見えなくなってから出てくるまでに時間がかかるから、Ifの条件を弄った方がいいかも。
0816デフォルトの名無しさん
2007/08/30(木) 10:48:29そーすりゃあとは楽勝だと思うが。
0817デフォルトの名無しさん
2007/08/30(木) 13:50:23ソースも糞な傾向が多い。
0818デフォルトの名無しさん
2007/08/30(木) 14:10:180819デフォルトの名無しさん
2007/08/30(木) 15:09:530820デフォルトの名無しさん
2007/08/30(木) 17:42:41それほんとにラベルを使わないといけないの?
どう考えてもGraphics使って自前で描画するべき
0821デフォルトの名無しさん
2007/08/30(木) 18:31:29宿題を課したやつも素人なんだろw
Labelをキーで動かすことを学んで何の得になるんだろうなw
0822デフォルトの名無しさん
2007/08/30(木) 18:43:21クライアント座標の座標系はデカルト座標ではない、とか)を体感させるには
悪くない課題だと思うけどね俺は。
というか、たかが文字列一つ動かすために自前で描画しろ、っていう奴は
恐らく自分でそんなことやったことがないんだろうねw
「ちゃんと」やろうと思ったら意外と面倒だよ。
例えばフォームにコントロールが配置してあったらどうするの?
描画するものが他にあったら、表示のプライオリティや移動した際の再描画は
どうするの?
他の描画の処理が仮に重いものだったとしたら?
無効化する領域を指定しても完全には解決できない場合があるぞ。
0823デフォルトの名無しさん
2007/08/30(木) 20:35:55Windows.Forms.Cursor.Clip = New Rectangle(0, 0, 300, 300)
などとしているんですが、これだとほかの窓をアクティブにしたりすると
制限が解除されてしまいます。
何かいい方法はないでしょうか?
0824デフォルトの名無しさん
2007/08/30(木) 21:19:480825デフォルトの名無しさん
2007/08/30(木) 21:53:43そのものズバリのWin32apiが公開されてんだろ低能
0826デフォルトの名無しさん
2007/08/30(木) 22:39:59やはり解除されてしまうみたいです。
0827デフォルトの名無しさん
2007/08/31(金) 09:47:18そこまで考えた課題には見えないし、より深く考えるならそれこそラベルなんぞを動かそうという発想自体がナンセンスになる。
多分スレ違いなんだよな、ここの住人は「素人」や「初心者」に過剰反応するから、優しい人が初心者スレでもつくってあげればいい。
叩きや煽りにいちいち反応してたら、ここのスレ見てらんないぜ?
0828デフォルトの名無しさん
2007/08/31(金) 12:44:37だからラベルを動かすのは目的じゃなく手段でしょ。
何のための?
学習のためのだよ。
どうでもいいけど話の文脈(今何を話しているか?)を忘れるのは頭の悪い証拠だよ。
学校の課題として不適切、って寝ぼけたことを言う奴がいたから
必ずしもそうでもないだろって話をしてるんだけど。
0829デフォルトの名無しさん
2007/08/31(金) 13:09:11>叩きや煽りにいちいち反応してたら、ここのスレ見てらんないぜ?
0830デフォルトの名無しさん
2007/08/31(金) 13:16:12>学校の課題として不適切、って寝ぼけたことを言う奴がいたから
>必ずしもそうでもないだろって話をしてるんだけど。
質問スレで質問と関係ない話しないでくれる(^ω^;)?
0831デフォルトの名無しさん
2007/08/31(金) 14:16:04なんの話だよw
帰れ
0832デフォルトの名無しさん
2007/08/31(金) 15:48:39ttp://support.microsoft.com/default.aspx?scid=kb;ja;165942
等を参考にして以下の通り作成いたしました。
Private Declare Function WriteFile Lib "kernel32" ( _
ByVal hFile As Integer, _
ByVal lpBuffer As String, _
ByVal nNumberOfBytesToWrite As Integer, _
ByVal lpNumberOfBytesWritten As Integer, _
ByVal lpOverlapped As Integer _
) As Integer
Dim bool As Integer
Dim pipe As Integer
Dim size As Integer
pipe = CreateFile("\\.\pipe\mypipe", &H40000000, 0, 0, 4, &H80, 0)
bool = WriteFile(pipe, "ABC", 4, Size, 0)
以上を実行すると、受信側で"ABC"と4を取得し通信自体は成功はするのですが、
同時に送信側でエラーが発生してしまいます。
System.NullReferenceException: オブジェクト参照がオブジェクト インスタンスに設定されていません。
at abc.AbcvMain.WriteFile(Int32 hFile, String& lpBuffer, Int32 nNumberOfBytesToWrite, Int32 lpNumberOfBytesWritten, Int32 lpOverlapped)
WriteFileのどこに問題がありますでしょうか。
どんな些細な点でもかまいませんのでご指摘下さい。
0833デフォルトの名無しさん
2007/08/31(金) 15:53:40試してないが、
>ByVal lpNumberOfBytesWritten As Integer, _
これ API が書き戻すんだから ByRef じゃね?
0835デフォルトの名無しさん
2007/08/31(金) 17:31:110836デフォルトの名無しさん
2007/08/31(金) 17:36:27頑張れ★
0837デフォルトの名無しさん
2007/08/31(金) 18:36:52イミワカンネ
0838デフォルトの名無しさん
2007/08/31(金) 20:06:350839832
2007/08/31(金) 20:23:46WriteFileEx()を用いて非同期の書き込み(読み出し)をしたいと思っております。
WriteFileEx()には関数のアドレスが必要なのですが、
それを得る方法がどうしてもわかりません。
ttp://dobon.net/vb/bbs/log3-8/4379.html
にも同様の質問があったため、上記ページ等を参考にして
以下のように作成いたしました。
---
Delegate Sub SampleDelegate()
Public Class sampleClass
Public Sub Method()
MsgBox("Method")
End Sub
End Class
Private Declare Function WriteFileEx Lib "kernel32" (ByVal hFile As Integer, ByVal lpBuffer As String, ByVal lpNumberOfBytesWritten As Integer, ByVal lpOverlapped As Integer, ByVal lpCompletionRoutine As SampleDelegate) As Integer
Dim instance As New SampleClass
' こちらは成功する
' bool = WriteFile(pipe, "ABCDEFG", 8, size, 0)
bool = WriteFileEx(pipe, "ABCDEFG", 8, 0, AddressOf instance.Method)
---
実行しますとWriteFileExでSystem.NullReferenceExceptionが発生いたします。
これはDelegateの扱い方が悪いのでしょうか?
それとももっと根本的なことが間違っているのでしょうか?
大変恐れ入りますがお教え下さい。
0840デフォルトの名無しさん
2007/08/31(金) 20:46:33根本的に間違ってるね。
そもそも非同期とはどういう意味なのか、理解してないんじゃないの?
あるいは自動変数のスコープの概念を知らないのかな。
メソッドの中で作った'instance'への参照はメソッド抜けるとなくなる。
そこはOK?
ドトネドにはガベージコレクターというものがあって……という話は理解してる?
0841832
2007/08/31(金) 21:19:25レスありがとうございます。
C言語レベルでしたらスコープ等は理解しております
VC++の非同期は多少は・・・知っているつもりです
ガベージコレクションがあることは初めて知りました。
ところで、メンバ変数/クラス変数として以下を宣言してみても同様のエラーでした。
Dim instance As New SampleClass
Dim m_address As SampleDelegate = AddressOf instance.Method
恐れ入りますが、他にポカがありましたらご指摘いただければと思います。
0842デフォルトの名無しさん
2007/08/31(金) 21:54:490843832
2007/08/31(金) 23:29:29レスありがとうございます。
VC++のように決まった形があるのかな、と意味も分からずに
Delegate Sub SampleDelegate(ByVal sender As System.Object, ByVal e As System.EventArgs)
Public Class SampleClass
Public Sub Method(ByVal sender As System.Object, ByVal e As System.EventArgs)
MsgBox("Method")
End Sub
End Class
としてみたところ、
System.Runtime.InteropServices.MarshalDirectiveException:
parameter #2 を集成できません。このクラスの型の定義にレイアウト情報がありません。
とエラーが変わりました。
この点調べてみたいと思います。
0844デフォルトの名無しさん
2007/08/31(金) 23:35:54ネットで検索しても伏字になっているところに具体的に何が入るのかわからなくて困っています。
0845デフォルトの名無しさん
2007/08/31(金) 23:53:33そのつっこんだListViewのイベントって、どうやったらとれるのでしょうか?
Dim lvwFile As ListView = New ListView
arrLvwFile.Add(lvwFile)
arrLvwFile(arrLvwFile.Count - 1).View = View.Details
のばあいの、Listview1.mousedown とかほしいのでうs。
0846デフォルトの名無しさん
2007/08/31(金) 23:57:09とれるとかほしいとか意味がわからん
0847デフォルトの名無しさん
2007/09/01(土) 00:01:19arrLvwFile(0) = New ListView
arrLvwFile(0).View = View.Details
AddHandler arrLvwFile(0).MouseDown, AddressOf test
でarrLvwFile(0)のMouseDownイベントでtest関数が呼べたのですが、
ArrayListに入れた場合がわからないのです。。
0848デフォルトの名無しさん
2007/09/01(土) 00:12:00キャストすればいいだろ
0849デフォルトの名無しさん
2007/09/01(土) 00:13:35データソースとかの名前をどこから引っ張ってくるかという話しなら
以下のあたり見ておけばいいと思うけど。
ttp://otndnld.oracle.co.jp/document/products/oracle10g/102/doc_cd/win.102/B31247-01/featConnecting.htm
0850デフォルトの名無しさん
2007/09/01(土) 00:29:31AddHandler DirectCast(arrLvwFile(arrLvwFile.Count - 1), ListView).MouseDown, AddressOf test
でできました!感動のあまりちんこの先がぬれました
ありがとうございます。
0851デフォルトの名無しさん
2007/09/01(土) 01:10:07その調子じゃ、言っては悪いが調べても無駄そうだな。
>Public Sub Method(ByVal sender As System.Object, ByVal e As System.EventArgs)
こんなシグネチャがいったいどこから出てくるの?
アンマネージからコールバックされるのに、こんなドトネトのマネージコードの
イベントと同じシグネチャって変だとは思わないか?
WriteFileEx なんてドトネトが影も形もないころに仕様が決められたAPIでしょ。
0852デフォルトの名無しさん
2007/09/01(土) 02:02:58基本的にはオラクル接続に必要な
USER
PASSWORD
SID
をわたせばおk。
0853デフォルトの名無しさん
2007/09/01(土) 02:16:47どなたか Gilma (=ILMerge のGUIツール) および ILMerge を使ってる方が
居たら教えてください。
このユーティリティでは DLL がたくさんある場合のマージは難しいでしょうか?
比較的少なめの個数の DLL (数個程度) 使用では問題なくマージできるのを
確認していたんですが、10個ぐらい DLL が必要なものでやったところMerge が
最後まで行かず、 Done のメッセージが出ないまま、エラーのメッセージも出ずに
終了してました。結果として目的の Exe ファイルも作成されていませんでした。
最後の DLL のところで、Read successfully にはなっているのですが、その後の
2行目のメッセージが出ずに Log が終わっていました。そこで何かエラーしている
のかもしれないんですが、問題がなんなのかわかりませんでした。
もし似たようなことになったとき何か対策して解決されていた方いらっしゃったら
教えていただきたく。何卒よろしくお願いします。
0854853
2007/09/01(土) 02:19:49>>853 ですが、コマンドラインのテキストは、 DLL が少ない場合のときと同様
に規則通りできているようでした。
DLL マージ前の状態での動作確認は一応OKで、DLLが無くて動作しない、
という状況ではありませんでした。
0855デフォルトの名無しさん
2007/09/01(土) 02:31:560856832
2007/09/01(土) 03:27:10レスありがとうございます。
恥ずかしながらアンマネージやらマネージやらは初めて聞きました。
色々調べてみます。
#Unix選手がゲイツを何も知らずにいきなり.NETってのはかなり無謀ですね・・・
0857デフォルトの名無しさん
2007/09/01(土) 04:20:06まあ仕事なら仕方ないがチーン
0858デフォルトの名無しさん
2007/09/01(土) 07:58:15SIDは違うんじゃね。
0859デフォルトの名無しさん
2007/09/01(土) 09:43:390860デフォルトの名無しさん
2007/09/01(土) 09:59:08>>852
>>858
>>859
ありがとうございます。
でもどのページを見ても
「データベースに接続したことはあるけど細かい設定があいまいな人」用って感じで
データベースに接続するのがまったく初めてで独学の人には難しいんですよ。
Common SQL Environment ってソフトでは
ユーザーIDとパスワードと接続文字列ってやつを渡すと繋がりますが、
ConnectStringにはこの接続文字列ってのは渡さなくてもいいんですか?
0861デフォルトの名無しさん
2007/09/01(土) 10:02:430862デフォルトの名無しさん
2007/09/01(土) 11:05:42参考になるかどうか解らんが↓
コールバック関数の実装
http://msdn.microsoft.com/library/ja/cpguide/html/cpconusingcallbackfunctions.asp?frame=true
0863デフォルトの名無しさん
2007/09/01(土) 11:09:11VB2005でテキストボックスに入力されている文字が
10進数か判断するにはどうすればいいでしょうか?
IsDigitは1文字しか調べられないようだし
IsNumericは数字以外もTrue扱いだし・・・
0864デフォルトの名無しさん
2007/09/01(土) 11:13:30まあ正規表現使った方が手っ取り早いけど
でもいわゆる全角の数字とか考えてるのかな
0865デフォルトの名無しさん
2007/09/01(土) 11:14:16文字と数値の判別なら、あげた関数等を駆使すれば可能だろう。
だが、10進数かどうかを判別するのは不可能。
0866デフォルトの名無しさん
2007/09/01(土) 11:40:270867863
2007/09/01(土) 12:02:45やっぱりあの2つでは駄目なんですね・・・
ただ言われたとおり正規表現使えば出来そうですので
そっちを使ってロジック組むようにしてみます。
0868デフォルトの名無しさん
2007/09/01(土) 12:28:41vb.net2005で
MIDI音源で音を出したいのですが
やり方が全くワカリマセン。
例えば
ドのボタンを押したらドがなるなどということです。
使用するクラスとか、関数とかなんでもいいので教えてもらえないでしょうか。
また、別途ツール等が必要ならその情報でもいいです。オネガイシマス
0869デフォルトの名無しさん
2007/09/01(土) 12:31:400870デフォルトの名無しさん
2007/09/01(土) 12:39:27まずプログラムからじゃなく、
SQLPLUSとかで接続してみなよ。
で接続できるか確認しましょう。
0871デフォルトの名無しさん
2007/09/01(土) 13:03:03いえ、CSEなどでは接続成功しています。
ただADO.NETのConnectStringに渡す文字列がわからない状態です。
0872デフォルトの名無しさん
2007/09/01(土) 13:40:22Dim hoge As Oracle.DataAccess.ClientOracleConnection
Dim str as String
'接続文字列
str = "User Id=" & ユーザー名 & ";Password=" & パスワード & ";Data Source=" & サービス名
hoge = New OracleConnection(str)
hoge.Open()
0873デフォルトの名無しさん
2007/09/01(土) 13:42:02ツールボックスからフォームにOracleConnectionを貼り付けて、
プロパティのConnectionStringで<新しい接続>を選択すると簡単だよ。
OracleConnectionがないときは、ツールボックス アイテムの選択で追加してね。
名前空間がSystem.Data.OracleClientのを使ってね。
0874デフォルトの名無しさん
2007/09/01(土) 16:42:21ありがとうございます。
無事接続できました。
0875デフォルトの名無しさん
2007/09/01(土) 21:40:01自分の実行ファイルのディレクトリをコードで取得するコードをお願いします。
VBAのThisWorkbook.Pathみたいな感じ。
0876デフォルトの名無しさん
2007/09/01(土) 21:54:170877デフォルトの名無しさん
2007/09/02(日) 01:02:42でもVBのライブラリ参照したらその機能あった気がするのでそっちのがいいかな?
0878デフォルトの名無しさん
2007/09/02(日) 01:03:270879デフォルトの名無しさん
2007/09/02(日) 15:00:26System.IO.File.Create(filename)
Dim sw As New System.IO.StreamWriter( _
filename, _
False, _
System.Text.Encoding.GetEncoding(932))
sw.WriteLine(”あいうえお”)
sw.WriteLine()
sw.Close()
End If
こんなコード書きました
filenameにはフォルダパス付きファイル名が入ります
ファイル作った後sw をnewする時点で
他のプロセスが使用中というメッセージが出て書き込めません。
使用できる状態にするにはどんなコードを追加すればいいですか?
0880デフォルトの名無しさん
2007/09/02(日) 15:07:390881デフォルトの名無しさん
2007/09/02(日) 15:18:370882デフォルトの名無しさん
2007/09/02(日) 23:59:31System.Web.HttpUtility.UrlEncodeを使ってURLエンコードをしたいのですが
UTF-8のタイプでエンコードされています。
EUC-JPのタイプでエンコードしたいのですが、うまくいきません
System.Text.Encoding.GetEncoding("EUC-JP")こうしてバイト配列にしてもダメでした
どうやればいいのでしょうか?
0883デフォルトの名無しさん
2007/09/03(月) 00:06:36URLエンコードなんてやったこともなかったが、ググったら30秒で答え見つかったぞ。
http://www.atmarkit.co.jp/fdotnet/dotnettips/212urlencode/urlencode.html
0884882
2007/09/03(月) 00:56:07エンコード方法を指定できたのですね・・・
0885デフォルトの名無しさん
2007/09/03(月) 02:11:060886デフォルトの名無しさん
2007/09/03(月) 15:42:38ExplorerがWindowsから受け取っているような、
Folder内の内容が変わったことを知らせるメッセージを受け取る方法
はあるでしょうか。
数秒おきに監視するという仕組みを導入すると
ファイルがたくさん存在する場合、時間がかかってCPUの占有率が100%
から落ちて来ず、困るのでした。
Explorerの場合、直接コピペしたりD&Dしたりした場合でなくても、
他で変化させたファイルやフォルダーが1秒程度で反映しており、
また常時監視もしていないことがわかりました。
これはたぶんWindowsからのメッセージを受け取っていて実現できている
ものと想像したのでした、これと同じメッセージかなにかを別のアプリケーション
で受け取ることは可能でしょうか?何かアドバイスを戴ければありがたく。
0887デフォルトの名無しさん
2007/09/03(月) 15:47:04FileSystemWatcher
0888886
2007/09/03(月) 15:54:01おお。存在したのですね!助かりました!!
さっそくのご指導、大変ありがとうございました!!
0889デフォルトの名無しさん
2007/09/03(月) 18:54:47棒グラフに表示する値が100万以上の時、棒グラフにはきちんと「1000000」と表示されるのですが、
Y軸の値が「1e+006」みたいに表示されてしまいます。「1e+006」ではなく「1000000」のように表示させる事は可能でしょうか?
可能ならばどのようにするのかご教授お願いします。
0890デフォルトの名無しさん
2007/09/03(月) 22:16:22Data型やInt型でNULLを入れることができないんですけど
皆さんはどうしていますか?
別にModel用のクラスを作成するべきでしょうか。
0891デフォルトの名無しさん
2007/09/03(月) 23:33:560892デフォルトの名無しさん
2007/09/04(火) 09:02:450893デフォルトの名無しさん
2007/09/04(火) 10:27:260894デフォルトの名無しさん
2007/09/04(火) 19:20:07うまいことプロセスが解放されないのです。
以下はソースです。
Public Function IsSheetExist(ByVal sheetName As String, ByVal fileName As String) As Boolean
Dim xlApp As Excel.Application
xlApp = New Excel.Application
xlApp.DisplayAlerts = False
Dim xlBooks As Excel.Workbooks = xlApp.Workbooks
xlBooks.Open(fileName)
Dim xlBook As Excel.Workbook = _workbooks.Item(1)
Dim xlSheets As Excel.Sheets = xlBook.Worksheets
Try
For i As Integer = 1 To xlBook.Worksheets.Count
'' シート名が存在すればTrueを返す
If String.Equals(DirectCast(xlSheets.Item(i), Excel.Worksheet).Name, sheetName) Then
Return True
End If
Next
Return False
0895デフォルトの名無しさん
2007/09/04(火) 19:20:48Catch ex As Exception
Throw ex
Finally
MarshalReleaseComObject(xlSheets)
xlBook.Close(False)
MarshalReleaseComObject(xlBook)
MarshalReleaseComObject(xlBook)
MarshalReleaseComObject(xlBooks)
xlApp.Quit()
MarshalReleaseComObject(xlApp)
End Try
End Function
Private Sub MarshalReleaseComObject(ByRef objCom As Object)
'' COM オブジェクトの使用後、明示的に COM オブジェクトへの参照を解放する
Try
'' 提供されたランタイム呼び出し可能ラッパーの参照カウントをデクリメントします
System.Runtime.InteropServices.Marshal.ReleaseComObject(objCom)
Catch
Finally
'' 参照を解除する
objCom = Nothing
End Try
End Sub
0896デフォルトの名無しさん
2007/09/04(火) 19:30:20ところでキャッチしてスローして何がしたいのん?
0897デフォルトの名無しさん
2007/09/04(火) 19:36:50酷いコードだな。
よくいわれる、COMラパーは使い終わったらReleaseComObjectしろってのは
個人的には嘘臭いと思ってるんだが、仮に正しいとすれば、
>xlSheets.Item(i)
この部分は問題あるでしょ。
暗黙的にワークシート参照してないか?
>>896
そこは別におかしくない。
0898デフォルトの名無しさん
2007/09/04(火) 20:06:02マーシャルリリースしてDisposeでいけないのか?
0899デフォルトの名無しさん
2007/09/04(火) 20:33:24×→Dim xlBook As Excel.Workbook = _workbooks.Item(1)
○→Dim xlBook As Excel.Workbook = xlBooks.Item(1)
>>896
これは共通DDLの一部でして
エラーを投げて、大元のプロジェクトでエラーログを書き出してます
>>897
For文の中でExcel.Sheetを生成してやってみます
その場合、生成する度にオブジェクトの参照を解放しないと云々
というのは調べたサイトにも大抵書いてありましたが、知識が及ばないです
>>898
Disposeは試してませんでした。
みなさまご教授ありがとうございました
0900デフォルトの名無しさん
2007/09/05(水) 00:03:15詳しく
0901デフォルトの名無しさん
2007/09/05(水) 00:05:49>そこは別におかしくない。
いやおかしいだろ。
実質正常に動作するってことはあったとしても。
だいたいなんでNothingセットなんて意味ないことしてんだ?
0902デフォルトの名無しさん
2007/09/05(水) 00:13:30ちなみに、Nothingぶち込むのも894の文脈では無意味ではない。
まあ、この手の話はググレればたくさん出てくるとおもうから調べてみ。
0903デフォルトの名無しさん
2007/09/05(水) 00:28:32あえてスタックトレース消したいとかならそうだがそんなこと考えてるとは思えない。
>ちなみに、Nothingぶち込むのも894の文脈では無意味ではない。
>>894では確かに動作に影響自体はあるけどなんのため?
普通こうやるというようなもんなの?
0904デフォルトの名無しさん
2007/09/05(水) 00:36:33どの手でググればいいのかわからないんだが、キーワードを教えてたもれ。
ていうかCOMラッパのリリースの話なのかNothingの扱いの話なのか…?
0905886
2007/09/05(水) 00:53:49>>886です。お世話様です。
FileSystemWatcher にて File や Directory の変更等のイベントに対応しつつあります。
そこで 「削除」 イベントの場合で、
FileSystemWatcher.Deleted(source As Object, e As FileSystemEventArgs)
の e.FullPath や e.Name でパスまたは名称を知ることができますが
それが File であったか、それとも Directory であったかを知るにはどうしたら
いいか不明でした。どうもHelpを見たところでは FileSystemEventArgs には
その区別を知るためのプロパティがなさそうなのですが、
これを知るには何を使えばいいでしょう?
よろしくお願いします!
0906886
2007/09/05(水) 00:56:51削除以外のものでは、ファイルにしろディレクトリにしろ存在しているものは
確認ができるのですが、削除ですとすでに実体が無いため確認できなかった
のでした。
それとも、現物を確認せずに種類を知る方法があったでしょうか?
0907デフォルトの名無しさん
2007/09/05(水) 00:59:10CPUにとっては意味ないけど「プログラミング作法」的な意味はあるんだよ。
コードを後で読み返すとき、あるいは改造する時のことを考えればわかるでしょ。
後段の件についてはドトネトからエクセルのCOMラッパーを操作するコードを
扱ってるところではたいがいももれなく解説してるよ。
0908デフォルトの名無しさん
2007/09/05(水) 01:18:18プログラミング作法としてスタックトレースは消すべきだ、とでも言う気かお前は。
>後段の件についてはドトネトからエクセルのCOMラッパーを操作するコードを
>扱ってるところではたいがいももれなく解説してるよ。
わからん、Nothingを代入することに意味があると?
その場でGC.Collectでもするならともかく。
それとも開放済みの区別がつくようにするためか?
そうなら普通はFinalReleaseComObject使って、使う前にNothingチェックをすると思うが。
あんな変なやり方は見たことがない。
0909デフォルトの名無しさん
2007/09/05(水) 01:20:07ああ、これはおかしいかも。
いずれにしてもわざわざNullReferenceExceptionを出させてキャッチして無視するのが変だといってる。
0910デフォルトの名無しさん
2007/09/05(水) 01:37:57負荷が高くなるって意味はあるけどな。
メソッドごとにやるとか勘弁してほしい。
まあ負荷以前にスタックトレースがまったく残ってないんだがw
0911デフォルトの名無しさん
2007/09/05(水) 01:46:40ああ、
>Throw ex
これがThrowじゃないことに文句を言っているのならそれに関しては一理はある。
こんな場面でスタックトレースに固執する理由があるとも思えないけど、
895のコードはキャッチした例外をInnerExceptionに設定して別の例外オブジェクトを
作ってるわけでもなく、拾ったものをそのまま投げてるだけだからね。
>キャッチしてスロー
すること自体はなにも変じゃないけど。
0912デフォルトの名無しさん
2007/09/05(水) 01:53:46何も処理せずラップもしないならキャッチすることに意味がない。
それを
>CPUにとっては意味ないけど「プログラミング作法」的な意味はあるんだよ。
といってるんだろうけど、こんなことで負荷を増やすほどメリットがあるとも思えない。
>こんな場面でスタックトレースに固執する理由があるとも思えないけど、
場面の問題じゃないってのはわかるだろう。
じゃあ他のメソッドなら、スタックトレースがほしそうなとこなら単にThrowで使い分けるのか?
>CPUにとっては意味ないけど「プログラミング作法」的な意味はあるんだよ。
どんなプログラミング作法だよ。
一般的には意味のない無駄なキャッチはしないのが作法だよ。
0913デフォルトの名無しさん
2007/09/05(水) 01:55:030914デフォルトの名無しさん
2007/09/05(水) 08:12:29だからコードを読む時のことを考えればわかる。
例外が発生する可能性があるところでキャッチされてないコードを見れば、
そのコードを書いた奴がそこで例外が発生する可能性を想定していないことを
仮説する必要が出てくる。
>>こんな場面でスタックトレースに固執する理由があるとも思えないけど、
>場面の問題じゃないってのはわかるだろう。
スタックトレースというのはフツーはプログラマの想定外の例外を追跡する
ためのものであって、プログラマが把握している例外の「それ」を知る必要が
どこにあるの?w
0915デフォルトの名無しさん
2007/09/05(水) 09:38:05>例外をキャッチして再スローする場合は、空の throw を使用してください。
>例外呼び出し履歴を保持するには、これが最善の方法です。
0916デフォルトの名無しさん
2007/09/05(水) 10:41:54OpenがWorkbookを返すはずなので、
Dim xlBook As Excel.Workbook = xlBooks.Open(fileName)
にして、終了時にはこのxlBoolをCloseしてからQuitしないと、
Quitが機能しないように思う。
この手のもののデバッグは
xlApp.Visible = True
にしてExcelがどういう動きをしてるか目視するのが基本だぞ。
0917デフォルトの名無しさん
2007/09/05(水) 11:17:14あんたjavaから来た人?
.NETで例外を想定しないという状態はないだろ。
ここでは処理しないという想定はあるが。
プログラマが把握してる例外ってのは基本キャッチして
その場で処理してしまうような例外だろ。
しかもException型でキャッチしてるんじゃ、
そこでどんな例外が来るのかは関知してないってことだろ?
勝手にException型でキャッチしてスタックトレースを消すなんて
普通はやってはいけないことだろ。
0918デフォルトの名無しさん
2007/09/05(水) 11:21:54つまり例外が起こると想定される箇所では有無をいわさず全部キャッチして
スタックトレース消して再スローってことかよ
どこを見てもやるべきではないこととしてあげられてそうだな
全メソッドでキャッチを書くべきとかいってんじゃないだろうな
0919デフォルトの名無しさん
2007/09/05(水) 11:33:47Try - Finally - End Try
がCatchなしで使えることを知らなかっただけじゃねーか。
あと再Throwのやり方も知らなかった。
0920デフォルトの名無しさん
2007/09/05(水) 11:34:01フォームB上で、フォームBを呼び出したボタンが1か2かを取得したいのですが、どのようにすればいいのでしょうか?
0921デフォルトの名無しさん
2007/09/05(水) 11:34:110922デフォルトの名無しさん
2007/09/05(水) 12:04:03プロパティかパブリック変数で、1か2かを区別できる文字列等を渡す。
0923デフォルトの名無しさん
2007/09/05(水) 12:27:11そうは言ってないよ。
単に一般論として、想定されうる例外をキャッチしておくのは変じゃない、
といっているだけのことだ。
例外を投げるメソッドはすべてTryブロックに置けとか言ってるわけじゃない。
もし、>>894のコードのTryがそもそもイラネエんじゃないのか、
と言いたいのなら、それは確かにそう。俺も要らないと思う。
0924デフォルトの名無しさん
2007/09/05(水) 12:37:100925デフォルトの名無しさん
2007/09/05(水) 13:17:10いるに決まってんだろ、一体どういう認識だよ
0926デフォルトの名無しさん
2007/09/05(水) 13:19:04で、Exception型でキャッチするわけ?
0927デフォルトの名無しさん
2007/09/05(水) 13:21:30お前が例外をよく理解してないのはわかった。
そもそもここのTryは例外処理じゃなくて
単なるリソース開放が目的だろうが。
0928デフォルトの名無しさん
2007/09/05(水) 14:26:08VBで作ったフォームAがアクティブになった時、その直前にアクティブだったプロセスを取得する方法はありますでしょうか?
例えば メモ帳→フォームA とフォーカスが移ったとき、メモ帳から遷移してきたことがわかる といった感じです。
環境はVB2005です。
どなたかわかるかたいらっしゃいましたら、ご教示お願いします。
0929デフォルトの名無しさん
2007/09/05(水) 15:28:33vb.netでDataGridを使っているんですが、
tabキーを横には移動させず、下にだけ移動させるようにしたいんですけどやり方がわかりません。
どなたかご教授ください。
0930デフォルトの名無しさん
2007/09/05(水) 16:01:49WM_ACTIVATE
0932デフォルトの名無しさん
2007/09/05(水) 18:36:39いや、894の書いた位置にいるかいらないかで言えば「いらない」んだよ。
なぜなら894のコードにおいてTryの中で例外が発生するような場合には、
それより前の(Tryで囲まれてない)行で例外が発生するはずだから。
繰り返すけど、「894の書いた位置にいるかいらないかで言えば」、の話ね。
>>927
俺に言わせれば、君の知能が低いのはよくわかったよw
0933デフォルトの名無しさん
2007/09/05(水) 19:05:23なんかDateにしたら行けるけど時間が切り捨てられてるし(;゚Д゚)
なにこれ・・・・
0934デフォルトの名無しさん
2007/09/05(水) 19:11:20例外が一番起きるだろう、
applicationをnewする部分とOpenメソッドをTryしてないのがなんともですな。
0935デフォルトの名無しさん
2007/09/05(水) 19:22:510936デフォルトの名無しさん
2007/09/05(水) 19:27:18まああんな構造のコードはちょっといやだが
キャッチのないTry Finallyをリソース開放で使うのは定石だろ
0937デフォルトの名無しさん
2007/09/05(水) 19:31:48あのTry位置がそもそも適切かは別として、
起こりそうな場所でしか例外は発生しないと思ってるところが
例外についてちゃんと理解してないっつってんだよ
0938デフォルトの名無しさん
2007/09/05(水) 19:45:18何が言いたいのチミは?
ひょっとして918 = 937だったりしたら笑えるな
まあ、旧VBプログラマには>>937的発想の人間が多かったよねw
なんかわからんけどパソコンに「怒られる」場合があるからOn Error Resume Nextかましとこ、
みたいな人w
プログラマというのは自分のコードで起こりうる例外をすべて把握して、
それらを想定したコードを書くのが正しい姿であり、発生しうる例外が想定されていないのは
正真正銘の「バグ」なのであって、(そもそもそのための例外処理だろうw)
君みたいな発想は狂ってるよ。
0939デフォルトの名無しさん
2007/09/05(水) 20:09:520940デフォルトの名無しさん
2007/09/05(水) 20:27:16おまえ…あきれるわ
誰が例外を握りつぶすっていったよ?
キャッチは書かないっつってんのに。
発生しうる例外は全て想定するって?
非同期例外について調べてこい。
それらが発生してもリソースを出来る限り安全に開放するために
キャッチのないTry Finallyは必須。
もうなにいってんだか…
0941デフォルトの名無しさん
2007/09/05(水) 20:47:52仮にバグ以外の原因でそのようなものが発生しうるとして(そもそもありえない仮定だ、
と俺は思うが)そんな「不可抗力」に備える必要が本当にあるのかね?
結論から言えば、そんなの無意味だ。
意味があるというなら聞くけど、じゃあFinallyのブロックを実行しているときに
その「非同期例外」とやらが発生したらどうすんの?
さらにネストするとしますか?
じゃあ、何重にネストしたら安心なんですかねいったい?w
そういうの杞憂っていうんだよ。
まあ、こういう人はきっとユーザーがACコードに足を引っ掛けて電源が落ちる
可能性も想定してコード書くんだろうねw
0942デフォルトの名無しさん
2007/09/05(水) 20:50:06もっていきたいようだけど、俺はそんなこと一度も言ってないよ。
君が勝手に一人で決めてかかって一人でかってに熱くなってるだけw
そういうの一人相撲っていうんだよ。
0943デフォルトの名無しさん
2007/09/05(水) 21:09:340944デフォルトの名無しさん
2007/09/05(水) 21:13:53同期例外の存在まで否定してるのか?
ちなみに通常発生しうる非同期例外は
Finally終了まで遅延される実装になってるぞ。
もちろんそれすら無理な場合はありえるが
出来る範囲で最善にしとくのは当たり前。
っていうか非同期例外を除いたとしてもリソース開放は
必ずこういう記述にしとくのが定石だろう。
例え中身が例外を投げないと想定される場合でも。
そんなことで記述を変える方がナンセンスだ。
つうか結局お前はこの辺ちゃんと理解してなかったようにしか見えんのだがな。
なんでVB6でのエラー無視の話なんか出したんだ?
どこを読んでもそんな話にはなり得ないのはあきらかなのに。
0945デフォルトの名無しさん
2007/09/05(水) 21:15:43>意味があるというなら聞くけど、じゃあFinallyのブロックを実行しているときに
>その「非同期例外」とやらが発生したらどうすんの?
ここだけの話、
あるスレッドがFinallyブロック実行中に無限ループしていて
別のスレッドからそのスレッドにThread.Abortしかけると
恐ろしいことが起こる。
0946デフォルトの名無しさん
2007/09/05(水) 21:16:25何が言いたいのか聞こう。
0947デフォルトの名無しさん
2007/09/05(水) 21:17:15それは明確に否定してるよ。
そもそも「起こりうる」例外をプログラマがきちんと把握し想定してないとしたら、
それはバグ以外のなんでもないとね。
想定外の例外?
ちゃんと想定しとけヴォケ、で終了。
0948デフォルトの名無しさん
2007/09/05(水) 21:18:300949デフォルトの名無しさん
2007/09/05(水) 21:20:070950デフォルトの名無しさん
2007/09/05(水) 21:21:290951デフォルトの名無しさん
2007/09/05(水) 21:37:390952デフォルトの名無しさん
2007/09/05(水) 21:40:44それでもTryはいらないって?
迷惑な奴だ。
0953デフォルトの名無しさん
2007/09/05(水) 22:28:100954デフォルトの名無しさん
2007/09/05(水) 22:52:09想定外の例外を処理するためにException型があるんじゃないの?
0955デフォルトの名無しさん
2007/09/05(水) 22:58:05何言ってんだかわからない。
ちゃんと起こりうる例外(例えばThreadAbortExecption)をどう想定してどうしろってんだい?
リソース開放時にはtry-finallyなどを使う、以外に何ができるわけ?
※まあそもそも、想定してるからそういうリソース開放の方法を使うんだが
でもお前はコードに現れないような例外はあり得ないというw
だからコード的に例外が想定されない(見た目では起こりえないThreadAbortExecptionなど)にも
対処しておくのはバグだというw
0956デフォルトの名無しさん
2007/09/05(水) 23:00:510957デフォルトの名無しさん
2007/09/05(水) 23:04:26お前ThreadAbortExecptionなんて知らなかったんだろ?
いままで想定せずにコード書いてたんだろ?
ちゃんと想定しとけヴォケで終了。
0958デフォルトの名無しさん
2007/09/05(水) 23:05:09おいおいThreadAbortExecptionは普通に想定される、というかバックグラウンドスレッドなら
「想定しなければならない」例外だろうw
いったい何をいってるんだ?
0959デフォルトの名無しさん
2007/09/05(水) 23:10:460960デフォルトの名無しさん
2007/09/05(水) 23:11:26ひょっとしてThreadAbortExecptionってのが外在的な理由で ―― つまりユーザーの
コードの外部で ―― 発生するとか思ってないか?w
ThreadAbortExecptionっていうのは文字通りスレッドをアボートしたときに
アボートされたスレッドのコードで発生するのであって、
だからたとえばバックグラウンドスレッドだったらその発生を想定して
スレッドで実行されるコード全体をTryブロックで括っておくべきものなんだけど。
0961デフォルトの名無しさん
2007/09/05(水) 23:12:10バックグラウンドスレッドじゃないときは想定しないようにしないと
バグなんだよw
0962デフォルトの名無しさん
2007/09/05(水) 23:13:45理解してななら無理すんなw
ThreadAbortExecptionが発生するかどうかはバックグラウンドかどうかとは
直接関係がない。
ただ、バックグラウンドスレッドなら想定しておくことが必須だというだけのことだ
0963デフォルトの名無しさん
2007/09/05(水) 23:14:23なるほど、各種リソース開放部分では想定しないんだな。
っていうかさ、
バックグラウンドスレッドののコード全体を
ThreadAbortExecption
をキャッチするtryでかこってさ、
あんたキャッチして何をするわけよ?
0964デフォルトの名無しさん
2007/09/05(水) 23:16:32>直接関係がない。
つまりバックグラウンドスレッドじゃなくても想定せんといかんのだろ?
発生しうるあらゆる例外を想定しなきゃバグなんだからさ
0965デフォルトの名無しさん
2007/09/05(水) 23:16:42だから君は何が言いたいの?
というか、
>各種リソース開放部分では想定しないんだな。
だからそんなこと誰が言ってるの?
そういう「声」がどこかから聞こえるのかもしれんが、だとすればそれは
君自身の妄想か幻覚だよw
0966デフォルトの名無しさん
2007/09/05(水) 23:18:08そのTry内で例外の発生するコードがないからいらない
って言ったのは誰だ。
0967デフォルトの名無しさん
2007/09/05(水) 23:18:410968デフォルトの名無しさん
2007/09/05(水) 23:19:150969デフォルトの名無しさん
2007/09/05(水) 23:19:35フォアグラウンドスレッドは意図的にアボートしない限りアボートされないぞw
まあ君が自分が「ボケ」ている可能性も想定するのなら話は別。
普通のプログラマは自分がスレッドをアボートするコードをどこかに書いているかどうかは
把握しているし、把握していなければならない。
0970デフォルトの名無しさん
2007/09/05(水) 23:19:560971デフォルトの名無しさん
2007/09/05(水) 23:22:56だからスレッドの中では起こりうるが、その影響がスレッドの外部まで
及ぶとすれば、そんな自体はただの「バク」でしかなく、
起こりうる例外などではない。
要はスレッドの中で普通にキャッチして適切に処理しとけよ、って話。
0972デフォルトの名無しさん
2007/09/05(水) 23:36:20ThreadAbortExecptionを?
キャッチして何するわけ?
あのさ、結局リソース開放時にコードの記述上では起こり得ない例外は想定するべきなの?しないべきなの?
それともそのコードがバックグラウンドスレッドで実行されるかそうでないかを事前に想定して
使い分けるわけ?
0973デフォルトの名無しさん
2007/09/05(水) 23:52:15バックグラウンドスレッドは意図的にアボートしなくてもアボートされるのかい?
※ここでのアボートはThreadAbortExecptionが発生するようなアボートって意味だが。
意図的って何だ?
自分の書いたコードオンリーって意味か?
誰かに使われるライブラリ作成時はどう考えたらいいんだ?
大は小をかねるでアボートされうるって想定すべきなのか?
だったら結局常に想定すべきなんだろ、バックグラウンドとか関係なく。
想定すべきでないなら、じゃあ一体どうしたらいいのん?
0974デフォルトの名無しさん
2007/09/05(水) 23:52:43「起こりえない」とは、「起こらないことがはっきりしている」という意味であって
そんなものを「想定」するのは杞憂にすぎない。
起こらないと自信をもって言えないから「念のため」Tryで括っておくんだ、
なんていう態度はプログラマ失格。
自信をもってはっきり言えるまで掘り下げて理解しろよそんなもん。
最後の二行は何がいいたいのかよくわからん。
0975デフォルトの名無しさん
2007/09/05(水) 23:56:46はっきりしないから安全のために想定しとくんだってのに
全く通じないな
0976デフォルトの名無しさん
2007/09/06(木) 00:00:43ん?じゃ起こらないことがはっきりしてないから
対処しとくべきって言ってるのか?
じゃ>>923とか>>932とかなんなわけ?
0977デフォルトの名無しさん
2007/09/06(木) 00:01:55ライブラリとか話の境界を意味なく拡張しないように。
ちなみにドトネトのライブラリのすべてのクラスのすべてのメソッドが
スレッドセーフうたってるか?
>>975
お馬鹿だなあ。。
「非同期」とは、スレッドで現在実行しているコードと無関係に非同期的に、
という意味であって、何の理由もなく発生するわけではない。
つまりサイコロ賭博じゃないんだよw
当たり前だろ。
「はっきり」してるんだよ。
0978デフォルトの名無しさん
2007/09/06(木) 00:03:13じゃ想定できてない>>923や>>932は狂ってるわけか。
0979デフォルトの名無しさん
2007/09/06(木) 00:04:500980デフォルトの名無しさん
2007/09/06(木) 00:07:03何が言いたいんだよお前さんは
938 = 923 = 932 = 俺だぞ
全部一貫して同じことが書いてあるじゃないかアホかw
0981デフォルトの名無しさん
2007/09/06(木) 00:07:20って意味で書いてんだよ、んなのわかるだろうが
0982デフォルトの名無しさん
2007/09/06(木) 00:09:00非同期例外が発生しないってはっきりしてるの?
0983デフォルトの名無しさん
2007/09/06(木) 00:10:300984デフォルトの名無しさん
2007/09/06(木) 00:11:13君はじゃあ要するに「全部のメソッドはスレッドセーフに設計すべし」って
言いたかったわけ?
とても奇特で同意できない主張だが、それならそれで自分の立場を最初から
明確にしとけよw
0985デフォルトの名無しさん
2007/09/06(木) 00:14:15どう要するになんだ笑わすな
0986デフォルトの名無しさん
2007/09/06(木) 00:15:130987デフォルトの名無しさん
2007/09/06(木) 00:22:16改めて
>>981
「いつ」起こるかはっきりしないとしても(だから>>977に書いたとおりそれが非同期の意味だそもそも)
別に問題ではない。
[起こるか/起こらないか]がはっきりしていればよい。
プログラマは、自分のコードで例外が[起こるか/起こらないか]を把握することができるし、
把握できなければならない。
0988デフォルトの名無しさん
2007/09/06(木) 00:22:56プログラマ失格なんていうやつははじめて見たぞぃ。
非同期例外を起こりうるか起こりえないか完全に想定しろってのは、
すべてのコードを自分がすべて把握している自分のコードのみでしか使わない
状況でもない限りあり得ない。
だから安全のために発生しえない状況である可能性はあっても
発生しうるという前提でコードを書くのがそれこそ常識だ。
そうでないコードは環境によっては危険になることがありうる。
こんなのを念のために対処するなんて愚の骨頂みたいないい方してるのは理解不能だ。
0989デフォルトの名無しさん
2007/09/06(木) 00:24:54正確には、[起こりうるか/起こりえないか]と書くべきだった。
0990デフォルトの名無しさん
2007/09/06(木) 00:27:52お前は>>923や>>932や>>941で起こらないっていってんだよな。
なんで起こらないって言い切れるんだ。
コードの使われ方や環境によってどんな可能性でもある。
あのコードだけじゃ起こりうるほうで考えざるを得ない。
※っていうかまあ普通は起こりうる方向で考えるんだが。
だって起こる可能性は否定できないからな。
つまりお前は起こる可能性を想定できてないんだろ。
自分で想定できないやつは馬鹿だっていいながら自分で想定できてないだろうが。
いや、絶対に起こりえないってんならその根拠を書いてみろ。
そんな根拠はあり得ないけどな。
0991デフォルトの名無しさん
2007/09/06(木) 00:32:560992デフォルトの名無しさん
2007/09/06(木) 00:34:28>発生するかもしれない例外に念のために対処しておく(リソース開放などで)ことを
>プログラマ失格なんていうやつははじめて見たぞぃ。
だからそんなこと言ってないと何度繰り返せばわかるんだ?
>>974をもう一度読んでくれ
ちなみに、自分のコードが非同期的に中断されるかもしれないスレッドで実行される
可能性を常に想定したコードを書け、なんていってるとしたら、
そんなのは杞憂であり、それこそ愚の骨頂だ。
そうやって言うのは簡単だが、相当キツいぞ。
0993デフォルトの名無しさん
2007/09/06(木) 00:34:530994デフォルトの名無しさん
2007/09/06(木) 00:38:17だから簡単にできる範囲での対処は最低限しとくんだろうが。
リソース開放時にコード上は例外が想定されなくても
Try-Finallyかけとくってのはそういう話だ。
それ以上は難しいにしても、これくらいのことはやっとくのが当たり前だ。
お前はそれすら否定してるだろ。
否定してないってんなら>>923や>>932でどう読んでも起こりえないって言い切ってんのなんなんだ?
ここでお前はTryなくしてb烽「い、例外は粕ュ生し得ないかb轣B
そんbネことに対処すb驍フは愚の骨頂bセと言い切ってb驍セろうが。
0995デフォルトの名無しさん
2007/09/06(木) 00:38:57お前さんはユーザーがACコードを足でひっかける可能性まで想定してコード
書くのかよw
0996デフォルトの名無しさん
2007/09/06(木) 00:39:140997デフォルトの名無しさん
2007/09/06(木) 00:39:55ほらそうやって極端なことを言い出す。
できる範囲って何度も言ってるのにこれだ。
0998デフォルトの名無しさん
2007/09/06(木) 00:40:43どう寝ぼけてんのか書けよw
0999デフォルトの名無しさん
2007/09/06(木) 00:43:361000デフォルトの名無しさん
2007/09/06(木) 00:44:37そういうのははっきりと、「ワーカースレッドでの実行はサポートしてない」
とうたうべきなのであって、無駄な小細工をして何になるんだよw
10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。