1 名前:デフォルトの名無しさん [2007/04/23(月) 12:42:36 ] 前スレ VB.NET質問スレ (Part20) pc11.2ch.net/test/read.cgi/tech/1173061176/ テンプレは2〜10くらいまでの間にある予定
596 名前:デフォルトの名無しさん mailto:sage [2007/06/11(月) 18:40:22 ] >>591 やめてくれ
597 名前:デフォルトの名無しさん mailto:sage [2007/06/11(月) 18:48:59 ] 参照は4バイトとして 最後には4×8×32768=1MB 平均すると0.5MB 0.5MB×8×32768=128GB つまり128GBものメモリを確保解放しまくるわけだ。 あほかと言いたい。
598 名前:デフォルトの名無しさん mailto:sage [2007/06/11(月) 18:57:24 ] その けいさんは おかしい
599 名前:デフォルトの名無しさん mailto:sage [2007/06/11(月) 19:00:18 ] あれ、たしかにおかしいな。 ってかこれ正しく動くのか?
600 名前:デフォルトの名無しさん [2007/06/11(月) 23:32:52 ] SqlCommand.CommandTimeoutでSQLのコマンド実行のTimeoutを設定できますが これのデフォルト値である30秒という値を変更する方法はありませんか? SqlCommandを使うところ全部でCommandTimeoutを設定するコードを書かずに 設定ファイルで変更できないものかと思っているのですが
601 名前:デフォルトの名無しさん mailto:sage [2007/06/12(火) 01:28:11 ] コネクションストリングにかけば? つうか、いくらでもあると思うが…
602 名前:デフォルトの名無しさん [2007/06/12(火) 04:52:12 ] >>462 少し気になったので、相乗りで質問、というか、低脳なコメントを。 以前、VB.NETからアンマネージドのCのDLLを呼び出してたのだが、 そのCのDLLの内部に ローカル変数に対しメモリーアロック掛けっぱなしというBUGがあった。 DLLを作成してたのは他社(仮にA社)だったのでソースも確認しようがなかったので そんな障害があるとは自社ではまったく気づいておらず、 後日A社から申し出があって、不具合修正版のDLLを貰った、ということがありました。 それはそれで解決したので問題ないのですが、 もしA社が申し出なかった場合、自社では原因を掴むのが難しいと思い・・・ こんなときどうやって切り分けるのでしょうか。 >>458 の言っているWorkingSetじゃ プロセスのメモリ使用量だから 相手のDLLが使用したメモリ量だけ切り出そうと思っても できないんじゃないかと思うのだが、、、。
603 名前:デフォルトの名無しさん [2007/06/12(火) 05:38:48 ] >>597 たとい12使用しても最近のメモリは性能いいからもんだいない
604 名前:デフォルトの名無しさん [2007/06/12(火) 07:01:29 ] >>601 MSDNのSqlConnection.ConnectionStringを見たところでは対応している キーワードがないみたいです。Connection Timeoutキーワードは CommandTimeoutとは別ですよね。他の載っていないキーワードがあるのでしょうか? また、書き忘れましたが.NET Framework 1.1を使っています。
605 名前:デフォルトの名無しさん mailto:sage [2007/06/12(火) 09:13:36 ] >>597 文句をいうのはいいが、打開案も出さねばゴミだ
606 名前:デフォルトの名無しさん [2007/06/12(火) 09:14:04 ] >>602 普通マネージドプログラムを書いてもらうものじゃないかな? ウチはCOM使う場合、相手に依存するから検証されてないと保証できないですよ みたいに言って逃げてる そんな深い所まで調べる時間が無い
607 名前:デフォルトの名無しさん [2007/06/12(火) 12:09:01 ] RadioButtonListなどを貼り付けたユーザーコントロールを作成しています。 RadioButtonListのListItemコレクションエディタを、ユーザーコントロール呼び出し側で、 操作したいのですが、よい方法ありませんでしょうか?
608 名前:デフォルトの名無しさん [2007/06/12(火) 12:43:20 ] プロパティでそのままラジオボタンリストを公開するとか public read only property RB as radiobuttonlist return me.RadioButtonList1 end property みたいなwwww エディタのプロパティがネストしてやりづらいしすげぇダサいやり方だと個人的に思うけど 単にラジオボタンリストのコレクション公開すればできないか?
609 名前:デフォルトの名無しさん [2007/06/12(火) 15:46:32 ] 配列のソートで質問です。 例えば以下のような構造体を持つ配列があります structure AAA ID as integer ID_2 as integer Name as string end structure このデータを List(Of AAA) に挿入してあります。 AAAの中身 ID ID2 Name 1 2 AAAAAA 3 2 BBBBBB 2 3 CCCCCCC 2 1 DDDDDD このList(Of AAA) の中のデータを簡単に ID,ID2 の準でソートできないでしょうか? 1つならば簡単なのですが 条件が2つあるというのがネックです。 ICompareを独自に実装すべきでしょうか?
610 名前:デフォルトの名無しさん mailto:sage [2007/06/12(火) 16:12:19 ] >>609 msdn2.microsoft.com/ja-jp/library/w56d4y5z (VS.80).aspx
611 名前:デフォルトの名無しさん mailto:sage [2007/06/12(火) 16:23:50 ] >>609 >IComparable.Compare(x, y) If (x.ID > y.ID) Then Return 1 ElseIf (x.ID < y.ID) Then Return -1 Else If (x.ID_2 > y.ID_2) Then Return 1 ElseIf (y.ID_2 < y.ID_2) Then Return -1 Else Return 0 End If End If
612 名前:デフォルトの名無しさん [2007/06/12(火) 16:28:50 ] >>610 >>611 ありがとうございます 実装できました! 実装は IComparer(Of Hoge) を使用してキャストが発生しないように実装してみました。
613 名前:デフォルトの名無しさん mailto:sage [2007/06/12(火) 22:16:39 ] >>609 そもそもどうやってここにデータを入れたんだw
614 名前:デフォルトの名無しさん [2007/06/12(火) 23:06:55 ] >>613 構造体配列だから普通に入れたんじゃね?
615 名前:611 mailto:sage [2007/06/12(火) 23:48:46 ] >>611 の一行目はIComparer(Of AAA)の間違いね >>612 はわかってるみたいだけど
616 名前:デフォルトの名無しさん mailto:sage [2007/06/12(火) 23:54:05 ] >>614 そっかww
617 名前:デフォルトの名無しさん [2007/06/13(水) 00:20:05 ] vb2005で、WMIを使ってUSBに接続されたHDとかの PNPDeviceIDを取得するものを作ってるんだけど、 ドライブ名を指定して取得する方法ってありますか? 「E:」って指定してできるのかと思ったけど、Win32_DiskDriveは ドライブ情報だからパーティションの情報なんてないし・・・ 方法があったら、教えてほしいです
618 名前:デフォルトの名無しさん mailto:sage [2007/06/13(水) 12:07:52 ] VBSでGIF画像の色を置換したいんですが可能でしょうか? RGB(R, G, B)でいうと、緑色(85, 127, 85) ⇒ 青色(85, 127, 170) に変換したいのです。 大量の画像を一度に処理したいので、フォトレタッチソフトでは手間がかかりすぎて・・・。 どうか、偉い人教えてください。
619 名前:デフォルトの名無しさん mailto:sage [2007/06/13(水) 12:23:06 ] What's VBS ? Virus Buster Special ?
620 名前:デフォルトの名無しさん mailto:sage [2007/06/13(水) 16:48:14 ] VBScriptのことなんじゃね ここはVB.NETのスレですよ もちろんVB.NETなら間違いなく可能だけどVBScriptではどうかは知らん
621 名前:デフォルトの名無しさん mailto:sage [2007/06/13(水) 19:25:07 ] >>619-620 レスありがとうございます。 VBSってのは、VBScriptのことです。説明不足ですみません。 VB.NETだとどういう感じに書けばいいのでしょうか?
622 名前:デフォルトの名無しさん [2007/06/13(水) 20:50:09 ] vb2005を使っているのですが質問をさせてください 例えばフォームにtextbox1〜textbox10まであったとして、それぞれに同じ処理を連続して実行したいのですが for文を使うとして for n=1 to 10 textbox(n)="文字列" みたいなことを使用としたのですが、当然これを関数名として認識してくれませんでした あらかじめ用意した変数に="textbox" & n みたいなことや 今の自分で他にも思いつく限りのことはやってみても同じでした・・・ こういったtextboxやpicutureboxなどのオブジェクト名(?)をfor文等で連続して実行させたい場合 そのオブジェクト名の連番の表記をどういった風にやるのが適切なのでしょうか? ご助言をどうかよろしくお願いします。
623 名前:デフォルトの名無しさん mailto:sage [2007/06/13(水) 21:00:15 ] どうしてVB6上がりな人は素直に「コントロール配列が使いてえ」って言えないのかね。 ドトネトにコントロール配列はないから自分で配列なりListなり作って やってくださいよ。
624 名前:デフォルトの名無しさん [2007/06/13(水) 21:49:14 ] どうしてもコントロール配列みたいなことをしたければ、 #Region "Windowsフォームデザイナで生成されたコード 〜#End Region のところに、 TextBox(1)=TextBox1 TextBox(2)=TextBox2 って書いていけばできるんじゃない?
625 名前:デフォルトの名無しさん mailto:sage [2007/06/13(水) 21:57:08 ] >>617 Win32_LogicalDiskRootDirectory 使えば何とかなるかも
626 名前:デフォルトの名無しさん mailto:sage [2007/06/13(水) 22:24:03 ] >>622 どぼんに配列に関する項目があるから、そこを参照。
627 名前:デフォルトの名無しさん mailto:sage [2007/06/13(水) 22:40:06 ] >>623 VB6なんて使ってませんが? >>626 カンシャ
628 名前:デフォルトの名無しさん mailto:sage [2007/06/13(水) 22:56:49 ] まあVB6上がりであろうとなかろうと、そんな程度でいちいち人に尋ねてるようじゃ 先はないと思ったほうがいいな。
629 名前:デフォルトの名無しさん [2007/06/13(水) 23:00:27 ] ↑ ま た お ま え か
630 名前:デフォルトの名無しさん mailto:sage [2007/06/13(水) 23:27:42 ] >>628 PG以前に人間としての素質が無いとお見受けした
631 名前:デフォルトの名無しさん mailto:sage [2007/06/13(水) 23:56:17 ] >>625 RootDirectory の方はいらんな。 Win32_LogicalDisk の DeviceID がドライブレター。 で、そこから Win32_LogicalDiskToPartition で論理ディスクに対応するパーティションの DeviceID 取って、 Win32_DiskDriveToDiskPartition でパーティションに対応する物理ドライブの DeviceID 手に入れて、 Win32_DiskDrive から PNPDeviceID ってことになるんかな? えらく泥臭くなりそうだけど。 Win32_LogicalDiskToPartition が Win32_LogicalDisk と Win32_DiskPartition の参照を持つはずなのに 何故か String で返ってくるな……。
632 名前:デフォルトの名無しさん mailto:sage [2007/06/14(木) 02:07:17 ] >>627 ↑ こいつ時々ここに沸いてるけど質問が素人くさい上に返答の仕方が房臭い つうか、カスだな 間違いなく もし業務でやっているならおれは真っ先にお前のようなやつはキル
633 名前:デフォルトの名無しさん mailto:sage [2007/06/14(木) 11:29:38 ] こ、殺すの?
634 名前:デフォルトの名無しさん [2007/06/14(木) 12:24:50 ] PropertyのGet/Setで何も処理しない場合、変数をPublicにするので問題なし? 処理なしPropertyの利点が分からん。
635 名前:デフォルトの名無しさん [2007/06/14(木) 12:42:23 ] >>634 セットもゲットもさせないってことでいいんじゃない?w
636 名前:デフォルトの名無しさん mailto:sage [2007/06/14(木) 12:49:34 ] >>632 ↑w ハイハイワロスワロス
637 名前:デフォルトの名無しさん mailto:sage [2007/06/14(木) 12:52:59 ] >もし業務でやっているならおれは真っ先にお前のようなやつはキル だっておwwww AA(ry 馬鹿同士言い合ってる時点で俺は真っ先にそのようなやつはry
638 名前:デフォルトの名無しさん mailto:sage [2007/06/14(木) 12:54:56 ] >>634 将来処理いれるかもしれないだろ? 先を見越した書き方しとけ
639 名前:デフォルトの名無しさん mailto:sage [2007/06/14(木) 12:59:59 ] >>638 そうなったらその時直せば済む話。
640 名前:デフォルトの名無しさん mailto:sage [2007/06/14(木) 13:09:54 ] そしたら参照してるとこ全部直さないといけないでしょうが 汚物は消毒
641 名前:デフォルトの名無しさん mailto:sage [2007/06/14(木) 13:11:11 ] ↑ 二行目は気にしないでくれ。コピペミスだw
642 名前:デフォルトの名無しさん mailto:sage [2007/06/14(木) 13:19:51 ] 大概、先に見越したところは想定通りにならないのが常だがなw
643 名前:634 mailto:sage [2007/06/14(木) 13:59:48 ] いや、もう本当に悩む。 変数が40ぐらいのクラスを作らなければいけないのだが、 正直かなり面倒。 今までそう言われてきたから、必ずSet/Getを作ってきたけど、 代入/取得するだけの処理に意味有るのかと。 もちろん入力規則をする場合などには、利用するけどね。 どれだけ、将来的に役立つのか疑問。。 誰か、すばらしい利点を教えてだせい。
644 名前:デフォルトの名無しさん mailto:sage [2007/06/14(木) 14:15:46 ] >>643 フィールドにした場合virtual/overrideに出来ない。VBだとoverridableだっけか。 インターフェイスにフィールドを含めることが出来ない。 リフレクションなどでメソッドの呼び出しを横取りして何かの処理を行うことが フィールドに対しては出来ない。 通信やCOM呼び出しなどでインターフェイスを実装することを要求しているのは、 処理の横取りが出来ないフィールドを排除するためである。 VB6のCOMのようにpublicなフィールドを暗黙でプロパティにしてしまうのもありだとは思うが、 VB.NETはC#の考え方に合わせたのだろう。
645 名前:デフォルトの名無しさん mailto:sage [2007/06/14(木) 14:17:07 ] 上のような理由からだから値型はフィールドのままでかまわないよ。
646 名前:デフォルトの名無しさん mailto:sage [2007/06/14(木) 14:27:22 ] >>640 ん?プロパティにいちいち () つけるタイプ? それなら修正して回らないと駄目だね。
647 名前:デフォルトの名無しさん mailto:sage [2007/06/14(木) 14:46:58 ] ん? C#メインだから()とか言われても分からないんよ public int iUnko; ↓ やっぱプロパティにしよう public int Unko{ get{} set{} } ↓ iUnkoをUnkoに書き換えなきゃなんないんじゃ? プロパティの名前をiUnkoのままでもいいけど、 そうしたらクラス内部で使うときに全部プロパティ経由になっちゃうよ やっぱ書き換えが発生するんじゃ
648 名前:デフォルトの名無しさん mailto:sage [2007/06/14(木) 14:52:27 ] VBにはリファクタの「フィールドのカプセル化」がないのか。そりゃ面倒だね。 C#のもフィールドをまとめてカプセル化する機能がないのでちょい不満だけど。
649 名前:デフォルトの名無しさん mailto:sage [2007/06/14(木) 14:54:59 ] >>647 ああ、いちいちプレフィックス付けるタイプでしたかw
650 名前:デフォルトの名無しさん mailto:sage [2007/06/14(木) 15:06:40 ] C#3.0では自動プロパティという機能がついて public int Unko{get;set;}だけでよくなるらしい
651 名前:デフォルトの名無しさん mailto:sage [2007/06/14(木) 15:35:08 ] VBは引数付きプロパティが使える関係でプロパティに引数が必要な場合は( .. ) を付ける。 引数なしプロパティには()を付けても付けなくてもいいということらしい。 C#の場合は大小文字を区別するから、フィールドnameでプロパティはNameにするのが一般的だが、 VBの場合プロパティとフィールド名の命名にそういったルールや習慣はあるの?
652 名前:634 mailto:sage [2007/06/14(木) 15:57:34 ] >>648 を参考にアドインを探したら、Refactor! というツールがありました。 悩んでいるのもあれなんで、これを使ってどんどんプロパティを作ってしまいました。 ttp://www.devexpress.com/Products/NET/IDETools/VBRefactor/
653 名前:デフォルトの名無しさん [2007/06/14(木) 16:04:04 ] VB2005でcrystal reportsを使いたいのですが、 インストール方法が分かりません。 恐れ入りますが、ご教示ください。
654 名前:デフォルトの名無しさん mailto:sage [2007/06/14(木) 16:07:24 ] エディションは?
655 名前:デフォルトの名無しさん [2007/06/14(木) 16:12:06 ] >>654 Visual Studio 2005 Tools for the Microsoft Office System です。 よろしくお願いします。
656 名前:デフォルトの名無しさん mailto:sage [2007/06/14(木) 18:35:50 ] ふいたww
657 名前:デフォルトの名無しさん mailto:sage [2007/06/14(木) 19:33:42 ] >>650 C++/CLIなんて、property int Hoge;だけでおkだぜ?
658 名前:デフォルトの名無しさん mailto:sage [2007/06/14(木) 21:53:19 ] VB2005(Professional Edition)に関する質問です。 プロセス間で同期を取るためにイベントを使いたいのですが、 VB6⇔VC2005とか、VC2005⇔VC2005とかでは他プロセスから イベントを受信できるのに、VB2005だとできなくて困っています。 どなたか原因分かる方いませんか? 以下ソースの一部(プロジェクトの種類はVCはWin32アプリ。VBはWindowsアプリ) 〜〜〜VC2005〜〜〜 hEvent = CreateEvent( , , , "test_event") SetEvent(hEvent) 〜〜〜〜〜〜〜〜〜 〜〜〜VB2005〜〜〜 hEvent = CreateEvent( , , , "test_event") iRet = WaitForSingleObject(hEvent,0) ←ここでイベントを受信しない。 〜〜〜〜〜〜〜〜〜 ちなみに同じプロジェクト内で、SetとWaitを使用した場合は動きます。 〜〜〜VB2005(動く)〜〜〜 hEvent = CreateEvent( , , , "test_event") SetEvent(hEvent) iRet = WaitForSingleObject(hEvent,0) ←これは受信する。 〜〜〜〜〜〜〜〜〜
659 名前:デフォルトの名無しさん mailto:sage [2007/06/14(木) 21:58:24 ] それだけで分かったら ESP 名乗れるかもしれないな。 本題とは直接関係ないが、わざわざ Win32API 使わんで EventWaitHandle 使え。
660 名前:658 mailto:sage [2007/06/14(木) 22:12:02 ] >>659 レスサンクス 補足っぽいものさせてもらうと、 A、B共にVB2005で作ったexeとして、 A.exeでSetEvent A.exeでWaitFor〜 の場合は、イベントを受信するんだけど A.exeでSetEvent B.exeでWaitFor〜 の場合は、動かないんですよね。 VB6の場合はどっちのパターンでも動きます。 ちなみに、EventWaitHandle使う場合は、 VC側はどうやるのでしょう? VCでもEventWaitHandle?それともCreateEvent? 質問増えて申し訳ないです。
661 名前:デフォルトの名無しさん mailto:sage [2007/06/14(木) 22:22:15 ] 文字セットの問題とかな EventWaitHandle は名前付きイベントのマネージドなラッパ。
662 名前:658 mailto:sage [2007/06/14(木) 22:39:09 ] >>661 レスサンクス う〜ん それも考えて、 VCのテストアプリを、マルチbyte文字セット、ユニコードの両方試してみてもダメ。 660の例では、コンパイルしてできたexeをリネームして試してみてるので やっぱり文字コードじゃなさそう。 レスに対して揚げ足取ったようでゴメンナサイね。 何か思いついたことがあれば、引き続きレスお願いします。
663 名前:デフォルトの名無しさん mailto:sage [2007/06/15(金) 00:09:02 ] 本当に初歩的な質問をさせていただきます。 フォームが1つありテキストボックスが2つ(1、2)、ボタンが1つ配置してあります ボタンを押したらテキストボックス1と2に入力した文字をCSVファイルに書き込む用にしたいのですが どのようにCSVに書き込みのプログラムを組めばよいのでしょうか? CSVファイルの場所は固定です C:\ 2つのテキストボックスには4桁の整数を入力します。 CSV内で2つのテキストボックスに入力した値をカンマ区切りで書き込みたいです。 例 1234,5678 ボタンを押すごとにCSVファイル内で改行して書き込みを行いたいです 例 ボタン押下の度にCSVの中身は改行され 1234,5678 4321,0987 ・ ・ 初心者すぎてわかりにくい質問だとはおもいますが お願いいたします
664 名前:デフォルトの名無しさん mailto:sage [2007/06/15(金) 00:14:24 ] その説明をそのままコードに起こせばおk で、どこが分からんの?
665 名前:デフォルトの名無しさん mailto:sage [2007/06/15(金) 00:21:14 ] >>664 まず テキストボックス内の数字を CSV書き込みの時に反映させるコードの書き方が 全くわかりません・・・ 一度テキストボックス内の数字を変数入れたほうがいいのですか?
666 名前:デフォルトの名無しさん mailto:sage [2007/06/15(金) 00:36:12 ] 全くって言われても……言葉通りとしか……。 とりあえずファイルに書き込むことはできてる? どうやって書き込んでる?
667 名前:デフォルトの名無しさん mailto:sage [2007/06/15(金) 00:41:37 ] >>666 すいません質問が漠然としすぎていて・・ もう少し勉強してから出直してきます。
668 名前:デフォルトの名無しさん mailto:sage [2007/06/15(金) 00:43:40 ] 2005で作ったプログラムを2003に変換する方法ってありますか。
669 名前:デフォルトの名無しさん mailto:sage [2007/06/15(金) 01:40:00 ] 1.1にない機能を使ってたらどうすんの?
670 名前:デフォルトの名無しさん mailto:sage [2007/06/15(金) 10:08:10 ] >>668 コピペしてエラーがでたら考える。
671 名前:デフォルトの名無しさん mailto:sage [2007/06/15(金) 10:40:30 ] AddHandlerでLeaveイベントでを関連付けて、テキストボックスからフォーカスが移動した際に 入力のチェックをしているのですが、ツリービューをクリックした際になぜか 入力チェックが2回実行されます。 この原因及び解決法が分かる方がいましたらご教授願います。
672 名前:デフォルトの名無しさん [2007/06/15(金) 10:47:45 ] 2005のDataGridViewでDataGridViewButtonColumn列を使用して一覧の表を作成しています ある特定の行のときだけ DataGridViewButtonCellの中にあるボタンを無効化(enable=false みたいに)出来ないでしょうか?
673 名前:デフォルトの名無しさん [2007/06/15(金) 12:41:48 ] すみません。www.cbook24.com/bm_detail.asp?sku=4798011126 を買おうと思っているんですが、 下の方に印刷のところで、クリスタルレポートっていうのが、でてきます。他の本をみていても時々でています。 色々と調べてみたんですが、VB2005Proffessionalエディションじゃないとクリスタルレポートというのは つかえないんでしょうか・・・ Professionalエディションって結構高いですよね・・ よろしくお願いします。
674 名前:デフォルトの名無しさん mailto:sage [2007/06/15(金) 12:43:10 ] >>671 それで原因がわかったらエスパーだなw 原因および解決法が分かる方がいましたら、ってなんだよ。 まるで原因は自分のミスじゃない、とでも言いたげだな。 そういう時は原因としてどういう可能性が推測できるか、と聞けよ。
675 名前:デフォルトの名無しさん [2007/06/15(金) 12:53:56 ] >>673 Expressでは少なくとも無いなぁ Standardはしらんが多分Pro以上 Express5000くらいで買ってProにアップグレードしたら多少安く手に入るんじゃないかな?
676 名前:デフォルトの名無しさん mailto:sage [2007/06/15(金) 12:54:13 ] >>673 www.microsoft.com/japan/msdn/howtobuy/vs2005/editions/stdexp/#stdexp_feature
677 名前:デフォルトの名無しさん mailto:sage [2007/06/15(金) 12:57:12 ] >>673 バンドル版はPro版以上。それ以下でも製品版を買えば使える。 japan.businessobjects.com/products/crystal/ もちろん製品版も結構高いけどな。
678 名前:デフォルトの名無しさん [2007/06/15(金) 13:02:18 ] タグ上で右クリしたときContextmenuStripが表示されるようにしたいんですが なんかいい手無いかなー? 要はタブを追加、タブを閉じるのメニューを表示したいんす
679 名前:デフォルトの名無しさん mailto:sage [2007/06/15(金) 13:03:23 ] >>672 以前自分もこれしらべたことあったけど、現状じゃ無理ー。
680 名前:デフォルトの名無しさん mailto:sage [2007/06/15(金) 13:05:51 ] >>678 タブコントロールのタブか? 普通にマウスクリックイベントに書けば?
681 名前:デフォルトの名無しさん [2007/06/15(金) 13:08:44 ] >>679 やっぱむりっすか・・・ 中のボタンコントロールみたいなのとれればなとか あれこれ調べたんですがこれもムリだったので、まぁ、今回はちょっと別の方法模索してみようかなとおもいます。 レスありがとうです!
682 名前:デフォルトの名無しさん mailto:sage [2007/06/15(金) 13:14:45 ] >>681 正確にいうと、ReadOnlyにすることで、無効化は可能。 ただ、視覚的にenabled=false(グレー表示)にすることが不可能。 ボタンを押す行為自身はできちゃうんだよね…
683 名前:デフォルトの名無しさん [2007/06/15(金) 13:28:06 ] >>682 もうちょっとツボ抑えた機能がほしいところですね 全部既存のコントロールが中にあるんだろうし 少しくらい公開してくれても・・・(;´Д`)
684 名前:デフォルトの名無しさん mailto:sage [2007/06/15(金) 13:34:46 ] 中にコントロールはなかったような。 編集するときEditControl生成するくらいじゃね? Buttonの絵を書いてるだけだよ。 じゃなきゃ何千ものコントロールのハンドル管理しなきゃいけなくなるっしょ。 だから継承して自分で描画すればいいだけの話
685 名前:デフォルトの名無しさん [2007/06/15(金) 14:04:58 ] >>684 いいヒントもらえたのでちょっと強引にやってみました。 セルのボタンを表示したくないValueにはNothing そうじゃないばあいNothing以外を入れて CellPaintingイベントで If e.RowIndex >= 0 AndAlso e.ColumnIndex >= 0 AndAlso dgvList.Columns(e.ColumnIndex).Name Is 該当のカラム Then Dim temp As DataGridViewCell = dgvList.Rows(e.RowIndex).Cells(e.ColumnIndex) If temp.Value Is Nothing Then Dim TempPoint As New Point(e.CellBounds.X + e.CellBounds.Width - 1, e.CellBounds.Y) Dim TempPoint2 As New Point(e.CellBounds.X + e.CellBounds.Width - 1, e.CellBounds.Y + e.CellBounds.Height) e.Graphics.FillRectangle(New SolidBrush(Color.White), e.CellBounds) e.Graphics.DrawLine(New Pen(SystemColors.ControlDark), TempPoint, TempPoint2) e.Handled = True End If End If ボタンを表示したくない時は自分で塗りつぶして線も描画し、表示したい時はコントロール任せ こんな感じでとりあえずいけそうかなぁと 助かりました〜
686 名前:デフォルトの名無しさん [2007/06/15(金) 14:42:56 ] グループボックスの中にボタンが配置してある場合、グループボックスの背景色を 変更したらボタンも一緒に変わってしまう。。 再度ボタンを設定しなおせば良いのは分かりますが、 予め反映させないようには出来ないのでしょうか?
687 名前:デフォルトの名無しさん [2007/06/15(金) 15:22:57 ] >>686 ???? 今やってみたけど変わらないと思うぞ あらかじめGroupBoxに背景色が設定してあって、そのうえにボタン追加したらその現象が出るなぁ・・・ ちなみに2005IDEね
688 名前:686 mailto:sage [2007/06/15(金) 15:37:46 ] ぇええぇぇええ〜。 実験どうもです。 自分の所もVS2005のVB。 ちょっと新規にプロジェクトを作成して試してみましたが、 グループボックスの中にボタンを配置して、以下のプログラムで再現します。 GroupBox1.BackColor = Color.Aqua この場合、グループボックスもボックス内にあるボタンもAqua色。。
689 名前:デフォルトの名無しさん [2007/06/15(金) 15:46:23 ] >>686 あ〜 ボタンのスタイルをスタンダードにしてるから 見た目かわらないだけでグループの背景色変えたらボタンの背景色変わってるな〜 たしかにFlatとかにしてたらIDEでも変わるのが目に見えて判る こういう処理やったことないからわからないけど・・・・自動で子にいろいろ設定されるのは難しいんじゃなかろうか・・・ FormのFontSizeとか変えたら子のサイズも変わるのと同じ原理なんだろうなぁ・・・ ある意味気が利いてていいんだが・・・
690 名前:686 mailto:sage [2007/06/15(金) 15:47:58 ] コードとか関係なくGUIでもそうなっているんですね。。 ラベルやチェックボックスとかには便利だけど、 ボタンにこれは必要ないだろ〜。 ぅう、面倒くさー。
691 名前:686 mailto:sage [2007/06/15(金) 15:50:10 ] >>689 入れ子になりました。 度々どうもです。 うーん、小さな親切って奴ですな〜。
692 名前:673 mailto:sage [2007/06/15(金) 15:51:01 ] >>675 どうもありがとうございます。ExpressからProにアップグレードできるんですか? 以前のエディションのPro版からしかアップグレードできないとおもっていたので、 とても助かります。ありがとうございました。 >>676 どうもありがとうございます。わざわざURLを貼っていただきまして。やっぱりPro版じゃないと だめみたいですね。 >>677 製品版なんてものもあるんですね。CrystalReport単品ですね。でも、7万しますね・・ MicroSoftはここまで金をもうけないと駄目なんですかね・・ どうもありがとうございました。お礼が遅くなりすみませんでした。料理してたら忘れてまして・・
693 名前:686 mailto:sage [2007/06/15(金) 15:54:48 ] >>689 ああ、どうもです。 FlatStyleプロパティをSystemにする事で、回避できそうです。
694 名前:デフォルトの名無しさん [2007/06/15(金) 16:01:58 ] >>693 ついでにちょっと試してたんだけど IDEでグループボックス貼り付け IDEでボタン貼り付け ボタンのスタイルをフラットにして、色をREDに変更 このあとグループボックスの色変えてもボタンの色変わらなくない? もちろんコードでグループボックスの色変えても
695 名前:686 mailto:sage [2007/06/15(金) 16:06:56 ] >>694 自分が確認した範囲では、一度ボタンの色を任意に設定した後は、 ボタンのスタイルに関わらず、グループボックスと連動する事はなさそうです。 スタイルをSystemにするか、BackColorをColor.Transparentにするかの どちらかになると思います。
696 名前:デフォルトの名無しさん mailto:sage [2007/06/15(金) 16:11:53 ] >>674 ではその可能性とやらを教えてください