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


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

C#, C♯, C#相談室 Part45



1 名前:デフォルトの名無しさん [2008/01/21(月) 19:35:37 ]
(#゚ー゚)つ < C#、.NETの話題はこちらでどうぞ。
c++厨の嵐はスルー汁。

前スレ
C#, C♯, C#相談室 Part44
pc11.2ch.net/test/read.cgi/tech/1194956418/

その他テンプレ>>2-5くらい

643 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 10:09:06 ]
>>639
ヒント

enum testEnum { あああ = 1, ししし = 2, つつつ = 3 }

comboBox1.Items.Add(testEnum.あああ);
comboBox1.Items.Add(testEnum.ししし);
comboBox1.Items.Add(testEnum.つつつ);

任意の値に設定するとき
comboBox1.SelectedItem = (testEnum)2;

644 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 10:12:03 ]
>>642
デバッガでcomboBox1.Items[0].GetType()を見てみれば?

645 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 10:13:17 ]
SelectedValueに2を設定すればOK.

646 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 10:28:39 ]
>>645のやり方でいけました!ありがとうございます

>>643
enum型は一度も使ったことがないので勉強してみます

>>644
GetTypeでは取れませんでしたが、ToStringで取得してみたら
謎ですが>>639の型が入ってました

647 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 22:58:30 ]
ふらっと池

648 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 23:51:25 ]
そのうち、フラットで話すべき話題と、このすれですべき話題をテンプレにでも書いといたほうがいいのかもしれない
「ふらっと」
PictureBoxを透過表示することってできますか?
「このすれ」
ExpressionTree、CodeDOM、DLRのASTでできることはどういう風に違うんですか?

649 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 17:21:46 ]
内容よりC#わかってるかどうかだろ

650 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 22:02:25 ]
Java上がりでC#やってる人に聞きたいんだけど、
C#やってたら、コード読んで流れ掴むくらいならできそうでしょうか?


651 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 22:06:10 ]
意味が分からん




652 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 22:11:50 ]
余程の馬鹿でなければ

653 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 22:17:30 ]
C#3.0は結構化けるけど

654 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 22:24:48 ]
javaの文法知らなくても流れくらい分かるだろ

655 名前:デフォルトの名無しさん [2008/03/15(土) 22:51:50 ]
C#2005のメニューから
プロジェクト->Windowsフォームの追加で
「MID親」
を選んで、MainでRunしています。
起動時に子フォームを勝手に起動しますがいったい
どこでやっているのでしょうか?
InitializeComponet()で勝手にShowNewFormを
やっているのだとは思いますがどのあたりなのか
さっぱり分かりません。
新しく追加で子フォームを作成したら自動でずらす処理も
邪魔なのでどこでやっているのか知りたいです。
ご存じの方、どうか教えてください。
新しく普通にフォームから作ったほうが早いというのは無しで。



656 名前:デフォルトの名無しさん [2008/03/15(土) 22:55:48 ]
すいません、起動時に勝手に子フォームが起動するのは、
こちらのミスでした。
勝手にずらす処理をやめさせる方法だけ教えてもらえない
でしょうか?


657 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 22:57:04 ]
>>650
わからなければjava上がりとはいえない

658 名前:デフォルトの名無しさん [2008/03/15(土) 23:50:35 ]
このスレの住人なら知っていますね、あの糞開発ツールのことを

・自分のプログラムのバグなのかコンパイラのバグなのかわからない
・他の仕事に応用できない糞開発ツールの独自世界を必死に学習している
・テキストエディタで書いたほうが効率的なのに糞UIツールを懸命に使っている

糞だけど、政治的な理由で無理やり使わされているんですよね
もういい加減、我慢するのはやめませんか?

・糞開発ツールを部下に押し付ける上司の命令は無視しましょう。
 上司は糞開発ツールが使われる実績を作ることであの会社のごきげんをとっているのです。
・あの糞開発ツール提供会社には「おたくの糞開発ツールは話にならない」と突き放しましょう。
 バグレポートなどしてはいけません。改善要求などもってのほかです。
 あの会社はあなたたちのことをテスター/モルモットとしか思っていません。
・あの会議で「糞開発ツールを使ったら生産性がxx%アップしました」
 なんて話が出たら力強く机を叩き、会議室を出ましょう。
 あの人たちは糞開発ツールをマンセーすることで立場を確保しているのです。

糞な開発ツールを糞だと言える、そんな当たり前の環境をみんなの力で取り戻しましょう。

659 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 23:53:18 ]
コピペ君って馬鹿だな、まで読んだ。

660 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 23:54:53 ]
>>659
死ね

661 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 15:12:24 ]
オーバーフローチェックコンテキスト(checked/unchecked)の状態で
処理を分岐させる方法を知ってる人いたら教えて

検証するタイミングはコンパイル時、実行時のどちらでもおk



662 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 15:49:01 ]
例外を捕捉すればいいんじゃないの

663 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 15:59:05 ]
それだと、例外が発生しない場合、checkedでオーバーフローがおきてないのか、
単にuncheckedなのか判断できなくね

664 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 16:03:54 ]
bool IsChecked {
  get {
    try {
      Convert.ToByte(0xffff);
      return false;
    }
    catch { return true; }
  }
}
馬鹿プロパティw

665 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 16:06:32 ]
わざとオーバーフローさせるぐらいしか思いつかんな。

666 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 16:44:45 ]
自分でchecked{}で括ってしまえばいい

667 名前:661 mailto:sage [2008/03/16(日) 17:17:46 ]
>>662-665
thx!
やはりオーバーフローさせてみるしかないのか

>>666
ILの生成をコンパイラ任せにするならそれでいいが
動的に生成しようとするとOPコード自体が違うので

668 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 17:19:42 ]
なんか適切じゃない場所で質問しちゃった気がするのでこっちでも

PerlとかRubyでゆーWWW::MechanizeみたいなスクレイパってC#に存在する?
それとDB使ったツールを作って配布したいんだけど、PerlとかRubyだと一般ユーザに使ってもらえないので…
Rubyで一旦全部書いたんだけどexerbとかrubyscript2exeとか使ってもうまく纏められないのでC#(or その他普通にネイティブコンパイルする言語)で書き直したいんだけど…

669 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 17:20:41 ]
泥臭いのに変わりはないが、適当な関数のIL覗けばいいんじゃね?

670 名前:661 mailto:sage [2008/03/16(日) 18:22:19 ]
IL見てみたが、コンパイラがコンパイル時に数値式のOPコードを切り替えてるだけで
checked/uncheckedブロック、演算子内に直接書いた式にのみ適用されるみたい

だから、>>664みたいなプロパティを作るとコンパイルされた時点で出力が確定してしまう

結論としては、checked/uncheckedはコンパイラに指示するためだけのもので
プログラムで利用しようなどと考えてはいけないということか

671 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 18:36:31 ]
そもそもchecked/uncheckedはコンパイル時に静的に決まるものだろ



672 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 18:41:50 ]
#if CHECKED
なんとか
#else
ができればいいんだろ

673 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 19:22:05 ]
コード中で分岐することに意味があるのはコンパイラのオプションで指定した場合のみってことか
checkedのときはプリプロセッサシンボル定義するだけでよくね?

674 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 19:30:23 ]
プリプロセッサとchecked/uncheckedの処理段階が違うのは気持ちが悪いけどな

675 名前:デフォルトの名無しさん [2008/03/16(日) 19:38:38 ]
印刷を監視して、何かのプログラムで印刷実行されたらジョブをプリンタに投げる前に
自分で作った処理を行って、それが終了してから
印刷ジョブを投げるプログラム作成したいんですけど
印刷監視とジョブ投げるのにwaitかけるのってどうすればいいんですか?

676 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 19:50:03 ]
仮想プリンタを作って間に挟むのが
まっとうじゃないかな。

677 名前:デフォルトの名無しさん [2008/03/16(日) 21:07:31 ]
iPhoneのタイマーみたいな慣性で回るドラムを2個まわして
数値を出力させるにはどう考えたらいい?
WM6pro用で教えてください。


678 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 21:14:32 ]
そういう風に作る
WM6proがどう関係あるんだろう

679 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 22:25:05 ]
WebBrowserコントロールの設定は、現在のIEと同じ設定になるっぽいけど、
独立して管理することは可能っすか?

680 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 22:42:17 ]
俺なら可能

681 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 23:53:49 ]
オマイラってそんなにIL覗いて挙動確認したりしてんの?
俺全然やってないんだが



682 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 00:00:00 ]
ILの日本語の資料ってネットで見れるの?

683 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 00:03:01 ]
別に日本語である必要性はないと思うのだが

684 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 00:04:53 ]
必要性はなくても、日本語の方が望ましい

685 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 00:08:58 ]
共通言語基盤の規格はJISにもなってるからネットで読めるんじゃね?
調べたことないけど

686 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 00:48:03 ]
IL見るのになぜ日本語が必要になるのやら

687 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 00:51:31 ]
日本語を主として使っている民族とっては、ILの説明が日本語でされていた方が他の言語でされているよりも理解しやすいから。

688 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 01:07:51 ]
ILは流れを読むのだから英語でいいでしょう

689 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 01:10:03 ]
個々のILのニーモニックの説明は英語より日本語の方が日本人には理解しやすいだろう。

690 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 01:11:58 ]
ニーモニック(記憶しやすい)を記憶しやすいのは
その命名元となった英語という気もする。

691 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 01:13:57 ]
記憶する以前に理解するには、日本人にとっては英語よりも日本語の方が理解しやすい。



692 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 01:21:11 ]
何この流れ・・・

693 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 07:03:19 ]
ニーモニックの説明で日本語お望みなら

System.Reflection.Emit.OpCodes

あたりでもどうぞ。JIS の CLI は有料でしょ確か


694 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 09:16:46 ]
JIS規格はjiscのサイトでみれる

695 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 09:55:46 ]
そいや、ILはVSで対応してないのはいいにしてもMSBuildのタスクも
ないのはどうよと思ったなあ前

696 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 22:34:40 ]
>>683
英語読めないから、日本語のが必要なんです。

697 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 23:26:25 ]
ふらっとでレスが付かなかったので、教えてください。
SQLServerからsmallint型のレコードを取得してC#でint型の変数に入れたいのですが
キャストで失敗します。smallint型はshortと同じじゃないのでしょうか?

698 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 23:32:14 ]
>>697
失敗って?

699 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 23:33:41 ]
実際shortなんだったら一旦shortにキャストしてからintにキャスト

700 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 23:42:39 ]
会社にしか環境が無いので、エラーの詳細記録してなかったのですが、
型変換できませんでした。的なエラーでした。
もちろん(short)してから(int)でいけますが、アップキャストでなぜ失敗するのか・・・が知りたいと思いました


701 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 23:46:30 ]
正確な方は SqlInt16、
short へのキャスト演算子の定義はあるけど、int へのキャストは定義されてない

とかではなかろうか。



702 名前:697 mailto:sage [2008/03/18(火) 00:02:58 ]
>>701
MSDN参照してもよく分からないのですが、おそらくそのように思えますので、
そういうものだと、納得しておきますf^^

703 名前:デフォルトの名無しさん [2008/03/18(火) 00:03:27 ]
PrintDocumentクラスのPrintメソッドで
印刷処理を作っています。

しかし、印刷を実行するとVB6やDelphiで作成した
印刷処理よりも異常に遅いのが気になりました。
描画を一切行わず、白紙を1ページ印刷した場合
VB6では一瞬で印刷を開始しますが、C#では5秒以上待たされます。

100ページ以上の印刷を行いたいので、この速度では
ちょっと使い物にならないので困っております。
速度改善の情報ありましたら教えていただけませんでしょうか。。

704 名前:デフォルトの名無しさん [2008/03/18(火) 00:19:22 ]
www.rossgals.com/fuckfacials/barbie2-489/3.mpg

705 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 00:21:39 ]
突然怪しいURLを貼るなwww

706 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 00:23:13 ]
なんじゃこりゃww量すごすぎww

707 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 00:38:25 ]
>>703
軽く調べたけど、解決策は見つからなかった。そもそも再現性が(ry
とりあえずプロファイルして何が遅いか見極めてくれ。

708 名前:703 mailto:sage [2008/03/18(火) 00:46:13 ]
>>707
ありがとうございます。

プロファイルのやり方がわからないのですが
調べてやってみようと思います。

今、調べられる範囲でわかったことは
プリンタの解像度を下げることである程度
体感速度が速くなる、逆に解像度を上げるとさらに遅くなることです。

709 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 00:10:00 ]
ちょっとすみません。mlang.idl を midl しようとしたんですが、途中で

midl\oleaut32.dll : error MIDL2020 : error generating type library : SaveAllChanges Failed : .\mlang.tlb (0x80070005)

と出て終了します。原因わかるかたいらっしゃいますか?

710 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 00:19:45 ]
しまった UAC だー! 自己解決すみませぬ。

711 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 01:17:43 ]
すみません。続けてもうひとつ。マーシャリングの質問なのですが、

void DetectInputCodepage(
    uint dwFlag,
    uint dwPrefWinCodePage,
    ref sbyte pSrcStr, // ここと
    ref int pcSrcSize,
    ref tagDetectEncodingInfo lpEncoding, // ここに
    ref int pnScores
);

どうやって short[] と tagDetectEncodingInfo[] を突っ込んだらいいのか、だれか教えてください。



712 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 01:47:07 ]
>>711
dobon.net/vb/dotnet/string/detectcode.html

713 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 01:50:00 ]
>>712
それそのままコピペしてるんだけどね、

ref sbyts[0]

ここで引っかかる。

714 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 01:55:05 ]
ん? 通った。なぜだ。

715 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 09:14:07 ]
配列そのまま仮引数に定義するのお勧め

716 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 19:08:03 ]
ListやStackの中身をusingでdisposeさせるにはどうすればいいの?

717 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 19:14:20 ]
継承してIDisposeableを実装すればいいんじゃねえの

718 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 19:14:45 ]
ListとIDisposableを継承して、Disposeで要素を全部Disposeするクラスを作る。

719 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 20:23:08 ]
using使いたいだけならIEnumerable<T> (where T : IDisposable) をラップするクラスを作って
using (DisposableCollection<Bitmap> a = new DisposableCollection<Bitmap>(list))とか

720 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 20:53:15 ]
static void Using<T>(T collection, Action<T> action) where T : IEnumerable {
 try { action(collection); }
 finally {
  foreach (var item in collection) {
   IDisposable disposable = item as IDisposable;
   if (disposable != null) { disposable.Dispose(); } } } }
usingの代わりにこんなの使えばいいんじゃね

721 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 21:01:24 ]
どうもやってみます。



722 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 21:03:46 ]
.net 3.5(たぶん下位でも発生?)

コンソールアプリで sysem.drawing.bitmap をストリームにシリアライズするときに
GDI+の一般エラー(General error?)が発生する

同様の現象にブチあたった経験者はおらぬか?

723 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 21:20:30 ]
Bitmapはネイティブなオブジェクトがあるからシリアライズ不可能じゃないかな

724 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 21:31:09 ]
いや,これまでは出来たんだ
きっとこれからも出来ると信じたい

そしてなんとなく原因発見

BinaryFormatter bf = new BinaryFormatter();
FileStream fs = new FileStream(@"C:\WINDOWS\迴育栖繧ォ繝繝.bmp", FileMode.Open);
MemoryStream ms1 = new MemoryStream(), ms2 = new MemoryStream();
Image img = Image.FromStream(fs);
bf.Serialize(ms1, img); // 成功(例外なし)
fs.Close();
bf.Serialize(ms2, img); // 失敗(ExternalError: GDI+ で汎用エラーが発生しました。)

どうもImageの元のリソースが,シリアライズするときに利用できなくなっていると失敗するみたい?
なんか非常にモヤっとするなぁ

引き続き情報求む


725 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 21:53:52 ]
よくみる where T ってのはLINQってやつかい?

726 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 21:55:52 ]
ただのジェネリック引数の制約だよ。

727 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 22:10:38 ]
where T つかうと他クラスの継承できなくなる?方法ない?

728 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 22:13:52 ]
なにゆってんの?

729 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 22:14:30 ]
よく意味が分からんけど
where T はTに対して特定の型に依存した操作を可能にするために使うんだよ

730 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 22:20:58 ]
where Tを使ったクラスを継承したいなら
その制約を継承先のクラスにも付ける

class Base<T> where T : string{}

class Derived<T> : Base<T> where T : string{}

731 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 22:42:02 ]
まったくどうでもいいがstringで制約したらもはやジェネリックの意味なくね?



732 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 22:45:08 ]
>>724
Bitmapはそのままだとアンマネージドリソースを含むのでシリアライズできない
だがStreamから作ったBitmapならそれを使ってシリアライズすることで目的を達成できる
しかしそのStreamが閉じてればもうシリアライズできない

733 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 23:27:28 ]
>>724
var stream = new FileStream("foo.jpg", FileMode.Open);
var image = Image.FromStream(stream);
image.Save("bar1.png");
stream.Close();
image.Save("bar2.png"); // die

734 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 23:55:28 ]
>>732
すごく,わかりました.

>>733
試したためした,そしてその通り

ひとまずbyte[]にシリアル化したものを記憶しておくことにした

735 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 18:09:24 ]
クラスのメンバ関数のようなスコープがはっきりしないものをusingで解放するにはどうすればいいの?

736 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 19:21:54 ]
メンバ関数じゃなくてインスタンス変数だと仮定して
自分のクラスにIDisposableを実装する
usingはそのクラスを外から使う人が使うもの

737 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 22:29:23 ]
DictionaryBaseのGeneric版って何?


738 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 22:42:14 ]
例外は受け取ったらいけないの?

739 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 23:05:44 ]
処理できる例外は捕まえて処理する
そうでなければスルー

740 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 23:11:34 ]
受け取ってメッセージボックス出して終わるくらいなら
標準の例外ダイアログがましだけどねw

741 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 23:25:01 ]
製品にするならそうもいってられないけどな



742 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 12:08:44 ]
>>737
無い
KeyedDictionary<TKey, TValue>が使えそうなら使う
使えないなら自分で作る

743 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 12:11:35 ]
KeyedCollection<TKey, TItem>の間違い

744 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 19:25:07 ]
ListViewの詳細表示で、棒グラフを表示したくて
直接セルに描画していたんですけど、汎用性を持たせたくて
Panelに描画してそのPanelを表示したいと思ったんですが
ListViewにPanelを挿入する方法が分かりません

SubItems.Addで追加できるのは文字列だけですし
どのようにすればPanelなどのコントロールをListViewに
挿入することができるでしょうか?

745 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 19:33:28 ]
どのようにしてもできまへん。

っていうか、Panelに描画する(そしてそれをListViewに突っ込む)のが
汎用的って発想がよくわからない。

汎用的にしたいのならListViewの項目を描画する機能をクラス化するか、
またはListView自体を継承して拡張するとか、そっちの方向じゃないの?

746 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 19:37:34 ]
CodeProjectにそういうのある。
一からListView作ってた。

747 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 19:44:33 ]
C#のListViewの使えなさはガチ

Swingにも劣るヘボさだからなぁ
項目ごとの文字色を変える程度のことさえ面倒
いったいどういう用途を想定してこんなクソ仕様にしたのか

748 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 20:15:08 ]
コモンコントロールそのものだもの

749 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 20:35:18 ]
WPFのListViewは何でもありのアホみたいに柔軟なコントロールになってるよ

750 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 20:58:42 ]
>>745
やっぱり駄目ですか
でもよく見かけるプログレスバーが表示されたListViewは
どうやって実装してるんでしょう
何か出来る方法がありそうな気もしますが

>>746
一から作るのはちょっと厳しいですね・・・

751 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 21:41:09 ]
>>742
ありがとう。
自作するよ。



752 名前:デフォルトの名無しさん mailto:sage [2008/03/27(木) 00:26:31 ]
>>747
>項目ごとの文字色を変える程度のことさえ面倒

簡単だと思うけど…
どうやってやってるの?


753 名前:デフォルトの名無しさん mailto:sage [2008/03/27(木) 06:57:31 ]
>>750
ListViewだとしたらOwnerDrawなんじゃない。

超汎用的なリストコントロール作った。
めんどくさかった(´・ω・`)

でもこれで10万行ぐらいあっても、どんな描画だとしても表示できるようになったお。

754 名前:デフォルトの名無しさん mailto:sage [2008/03/27(木) 07:23:43 ]
俺も752と同意見だったけど、MFC知らないからMFCだともっと楽なのかなあと思って何も言わなかった
ListViewItem.UseItemStyleForSubItems
ListViewItem.ForeColor
ListViewItem.SubItems[index].ForeColor

UseItemStyleForSubItems
をtrueにすると、
全てのSubItems.ForeColorを設定する必要があったような気がするから
それが面倒といえば面倒だったけど。

755 名前:デフォルトの名無しさん mailto:sage [2008/03/27(木) 07:59:46 ]
C#でSafariみたいにきれいに文字を表示するのってどうしたらいいんだしょ。
アンチエイリアスかければきれいになるとですか?

756 名前:デフォルトの名無しさん mailto:sage [2008/03/27(木) 08:10:04 ]
言語とは無関係だと思うけど
WPF使えば良いよ

757 名前:デフォルトの名無しさん mailto:sage [2008/03/27(木) 08:13:08 ]
Formでお願いします。


758 名前:デフォルトの名無しさん mailto:sage [2008/03/27(木) 08:22:42 ]
>>752
でもListViewって特定環境で色が消えたりする類のバグが満載だから
そのままでは使い物にならないと思った記憶がある。

759 名前:デフォルトの名無しさん mailto:sage [2008/03/27(木) 14:35:43 ]
そもそもWPFだろうがFormだろうがクラス名だけ置換して同じコード書けば
内部で使うAPIだけひっそり入れ替わるのがクラスライブラリ設計として当然じゃないのか?
何回も作っては捨て繰り返して作った奴は馬鹿なのか?

760 名前:デフォルトの名無しさん mailto:sage [2008/03/27(木) 14:48:59 ]
>>755
フォントをClearTypeが効くものに変えるとか
実際より大きく描画して縮小するとか

761 名前:デフォルトの名無しさん mailto:sage [2008/03/27(木) 18:58:44 ]
>>759
日本語書けよ



762 名前:デフォルトの名無しさん mailto:sage [2008/03/27(木) 19:04:10 ]
すごーく正論では

763 名前:デフォルトの名無しさん [2008/03/27(木) 19:06:23 ]
再利用可能なコードなんか幻想だろw

764 名前:デフォルトの名無しさん mailto:sage [2008/03/27(木) 19:50:12 ]
インターフェースがクソだったら書き直すしかないだろ

765 名前:デフォルトの名無しさん mailto:sage [2008/03/27(木) 19:52:31 ]
VB SQL
ODBC Direct
OLE DB
DAO
RDO
ADO
ADO+
WindowsDNA
MSDE
ADO.NET 1.0
ADO.NET 1.1
ADO.NET 2.0
LINQ


766 名前:デフォルトの名無しさん mailto:sage [2008/03/27(木) 21:16:28 ]
>>750
リストビューの子としてプログレスバー作るとか。

767 名前:デフォルトの名無しさん mailto:sage [2008/03/27(木) 23:54:29 ]
英語だと C sharp って読むの?

768 名前:デフォルトの名無しさん mailto:sage [2008/03/28(金) 00:32:18 ]
yes

769 名前:デフォルトの名無しさん mailto:sage [2008/03/28(金) 14:20:32 ]
>>761
てきざいてきしょ

770 名前:デフォルトの名無しさん mailto:sage [2008/03/29(土) 00:20:51 ]
VS9.0インスコした人に確認してもらいたい
↓のファイルのコメントが前衛的なことになってるんだけど、どうなってる?

C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\
ProjectTemplatesCache\CSharp\Reporting\1041\ReportApplication.zip\Form1.Designer.cs

因みに、手元の環境のエディションはPro.

771 名前:デフォルトの名無しさん mailto:sage [2008/03/29(土) 00:29:51 ]
見たけど特に何も思わなかったが



772 名前:デフォルトの名無しさん mailto:sage [2008/03/29(土) 01:13:30 ]
特にどうということもないな

773 名前:デフォルトの名無しさん mailto:sage [2008/03/29(土) 01:14:35 ]
そんなばすはないだろう。

774 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 20:28:55 ]
ローカルのハードディスクにあるファイルをUSBメモリにコピーしておのおののファイルについてGetLastWriteTimeを見ると2秒ほどずれてるんですが、なぜなんでしょう?
エクスプローラでファイルのプロパティで更新日時を見てもやはり2秒ほどずれています。おそらく同じ値を見ていると思います。
ローカルからローカルにコピーした場合は発生しません。

775 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 20:30:58 ]
NTFSとFATとかじゃね

776 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 20:33:34 ]
USBメモリで使ってるFATって更新時間の最小単位が2秒なんだったっけ?

777 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 20:37:21 ]
そう。2秒。

778 名前:774 mailto:sage [2008/03/31(月) 20:47:38 ]
ローカルはNTFS、USBはFAT32ですが、上に上がってるのでビンゴくさそうすかね・・・

779 名前:デフォルトの名無しさん mailto:sage [2008/04/02(水) 11:29:09 ]
自分で OnPaint メソッドをオーバーライドしたコントロールを作ってるのですが、質問です。
OnPaint メソッドの中で線の太さを指定して引いているのですが、AutoScaleMode でサイズが変わった場合
線の太さはどういう風に決めたら良いと思いますか?
今は決め打ちで 2 にしていますが、線の太さも自動でスケーリングしたいのので
自動スケーリングの倍率を取得する AutoScaleSize みたいなプロパティってないですかね。


780 名前:デフォルトの名無しさん mailto:sage [2008/04/02(水) 11:42:13 ]
>>779
自己レス。解決しました。
AutoScaleMode プロパティが変更されると、ScaleControl メソッドが呼ばれる。
ScaleControl メソッドをオーバーライドすると factor が来るので、これが倍率。

781 名前:デフォルトの名無しさん mailto:sage [2008/04/03(木) 20:10:38 ]
共有メモリの話題になりますが、
MapViewOfFileで得たIntPtrをStreamにアダプトする方法はありませんか?
byte*にキャストしてよいみたいですが、そこからが分かりません。



782 名前:デフォルトの名無しさん mailto:sage [2008/04/03(木) 20:22:47 ]
UnmanagedMemoryStream

783 名前:デフォルトの名無しさん mailto:sage [2008/04/03(木) 21:09:24 ]
>>782
これは、これ以外にないといえるようなStreamですね。
明日さっそく試したいと思います。ありがとうございました。

784 名前:デフォルトの名無しさん [2008/04/04(金) 10:08:31 ]
質問です。

各テーブルごとにテーブルクラスを作成し、

データの受け渡し受け取りには、テーブルクラス.レコードを定義して使用しています。


各テーブルクラスの違いは、

レコードクラスの違いくらいなので、
(実際には、レコードクラスの違いにより処理内部にも違いは出ているのですが、
ロジックは同じということです。)

同じ処理を書いて、あまりステップ数を膨らませるのは嫌なのですが、

何かよい方法はないでしょうか?

785 名前:デフォルトの名無しさん mailto:sage [2008/04/04(金) 10:25:03 ]
データセットデザイナを使う

786 名前:デフォルトの名無しさん mailto:sage [2008/04/04(金) 22:10:30 ]
>>770
自分の所も正常に見えます

787 名前:デフォルトの名無しさん mailto:sage [2008/04/04(金) 23:30:46 ]
>>784
日本語でおk






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

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

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