ふらっとC#,C♯,C#(初心者用) Part49at TECH
ふらっとC#,C♯,C#(初心者用) Part49 - 暇つぶし2ch1:ななしぃ ◆jPpg5.obl6
09/11/28 13:40:52
このスレッドは
「どんなにくだらないC#プログラミングに関する発言でも誰かが優しくレスをしてくれるスレッド」です。
ほかのスレッドでは恐ろしくて書き込めないような低レベル、もしくは質問者自身なんだか意味がよく分からない質問など、
勇気をもって書き込んでください。
内容に応じて、他スレ・他板へ行くことを勧められる、あるいは誘導される場合がありますがご了承下さい。

>>980を踏んだ人は新スレを建てて下さい。
>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。

前スレ
ふらっとC#,C♯,C#(初心者用) Part48
スレリンク(tech板)


関連スレ

C#, C♯, C#相談室 Part55
スレリンク(tech板)

WPF(XAML,XBAP,.NET3.5)GUIプログラミング Part4
スレリンク(tech板)

2:ななしぃ♯
09/11/28 13:42:22
参考サイト

URLリンク(www.google.co.jp)
URLリンク(msdn.microsoft.com)
URLリンク(homepage3.nifty.com)
URLリンク(www.atmarkit.co.jp)
URLリンク(dobon.net)
URLリンク(jeanne.wankuma.com)
URLリンク(www.labasp.net)

3:デフォルトの名無しさん
09/11/28 17:44:34
C++用に作った関数をC#用にコピーしたら

ABCD_EFGH()っていう関数が
ABCD.ABCD_EFGH()ってなっちゃって
ABCDが二回続いちゃったよ

4:デフォルトの名無しさん
09/11/28 17:55:45
ジャグ配列って存在価値ないだろ
C++やJAVAと同じ書き方なのに違うものができるとかうぜぇけせや

5:デフォルトの名無しさん
09/11/28 17:59:10
>>4
馬鹿な子。
少しはその馬鹿な自分を疑うことを覚えたら?

6:デフォルトの名無しさん
09/11/28 18:29:54
そうかそうか。5にとってはC++にはギャグ配列がないからバカな子だったんだな

7:デフォルトの名無しさん
09/11/28 18:32:36
難しくて俺には何いってるのかわからねえ・・・
ギャグ配列ってなに?

8:デフォルトの名無しさん
09/11/28 18:55:29
すげぇ!!!!
[DllImport]とか書いたらC++用のDLLが読み込めた

あれ?こんなことできるならC++って存在価値なくね?

9:デフォルトの名無しさん
09/11/28 19:00:37
>>8
普通のアプリではなくても困らないけど
フックプロシージャとかネイティブのDLLでないと
動作しないものもあるからそういうときには必要かな

10:デフォルトの名無しさん
09/11/28 19:19:34
>>8
それはVB6どころかVBAですらできるでしょw

11:デフォルトの名無しさん
09/11/28 19:24:58
特定のクラスを継承しているクラスを実行中に列挙するにはどうやるんでしょうか?

12:デフォルトの名無しさん
09/11/28 19:41:58
プラグイン作ってんのか
特定のアセンブリ内のなら、Assembly取得してきてGetTypesでTypeを列挙
Type.IsSubclassOfとかで判断する

13:デフォルトの名無しさん
09/11/28 19:42:48
もし「特定のクラスを継承しているクラスを実行中に列挙する」メッソッドが存在する
アセンブリから参照できないアセンブリに、その「特定のクラスを継承しているクラス」
が存在した場合はどうするんでしょう。

要するに愚問だと思う。

14:デフォルトの名無しさん
09/11/28 20:08:28
Visual Stdioでpng形式の画像ファイルをリソースに埋め込もうと思ったんだ

メニューのプロジェクト→Testのプロパティ→リソース→リソースの追加で
Gazou.pngっていうファイルを選択して埋め込んだ。

そうしたら_Gazouっていう名前で、最初に意味のわからない_がついてしまったんだ。
でもソリューションエクスプローラのほうはResources-Gazou.pngってちゃんと表示されてる。
で、Gazouを表示しようと思って
Load("Gazou.png")ってやってもLoad("_Gazou.png)ってやっても読み込めない。
別のbmpファイルならちゃんと読み込めたんだけど、pngファイルって読み込みどうやるの?

15:デフォルトの名無しさん
09/11/28 20:14:58
埋め込みリソースでLoad…?
Resources.*** で直接Bitmapインスタンス取得するもんじゃないか?

16:デフォルトの名無しさん
09/11/28 20:53:55
>>13
なにいってんだ??

17:デフォルトの名無しさん
09/11/28 20:58:36
>>14
Visual Studio上のC#は、およそほぼすべての外部とのやり取り(リソースの読み込みとかフォームのデザインとか)で
自動的にソースコードを吐き出す形で動くようになってる。
プロジェクト内をよく調べてみろ。

18:デフォルトの名無しさん
09/11/28 21:26:58
>>12
なるほど そういうのがあるのか
thx

19:デフォルトの名無しさん
09/11/28 21:38:08
それくらい20秒あればつくれるだろ・・・っていうメソッドもnetフレームワークには最初から大量に用意されまくってるんだな。
親切設計だぜ。

20:デフォルトの名無しさん
09/11/28 22:07:34
最近スレの消費が加速した気がする
とりあえずおちゅ

21:デフォルトの名無しさん
09/11/28 22:40:28
自分で作ったexeを配布する際、他人の作ったDLLを同じフォルダにおいてちゃダメみたいだが
exe自体にうめこめば大丈夫?

22:デフォルトの名無しさん
09/11/28 22:41:31
何言ってんだお前

23:デフォルトの名無しさん
09/11/28 22:42:30
たいがい余計ダメ

24:デフォルトの名無しさん
09/11/28 22:54:08
おいちゃだめならおかなけりゃいいだけじゃん

25:デフォルトの名無しさん
09/11/28 23:08:50
>>21
使わせてもらうライセンスを守っていれば、ライセンスで許されている範囲で
どう使ったって問題ないさ。

特にC#なら、MS-PLのライブラリが山ほどあるからよく探してみよう。

26:デフォルトの名無しさん
09/11/28 23:18:19
.NETのオープンソースプロジェクトってMS-PLみたいな自由なライセンスがよく使われてて
あまりGPLに汚染されてないのがいいよな

27:デフォルトの名無しさん
09/11/29 02:10:28
URLリンク(dobon.net)
このページに書いてる「画像を半透明表示する
ってので、ボタンを押したら実行するようにコピペして
private void button1Click(object sender,EventArgs e)
にコピペしたんだ。

でも一回目にボタンを押したらちゃんと実行されるんだけど二回目は

Argment Exception パラメータが有効ではありません
っていわれてできない。

g.DrawImage(img, new Rectangle(0, 0, img.Width, img.Height),
0, 0, img.Width, img.Height, GraphicsUnit.Pixel, ia);

この部分がおかしいみたいなんだが、なんでだぜ?

28:デフォルトの名無しさん
09/11/29 02:16:10
ブレークポイント張って引数を確認してみろよ

ていうかまたCreateGraphicsか いい加減**

29:デフォルトの名無しさん
09/11/29 02:17:05
dispose

30:デフォルトの名無しさん
09/11/29 02:20:53
>>28
尻がむずむずしてきた

31:デフォルトの名無しさん
09/11/29 03:03:16
>>28
CreateGraphicsがどうかしたのか?

32:デフォルトの名無しさん
09/11/29 04:32:12
プロジェクト→○○のプロパティでリソースファイルに追加→既存のファイルを追加するとき
必ずIDEの奥深いとこのフォルダから読み込もうとするんだけど
C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE
こんな場所じゃなくするにはどうやればいい?

前よみとった場所にしてほしい

33:デフォルトの名無しさん
09/11/29 09:07:45
>>32
Visual Studio 2005 Part 25
スレリンク(tech板)
Visual Studio 2008 Part 19
スレリンク(tech板)
Visual Studio 2010 Part 2
スレリンク(tech板)


34:デフォルトの名無しさん
09/11/29 09:39:08
オブジェクトを1000個単位で沢山生成するのはよろしくないやり方でしょうか?
こういう場合は構造体の方が良いとかあるんでしょうか?

2chのスレの書き込み一個一個をオブジェクトにして管理しようと思っています。


35:デフォルトの名無しさん
09/11/29 09:41:01
1000個ぐらい大したことないよ
少し大きめのXMLファイル読めば万単位で生成される

36:デフォルトの名無しさん
09/11/29 09:52:02
10億とんで1200万くらい生成してるけどなんともない

37:デフォルトの名無しさん
09/11/29 09:56:14
VC++2008EE使ってるんですがオプションのVC++ディレクトリで必要なライブラリやインクルードファイルの場所指定してるのに必ずリンカでエラー起こします
何が原因でしょうか?

しょうがないのでプロジェクトのプロパティから追加もしてみましたがリンカでエラーでした

38:デフォルトの名無しさん
09/11/29 09:56:58
>>37
スレタイをよく読みましょう!

39:デフォルトの名無しさん
09/11/29 10:02:14
さすがC#だ、なんともないぜ

40:デフォルトの名無しさん
09/11/29 10:06:56
すいません間違えました

41:デフォルトの名無しさん
09/11/29 11:08:22
>>34
寿命が長そうだし頻繁にアクセスするわけでもないだろうから
パフォーマンス的にはクラスでも構造体でも変わらないと思う。
構造体を使う積極的な理由が無い場合は迷わずクラスを選ぶのが正解。

42:デフォルトの名無しさん
09/11/29 11:58:25
EventArgsってなんなんだよ!いみふ!

43:デフォルトの名無しさん
09/11/29 12:29:09
何もないことに意味があるのさ

44:デフォルトの名無しさん
09/11/29 13:07:05
それ昔センターかな?問題で読んだことがあるw
たぶんこんな感じだった

壷というのは壷そのものに意味があるのではない。壷の作り出す空白の部分に意味があるのだ。
そこに花を生けたり、何かをためたりすることができる。"壷のもっている価値"はここにある。
物質的なものを提供するのではなく、物質から生み出される概念に価値があるのだ。
無論、壷自体にきれいな装飾をすればまた別の価値が生まれる。これは絵画自体が持っている価値と類似する。
しかし、「パンがもっている価値」とはこれは明らかに異なる。

問1.「"パンがもっている価値"とはこれは明らかに異なる。」とあるが、どのような点に違いがあるのか?
最も適当なものを次から選べ。


こんな感じw

45:デフォルトの名無しさん
09/11/29 13:11:07
>>44
パンは食えるけど壷は食えない

46:デフォルトの名無しさん
09/11/29 13:22:21
サンドイッチのパンは壺と同じだな

47:デフォルトの名無しさん
09/11/29 13:37:12
突然哲学スレになるなよw

48:デフォルトの名無しさん
09/11/29 14:26:22
>>43
お前らの人生そのものだな

49:デフォルトの名無しさん
09/11/29 14:43:59
名前の付いているコレクションを作りたいとき、

class NamedCollection : Collection<string>
{
public string Title;
}

てのと

class NamedCollection
{
public string Title;
public List<string> List;
}

だとどっちが良いんでしょうか

50:デフォルトの名無しさん
09/11/29 14:48:44
どっちが良いかは、あなたの目的次第じゃないでしょうか。

51:デフォルトの名無しさん
09/11/29 14:51:45
取り敢えず、後者は他のオブジェクトから見た場合
「名前の付いてるコレクション」じゃなくて
「名前とコレクションを持ってるオブジェクト」だな

52:デフォルトの名無しさん
09/11/29 14:52:32
オブジェクトって何ですか?^q^

53:デフォルトの名無しさん
09/11/29 14:53:49
Collection<> だの ReadOnlyCollection<> はガンガン継承してガンガン使っていいのに
内部にリストもっちゃう人って結構多いよね。

54:デフォルトの名無しさん
09/11/29 15:05:49
だってオライリー書いてる人なんかがお勧めしてる方法ですもの
天才集団が言うならそれに従った方がいい

55:デフォルトの名無しさん
09/11/29 15:15:23
>>49
ただデータとして持っていればいいだけなのに、振る舞いまでコレクションの真似をする必要は通常ない。
ただし、そうしたら『NamedCollection』というクラスの名前が不適切になる、ということはありうるだろうけどね。

C#のプログラミングで汎用コレクションを継承して何か作るなんて必要性はほとんど感じたことがないな。
逆にそうせざるを得ないのがSystem.Windows.Formsの世界。
継承してクラス作って振る舞いを定義してあげないとカスタマイズなんてできないわけだし。

56:デフォルトの名無しさん
09/11/29 15:42:55
List<T>をList<T>型のままでパブリックプロパティで公開するのは
パブリックフィールドを公開するのと実質的に同じだよ

57:デフォルトの名無しさん
09/11/29 15:50:06
>>56
プロパティはそれに対するアクセスをいつでもトラップできるところがフィールドと異なる。
また公開してしまう懸念にこだわるなら、
インターフェイスを継承して各メソッドを定義してあげればいいじゃないか。

ただ、振る舞い自体をカスタマイズしたい場合(例えば削除するときにDispose()したいとか)でない限り、
無用に継承にこだわるのはお勧めしかねるけどな。手間が増えるだけだし。

58:デフォルトの名無しさん
09/11/29 15:53:58
リードオンリーなリストを作りたいときは
どうしたって ReadOnlyCollection<> を使わざるをえないんだけどな。


59:デフォルトの名無しさん
09/11/29 15:56:52
外部に公開するプロパティや戻り値、パラメータとしてList<T>を使うことは推奨されてないってよ。
URLリンク(csharper.blog57.fc2.com)



60:デフォルトの名無しさん
09/11/29 16:01:29
>>57
リストの中身に対するアクセスを考えれば、
パブリックフィールドが良くないとされる理由がそのままList<T>にもあてはまる。
だから>>59になる

61:デフォルトの名無しさん
09/11/29 16:01:58
>>59
そこは本質的じゃない。
メンバとしてList<string> list; を定義して、
プロパティとしてpublic ICollection<string> List;を定義してあげればいい :)

62:デフォルトの名無しさん
09/11/29 16:03:07
>>59
それ、的外れもいいとこ

63:デフォルトの名無しさん
09/11/29 16:06:59
いや実際FxCopで警告出るからな
とりあえずIList<T>でも通して公開するようにしておけば、
後で実装を変えたときにもしList<T>にダウンキャストして使うアホがいたとしても
そいつの責任になる


64:デフォルトの名無しさん
09/11/29 16:07:37
>>59
もろにIT下請けって感じのプロフィール

65:デフォルトの名無しさん
09/11/29 16:09:21
C#でドラクエやFF風のロールプレイングゲーム作るにはどうしたいいかな
やろうと思っても
たとえばキャラクターをインターフェースにして
主人公キャラクターは一人しかいないからStaticにしてキャラクターを継承
モンスターもスライムとかは大量にいるだろうから普通のクラスで
ラスボスは一人しかいないからインスタンスを生成できないようにStaticにすりゃいいのか?
よくわからん。
RPGやってるWEBページない?

66:デフォルトの名無しさん
09/11/29 16:12:08
>>65
そんなこといってるレベルでは必ず描画で躓くだろうな。
とりあえず純C#の範囲で作るなら、WPFの勉強してみれば?
それ以上はスレ違い。

67:デフォルトの名無しさん
09/11/29 16:12:40
お前の場合RPGがどうこうとかそういう問題じゃないな

68:デフォルトの名無しさん
09/11/29 16:13:56
Dictionaryジェネリックすごすぎワロタ
こんな便利なものがあったとは ハッシュ配列?

69:デフォルトの名無しさん
09/11/29 16:14:19
>>64
涙拭けよブサイクw

70:デフォルトの名無しさん
09/11/29 16:15:26
>>68
俺もお前くらい純粋だった頃に戻りたい

71:デフォルトの名無しさん
09/11/29 16:15:37
じゃあこっち。
List<T>を公開すんなっていうMS直々のお達し。
URLリンク(msdn.microsoft.com)

72:デフォルトの名無しさん
09/11/29 16:16:11
プログラムに直接そういう細かいゲームのデータを書くことは普通しない。
マップやイベントのデータを別のファイルから読み込んでプログラムでゲームとして再生するわけ。
極端に言えばデータベースアプリと一緒だ。

73:デフォルトの名無しさん
09/11/29 16:27:36
>>71
だからそれが的外れつってんの
よく読め
つかさっきのブログのリンクをはっただけじゃねぇかw

74:デフォルトの名無しさん
09/11/29 16:29:04
ゲーム作りでクラスとかインタフェースにこだわって悩むより、
スパゲッティのぐちゃぐちゃでもいいからゴリゴリ作った方がいいと思うけどねぇ

75:デフォルトの名無しさん
09/11/29 16:29:10
一々めんどくせーな

76:デフォルトの名無しさん
09/11/29 16:30:39
>>74
あるある
趣味でやるなら一度完成させてから愛でるように設計直す方が
あきらかに楽しいし持続するよな



77:デフォルトの名無しさん
09/11/29 16:34:26
RPGはどうやってもデータ駆動以外ありえないよ
エンジン作ってあとはデータ作成だけ
エンジン自体のプログラムは動きさえすればどうでもいい

78:デフォルトの名無しさん
09/11/29 16:39:58
エンジンつくってバイクで走る!

79:デフォルトの名無しさん
09/11/29 16:40:25
理想を言えば諸々の計算式すら外に出せるといいんだけど
RPGツクールを作るわけじゃないんだろうから適当にハードコーディングも織り交ぜていいとは思う。


80:デフォルトの名無しさん
09/11/29 17:05:53
物理の計算みたいな単純な計算でもオブジェクトしこうは役に立つんだろうか

81:デフォルトの名無しさん
09/11/29 17:09:14
役に立ちません
いまだにFortranのスパゲッティコードがゴロゴロしています

82:デフォルトの名無しさん
09/11/29 17:09:20
完成したものを「ビルド」→「発行」するとsetup形式で作成されますが
これを単体のexe形式のみで発行するにはどうすればよいでしょうか?

83:デフォルトの名無しさん
09/11/29 17:11:10
物理計算でも、抽象度上げてオブジェクト化したいもの結構あるけどなぁ。


84:デフォルトの名無しさん
09/11/29 17:12:39
>>82
発行しないでbin/releaseの.exeをコピーする
外部コンポーネントとか使ってるとやっかいだけどな

85:デフォルトの名無しさん
09/11/29 17:12:49
>>81
スパゲッティだって認めてるんじゃないかw


86:デフォルトの名無しさん
09/11/29 17:13:51
たとえばさ
Mathクラスにsin関数ってあるじゃん。
あれって、内部でテーラー展開なのかなんなのかどういう計算してるのかしらないけどとりあえずちゃんと計算してくれるよな。
これもカプセル化の一種なのか?

87:デフォルトの名無しさん
09/11/29 17:16:15
>>86
まあそういう解釈の仕方もあるんじゃね?


88:デフォルトの名無しさん
09/11/29 17:17:19
>>84
ありがとうございます、見つけられました。
ここからコピーするだけで良いのですね。
発行しないとデバッグコード等付属されるのかと思ってました。

89:デフォルトの名無しさん
09/11/29 17:17:42
学者様のコードなんかオブジェクト指向以前の問題
構造化すらできてないのが腐るほどある

90:デフォルトの名無しさん
09/11/29 17:18:00
>>80
役に立つかもしれなし立たないかもしれない
規模によるんじゃない?

まあもっとも
物理屋がクラス設計に頭悩ませる必要はまったく無いと思う。

91:デフォルトの名無しさん
09/11/29 17:20:37
コード書くことでおまんま食ってるわけじゃないしなぁ。
綺麗な設計に頭悩ませるより計算式の組み立てとか結果を取る方に時間割いてるんだろ。

ちゅーわけで学者先生はSEに仕事くれ。


92:デフォルトの名無しさん
09/11/29 17:32:56
学生の方が熱意があるし安いからなぁ。

93:デフォルトの名無しさん
09/11/29 17:35:15
学生もコード書いてる暇あったらペーパー書け(´・ω・`)


94:デフォルトの名無しさん
09/11/29 18:52:53
新しいスレッド必要な場合って結構あるけど
新しいプロセスが必要な場合って例えばどんなとき?
結構ある?

95:デフォルトの名無しさん
09/11/29 19:16:02
ランチャー作ったときしかプロセス作成なんてしたことない。

96:デフォルトの名無しさん
09/11/29 19:21:29
COMがらみで面倒なときにプロセス分けることはある

97:デフォルトの名無しさん
09/11/29 19:47:12
タイマーコンポーネント使って1/60秒ごとにRefresh()をしたら画面がちかちかしてしまうNE

98:デフォルトの名無しさん
09/11/29 20:06:24
new したときにすでに存在するインスタンスを返すことって出来るのでしょうか?
例えば、引数に文字列を一つとるコンストラクタを持つクラスHogeがあったとします。

Hoge foo = new Hoge("123");
Hoge bar = new Hoge("234");
Hoge baz = new Hoge("123"); // これは foo と同じインスタンスにしたい


99:デフォルトの名無しさん
09/11/29 20:10:14
>>97
まあ、1/60なもんやるときは XNA とかのゲームフレームワークの方がいいかも。
あと、WinForms の場合、背景の再描画やめるとかいう手があった気がする。
DrawBackground かなんかがあって、それを override して何もしなくする。

100:デフォルトの名無しさん
09/11/29 20:11:44
newじゃ無理だな
Dictionary<TKey, TValue>とかで実装

101:デフォルトの名無しさん
09/11/29 20:18:14
前から思うんだけど秒60フレーム信仰ってなんか妙だねw

ゲームヲタ系固有の信仰かと思ってたけど、ここ数年は例の矢沢wのCMみたいに
TVの売り文句まで降りてきてる。

コマが多いと動画が滑らかに見えるって、実際はそうでもないのに。
だいいち映画なんてたった24フレームなんだけど。

NTSCにしても、なんで当時の技術でわざわざ苦労してインターレースなんてものを
実現したのか(その発想は凄いとは思うが)今となっては理解しがたいものがある。

102:デフォルトの名無しさん
09/11/29 20:26:29
>>98
XLINQのXNameがまさにそういうことやってるんだけどStringからのimplicit演算子をオーバーロードしてる

103:デフォルトの名無しさん
09/11/29 20:29:15
>>101
実際 XNA の初期設定は 30fps だったりする。

104:デフォルトの名無しさん
09/11/29 20:56:04
まさにオブジェクト指向って感じのプログラムってどんなのだろう。
C言語とかだと結構難しいのにC#だと簡潔にかけるような状況ってあるの?

105:デフォルトの名無しさん
09/11/29 20:59:39
.NETそのもの

106:デフォルトの名無しさん
09/11/29 21:03:10
Cでもオブジェクト指向は出来るぜ念のため。




107:デフォルトの名無しさん
09/11/29 21:17:13
>>104
GUI プログラミングなんかもろにそうだけども、
CUI でやれるのだと、ファイル階層たどってくとかは?


108:デフォルトの名無しさん
09/11/29 21:27:19
>>101
くだらん些細なことまでこだわるなんて、プログラマみたいだね。

109:デフォルトの名無しさん
09/11/29 21:31:38
映画の24コマは映写機だから大丈夫なんだよ。
画面全体が瞬時に写って瞬時に消えるからね。
NTSC出た当時のCRT方式で30コマなんて見れたもんじゃないよちらついて。
走査線が上から下に流れるからね。

最近のTVの高速駆動は液晶だから特に重要なんだよ。
液晶だとそのままじゃ画面が写りっぱなしで消えないからね。
静止した画像が長く写ると人間の目には止まって見えてしまう。
そのせいでコマの移り変わりが滑らかに見えなくなるんだよ。


110:デフォルトの名無しさん
09/11/29 21:33:36
CRTだと滑らかに動いて見えていたものが、
液晶に映すとががががって感じに滑らかに動いて見えない経験あるだろ。


111:デフォルトの名無しさん
09/11/29 21:43:05
60fps固定ってのはTVの都合考えてのことだからPCでゲーム作る分には気にする必要は無い

112:デフォルトの名無しさん
09/11/29 21:47:52
モニタのリフレッシュレートにあわせないと(もしくは1/n倍)ちらつくんじゃない?

113:デフォルトの名無しさん
09/11/29 21:53:26
信仰とか言ってる奴なんなの?
何も知らないのに偉そうにレスしちゃってw

114:デフォルトの名無しさん
09/11/29 22:01:00
モニタによってリフレッシュレートが違うからリフレッシュレートに合わせてfpsを調整すればいい

115:デフォルトの名無しさん
09/11/29 22:26:06
CRTなら違うけど液晶なら60固定だね

116:デフォルトの名無しさん
09/11/29 23:21:21
突然の質問申し訳ないです
DataGridViewの外観を変える設定はどうやればいいでしょうか?
DataSetをバインドさせて表示させるところまではできています。

やりたいことは

・DataGridViewの一番左の列にExcelのような番号を付与したい
 また、現在のレコード数を表の左上に (選択中のレコード番号)/(レコード総数) のように分数形式で表記したい

・また、コンボボックスとボタンを用意して、コンボボックスで選択したものを利用して
 ボタンをクリックすることでフィルターされたものをDataGridViewに表示させたい

・ForEach()を利用してDataGridViewの各設定をしたい


参考になるサイトでもいいのでご助言お願いします



117:デフォルトの名無しさん
09/11/29 23:34:17
> ・DataGridViewの一番左の列にExcelのような番号を付与したい
>  また、現在のレコード数を表の左上に (選択中のレコード番号)/(レコード総数) のように分数形式で表記したい
CellPaintingで描画する

> ・また、コンボボックスとボタンを用意して、コンボボックスで選択したものを利用して
>  ボタンをクリックすることでフィルターされたものをDataGridViewに表示させたい
DataTable.DefaultViewのRowFilterで

> ・ForEach()を利用してDataGridViewの各設定をしたい
各設定って何?
ForEachはなんのクラスのメソッド?

118:デフォルトの名無しさん
09/11/29 23:34:36
アプリケーションの設定(Properties.Settings) ってダイアログで
いろいろ型選べるけど、自分で作った class って保存できないの?

119:デフォルトの名無しさん
09/11/29 23:49:49
C#は明らかに個人で使うものじゃないな
複数の人数で開発するのを前提にした機能が多い。
自分だけで作って、自分だけで使うならまったく気にしなくていいようなことを
MSDNではあたかも知らないとプログラミングすらできないように書いてるし。

C++のほうが個人むけだなぁ

120:デフォルトの名無しさん
09/11/29 23:50:46
C++のほうが個人向け・・・???

121:デフォルトの名無しさん
09/11/29 23:56:41
>>117
ありがとうございます

> ・ForEach()を利用してDataGridViewの各設定をしたい
>各設定って何?

DataGridViewの全体、行、列をForEach()内で設定するようにしなければならないのですが、

Public void 設定(){

foreach (DataGridViewの全体)
{
         表全体の設定

}
foreach (DataGridViewの列)
{
         表の列の設定

}
foreach (DataGridViewの行)
{
         表の行の設定
}
}

>ForEachはなんのクラスのメソッド?
すいません、勉強不足で何のクラスを使ったらいいのかさっぱりです
課題で使うことになってるからとしか・・・


122:デフォルトの名無しさん
09/11/30 00:03:39
>>119
最後の一行だけは絶対同意しかねるwww
といいかかったけども、C++ は個人とかチームとか関係なくアレだった。

123:デフォルトの名無しさん
09/11/30 00:09:51
>>118
参照しているアセンブリに存在している型なら可能
逆に言うとアプリケーション自身のアセンブリに書かれている型は不可能

124:118
09/11/30 01:33:31
>>123
レスありがとう。確認しました。

アプリケーションの設定を保存するためだけに、
ひとつアセンブリを作るというのも大げさなような気がする
けど、その方法で保存してみることにします。

125:デフォルトの名無しさん
09/11/30 01:38:47
1から50まで足して合計求めるプログラムできたwwwwwwww

for i=1 to 50
A[i]=i;

Integer Sum = 0
for i=1 to 50
Sum += A[i]

126:デフォルトの名無しさん
09/11/30 01:42:14
>>121
>  foreach (DataGridViewの全体)
>  {
>          表全体の設定
>  }
イミフ
全体の何を列挙するのさ?

> >ForEachはなんのクラスのメソッド?
> すいません、勉強不足で何のクラスを使ったらいいのかさっぱりです
> 課題で使うことになってるからとしか・・・
課題出した人に聞くしかないな

127:デフォルトの名無しさん
09/11/30 01:53:43
宿題スレに行けってことでFA

128:デフォルトの名無しさん
09/11/30 04:01:10
C#だとC用のDLLとか使うときは
いちいちDLLImportだのExternだの書かないとダメなのか・・・
めんどくさいな。

129:デフォルトの名無しさん
09/11/30 07:03:42
Bitmap等の指定した画像ファイルからではなく
アプリケーション等の特定座標の色を取得する方法を教えてください

130:デフォルトの名無しさん
09/11/30 08:00:10
URLリンク(proglab.aki.gs)

対象ウィンドウのデバイスコンテキスト取ってきてコピー

131:デフォルトの名無しさん
09/11/30 08:32:11
>>128
どうせそういう外部APIは1つのstatic classで
1つのソースファイルにまとめてしまうので全く問題ない。

132:デフォルトの名無しさん
09/11/30 08:50:09
>>130
なるほど、一度スクリーンショットでBMPを作成してしまえばいいのですね。

URLリンク(support.microsoft.com)
ちょうどよさげな解説ページも見つけたので合わせて奮闘してみます。
ありがとうございました。

133:デフォルトの名無しさん
09/11/30 08:50:52
ふらっと

134:デフォルトの名無しさん
09/11/30 08:52:48
スレタイの「ふらっと」ってやっぱ#に掛けて♭なわけ?

135:デフォルトの名無しさん
09/11/30 10:25:08
DllImport宣言はCのヘッダを正規表現置換しまくればわりと楽に作れる

136:デフォルトの名無しさん
09/11/30 10:30:08
>>135
APIの宣言部はどうせ手で移植するから置換はあまり使わないな。
ポインタを削ったり、structの名称を変更したりすることもあるし。

どちらかというと、#define定義された定数値をconst intやenumに置き換える作業だな。
数が多いし、単純な変換だからなんとかしたい……。

137:デフォルトの名無しさん
09/11/30 10:32:38
面倒くせーからpinvoke.netからコピペしてそのままだな

138:デフォルトの名無しさん
09/11/30 10:39:22
配列は派生できないでしょうか?
委譲しちゃうとインデクサで速度が落ちるんで
何か方法がないかと検討してるんですが・・

139:デフォルトの名無しさん
09/11/30 10:41:54
無理。
インデクサ呼び出しのオーバーヘッドまで気にするような状況なら
そもそもオブジェクト指向とか考えるのが間違い。配列剥き出しでCみたいに書け。

140:デフォルトの名無しさん
09/11/30 10:43:36
>>101
でも映画館では2倍にして48で上映してるよ。
昔の映画の映像見ればわかるが、さすがに24はちらつく

141:デフォルトの名無しさん
09/11/30 10:59:17
>>139
もしくは、高速化したい部分を隠蔽しちゃうとかね。


142:デフォルトの名無しさん
09/11/30 11:03:36
(16+17+17)*20 = 1000
すごい発見したwwww
16.6666…とかやらなくてもwwwこれなら60fps余裕杉ワロタwwwwww
今特許申請してくるwwwwww

143:デフォルトの名無しさん
09/11/30 11:04:20
>>141
どういうことですか?

144:デフォルトの名無しさん
09/11/30 11:06:07
ん?
つまり3フレームに1回は16msにすれば1秒間中のフレームとしては60フレームになるってことか?

145:デフォルトの名無しさん
09/11/30 11:12:17
>>142
どうせFPSの計算はfloatやdoubleを使うんで関係ない。

146:デフォルトの名無しさん
09/11/30 11:12:43
>>143
内部に持ってる配列をinternalメンバで公開してしまうとか

147:デフォルトの名無しさん
09/11/30 11:28:05
>>146
やっぱそれしかないですよね・・
実行時間のかなりの部分と、書くコードのほとんどに頻繁に
配列を弄繰り回すんで
できればxxx[]って書き方でしかも高速で・・と妄想してるんですが

配列に委譲してインデクサ経由するより
List<T>のインデクサ?の方が早んですよねw

もっとインデクサのパフォーマンス上げてくれ>MS

148:デフォルトの名無しさん
09/11/30 11:42:08
>>147
というか、そんなローレベルなコード書くなら、
そこだけC++/CLIで書いてDLLにしたら?
フロントエンドは従来どおりC#で書けばいい。

149:デフォルトの名無しさん
09/11/30 11:55:44
>配列を弄繰り回すんで

どんな処理なのかわからんが、できそうならキャッシュしちゃうのはだめなの?

150:デフォルトの名無しさん
09/11/30 12:00:03
コンストラクタのオーバーロードを行なう時、
引数の値をそれなりに編集してから別のコンストラクタを呼出したいのですが
: this() だけだと出来ることが制限されすぎでうまくいきません。
どのように解決したらいいんでしょう?

例)
引数に文字列を取るコンストラクタと、複数のパラメータを取るコンストラクタ

class Hoge {
public Hoge(string name) {
Name = name;
LastModified = DateTime.Now;
// etc etc....
}

public Hoge(string pattern, int no, Huga foo) {
Hage baz = new Hage(pattern, no);
Hage.doSomething();

if (foo.Bar > 200)
this(Hage.Result); /// ダメ!
else
this(""); /// アウト!
}

151:デフォルトの名無しさん
09/11/30 12:02:09
private methodに分離しろよそんなの

152:デフォルトの名無しさん
09/11/30 12:03:14
Construct(string)とか別に定義してそっちに移す
Hoge(string)の方はそのメソッドに丸投げ


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch