[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2chのread.cgiへ]
Update time : 02/18 18:27 / Filesize : 282 KB / Number-of Response : 1002
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

VB.NET質問スレ (Part21)



1 名前:デフォルトの名無しさん [2007/04/23(月) 12:42:36 ]
前スレ

VB.NET質問スレ (Part20)
pc11.2ch.net/test/read.cgi/tech/1173061176/

テンプレは2〜10くらいまでの間にある予定

802 名前:デフォルトの名無しさん [2007/06/21(木) 09:48:20 ]
VB2005について質問です
SPREADで列数18、幅25の表を作ったら動作が重かったんですが、軽くする方法ありませんか?

803 名前:デフォルトの名無しさん mailto:sage [2007/06/21(木) 09:55:58 ]
>>802
グレープシティーに聞けばいいと思うよ

804 名前:デフォルトの名無しさん [2007/06/21(木) 10:08:52 ]
>>802
しかもおまえマルチかよ・・・・
ほんと頭悪いから出て行けよw
なにをどうとかなら判るが これだけの情報でどうやって動作軽くしろとかいうんだ
アフォらしいの通り越して、お前みたいな奴がソフト作るのホントやめてほしい

//--------------------------------------------------------
Visual Basic2005やりたいんだけどアドバイス頼む
ttp://pc11.2ch.net/test/read.cgi/tech/1158410544/67

67 名前:デフォルトの名無しさん[] 投稿日:2007/06/21(木) 09:25:40
初心者な質問スマソ
SPREADで行列100 X 18、列幅25の表つくったんだけど、
処理(スクロールや行選択)が重いんだけど軽く出来ませんかね?



805 名前:デフォルトの名無しさん [2007/06/21(木) 12:01:29 ]
メールアドレスを正規表現で抽出する場合どのように記述すればいいのでしょうか?

806 名前:デフォルトの名無しさん [2007/06/21(木) 12:05:32 ]
>>805
スレ (´∀`( ´∀`) チガイ


807 名前:デフォルトの名無しさん mailto:sage [2007/06/21(木) 12:27:59 ]
>>805
ググれよ

808 名前:デフォルトの名無しさん [2007/06/21(木) 12:40:18 ]
散々ググったんですがどうもいまいちわからないんですよ。
冷たいこと言わないで教えてくださいよ。

809 名前:デフォルトの名無しさん mailto:sage [2007/06/21(木) 12:44:16 ]
メールアドレスに一致する正規表現は「ありません」

とぐぐった一発目にあるが?

810 名前:デフォルトの名無しさん [2007/06/21(木) 12:51:04 ]
あ(笑)。もしかしてほんとは皆さん知らないんじゃ無いんですか?



811 名前:デフォルトの名無しさん [2007/06/21(木) 13:09:25 ]
>>788
どうもです!!
自分はWindows2000+VS2005Proの環境を使ってまして
そこではスクロールバーの動きに追従しませんでした。
環境差による可能性がありそうなので、これから別PCの
WinXp環境に移して試してみます。助かります!!

812 名前:799 mailto:sage [2007/06/21(木) 13:59:53 ]
>>800
と言うことは、Newでクラス参照すると全く新規で作られるということでしょうか?
既存のDataTableを参照するにはどうすればよいのでしょう?

>>801
調べてみましたが、使い方がわかりませんでした。すみません。

813 名前:デフォルトの名無しさん [2007/06/21(木) 14:08:28 ]
だから

調べてみましたが、使い方がわかりませんでした
じゃわかんねぇYO!
どこがどうわからんのか言えよ
使う気ないのかしらんが

あと既存のDataTableを参照するには
と書いてあるということはDataTableをDataGridViewにバインドさせて使ってるんだよな?
つまりDataGridViewはその元のDataTableをDataSourceとして持ってるわけだ

814 名前:デフォルトの名無しさん mailto:sage [2007/06/21(木) 14:12:26 ]
>>813
こんな努力もしないアホに教えようとするだけムダだ
質問すらもまともにしようとしていないしな

ほれこれでいいだろ もう来るなよ

Public Sub WriteXml(ByVal fileName As String)
Dim instance As DataSet1.NewItemDataTable
instance = DirectCast(DataGridView1.DataSource , DataSet1.NewItemDataTable )
instance.WriteXml(fileName)
End Sub


815 名前:デフォルトの名無しさん mailto:sage [2007/06/21(木) 15:34:06 ]
>>808
うぜえな
www.google.com/search?hl=ja&lr=lang_ja&ie=UTF-8&oe=UTF-8&q=vb+%E6%AD%A3%E8%A6%8F%E8%A1%A8%E7%8F%BE+%E6%A4%9C%E7%B4%A2&num=50
3つめにあるじゃねえか。

816 名前:デフォルトの名無しさん [2007/06/21(木) 15:36:45 ]
>>815
みんなスルーしてたのにお前の優しさに>>808が泣いた

817 名前:デフォルトの名無しさん [2007/06/21(木) 18:56:25 ]
知ってたら教えてー。
VS2005(VB.NETもC#)のIDEで、タブ付きドキュメントにしてソースを
開いていくと、タブが左側に追加されていくのを、右側に追加して
いくように変更できないのかな?

818 名前:デフォルトの名無しさん [2007/06/21(木) 19:02:29 ]
>>788
WinXp環境に移して試してみましたところ、この環境ではScrollBarの
動きに追随してリアルタイムでViewが動くのを確認しました。
これは環境的な理由があるようにも思いましたので、
ひとまず現状のままにしておきます。
情報ありがとうございました!!!

819 名前:デフォルトの名無しさん [2007/06/21(木) 20:19:49 ]
hp.vector.co.jp/authors/VA026956/MouseGesture.html を組み込みました。
実行ファイルをダブルクリックで実行、ショートカットからの実行では問題ないのですが、
ファイルにこのアプリケーションを関連付けしてファイルから実行すると、
エラーで落ちてしまいます(エラーの詳細はわからず)。

おそらくDLLの場所がわからず、読み込めないため落ちてると思うのですが、
レジストリの関連付けで、作業フォルダの指定もできないみたいです。

どうすればいいのでしょうか。。

820 名前:デフォルトの名無しさん mailto:sage [2007/06/21(木) 21:05:30 ]
VBにはJavaのThrowsのような
関数に例外をスルーさせる方法はありますか?



821 名前:デフォルトの名無しさん mailto:sage [2007/06/21(木) 21:06:51 ]
あります。

822 名前:デフォルトの名無しさん mailto:sage [2007/06/21(木) 21:09:55 ]
ググッてみてもJavaとは例外処理の概念が違うから
ウンヌンカンヌンで例外のエスカレーションは
できないのです。みたいな事書かれていたので
できたら、やり方教えてもらえないでしょうか
キーワードだけでも結構です。

823 名前:819 mailto:sage [2007/06/21(木) 22:19:21 ]
やり方がわからなかったので、自前でマウスジェスチャくみますた。。

824 名前:デフォルトの名無しさん mailto:sage [2007/06/21(木) 22:24:21 ]
例外はほっときゃ勝手に呼び出し元に伝播する

825 名前:デフォルトの名無しさん mailto:sage [2007/06/22(金) 00:03:32 ]
互換機能のOn Error Goto は使わないようにね

826 名前:819 mailto:sege [2007/06/22(金) 01:22:39 ]
1 sub main()
2 F(1,1)
3 F(1,0)
4 end sub

5 function F(a as integer, b as integer) as double
6 return a/b
7 end function

たとえば上のような疑似VBコードにおいて
実行すると 6行目で例外発生して止まる。
で5行目を
function F(a as integer, b as integer) as double Throws Exception
のように書き換え実行すると
2行目で例外が発生しましたとなって止まる。
ようにしたい。要するにデバッグしやすいように例外を使用したい

827 名前:デフォルトの名無しさん mailto:sage [2007/06/22(金) 01:51:25 ]
>>826
なんだ例外のエスカレーションとかいうレベルの話じゃなかった

828 名前:デフォルトの名無しさん mailto:sage [2007/06/22(金) 02:11:58 ]
>>819
たぶんdllとはなんの関係もないウンコなミスとエスパーするがどうか。


829 名前:デフォルトの名無しさん mailto:sage [2007/06/22(金) 02:29:14 ]
>>826
茶化したままだとあれだから、VS2005でマイコードのみの設定が有効になってるのを確かめて、
DebuggerNonUserCode属性を付ければ目標は達成できる。

<DebuggerNonUserCode()> _
function F(a as integer, b as integer) as double
  return a/b 
end function 


830 名前:デフォルトの名無しさん [2007/06/24(日) 06:16:44 ]

誰か似たようなことを経験していたら教えてほしいのですが、、

あるコントロール上をマウスが通ると、MouseMoveイベントが普通立つと思う。

しかし、何かある操作をしてから、同様にしても、今度は全然 MouseMove
     ~~~~~~~~~~~~
イベント自体が立ってくれなくなる。それで仕方なく、別のアプリケーションの

ウインドウをクリックしてFocusを移してから、再度元のアプリケーションに

戻って同様にしてみると、今度は MouseMoveイベントが立ってくれる、

とちょっと変な現象なんですが、こういうことってあり得るでしょうか?




831 名前:デフォルトの名無しさん [2007/06/24(日) 06:37:21 ]
>>830

この場合、「何かある操作」 というのは、そのコントロールの置いてある Panel 

の右クリックで ContextMenuStrip を表示して、その際、そのメニューのどれも

クリックせずに、また Panel 上のどこかをクリックして ContextMenuStrip を

Close する、というだけの操作なんですが、これをすると、それまで立ってくれてた

その Panel 上のコントロールで MouseMove イベントが立たなくなるのでした。

832 名前:デフォルトの名無しさん mailto:sage [2007/06/24(日) 07:03:19 ]
一切自分では調べてないだろ
ttp://www.google.com/search?hl=ja&lr=lang_ja&oe=utf8&q=mousemove+contextmenustrip

833 名前:デフォルトの名無しさん mailto:sage [2007/06/24(日) 11:59:27 ]
>>831
メニューのClosedイベントで
System.Windows.Forms.ToolStripManager+ModalMenuFilter.ExitMenuMode()
を呼ぶと直る。
リフレクション使わないといけないけど。

834 名前:デフォルトの名無しさん [2007/06/24(日) 13:42:03 ]
>>832
ありがとうございます。
これ一応 BUG だったんですね・・・う〜ん。

>>833
どうもです、助かります。

>System.Windows.Forms.ToolStripManager+ModalMenuFilter.ExitMenuMode()

この方法、調べて使ってみます。

>リフレクション使わないといけないけど

これについても具体的にはどうすればいいかまだわかりませんが、また調べてみます。
それでもわからない場合また質問するかと思いますが、
またよろしくお願いします。


835 名前:デフォルトの名無しさん [2007/06/24(日) 15:54:43 ]
>>833

すみません、この ModalMenuFilter というのは、ヘルプで検索しても
検索結果 0 で情報が出てきませんでした。

ググってみましたが、ただ一件
www.google.com/search?hl=ja&q=ModalMenuFilter&btnG=%E6%A4%9C%E7%B4%A2&lr=

があるだけでしたが、これって何かのクラスなのでしょうか。このページ開いても
該当箇所は見られませんでした・・・う〜ん困りました。。。

よろしければご指導の続きを戴ければありがたいです。すみません・・・。


836 名前:デフォルトの名無しさん mailto:sage [2007/06/24(日) 18:34:16 ]
>>834
internalなクラスだから説明はどこにもないと思う。
手元にあるのはC#のコードだけど適宜よみかえてちょ。

void contextMenuStrip1_Closed( object sender, ToolStripDropDownClosedEventArgs e )
{
    Type t = Type.GetType( "System.Windows.Forms.ToolStripManager+ModalMenuFilter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" );
    MethodInfo mi = t.GetMethod( "ExitMenuMode", BindingFlags.NonPublic | BindingFlags.Static );
    mi.Invoke( null, null );
}

837 名前:デフォルトの名無しさん [2007/06/24(日) 18:56:16 ]
ContextMenuStrip の中のどれかをクリックして実行すると(それが空の関数であっても)
問題は起こらないため、一つ考えられるのは、 ContextMenuStrip の Closing
イベントでそれを強引に実行してやればどうだろう、とも思ったのですが、この
強引にコードから ContextMenuStrip の中のどれかに Click イベントを起こすためには
どうすればいいでしょう、これについて知りたいです。
よろしくお願いします。



838 名前:デフォルトの名無しさん [2007/06/24(日) 18:58:05 ]
>>836
おお、どうもです!!かぶってすみませんでした。
こういう方法あるんですね、ありがとうございます。
助かります。やってみます!!

839 名前:838 [2007/06/24(日) 20:53:38 ]
>>836
素晴らしいです、みごとに一発で解決しました。

一時は本当にどうしたものかと悩みました、でもこれで助かりました。

>internalなクラスだから説明はどこにもない

やっぱり一般人には知りえない内容なのでしょうか、
もしかしてMSの人じゃないとわからない、とかでしょうか・・・

でも本当に助かりました、ありがとうございました!!


840 名前:デフォルトの名無しさん mailto:sage [2007/06/24(日) 21:25:37 ]
Reflectorだろ



841 名前:デフォルトの名無しさん mailto:sage [2007/06/24(日) 23:42:37 ]
vbというよりもフォームの質問なのかもしれませんが、
初心者スレが見つからないのでここで質問させていただきます。

グループボックスの中にラジオボタンがいくつかと、ラベルをひとつ配置します。
そのラベルの中にラジオボタンをいくつか配置した上で、
ラベルの外(グループボックスの中)のラジオボタンとラベルの中のラジオボタンを
同じグループとして扱いたいのですが、どのように設定したらよいのでしょうか?
お分かりの方がいらっしゃいましたら御教示お願いいたします。

842 名前:デフォルトの名無しさん mailto:sage [2007/06/24(日) 23:44:29 ]
そんな変態行為は .NET では認められません

843 名前:デフォルトの名無しさん mailto:sage [2007/06/24(日) 23:45:37 ]
おぁー!変体行為だったんですか。
それは困りました。どうしましょう?

844 名前:デフォルトの名無しさん mailto:sage [2007/06/24(日) 23:46:36 ]
さぁ。

845 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 00:17:59 ]
>>841
ラベルはコンテナコントロールじゃないよ。
言ってる意味わかる?

まあ、「初心者スレが見つからないので」とか言ってるが
質問なんかせめて初心者本の数冊も読破してからにしてくれよ。

846 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 00:18:41 ]
こういうのっておおっぴらに使うか悩んだりしない?
まあ、ネット上で見つけた情報を利用したって立場をとるんだがw


847 名前:826 mailto:sege [2007/06/25(月) 00:19:44 ]
>829
遅くなって申し訳ない、ありがとうございます。

848 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 02:40:29 ]
>>846
「こういうの」ってのが何を指してるのかさっぱり。

849 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 07:24:33 ]
>>839


850 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 11:33:11 ]
>>841
ユーザコントロール作れ



851 名前:デフォルトの名無しさん [2007/06/25(月) 14:55:01 ]
誰か助けてくたざい。
VB2005で、プログラムが完成して、動作を確認できました。
そこまではよかったのですが、実行ファイルを共有フォルダー(サーバーに)
において、実行すると、どうしても実行できません。実行できたとしてもまともに動作しません。
これの解決策だれか知りませんか?


852 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 14:58:26 ]
ヒント:カレントディレクトリ

853 名前:デフォルトの名無しさん [2007/06/25(月) 15:04:38 ]
サーバに実行ファイルがおいてあるんだろ?
普通は実行できないだろ.
MSDNに書いてある.

854 名前:デフォルトの名無しさん [2007/06/25(月) 15:06:36 ]
>853
それを実行する方法を知りたいのです。

855 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 15:26:09 ]
素人にはおすすめしないがポリシーをいじる。
コントロールパネルの管理ツールの
.NET Framework 2.0 Configuration ランタイムセキュリティポリシー
(他をいじってなければ)コンピュータのコードグループのAll_Codeの下に
新規作成の条件の種類を選択するでURL:\\サーバー名\共有名\*
アクセス許可セットFullTrust

インストーラを作るかClickOnceを使うかかサーバーからローカルにコピーさせるかをすすめる。

856 名前:デフォルトの名無しさん [2007/06/25(月) 16:12:33 ]
むしろこれはVB.NETの問題ではないな・・・

つうか、あれか・・・クリックワンスのまえのやつやりたいのか?
名前忘れたけど

857 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 17:23:03 ]
ノータッチ デプロイメント?

858 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 17:39:38 ]
気持ちは良く分かる。

正直セキュリティが云々言われても無駄に面倒くさい。

ちょちょっとしたものを作って共有しようとしても
インストーラやらClickOnesやら、、、。


ちょっと話がずれるが必要なDLLとかは、実行ファイルへ含めるもしくはフォルダ等へ
指定できたら良いのに。
この時代に容量削減も糞も無いだろう。

実行ファイル1Gとか上等じゃねーか。

859 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 22:59:56 ]
質問です。
いまFramework1.1で勉強中なのですが
1.1のNotifyIconはバルーン?が表示できなかったので
いろいろ調べて
ttp://supware.net/?notifyiconex
に辿りつきました。

このクラスを使うとバルーンは表示できるのですが、
ContextMenuがどうしても表示できません。ContextMenuのPopupイベントは反応あるのですが・・・

色々検索してみて大量にヒットするC#のコードを見る限りおかしい所は
自分の力量では発見できないので、ヒントでも構いませんので助言をお願いします。
環境はWindowsXP、Framework1.1、メモ帳です。

以下のコードを同上のクラスの下に書き、コマンドプロンプトでコンパイルしています。
Module Test
Private myForm As Form
Private notifyEx As NotifyIconEx
Private cMenu As ContextMenu
Sub Main()
cMenu = New ContextMenu
cMenu.MenuItems.Add("Item1")
notifyEx = New NotifyIconEx()
notifyEx.Icon = New Icon("C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\ndpsetup.ico")
notifyEx.contextMenu = cMenu
myForm= New Form()
myForm.ContextMenu = cMenu
myForm.ShowDialog()
End Sub
End Module

860 名前:859 mailto:sage [2007/06/26(火) 20:49:34 ]
なんか俺の質問でスレが過疎ったみたいで・・・・(´・ω・`)

調べたらTrackPopupMenuExがうまく動作してなかったみたいなんで
試行錯誤してNotifyIconExのTrackPopupMenuExを修正して
ContextMenuがでるようになりました

はっきりと原因した原因はいまだ不明ですが
とりあえずしゅっくり勉強したいと思います。



861 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 21:47:38 ]
>>859
>Framework1.1で

今古いランタイム使う意味は何でしょう?
行きがかり上のしがらみ?それとも以前のもののバージョンアップ
でしょうか?もし新規アプリなら2.0以上でやるべきではないでしょうか?

862 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 21:59:18 ]
それは大きなお世話だと思うぞ。

863 名前:デフォルトの名無しさん mailto:sage [2007/06/27(水) 10:37:28 ]
>>859-860
コマンドプロンプトでコンパイルしている人間がここにはいないんだろう。

864 名前:デフォルトの名無しさん [2007/06/27(水) 13:17:50 ]
>>861
おまえ某MVP臭いぞ
仕事してたらわかるだろ? 仕方ないときもあるんだし

865 名前:デフォルトの名無しさん mailto:sage [2007/06/27(水) 16:04:39 ]
でも>>859の場合は多分勉強だよ?
VB.NET Expressでいいやん

866 名前:デフォルトの名無しさん mailto:sage [2007/06/27(水) 20:17:35 ]

ちょっと安めおまいら。これでも見ろ。知らない人間は えーーーーっと驚くこと請け合いだぜ。

「911」の真実とはダイジェスト版 ? 日本語と英語 ? .movフォーマット ? 31分 - 23MB
www.harmonicslife.net/gallery/main.php?g2_itemId=3443

「動画をダウンロード」 をクリックすると、動画が始まるまでに20分ぐらい待つと
自動開始する。

30分ぐらい待ってもよければこっちも見る。こっちは詳細バージョンだから、上のを見て
興味もったらぜひ見てみれ。

『911の嘘をくずせ ルース・チェンジ・セカンド・エディション』 日本語版 - ウェッブ・バージョン ? .mov フォーマット ? 83分 - 83MB
www.harmonicslife.net/gallery/main.php?g2_itemId=1225

要するに俺らはこういう戦争に加担しちまった。おれも当時は小泉に賛成しちまって
ネットで賛成派に回っちまったよ。だが悪いことだった、北朝鮮のミサイルが来るって
ことでアメリカとは同盟するしかないって信じ込んでた。しかしこれを見れば、
ちょっと待て日本はこれでええのか?と疑問になるはず。



867 名前:デフォルトの名無しさん mailto:sage [2007/06/27(水) 20:26:46 ]
003はフランソワーズ   まで読んだ

868 名前:859 mailto:sage [2007/06/27(水) 22:52:37 ]
>>861
確かに勉強中なんですが、職場にはFramework1.1のvbc.exeしか
はいってないので昼休みとかにも弄るために1.1でやってます。
基本はそんな変わらないだろうってことで。
職場はネットにも繋げないんでヘルプもクラスライブラリをHTMLで保存して
CDに焼いて持ち歩いてたりします。
家にはVB2005Expressインストールしてあるんですけどね・・・

>>863
やっぱ危篤な人種なのか・・・
dllとかを毎回入力するのが億劫なんで
簡単なHTA作ってコンパイルしてます。
とか言ってたらこんなん見つけました
ttp://www.sliver.com/dotnet/SnippetCompiler/

ところで、
「FileSystemWatcherで共有フォルダにあるExcelファイルが更新された場合にバルーンでその旨を表示」
というコンセプトで勉強アプリを作り始めたのですが、
Excelは「開く」「閉じる」だけで、更新日時が変更されNotifyFilters.LastWriteを設定しても
正確な情報が取れないことが分かりました・・・
自分で考えつくのは、

変更されたらファイル名と更新日時の値を保持して次に同名ファイルが更新されたら比較する

といったものなのですが、もっと良い案や確実に更新されたのを取得できる方法がありましたら
アドバイスお願いします&このスレの住人さんはレベルが高そうなんで
素人はこっちいけや〜的なスレがありましたら誘導していただけると嬉しいです

ここからずっと俺のターン?(´・ω・`)



869 名前:デフォルトの名無しさん mailto:sage [2007/06/28(木) 01:44:00 ]
>このスレの住人さんはレベルが高そうなんで
ナニヲイッテイルンダ


定期的にファイルのハッシュ比較するとか
前回保存日時で比較するとか
すりゃいいんじゃね?

870 名前:デフォルトの名無しさん [2007/06/28(木) 09:05:36 ]
みなさんこんにちは。お尋ねします。

通常のLabelですと後ろに引っ込んだ3D形状はあるものの
手前に出っ張った形状は付属されていないのですが、
どこかのサイトで、手前にふくらみのあるラベルコントロールなどが
あるところをご存知ないでしょうか?

それともこういったものは有料のものになるのが普通でしょうか?
昔、LabViewというものを触ったことがあり、それには手前に出っ張って
いるガジェットがたくさんあったのを記憶しています。あれと同じような
感じに見えるものがほしいのですが、

もしご存知の方がおられましたら教えて戴きたく、
なにとぞよろしくお願いします。





871 名前:デフォルトの名無しさん mailto:sage [2007/06/28(木) 10:00:47 ]
>>870
LabelのPaintイベントで自分で描画する。
例えば
Label1のPaintイベントに
e.Graphics.DrawRectangle(New Pen(SystemColors.ControlDarkDark), New Rectangle(0, 0, Label1.Width - 1, Label1.Height - 1))
e.Graphics.DrawLine(New Pen(SystemColors.ControlLightLight), 0, 0, Label1.Width - 2, 0)
e.Graphics.DrawLine(New Pen(SystemColors.ControlLightLight), 0, 0, 0, Label1.Height - 2)
微調整はお好みで。

872 名前:デフォルトの名無しさん [2007/06/28(木) 10:08:31 ]
>>871
これって、自分で描画できるものなのですか!凄い。
ありがとうございます、やってみます。助かります。

873 名前:デフォルトの名無しさん mailto:sage [2007/06/28(木) 15:51:21 ]
>>871
直接描画するんじゃなくてControlPaint.DrawBorder3Dを使うべき

874 名前:デフォルトの名無しさん mailto:sage [2007/06/28(木) 16:18:24 ]
数字をアルファベットに変換する場合、みんなはどうしてる?
たとえば、99ならninety nineとか、11ならelevenとかに変換したいんだけど(´Д⊂グスン

875 名前:デフォルトの名無しさん mailto:sage [2007/06/28(木) 16:28:51 ]
自前で実装

876 名前:871 mailto:sage [2007/06/28(木) 16:30:14 ]
>>873
Private Sub Label1_Paint(ByVal sender As System.Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles Label1.Paint
ControlPaint.DrawBorder3D(e.Graphics, Label1.ClientRectangle, Border3DStyle.Raised, Border3DSide.All - Border3DSide.Middle)
End Sub
こんな感じでいいかな?

877 名前:デフォルトの名無しさん mailto:sage [2007/06/28(木) 16:52:48 ]
>>875
めんどくさい(´Д⊂グスン

878 名前:デフォルトの名無しさん mailto:sage [2007/06/28(木) 16:55:33 ]
>>877
このスレで一番言ってはならないことを言ったなw
もう誰も答えてくれんよw

879 名前:874 mailto:sage [2007/06/28(木) 17:07:53 ]
>>878
んだねw
↓探したらいろいろあった
www.google.co.jp/search?hl=ja&q=NumberToWord%E3%80%80C%23&btnG=%E6%A4%9C%E7%B4%A2&lr=

880 名前:デフォルトの名無しさん [2007/06/28(木) 17:26:07 ]
>>873>>876

こちらもやってみました。

実は、ユーザーコントロールで複合したものでやってみてるのですが、
Label と TextBox の組み合わせで同じ UserControl に乗っけてまして、

その際、ClientRectangle の Inflate とかが必要のようですね。+2ぐらいしないと
外形が遇わないようです。

ところで、この Raised を使った場合、それを通常の BorderStyle プロパティに
追加して選択できるようにもしたいのですが、UserControl なのでPropertyを
Overrideして追加するとしたら、どういった感じにすると出来るでしょう?
ご指導戴ければありがたいです。



881 名前:デフォルトの名無しさん [2007/06/28(木) 17:28:11 ]
普通にプロパティつくってその中でいじってやればいいんじゃねぇ?
やり方は好みだとおもうんだが・・・・

オーバーライドする必要がないと思うから

882 名前:デフォルトの名無しさん mailto:sage [2007/06/28(木) 17:32:32 ]
>>880
UserControlじゃなくてLabelクラスをオーバーライドするほうがスマート

883 名前:882 mailto:sage [2007/06/28(木) 17:33:38 ]
すまんオーバーライドじゃなくて継承ね

884 名前:880 [2007/06/28(木) 19:31:41 ]
>>881
なるほど、UserControl だと、そのものの Property になるということですね。

わかりました、助かりました。

>>882-883
そういう方法もあるということですね。今こちらのはTextBoxと他にもうひとつ
Labelも使ってたので、むずかしそうだったため、UserControl にしてしまってました。
たぶんよく理解していればできるのだと思うのですが、組み合わせコントロールとしては
デザインモードでの視覚的な組み合わせが楽な UserControl にしてました。

その方法での実現についてはまた勉強して考えてみます。

885 名前:デフォルトの名無しさん mailto:sage [2007/06/29(金) 11:25:32 ]

user.configの仕様どうにかならないかなー。
MySettingsで保存する際に、保存場所を指定できたらすごく便利なのに。。

バージョンごとに保存先が変わるとか、どうしてこんな糞仕様なのか。
せめて選べたら良いのに。

886 名前:デフォルトの名無しさん mailto:sage [2007/06/29(金) 11:40:44 ]
>>885
MSDNみたら
user.config は System.Windows.Forms.Application.LocalUserAppDataPath プロパティで指定した場所に配置されます。
とある。
試して無いけど。

887 名前:デフォルトの名無しさん mailto:sage [2007/06/29(金) 12:38:34 ]
っていうか、恥ずかしいからMy爺さんの機能なんか使うなよw
リソースにアクセスする用途しか使ったことないぞ俺は

888 名前:デフォルトの名無しさん [2007/06/29(金) 12:39:42 ]
質問です
VB(どういうかVSのマクロ)で、ドキュメントウィンドウに文字を出力する際に
入力する文字列に,(カンマ)が含まれるとE_FAILが帰ってくるんですが
これをどうにかして,,,,見たいなのも出力できるように出来ませんかね?

具体的に言うならこういうの↓
DTE.ActiveWindow.Selection.text += "nullpo,,"
でエラーなしにする方法、,,で打ち切られないようにする方法が知りたいのです

889 名前:デフォルトの名無しさん [2007/06/29(金) 12:43:54 ]
>>887
設定保存とからくじゃないかw
俺はSettingとResource使ってるな

890 名前:885 mailto:sage [2007/06/29(金) 13:05:37 ]
>>886
おお!

どうもです。
ちょっと調べてみようっと。


>>887
初めちょっと嫌だなーとか思ったけど、使ったら超便利だった。
サクサク保存できる。



891 名前:885 mailto:sage [2007/06/29(金) 15:53:01 ]
>>886
Read only でした。

892 名前:デフォルトの名無しさん mailto:sage [2007/06/29(金) 17:00:10 ]
次のようなクラスを作成する場合、

aaa.bbb()
aaa.ccc.xxx()
aaa.ccc.yyy()
aaa.ddd.zzz()


Public Class aaa
Public Sub bbb()
〜〜〜
End Sub

次のコードは??

End Class

教えて下さい。

893 名前:デフォルトの名無しさん [2007/06/29(金) 17:08:31 ]
適当に
やり方はいろいろだと思うけれど・・・・とりあえずで

public class c_ccc
public sub xxx
end sub

public sub yyy
end sub

end class

public class d_ddd

public sub zzz
end sub

end class

public class aaa

public ccc as new c_ccc
public ddd as new d_ddd

public sub bbb
end sub

end class


894 名前:デフォルトの名無しさん [2007/06/29(金) 17:33:47 ]
>>893
thx

895 名前:デフォルトの名無しさん mailto:sage [2007/06/29(金) 20:45:04 ]
サーバに置いたexeを動かすのにexeと同じ場所にMicrosoft.VisualBasic.Compatibility.dll
が無いと動かないPCと無くても動くPCがあるのは何故なんでしょう?
OSは2KだったりXPだったりだけど、どっちでもなるのならないのあるし、
もちろんみんな.netフレームワーク1.1は入ってるし
(動かないPCでもそのDLL置いただけで動くようになった)

896 名前:デフォルトの名無しさん mailto:sage [2007/06/29(金) 22:40:14 ]
>>895
.netを再インストしてみよう
com登録してなくても検索パスにdllをおいただけで動くよ

897 名前:デフォルトの名無しさん mailto:sage [2007/06/29(金) 23:04:34 ]
>>896
thx
XPだと.netプリで入ってるけど、一度アンインストールして再インストールすればいいのかな?
一度試してみます

898 名前:デフォルトの名無しさん mailto:sage [2007/06/29(金) 23:10:12 ]
>>895
プログラムがバージョン違いのMicrosoft.VisualBasic.Compatibilityを参照してる ってことはない?
.NET 1.1 なら ver. 7.0.3300.0 のはずだが。.NET 2.0は Ver.8.0.0.0 。
あと.NET 1.1 のSPで差が出るかどうかはわからないがその辺も調べてみて。

899 名前:デフォルトの名無しさん mailto:sage [2007/06/30(土) 05:23:45 ]
こんにちは、お尋ねします。

各種オブジェクトのイベントの発生順序に関する一覧表のようなものは
どこかのサイトで公開されていたでしょうか?

(例えば TreeViewコントロールのTreeNodeをクリックした後の各種イベント
MouseClick,Click,OnBeforeSelect,OnAfterSelect などの発生順序、等です)

こうしたものはすべてのイベントについて実験していくことは可能なのだとは
思いますが、できたら理論的に分っているものがあれば、そのほうが正確で早い
と思いました。

もしご存知でいらっしゃいましたら教えて戴きたく。よろしくお願いします。

900 名前:デフォルトの名無しさん mailto:sage [2007/06/30(土) 06:26:29 ]
強いて言うならMSDN



901 名前:デフォルトの名無しさん mailto:sage [2007/06/30(土) 10:34:09 ]
つか常識的にMSDN

902 名前:デフォルトの名無しさん mailto:sage [2007/06/30(土) 11:44:35 ]
MSDNとS・G・G・Kって何か似てるよな

903 名前:デフォルトの名無しさん mailto:sage [2007/06/30(土) 12:44:35 ]
たぶん OnBeforeSelect は OnAfterSelect の前

904 名前:デフォルトの名無しさん mailto:sage [2007/06/30(土) 12:52:13 ]
>>899
そういうこと言いたい気持ちはよく分かるんだけど、
実際自分で試すのが一番正確で速いでしょ、どう考えても。

というか、まあ一概には言えないけどコントロールのイベントの発生順序に
依存するコードというのは、ちょっと不吉な匂いがするよ。

905 名前:デフォルトの名無しさん mailto:sage [2007/06/30(土) 14:43:50 ]
>>904
禿同
特にツリービューは気をつけたほうがいい

906 名前:デフォルトの名無しさん mailto:sage [2007/06/30(土) 15:05:28 ]
>>900-905

MSDNですと、発生順序に関しては必ずしも明記されていないように思いました。

確か本にはFormのLoad時とClose時のものなどが掲載されているものがありました。
それと同様の情報がどなたか公開されているのではないかと思ったのでした。

それでは、また調べてみます。ありがとうございました。

907 名前:デフォルトの名無しさん mailto:sage [2007/06/30(土) 16:34:26 ]
明記されていない場合は順番を当てにしない方がいいと思うよ

908 名前:デフォルトの名無しさん [2007/06/30(土) 22:22:46 ]
自分でConsoleWriteでもつかって調べればいいだろうに・・・・

909 名前:デフォルトの名無しさん mailto:sage [2007/06/30(土) 22:36:44 ]
俺も前にトレイからの復帰時にtreeview関係のイベントが起きて困ったもんだ

910 名前:デフォルトの名無しさん mailto:sage [2007/07/01(日) 12:29:39 ]
順番を当てにされたくないから意図的に明記してないのかもしれないし



911 名前:デフォルトの名無しさん mailto:sage [2007/07/01(日) 12:40:46 ]
いやそういう問題でももちろんあるんだけど、
「イベントの順序に依存したコードの不吉な兆候」というのは、
仮にそれ(イベントの順序)が確定しているとしても、それを人間が正しく
認識していないと意味を把握できないコードになりがちだから
保守性や拡張性の点で問題があるということでしょ。

912 名前:デフォルトの名無しさん mailto:sage [2007/07/02(月) 15:37:39 ]

GroupBoxの線の色を代えられないとか、どんな仕様にしてるんじゃ.NETは〜!!

ちょぼちょぼ、痒い所に手が届かない風にコントロールなどが
作られてあって面倒くさい。

つうか、折れも画面を作る前に気が付けよ・・・。
は〜〜〜。orz

913 名前:デフォルトの名無しさん mailto:sage [2007/07/02(月) 15:51:28 ]
馬鹿の要望きいてるほどMSも暇じゃないんじゃね?

914 名前:デフォルトの名無しさん mailto:sage [2007/07/02(月) 16:01:51 ]
文句はチラシの裏に書け。
質問なら、素直に聞け。
思わせぶりな文章書いて、対策案を貰おうとしている様が見え見えで引く。

915 名前:デフォルトの名無しさん mailto:sage [2007/07/02(月) 16:32:44 ]
>>913-4
すいません。愚痴でした。
確かにチラシの裏に書いとけば良かったです。

まあ、もう、解決したんですが、その方法もチラ裏に書いときますわ。

いや、しかし.NETはほんとに、ちょっと足りないよ。
DateTimePickerは空に出来ないとか、FileDialogでフォルダとファイルの選択が〜とか。
ま、こちらも解決しているんで、今となってはどうでも良いですが。


916 名前:デフォルトの名無しさん mailto:sage [2007/07/02(月) 17:56:26 ]
>>915
だからチラシに書けよ。書き込むな。

917 名前:デフォルトの名無しさん mailto:sage [2007/07/02(月) 17:58:22 ]
質問スレに愚痴てwwwwwどんだけwwwwwwwww

918 名前:デフォルトの名無しさん [2007/07/02(月) 18:16:42 ]
>>915
>いや、しかし.NETはほんとに、ちょっと足りないよ。
いや、足りないのは君の頭と想像力と解釈力

919 名前:デフォルトの名無しさん mailto:sage [2007/07/02(月) 20:05:50 ]
>>915
標準コントロールの機能が十分だったらサードパーティ涙目だろが

920 名前:デフォルトの名無しさん mailto:sage [2007/07/02(月) 20:16:06 ]
というより、たまたま俺様が欲しいと思ってる機能がないのは何でじゃ〜(ムキー)
っていうのはちょっと精神病チックだよね正直w

まあ20%ぐらいは共感できる部分もあるけど、ドトネトの場合比較的簡単に
コントロールの機能が拡張できるから俺はそんなに不満はないなあ。

ただ、ToolStrip関係はもう少しなんとかならなかったのか?とは思わんこともない。
クラスライブラリ的に醜すぎるし、拡張がしづらいんだよねToolStrip関係は。



921 名前:デフォルトの名無しさん [2007/07/03(火) 12:01:30 ]
業界未経験ですが、PGの面接に行ったらVB6をやってもらうと言われました。
現職場でVB.NETではアプリケーションを作ったこともあり、受注先に納品した
り、社内でのデータベースを構築した経験(図書管理など)もあります。

.NET→VB6へ下がってしまうのがなんか時代に逆行するようで嫌なのですが、
.NET→VB6への移行(頭の切り替え?)はやっぱり難しいものでしょうか?
一応、エクセルのVBAはフォームまわりやファイル処理はできます。

922 名前:デフォルトの名無しさん [2007/07/03(火) 12:13:28 ]
VBA+αくらいで考えとけばいいんじゃない?

意向が難しいかどうかは人それぞれだけど たぶん君なら大丈夫

ただ・・・いろいろ.netならなぁ・・
とか思うことは多いだろうな・・・・

923 名前:デフォルトの名無しさん mailto:sage [2007/07/03(火) 14:02:48 ]
If文とか書いたとき、自動でEnd Ifを挿入してくれなくてイラつくと予想。

924 名前:デフォルトの名無しさん mailto:sage [2007/07/03(火) 14:03:27 ]
VB.NETなら誰が書いたコードでもそれなりに理解できるが
アホがVB6で書いたコードは何がどうなってるのか読むのが大変

925 名前:デフォルトの名無しさん [2007/07/03(火) 14:05:35 ]
2005のWindows.Formアプリで質問です。

DataGridViewのコンボボックスカラムを使用してデータを選択させています
このデータはDataSourceで指定されたデータを使用しています。

問題はこの後で、データの文字がセルの幅を超える場合、ドロップダウンが表示されたときにすべて表示されない状態になっています。
オーナードローすればいいんでしょうが、幸いDropDownプロパティがあるのでこれを使いたいと思います。

このとき、普通であれば表示させるデータをなめてMeasureStringで最大幅を設定するのでしょうが
データ取得に時間がかかりデータ数が多いこともあり、できるだけループで回すようなことをしたくありません。

もし何か回避する方法があるのであればお教え願えませんか?
もし無いのであれば諦めてデータをなめて最大幅を設定しようと思います。

926 名前:デフォルトの名無しさん mailto:sage [2007/07/03(火) 14:24:00 ]
>>925
AutoSizeMode = AllCells でいいんじゃない?

927 名前:デフォルトの名無しさん [2007/07/03(火) 14:31:51 ]
>>926
あ〜そういう手がありますね
早速やってみたところドロップダウンが奇麗に表示されました。
長い文字を選択するとセルのサイズ変わっちゃうけど、まぁこれはこれで取りあえず置いておいてつづけようかと思います。
(Keyの項目なので表示しきる必要はあると考えて)

回答ありがとうございました。

928 名前:デフォルトの名無しさん mailto:sage [2007/07/04(水) 05:41:03 ]

ところでおまいら少し安め。

ベンジャミンフルフォード 「日本はここから侍のこころを取り戻そう!」
www.harmonicslife.net/PodCasts/2006/Yumi20061013Podcast_911Fulford.mp3



929 名前:デフォルトの名無しさん mailto:sage [2007/07/04(水) 18:07:03 ]
文字コードの自動判別ができるのはどのバージョンのVB.NET?

930 名前:デフォルトの名無しさん mailto:sage [2007/07/04(水) 18:20:07 ]
むしろその日本語ってどんなバージョンだよw
頭おかしいんじゃねえの



931 名前:デフォルトの名無しさん mailto:sage [2007/07/04(水) 20:38:56 ]
多分それができるころにはVBはなくなってると思う

932 名前:デフォルトの名無しさん mailto:sage [2007/07/04(水) 22:10:25 ]
C:\WINDOES\fontsのなかにあるEUDC.TTEをローカル(C:\copy)にコピーしたいんですが、
System.IO.File.Copyを使ってもwindowsに変な影響出たりしませんか?

933 名前:デフォルトの名無しさん [2007/07/04(水) 23:39:43 ]
DatagridViewでデザイン時にカラムを追加してPropertyName設定してテーブルをバインド

データソースの中身Dispose+Nothing

同じ構造の別テーブルをDataSourceにセット

最初にデザイナで追加しておいたカラムがDataGridViewのColumnsから消えてる

( ゚Д゚)ポカーン
気付くまで30分かかったw

934 名前:932 mailto:sage [2007/07/05(木) 09:36:36 ]
自己解決しました。

935 名前:932 mailto:sage [2007/07/05(木) 12:26:34 ]
↑って誰ですか?
解決してないんですけど

936 名前:デフォルトの名無しさん mailto:sage [2007/07/05(木) 12:35:11 ]
>>932
削除とかならまだしも、普通にコピーとるだけなんだろ?なにを心配してるんだ?
馬鹿らしくてみんな答えないだけだよ。

というか自分で試せることだろ?
心配なら復元ポイントでもつくってやってみろ。

937 名前:デフォルトの名無しさん [2007/07/05(木) 13:18:45 ]
>>936
こういう馬鹿は試しもせずに聞いてくるからたちが悪い
失敗から学ぶことのほうが多いというのに

938 名前:デフォルトの名無しさん [2007/07/05(木) 19:27:17 ]
コンポーネントってデザイナでフォームじゃなくなんか下の方に置かれるじゃないですか?
カスタムコンポーネントを作ろうとした場合、どうやってフォームの情報を取得するんですかね?

939 名前:デフォルトの名無しさん mailto:sage [2007/07/05(木) 19:29:12 ]
Containerをフォームの型にキャストすればいいんだけど
そうするとコンポーネントとして分離した意味がなくなるからそういうのはダメ

940 名前:デフォルトの名無しさん [2007/07/05(木) 19:45:04 ]
ぇぇー、ダメって、例えば貼り付けるだけでフォームの特定のコントロールにほにゃららな
機能を追加するってようなのもダメぇ?コントロールをカスタムるより楽じゃん?



941 名前:デフォルトの名無しさん [2007/07/05(木) 20:15:37 ]
OSのGUIを使わず、アカウントがビルドインユーザ
であるかそうでないか判断する方法しっている方
いましたら、教えて欲しいです。
Visual Basic .NET プログラムで実装します。
 コマンド、Win32_API 、レジストリ、WMI
でもかまいません。

942 名前:デフォルトの名無しさん [2007/07/05(木) 20:20:07 ]
いや・・・いろいろ方法ありますよ

943 名前:941 [2007/07/05(木) 22:20:28 ]
ちょっと文章がおかしかったっす
Visual Basic .NET プログラムで実装します。
クラスライブラリ、コマンド、Win32_API 、レジストリ、WMI
どれか1つでかまいません ということです




944 名前:941 [2007/07/05(木) 23:02:18 ]
自己解決しました。

945 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 00:14:09 ]
>>940
どうやんのそれ
プロパティで対象のコントロールを直接指定するの?
それなら>>938みたいなことをする必要は全くない
フォームの特定のコントロールを勝手に参照したら
そのフォームに依存してしまうだろ

946 名前:デフォルトの名無しさん [2007/07/06(金) 02:50:00 ]
>>941
なに使ったの?
俺は調べきれなくって 時間なかった時だったんでNetUserEnum 使ったんだが


947 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 04:01:19 ]
WindowsPrincipal じゃね?

948 名前:デフォルトの名無しさん [2007/07/06(金) 06:31:03 ]

Objectクラスの MemberwiseClone メソッドについて教えてください。
これで Clone を作って調べてみると、

  cntrlClone = DirectCast(cntrl.MemberwiseClone, コントロールのタイプ名)

ここで、元のオブジェクトインスタンスと別ものらしいこと

  cntrlClone IsNot cntrl  は True 

はわかったのですが、Control でこれを使って作ったCloneを操作すると、
元オブジェクトのインスタンスが操作されてしまいました。

この cntrlClone の Size や Location を変えると、元の cntrl が動いてしまい、
cntrlClone の方は該当の場所には現われてすら来ませんでした。

MemberwiseClone メソッドで作成されるCloneというのは、どういうものなのか
今一よくわからず、これは別のインスタンスを完全に別ものとして作成するのでは
ないということでしょうか、あるいはまた扱い方に問題があるでしょうか。

よろしくお願いします。

949 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 06:51:01 ]
>>948
MemberwiseCloneは直接のメンバーのコピーしかしない。
メンバーとして参照型のオブジェクトを持っていた場合は参照しかコピーされないので
コピーされたオブジェクトは同じ子オブジェクトを参照することになる。

950 名前:デフォルトの名無しさん [2007/07/06(金) 07:16:55 ]
>>949

その 「メンバー」 の意味するものとは、元オブジェクトのフィールドのことですよね、

しかし、Clone 自体のインスタンスは、明らかに、元オブジェクトのインスタンスとは
別物になるはずですよね?

それが、cntrlClone と cntrl が別ものとして

   cntrlClone IsNot cntrl  は True 

とはなっているのに、cntrlClone を操作すると、どういうわけか、cntrl が動いて
しまうようなのです。cntrlClone と cntrl の両方が画面に現われるかと思っていると
片方しか現われないのです。つまり、cntrlClone はで来ていないかのように見える
のです。

こういうことはおかしいように思うのですが、よくわからないのでした。



951 名前:デフォルトの名無しさん [2007/07/06(金) 07:20:06 ]

それとも、cntrlClone への操作が、自動的に cntrl 側にも同時に伝わってしまって
同時に2つとも同じ操作の対象になってしまっているのでしょうか??

まさかそういうことはちょっと信じられないのですが・・・。

952 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 07:37:17 ]
class B { public int Ope() { .. } }

class A {
  B b = new B();
  public int Ope() { return b.Ope(); }  
}
こういう構造ならいくらAのクローンを作ってもBはひとつ。
a もクローンa もインスタンスは違っても共通の動作になるだろ

953 名前:デフォルトの名無しさん [2007/07/06(金) 07:54:52 ]
>>952
そのおっしゃってることの意味は>>949の意味かと思いますが、

画面にすでに cntrl があった場合に、>>948のように

  cntrlClone = DirectCast(cntrl.MemberwiseClone, コントロールのタイプ名)

のようにして作成した場合、実体として cntrl と cntrlClone は別モノで、
別々のコントロールとして作成されるとすれば、

  cntrlClone.Top = cntrlClone.Top + 10

と操作したら、cntrl の Top が +10 してしまうのはおかしいのではないかと・・・

それとも、cntrl が何かの派生であった場合、Baseクラスに対しても Clone を
別に作成しないといけない、というようなことなのでしょうか?まさか


954 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 08:13:15 ]
Windows.FormsのFormやらButtonがどういう構造になってるかは知らんが、
実体はWin32のアンマネージドリソースなんだから、
SizeやらLocationやらは毎回Win32のリソースに問い合わせてる可能性が高いぞ。
そうなると両方のオブジェクトが同じハンドルのWin32リソースを操作するわけだから
同じになるのは当然だろ。
ICloneable.Cloneが実装されてないのに、中身もわからないクラスのクローンを作るのは
無謀だと思うぞ。

955 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 08:19:32 ]
>>953
既に954が書いてるし、俺はあまりWin32に明るくないんだけど、
要するに、例えばFormにTextbox1があるとして、Form上に見えている
テキストボックスはTextbox1そのものではなく、「Textbox1が内部にもっている何物か」
に過ぎないということなんでしょう。

それなら話の辻褄あうでしょ。

956 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 08:44:23 ]
>>954-955

どうもです、やっぱり 

  cntrlClone = DirectCast(cntrl.MemberwiseClone, コントロールのタイプ名) ・・・[1]

で コントロールの別実体の Clone が作れると思わない方がいいでしょうか?

ICloneable.Clone については、
www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?forum=7&topic=27051

なども参照してみて実装してみたりしてますが、この使い方では結局 Clone
の作成は [1] でやっているんですよね。

普通に最初から New でコンストラクトして、必要なフィールドなどを値でコピーして
地道に作成するほかないでしょうか。そうなると、 MemberwiseClone の利用方法が
今一不明になるわけですが・・・どうもよくわかりません

957 名前:デフォルトの名無しさん [2007/07/06(金) 08:48:58 ]
>>956

あっ、これ書いてみて今気がつきましたが、この参照サイトにあるのは [1] ではなく、

  Dim hWankuma As WankumaData = DirectCast(Me.Clone(), WankumaData)

・・・
Private Function Clone() As Object Implements System.ICloneable.Clone
Return Me.MemberwiseClone()
End Function

となってるところが違うのか・・・、もしかしてこれでしたか?ちょっとやってみます。
だとしたら自分の使い方のミスですね。飯食ってからやってみてまた報告します。
どうもでした。

958 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 09:41:34 ]
ああ、くそう
ここで交わされる会話がスラスラ理解できるようになりたいw

959 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 11:14:28 ]
たいしたこと言ってないから

960 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 12:36:43 ]
>>956-957
なんか書いてること読むと基本が理解できてない感じ。
自分でクラス作れない人?

だったら場当たり的な「調べ方」では永遠に埒あかないと思うよ。

少なくともクラスと構造体の区別が理解できていれば、
フィールドの値(オブジェクトのメモリーイメージ)だけ複製しても
無意味な場合があることはすぐ理解できるはず。




961 名前:デフォルトの名無しさん [2007/07/06(金) 12:58:22 ]
>>960

うーん、おっしゃってることは分ってるつもりですが、
要はコントロールの複製を作るにはこういうメソッド使えない
ということでしょうか?

もし使えるとしても、では後何をどうすれば複製を作成できるようになるでしょう?

毎回、Newでコンストラクトして作成して、それにフォールド値をいちいちコピーする
やり方では、クラスをバージョンアップしてフィールドが増えたりするたびにそこに
手を入れる必要があるので忘れやすく、そういうことを防止するためにはこのメソッドを
使うほうがいいという感じで書いてあるところが多くあるかと思います。

では、現実の実体としてコントロールをこのメソッドも使って複製したい場合、
どれとどれとどれのどのような手続きをへて可能になるのか、それが知りたいのですが、
現状の知識ではわかりません。またそうした使い方をして説明してあるサイトが見つからない
のです。

ちなみに、当然というか、>>957で試してみてもやっぱりだめでした。まー同じことだろうとは
思ってましたが、やっぱりその通りでした。


962 名前:デフォルトの名無しさん [2007/07/06(金) 13:03:03 ]
>>954-955のご指導もありましたが、もしオブジェクトの実体を指すインスタンスが
別途にできていないのだとするとそういうことになるのかもしれませんが、
しかし、たとえフィールド値のコピーだけだとしても、そうだとすると、コントロールの
実体を指すプロパティが他にあって、それのCloneを作成する必要があるということ
でしょうか?

もしよろしければ、その辺をご指導いただけますか?

963 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 14:27:19 ]
>うーん、おっしゃってることは分ってるつもりですが、
ダウト


>コントロールの 実体を指すプロパティが他にあって、それのCloneを作成する必要があるということ
>でしょうか?

大雑把にいうと
Control ->
NativeWindowクラスのプライベートフィールド->
IWin32Window(Win32ハンドルのラッパ)->
アンマネージドの世界

素直にICloneableを実装して必要なフィールドを自力で埋めろ、ってこった。


964 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 15:21:46 ]
意識的に自分で使ってるプロパティだけ新しいオブジェクトに移せばいいだろ
コントロールなんて大概「同じもののように見える」で十分
手軽にできるようにしたかったら,
コントロールの初期化をラップしといて簡単に再現できるようにするとか

965 名前:デフォルトの名無しさん [2007/07/06(金) 15:28:26 ]
>>963
どうもです。

おっしゃてることは、ですから、要するに、

>>957
Private Function Clone() As Object Implements System.ICloneable.Clone
  Return Me.MemberwiseClone()
End Function

の中の Return Me.MemberwiseClone() は使えません(>>961の通り)ということで、
全部毎回フィールドを自分で世話するという、以前からある手法でやるほかない、
ということなのですね。

つまり、少なくともコントロールに関するかぎり、 MemberwiseClone() は有効にはならず
利用できない、ということで納得するほかないと・・・。わかりました、ということはせっかく
MemberwiseClone() というメソッドが継承されていても、使えないメソッドなのだという
ことなのですね、少なくともControlクラスにおいては。

ではやはりそのようにするしかなさそうですね。ご指導感謝します。

966 名前:デフォルトの名無しさん [2007/07/06(金) 15:29:58 ]
>>964

同様のご意見ということで、わかりました。無理そうなので
結局そういう感じでやることに致しました。

967 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 16:42:48 ]
>Dim hWankuma As WankumaData = DirectCast(Me.Clone(), WankumaData) 
Wankumaってここを見たんだろうけど、
blogs.wankuma.com/jeanne/archive/2006/04/06/22272.aspx
blogs.wankuma.com/jeanne/archive/2006/04/07/22287.aspx

ICloneableの実装の説明としてみると例えとして変なので軽く理解したら他をあたったほうがいい。

968 名前:デフォルトの名無しさん [2007/07/06(金) 17:03:04 ]
ADO.NETでウィザードを使ってデータベースに接続したり,コントロールに連結したりした
アプリケーションを配布する場合,データベースへのパスがユーザによって変わってくる
と思いますが,どこでConnectionStringの変更を指定したらいいのですか?

具体的には,ウィザードを使うとFormのRegion〜EndRegionの間にOledbConnectionに関する
記述がありますが,配布した時に最初にデータベースの位置をユーザが指定して,それを
レジストリに書き込みたいのですが,それに関する記述はどこに書いたらいいでしょうか?
Form_Loadですか?

969 名前:デフォルトの名無しさん [2007/07/06(金) 18:49:34 ]
CheckdListboxコントロールの継承に関して質問です。

このコントロールの中にあるItemsにAddやRemoveなどのコマンドがありますが、
こちらを継承、もしくはItemsにメンバー変数などを追加するには
どのようにすれば良いのでしょうか?

やりたい事は、CheckdListboxコントロールは、主にItemsの「Index、item、Checked」と
三つの情報を取り扱いますが、こちらに一つ追加したい。

現状は、CheckdListboxコントロールの継承クラスに、メンバーを追加して、
ItemAdd とか ItemRemove とかを作って無理やり実現させています。


970 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 18:50:50 ]
>>945
ヒント:ErrorProvider



971 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 22:52:48 ]
>>969
継承についてもっと勉強してください。
あなたの考えてることは不可能です。

972 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 23:02:22 ]
>>971
その前に君969の言ってることがわかるの?
俺にとっては>>969の文章はサッパリ理解不能なんだが。
きっとエスパーなんだね君は。

自分の勝手な想像と書いてあることの区別がつかない痛い奴でなければ。

973 名前:デフォルトの名無しさん [2007/07/06(金) 23:38:51 ]
>>972は自分でさっぱり理解不能な場合、答える人は
全てエスパーに見えるらしい。

…あ、釣りですか。そうですか。

974 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 23:43:46 ]
いや釣りじゃなくて嫌味ね。
しかし、嫌味が通じない人間の人生ってきっとさぞかし「楽しい」んだろうな。
おっと、この人嫌味が通じないんだったなw

975 名前:デフォルトの名無しさん mailto:sage [2007/07/07(土) 00:14:44 ]
くだらね。

976 名前:デフォルトの名無しさん mailto:sage [2007/07/07(土) 00:54:58 ]
なんか最近.net関連のスレに気違いが混じってるなぁ

977 名前:デフォルトの名無しさん mailto:sage [2007/07/07(土) 00:56:52 ]
「釣りですか」というのが嫌味だと理解できなかった可哀相な人がいるスレはここですか?

978 名前:デフォルトの名無しさん mailto:sage [2007/07/07(土) 01:01:31 ]
そういや「全てエスパーに見えるらしい」ってもの嫌味の部類だよなあ
通じなかったみたいだけど。

979 名前:969 [2007/07/07(土) 09:52:05 ]
自己解決しました。

980 名前:デフォルトの名無しさん mailto:sage [2007/07/07(土) 10:09:52 ]
>>932がさっきから腹いせにスレを荒らしている件



981 名前:デフォルトの名無しさん [2007/07/07(土) 10:26:25 ]
フォォムのLoad中〜Load完了までの状態を判定するにはどうすればいんですかね?
Visible=False Then じゃなんとなくダサいんですが

982 名前:デフォルトの名無しさん mailto:sage [2007/07/07(土) 10:49:43 ]
だれが判断したいわけ?


983 名前:デフォルトの名無しさん mailto:sage [2007/07/07(土) 12:29:48 ]
>>982
入社2年目のプログラマーです

984 名前:デフォルトの名無しさん [2007/07/07(土) 13:01:08 ]
自作コントロールのItemプロパティを作成したんだけど
出来ればデザイン時に項目を設定できるようにしたいんです。

確かシリアライズ出来るようにしなければいけないと思ったんですが
ちょっと情報が探せませんでした。
ご存知の方簡単で構いませんのでお教え願えませんか?


985 名前:デフォルトの名無しさん mailto:sage [2007/07/07(土) 13:18:26 ]
>>984
ん?propertyになっているなら、デザイン時に設定できるだろ?

986 名前:デフォルトの名無しさん mailto:sage [2007/07/07(土) 14:08:17 ]
>>984
悪いけど酷い日本語だなあ。何が言いたいのか意味わからんよ。

なので推測で答えるけど、プロパティグリッドで独自のUIを使いたいってことなら
多分ここの記事が参考になると思う。

www.comrade.co.jp/component/dotnetroom/index.htm

987 名前:デフォルトの名無しさん mailto:sage [2007/07/07(土) 14:18:56 ]
デザイナまで作ろうってんじゃなくて単にプロパティウィンドウに出したいだけじゃねぇの?
BrowsableAttribute属性付けるだけでいいレベルじゃないのか。

988 名前:デフォルトの名無しさん mailto:sage [2007/07/07(土) 14:25:21 ]
プロパティグリッドが俺やアンタの作った俺様コレクションの俺様アイテムの
編集方法を理解できるわけないでしょアホか。

989 名前:デフォルトの名無しさん mailto:sage [2007/07/07(土) 14:52:08 ]
日本語云々に拘っている変な人がいるよね。

990 名前:デフォルトの名無しさん mailto:sage [2007/07/07(土) 16:09:18 ]
向こうで書きにくくなったJittaが暴れているんだろ。



991 名前:デフォルトの名無しさん [2007/07/09(月) 12:13:11 ]
VB2005で、IEのプロキシを設定したいのだけど、コマンドがわかりません。
教えていただけませんでしょうか。

992 名前:デフォルトの名無しさん mailto:sage [2007/07/09(月) 12:17:34 ]
>>991
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings
のProxyServerの値をVBでいじればいい


993 名前:デフォルトの名無しさん [2007/07/09(月) 12:18:17 ]
>>991
どんな方法で設定するのか知らないけど
HKEY_CURRENT_USER\…\Internet Settings
このレジストリいじるのじゃなくって別の方法?

994 名前:デフォルトの名無しさん mailto:sage [2007/07/09(月) 12:45:49 ]
>>981
普通に書けば、メンバ変数
    Private m_loaded As Boolean = False
とプロパティ
    Public ReadOnly Property Loaded() As Boolean
        Get
            Return m_loaded
        End Get
    End Property
を持たせておいて、OnLoadで
    Protected Overloads Overrides Sub OnLoad(ByVal e As System.EventArgs)
        MyBase.OnLoad(e)
            m_loaded = True
    End Sub
でいいと思いますが。

>Visible=False Then じゃなんとなくダサいんですが
Boolean値をリテラルと比較するのは「ダサい」というより「間抜け」ですね。

>>988
>俺様コレクション
かどうかは判りませんが、それが既知の型の配列であれば
何もしなくともプロパティグリッドに表示されますね。
まあ、そうならないから質問してるんでしょうけど。

995 名前:991 [2007/07/09(月) 22:15:08 ]
>>991>>992
さっそく、ありがとうございました。
とても参考になります。

まだレジストリをいじったことがないので、
まずはレジストリのいじり方を調べてみます。



996 名前:デフォルトの名無しさん mailto:sage [2007/07/10(火) 09:25:38 ]


997 名前:デフォルトの名無しさん mailto:sage [2007/07/10(火) 09:26:07 ]
t

998 名前:デフォルトの名無しさん mailto:sage [2007/07/10(火) 09:26:42 ]
t


999 名前:デフォルトの名無しさん mailto:sage [2007/07/10(火) 09:27:11 ]
p


1000 名前:小倉優子 ◆en0rG2J.f6 mailto:sage [2007/07/10(火) 09:28:10 ]
1000ならジュースでも飲むか



1001 名前:1001 [Over 1000 Thread]
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<282KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef