C♯, C#相談室 Part34
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2006/09/06(水) 22:34:17前スレ
C♯, C#相談室 Part33
http://pc8.2ch.net/test/read.cgi/tech/1153537081/l50
過去スレは>>2-5あたり。
※スレタイに「#」を入れても消えちゃうので新スレ立てる人は要注意だ。
0446(^-^) ◆MONSOON/qo
2006/09/22(金) 02:43:52http://opentechpress.jp/desktop/05/10/19/037219.shtml
0447デフォルトの名無しさん
2006/09/22(金) 06:12:58ListViewの現在選択されているアイテムの次のアイテムが選択されるようにしたいのですが
ListBoxのsetselectedのようなメソッドやプロパティーはないでしょうか?
0448デフォルトの名無しさん
2006/09/22(金) 07:46:040449デフォルトの名無しさん
2006/09/22(金) 08:00:20どうもありがとうございました。
おかげで解決しました。
this.listView1.Focus();
this.listView1.Items[0].Selected = true;
0450デフォルトの名無しさん
2006/09/22(金) 08:58:530451デフォルトの名無しさん
2006/09/22(金) 09:03:560452442
2006/09/22(金) 11:12:37コーデックのURLありがとうございます。
SIPの部分を書いてこれを使えばできそうですね。
ただSIPの部分を書くのも大変でして、
SIPのライブラリもないものでしょうか?
Javaにはjainというものがあるそうですが。(ただこれも具体的に使ってるドキュメントを書いてる人は少ないですね)
また、実際プロバイダとの通信になると方言等があると聞きますし、
いろいろ大変そうな気がします。
まだVOIPは敷居が高いという認識ですかね。。
0453デフォルトの名無しさん
2006/09/22(金) 11:15:15やろうとしてる事って、フォームにメディアプレイヤーのコンポネ貼り付けて『メディアプレイヤー作りました』
って言ってるのと大差ないぞ。
0454test
2006/09/22(金) 11:22:260455デフォルトの名無しさん
2006/09/22(金) 12:32:320456デフォルトの名無しさん
2006/09/22(金) 23:14:31LabelEditを有効にすると、左端の編集は出来るようになりますが
その他の項目が編集できません。
むしろ、左端を編集せずにその他の編集したいのですが、どうすればいいのでしょうか?
0457デフォルトの名無しさん
2006/09/22(金) 23:19:27ListViewにはラベル(左端)以外を編集する機能はありません。
0458デフォルトの名無しさん
2006/09/22(金) 23:22:290459神プログラマ
2006/09/22(金) 23:50:37お前ら自分で調べろ!
0460界王神プログラマ
2006/09/23(土) 00:04:410461チワワプログラマ
2006/09/23(土) 00:16:180462デフォルトの名無しさん
2006/09/23(土) 20:35:17UnicodeTextをサポートするアプリにもRtf形式をサポートするアプリにも入れたいのですが
ドラッグターゲットのTextで受け取る形式を知る方法はどのようにすればよいのでしょうか?
0463デフォルトの名無しさん
2006/09/23(土) 20:41:120464デフォルトの名無しさん
2006/09/24(日) 00:16:12(アプリケーションプロジェクトの設定ファイルが生成される位置は期待した場所に行くけど、
ライブラリプロジェクト内の設定ファイルが生成される位置は思った場所に行ってくれない)
プロジェクト LibProject内でSettings.settingを作成してアプリケーションの設定を保存できるようにし、
プロジェクト(LibProjectを参照したExeプロジェクト) AppProject内でLibProjectの設定を使うようにしてセーブすると
user\Local Settings\Application Data\配下に
AppProject.exe_Url_ub0xlxfhut0me....というフォルダ内にuser.configができてしまうのですが
これを(AssemblyCompany\AssemblyProduct\)の下に置かれるようにするにはどのようにしたらよいでしょうか?
0465デフォルトの名無しさん
2006/09/24(日) 12:22:50ウィザード使えば簡単だけど皆さんどうしています。
ゴリゴリコーディングする?
IDEでポトペタ?
0466デフォルトの名無しさん
2006/09/24(日) 13:55:52少し相談させてください。
あるクラスをクラスライブラリに定義してクライアントと
Webサービスの双方に参照させます。
Webサービスのメソッドに戻り値として参照したクラスを返させた場合に、
クライアント側では名前空間の違うクラスで返ってきてしまいます。
これをクラスライブラリのクラスとして直接返す方法あるのでしょうか?
わかり辛い説明とは思いますがよろしくお願いします。
当方の環境は
Windows XP Pro SP2
Visual Studio 2005 Standard Edition
です。
0467デフォルトの名無しさん
2006/09/24(日) 14:07:09アイテムの選択状態を保つ方法ってある?
試して失敗だった方法としては、ProcessCmdKey内で、フォーカスを移動するキーを検出したら、
LParamに論理和で0xffffffffc0000000を加えるというやり方がある。
msg.LParam = (IntPtr)((ulong)msg.LParam | 0xffffffffc0000000);
0xffffffffc0000000はコントロールキー押下を示すフラグ(のはず)
0468デフォルトの名無しさん
2006/09/24(日) 16:20:190469デフォルトの名無しさん
2006/09/24(日) 16:24:53シーッ!!!
きっと次期windo(ry
0470デフォルトの名無しさん
2006/09/24(日) 16:28:09Microsoft MVP for Visual Developer - Visual C#
なんて書いてる奴って
アフォですか?
0471464
2006/09/24(日) 17:34:23Windows Forms .NET: The Official Microsoft Windows Forms Community Site
http://www.windowsforms.net/FAQs/default.aspx?PageID=3&CategoryID=12&SubcategoryID=85&tabindex=3
0472464
2006/09/24(日) 17:43:35(hoge_Url_feazx4drhfz04whlzbalc0e3u4ovhai)の後ろの奴
調べてもなかなかでてきません。
どなたか教えていただけないでしょうか?
0473デフォルトの名無しさん
2006/09/24(日) 18:54:56ぐぐれ。
0474デフォルトの名無しさん
2006/09/24(日) 20:13:44遅い、上にメモリ食いのアプリなんてとてもじゃないが業務に不向き。
.NETでよくなったことはちょっとしたアプリなら簡単に作れるようになったことだけ。
業務使う場合は殆どは派生させてしまうので、VC6のときとならんら変わらない。
0475デフォルトの名無しさん
2006/09/24(日) 20:20:330476デフォルトの名無しさん
2006/09/24(日) 20:22:160477デフォルトの名無しさん
2006/09/25(月) 00:25:300478デフォルトの名無しさん
2006/09/25(月) 00:36:330479デフォルトの名無しさん
2006/09/25(月) 00:39:27だな。ってゆーか、JAVAだけで十分
JAVAのマイナーチェンジが多すぎるんだよねぇ
D言語とか( ´艸`)ウププ
0480デフォルトの名無しさん
2006/09/25(月) 00:45:54(*´・ω・)(・ω・`*)ネー
0481デフォルトの名無しさん
2006/09/25(月) 01:08:340482デフォルトの名無しさん
2006/09/25(月) 01:35:030483デフォルトの名無しさん
2006/09/25(月) 01:37:350484デフォルトの名無しさん
2006/09/25(月) 01:37:42JavaとC#(NETFX)は使えば使うほど違うぞ。
C#初期はその理論で十分通用したんだがな。
まぁなんでもいいから巣に帰れ。な。
0485デフォルトの名無しさん
2006/09/25(月) 02:59:11Java より C# のほうがかなり開発楽。
・・・1.4だからかもしれんけど。
0486デフォルトの名無しさん
2006/09/25(月) 03:11:11Windowsという土俵でjavaに負けたら存在意義ないからね。
0487デフォルトの名無しさん
2006/09/25(月) 03:18:05なんで、こんなに食うの?
っていうか、まだコード何も書いてなくて、適当にコンポネ貼り付けただけでかなり食う。
0488デフォルトの名無しさん
2006/09/25(月) 03:39:10おれも使用C#のメモリについて知りたい。。
0489デフォルトの名無しさん
2006/09/25(月) 03:48:501. タスクマネージャのメモリ使用量の表示は感覚的に変
SetProcessWorkingSetSizeについて調べてみよう!ディープに
知りたいんならInside Windowsを読もう!Vistaだと直ってるwらしい
2. CLRのチューニング、特性
恐らくある程度の耐フラグメンテーションやパフォーマンスのために
余裕がある環境では余裕があるように、チューニングされている。
つまり優先順位の問題。また、「JITエンジン自体」ももちろんメモリを消費する。
そういえば、個人的には起動時間に関して、Vistaでは予測不能。
SuperFetchのせいでかなり特性が変わる。
0490デフォルトの名無しさん
2006/09/25(月) 05:18:17.NET のもありそうだしな
0491デフォルトの名無しさん
2006/09/25(月) 08:00:02とりあえず、Windowを最小化してみよう。すぐに数メガに落ちるはず
タスクマネージャのメモリをそのまま信じちゃいけない。
0492デフォルトの名無しさん
2006/09/25(月) 09:16:58タスクマネージャのは色々なリソースから集めたざっくり値で、細かくは見れないし
0493デフォルトの名無しさん
2006/09/25(月) 09:41:410494デフォルトの名無しさん
2006/09/25(月) 12:15:15つーか、機能追加と仕様変更ではまた全然意味合いが違うし。
追加はあっても、変更はほとんどないだろ。
>>479
http://www.javainthebox.net/laboratory/J2SE1.5/contents.html
このあたり読んでから出直せ。
最近の JAVA は C# のマイナーチェンジ。
0495デフォルトの名無しさん
2006/09/25(月) 12:37:430496デフォルトの名無しさん
2006/09/25(月) 17:15:33わかる人いますか?
0497デフォルトの名無しさん
2006/09/25(月) 18:19:34おじいさんは、山へ芝刈りしたあと、川へ洗濯に。
おばあさんは、家で昼寝をしていました。
めでたしめでたし。
0498デフォルトの名無しさん
2006/09/25(月) 18:25:12います
0499デフォルトの名無しさん
2006/09/25(月) 21:35:59教えてくだちい><。。。
0500デフォルトの名無しさん
2006/09/25(月) 21:56:130501デフォルトの名無しさん
2006/09/25(月) 23:31:37>>496
手っ取り早いのは、WindowsMediaPlayerのクラスやらコンポネを使う。
あれで、曲名やらアーティスト名やら時間やら動画サイズやらを取得出来る。
ただし、COMなので、全部.NETでやりたいって人は使えないですけど
0502デフォルトの名無しさん
2006/09/26(火) 17:19:00回答ありがとうございます
コンソールアプリで実装したいのですが
WindowsMediaPlayerのクラスは取り込めたんだけど
うまく動いてくれません
ほかに方法はないでしょうか?
おねがいします
0503デフォルトの名無しさん
2006/09/26(火) 20:07:17とりあえずベターな方法としてファイルフォーマットにしたがって読み込む方法をお勧めしよう
0504デフォルトの名無しさん
2006/09/26(火) 22:01:020505デフォルトの名無しさん
2006/09/27(水) 01:57:05起動中、使用メモリが20〜30MBと大きくとても目立ちます。
小さく作るコツってありますか?
最悪、MFCで書き直しても言われかねない状況です。
0506デフォルトの名無しさん
2006/09/27(水) 02:01:25.NETアプリの正しいメモリ使用量はタスクマネージャーでは見れない。
ウインドウを最小化すると、ある程度正しいメモリ使用量が見れるらしいので、不安なら一度それで確認したら?
0507デフォルトの名無しさん
2006/09/27(水) 03:44:00フォームを最小化した時と同じでタスクマネージャのメモリ使用量の表示が減らせる。
それでプログラムの起動が早くなったりOSの動作が軽くなったりするわけではないし、
他のプロ不ラムが使えるメモリーが広くなるわけでもない。
ケースによっては無駄なページジングのために逆に動作が遅くなる可能性があるのも同じ。
客にWindowsのメモリ管理の説明をいちいちするのが面倒なときにはお勧め。
0508デフォルトの名無しさん
2006/09/27(水) 03:49:54っていうか、20〜30MBで
>最悪、MFCで書き直しても言われかねない状況です。
て。
何考えてんだか。
0509デフォルトの名無しさん
2006/09/27(水) 04:11:390510デフォルトの名無しさん
2006/09/27(水) 04:36:40SetProcessWorkingSetSize( GetCurrentProcess(), 0xffffffff, 0xffffffff);
こんな感じで限定しちまうってこと?
う〜ん、スワップの嵐の予感
0511デフォルトの名無しさん
2006/09/27(水) 05:16:29private void MouseDown(object sender, MouseEventArgs e)
{
if ((e.Button & MouseButtons.Left) == MouseButtons.Left)
{
//位置を記憶する
mousePoint = new Point(-e.X, -e.Y);
}
}
private void MouseMove(object sender, MouseEventArgs e)
{
if ((e.Button & MouseButtons.Left) == MouseButtons.Left)
{
this.Location = new Point(this.Left + mousePoint.X + e.X, this.Top + mousePoint.Y + e.Y);
}
}
こんな感じでフォームをドラッグすると、ウインドウを動かせるコードを書いたのですが
MSのサイト含め色んな所でこのコードが紹介されていますが、これをやると通常のウインドウバーをドラッグした時に比べると
非常に動きが重いのです。
重いどころか、少しでもすばやくドラッグするとウインドウが付いて来れずに、マウスがウインドウの外に出てしまいます。
どうにか、通常のウインドウバー並の動きが欲しいのですが・・・・
0512デフォルトの名無しさん
2006/09/27(水) 08:11:21{
if (e.Button == MouseButtons.Left)
{
((Control)sender).Capture = false;
const int WM_NCLBUTTONDOWN = 0xA1;
IntPtr HTCAPTION = (IntPtr)2;
Message msg = Message.Create(this.Handle, WM_NCLBUTTONDOWN, HTCAPTION, IntPtr.Zero);
this.DefWndProc(ref msg);
}
}
0513デフォルトの名無しさん
2006/09/27(水) 08:34:25SetProcessWorkingSetSize(p, -1, -1) でワーキングセットを限りなく縮小する。
大部分のページがワーキングセットから切り離され、ページング予定のページとしてメモリ上にキャッシュされる。
実際に使われている部分のページはすぐにワーキングセット戻される。
それ以外のページは時間とともに徐々にページングされたり、破棄されたりする。
OSや別のプロセスがメモリーを必要とする場合は優先してページングまたは破棄されたりする。
起動後すぐにSetProcessWorkingSetSizeを呼べば初期化のためだけのページを片付けることが出来るので
1回呼ぶくらいはいいんじゃない。
0514デフォルトの名無しさん
2006/09/27(水) 13:29:13むしろ
フォームをドラッグで検索かけると>>512か
[DllImport( "user32.dll" )]
private static extern int SendMessage( IntPtr hWnd, UInt32 Msg, IntPtr wParam, IntPtr lParam );
[DllImport( "user32.dll" )]
private static extern bool ReleaseCapture();
private void Form1_MouseDown( object sender, MouseEventArgs e )
{
if( e.Button == MouseButtons.Left )
{
const int WM_SYSCOMMAND = 0x0112;
const int SC_MOVE = 0xf010;
ReleaseCapture();
SendMessage( this.Handle, WM_SYSCOMMAND, (IntPtr)(SC_MOVE | 2), IntPtr.Zero );
}
}
の方が一般的だと思うが
0515デフォルトの名無しさん
2006/09/27(水) 13:52:05> private static extern int SendMessage( IntPtr hWnd, UInt32 Msg, IntPtr wParam, IntPtr lParam );
int?
0516デフォルトの名無しさん
2006/09/27(水) 13:52:400517デフォルトの名無しさん
2006/09/27(水) 18:29:04http://www.exconn.net/Blogs/team01/archive/2006/09/27/16329.aspx
0518デフォルトの名無しさん
2006/09/27(水) 19:49:16リファラーを設定してWeb上の画像を表示する方法を教えてください。
0519デフォルトの名無しさん
2006/09/27(水) 19:51:05巣に帰れ
0520デフォルトの名無しさん
2006/09/28(木) 01:04:37ListView.PointToClientがスクロールを無視した左上隅からの距離しか返さないから
ListViewItem.Positionと画面座標の変換ができねえええ
0521デフォルトの名無しさん
2006/09/29(金) 00:07:23win.form.textboxを継承したカスタムテキストボックスAを作成しました。
そしてそいつを、いくつかつめあわせてユーザコントロールBを作成しました。
Aではonkeypressイベントに処理を記述してあります
そして新たにユーザコントロールBにて、Aのkeypressイベントを記述しました。
このユーザコントロールBをフォームにはりつけて使用したところ、
ユーザコントロールに記述したカスタムコントロールAのkeypressイベントが発生しませんでした。
ちなみにカスタムテキストボックスAではなく、ただのwin.form.textboxをユーザコントロールBにはりつけて
keypressイベントを記述すると、そのイベントは発生しました。
なんかデリゲートだとかその辺の話なんだろうなあと思いつつ
どうすればイベントを発生させることができるのか質問したいと思いました。
どうかよろしくおねがいします。
0522デフォルトの名無しさん
2006/09/29(金) 00:18:520523デフォルトの名無しさん
2006/09/29(金) 00:19:04何かbaseの方呼ばなきゃいけないんだっけ?わかんね
0524デフォルトの名無しさん
2006/09/29(金) 00:35:35base.OnKeypress
っていうのをどこに書くのでしょうか・・・。
フォームのほう?
カスタムコントロール内に書こうにも、とりあえずkeypressイベント自体が発生しないので・・・
0525デフォルトの名無しさん
2006/09/29(金) 00:39:39自作テキストボックスのOnKeypress メソッドの任意の場所に。
base.OnKeypress によって継承元のOnKeyPress(遡ってControl.OnKeyPress)
で、KeyPress がファイアされる。
0526デフォルトの名無しさん
2006/09/29(金) 01:30:46自作のカスタムテキストボックスAのOnkeypressイベントには
base.OnKeypress
の記述はしてあります。
なぜ動かないか悩んでいます。
0527デフォルトの名無しさん
2006/09/29(金) 01:31:49じゃあ次はイベントハンドラにちゃんと設定してるか確かめないと名
0528デフォルトの名無しさん
2006/09/29(金) 11:43:200529デフォルトの名無しさん
2006/09/29(金) 11:55:41protected override void OnKeyPress(KeyPressEventArgs e)
{
//独自の処理
base.OnKeyPress(e);
}
の形式になってる?
0530デフォルトの名無しさん
2006/09/29(金) 12:13:17自分の書いた文章をよく読もう。
途中でイベントがすりかわってるぞ…
Aのイベントが発生しない
>ちなみにカスタムテキストボックスAではなく、ただのwin.form.textboxをユーザコントロールBにはりつけて
keypressイベントを記述すると、そのイベントは発生しました。
↑は無関係だろ?
基本がなってないよ。
オーバーライドも分かってるかどうか。
OnKeypressイベントって書いてあるのが怪しい。
OnKeypressメソッドをオーバーライドならbase.OnKeyPressは必要。
0531デフォルトの名無しさん
2006/09/29(金) 12:16:42イベントベースなら問題なしだった。
KeyPressイベント内でbase.OnKeyPress読むと無限ループだよ。
0532デフォルトの名無しさん
2006/09/29(金) 12:28:34UserControl内のカスタムテキストにイベントつなげて
いないだけのような気がします。
0533デフォルトの名無しさん
2006/09/29(金) 15:40:27再帰って知ってるか
0534デフォルトの名無しさん
2006/09/29(金) 15:50:55(゚д゚)ハァ?
0535デフォルトの名無しさん
2006/09/29(金) 18:39:480536デフォルトの名無しさん
2006/09/29(金) 19:20:25不帰
0537デフォルトの名無しさん
2006/09/29(金) 19:26:31you{ while(1); }
再帰か?
0538デフォルトの名無しさん
2006/09/29(金) 19:52:050539デフォルトの名無しさん
2006/09/29(金) 20:00:530540デフォルトの名無しさん
2006/09/29(金) 22:56:35作ってみたが、糞だな
特にDataGridViewはしょぼい機能しかないのにやたらメモリ食う。
あの程度なら自前で用意したほうがいいぞ
0541デフォルトの名無しさん
2006/09/29(金) 23:07:400542デフォルトの名無しさん
2006/09/30(土) 01:17:02なっています。
>>530
>OnKeypressメソッドをオーバーライドならbase.OnKeyPressは必要。
その処理はしています。
でも動かないのはなぜなのかなぁ、、と。。。
ちなみにテキストボックスAを継承したテキストボックスCに、同じくOnkeypressメソッドを記述します。
そしてフォームにはりつけると、きちんと呼び出されます。
この違いっていったいなんなのかなぁと・・
0543デフォルトの名無しさん
2006/09/30(土) 01:42:49悩むより手を動かしたほうがいい
問題の切り分けをするために、再現可能なコードでも練ると吉
0544デフォルトの名無しさん
2006/09/30(土) 04:37:10>悩むより手を動かしたほうがいい
オ○ニーしろって言ってんのかと思ったw
0545デフォルトの名無しさん
2006/09/30(土) 09:42:03問題の切り分けをするために、再現可能なコードでも練
(ったところで、どうせ解るわけないんだからティムポでもしごきながら寝)
ると吉
■ このスレッドは過去ログ倉庫に格納されています