5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

ふらっとC#,C♯,C#(初心者用) Part28

1 :デフォルトの名無しさん:2008/05/25(日) 13:02:44
このスレッドは
「どんなにくだらないC#プログラミングに関する発言でも誰かが優しくレスをしてくれるスレッド」です。
ほかのスレッドでは恐ろしくて書き込めないような低レベル、もしくは質問者自身なんだか意味がよく分からない質問など、
勇気をもって書き込んでください。
内容に応じて、他スレ・他板へ行くことを勧められる、あるいは誘導される場合がありますがご了承下さい。

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

前スレ

ふらっとC#,C♯,C#(初心者用) Part27
http://pc11.2ch.net/test/read.cgi/tech/1208248879/

2 :デフォルトの名無しさん:2008/05/25(日) 13:05:41
C#, C♯, C#相談室 Part46
http://pc11.2ch.net/test/read.cgi/tech/1208791919/

WPF(XAML,XBAP,.NET3.5)GUIプログラミング
http://pc11.2ch.net/test/read.cgi/tech/1211453941/

Live2
http://pc11.2ch.net/test/read.cgi/tech/1203674757/

初心者のためのプログラミング言語ガイド Part9
http://pc11.2ch.net/test/read.cgi/tech/1210941509/

3 :デフォルトの名無しさん:2008/05/25(日) 13:07:18
参考サイト。まずはここで検索してから。
http://google.com/
http://homepage3.nifty.com/midori_no_bike/CS/
http://www.atmarkit.co.jp/fdotnet/dotnettips/index/index.html
http://dobon.net/vb/dotnet/
http://jeanne.wankuma.com/tips/
http://www.labasp.net/CsharpNote/

4 :デフォルトの名無しさん:2008/05/25(日) 13:10:56
>>1

乙 スレたて感謝します

初心者一同

5 :デフォルトの名無しさん:2008/05/25(日) 13:22:09
Consol.Out.Write(">>1 乙");

6 :デフォルトの名無しさん:2008/05/25(日) 16:39:08
勉強で、あるフォルダ配下の.txtファイルを一覧するアプリを作成しています。
DataGridViewにDataSet1をバインドして、
そのDataSet1はファイルリストのxmlを読み込むという風にしたいのですが、
private void Form1_Load(object sender, EventArgs e) {
this.dataSet1.ReadXml(@"C:¥test.xml");
}
としてもDataGridViewには何も反映されません。
DataGridView.DataBind()のようなメソッドもないようですが、
どのようにバインドすればよいでしょうか。
ちなみにxmlの形式は以下のようなものです。
<?xml version="1.0" ?>
- <ContentsInfomation xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<path>C:¥Documents and Settings¥Administrator¥My Documents</path>
<fileName>test.txt</fileName>
</ContentsInfomation>

7 :6:2008/05/25(日) 17:36:07
自己解決(?)しました。
ツールボックスからフォームにD&Dしたdataset1ではなくて、
コード中でDataSetをnewしてバインドしたら表示されました。
何かのプロパティが作用してたのかな…。

8 :デフォルトの名無しさん:2008/05/26(月) 09:38:38
多分DataGridViewのDataMember
つまりどのテーブル表示すればいいのか分からんと

9 :デフォルトの名無しさん:2008/05/26(月) 12:57:54
textBoxにサウンドの再生位置を表示するため、
Timer_Tickで再生位置取得、textBoxに表示としているんですが、
こういう一定時間ごとに処理ってTimerでやっていいもんなのでしょうか。
他にこういった処理をするためのものってありますか。

10 :デフォルトの名無しさん:2008/05/26(月) 12:59:25
Timerがまさにその用途だろ

11 :デフォルトの名無しさん:2008/05/26(月) 14:14:40
再生位置表示みたいな割にいい加減な用途なら問題なし。
厳密な一定間隔ごとにサウンドを再生するといった用途で使うなら音がずれまくるだろうな。

12 :デフォルトの名無しさん:2008/05/26(月) 14:19:24
そのような場合はどうするのですか?

13 :デフォルトの名無しさん:2008/05/26(月) 14:58:41
もっと高精度なタイマーを使う

14 :デフォルトの名無しさん:2008/05/26(月) 15:01:16
>>10-11
ありがとうございます。
こういった場合Timer使わずにこうしたほうがいいとか、
あるのかなと思って聞いてみました。
問題ないようでよかったです。

15 :デフォルトの名無しさん:2008/05/26(月) 16:31:08
タイマの精度ってVistaなりEFI搭載PCで改善されたってことはないのかね。
最新環境でもいまだに55msなの?

16 :デフォルトの名無しさん:2008/05/26(月) 16:37:28
System.Windows.Timers.Timer使わなきゃいいだけだし…

17 :デフォルトの名無しさん:2008/05/26(月) 21:15:33
すみません、お聞きしたいのですが

C#でLANの他端末の電源ONは出来たのですが
遠隔でログオンって出来るんでしょうか?

自分なりにググってみたのですが判りません・・・

お願いします

18 :17:2008/05/26(月) 21:16:48
すみません
VS2005EE&Win2000です

19 :デフォルトの名無しさん:2008/05/27(火) 11:25:30
private AxWMPLib.AxWindowsMediaPlayer mediaPlayer = new AxWMPLib.AxWindowsMediaPlayer();
private void Form1_Load(object sender, EventArgs e)
{
mediaPlayer.settings.autoStart = true;
mediaPlayer.URL = "C:\\love.mp3";
}

20 :デフォルトの名無しさん:2008/05/27(火) 11:26:27
すいません。>>19は書き込みミスです。
VC#2005EE XP

WMP使って音楽を再生したいのですが、
ActiveX コントロールのインスタンスが作成されないようで、
autoStartのところで
「InvalidActiveXStateException はハンドルされませんでした」
とエラーが出てしまいます。
何が問題なのでしょうか。

private AxWMPLib.AxWindowsMediaPlayer mediaPlayer = new AxWMPLib.AxWindowsMediaPlayer();
private void Form1_Load(object sender, EventArgs e)
{
mediaPlayer.settings.autoStart = true;
mediaPlayer.URL = "C:\\love.mp3";
}

21 :デフォルトの名無しさん:2008/05/27(火) 12:01:07
ControlsにAddしてる?

22 :デフォルトの名無しさん:2008/05/27(火) 12:29:08
>>21
FormのDesigner.csってのに書いて処理できました。
ありがとうございました。

23 :デフォルトの名無しさん:2008/05/27(火) 19:48:31
>>22
*.Designer.csを自分でいじらない。
ツールボックスにWindowsMediaPlayerを追加しておいて、普通のコントロールと同様にフォームに追加し、
コードの生成はVC#にお任せにするのが無難だよ。
(ツールボックスのコンテキストメニューでアイテムの選択→COMコンポーネント)

24 :デフォルトの名無しさん:2008/05/27(火) 20:36:21
コードで書くにしてもコンストラクタとかに書けばいいんでね?
てかツールボックスから書かずにAxWMPLibのアセンブリは追加したんだろうか。

25 :デフォルトの名無しさん:2008/05/27(火) 21:54:32
スクリーンセーバを作っています。
Bitmapオブジェクトを作り、そこに色々と描画し、Paintイベントが来たら(Refreshをしたら)をそれをフォームに描画、という手順を踏んでいるのですが、
どうも遅いようです。これは改善できないのでしょうか。

LockBitsを使っているので、Bitmapオブジェクトの代わりに何か使う、ということは出来ないみたいなのですが、、、

26 :デフォルトの名無しさん:2008/05/27(火) 21:58:44
GDIで描画


27 :デフォルトの名無しさん:2008/05/27(火) 23:06:23
Form上でcalc.exeを起動させたいんですけど
どうすればいいんでしょうか
再度ググって来ますダイブ!!

28 :デフォルトの名無しさん:2008/05/27(火) 23:34:05
>>20

usingは WMPLib; ?
C#2008で柱名い


29 :デフォルトの名無しさん:2008/05/28(水) 02:09:47
いやアセンブリ参照したあとならusingはクリックでVSが補完してくれる。

30 :デフォルトの名無しさん:2008/05/28(水) 05:54:33
http://www.atmarkit.co.jp/fdotnet/dotnettips/687nondispbrowser/nondispbrowser.html
VC#2008EEを使ってます。このサイトを見ながらgetlinks.csを書いてみたのですが
”windows”は名前空間”System”に存在しません、
WebBrowser・webBrowserDocumentCompletedEventArgs
が見つかりませんでした。usingディレクティブまたはアセンブリ参照が不足してます。
と出てコンパイルがうまくいきません。
何かほかに必要なものがあるのでしょうか?



31 :デフォルトの名無しさん:2008/05/28(水) 06:25:28
>>30
>”windows”は名前空間”System”に存在しません、
windowsの先頭は大文字


32 :デフォルトの名無しさん:2008/05/28(水) 06:58:11
フォームデザイナでフォーム上に追加したコントロールのDisposeメソッドは、
どのような仕組みで呼ばれるのでしょうか。
***.Designer.csを見ても、コントロールのDisposeメソッドを呼び出している部分は見つかりません。
何らかのタイミングで自動的に呼ばれるのであれば、自作のカスタムコントロール上に配置した
子コントロールのDisposeメソッドも、実は明示的に呼ばなくても大丈夫?

33 :デフォルトの名無しさん:2008/05/28(水) 07:01:05
親がDisposeされるときについでにDisposeされる

34 :デフォルトの名無しさん:2008/05/28(水) 07:06:46
>>31
ありがとうございます。
書き込みはちょっと間違いがあるかもしれません
サイトののコードをコピペしても駄目でした

35 :デフォルトの名無しさん:2008/05/28(水) 07:55:51
System.Windows.Forms.dllとか参照に追加

36 :デフォルトの名無しさん:2008/05/28(水) 08:12:07
>>35
System.Windows.Formsを追加したらちゃんとコンパイルできました!ありがとうございます。
本当にくだらない質問してすみませんでした。

37 :デフォルトの名無しさん:2008/05/28(水) 08:20:34
>>27
Processってコンポーネント貼り付けて
Process.Start(”calc.exe”);でスタートだってよ

38 :デフォルトの名無しさん:2008/05/28(水) 18:07:45
C#で配列は
Data[4,4]
Data[4][4]
2通り使えますよね

int[][] Data = new int[4][4];
この宣言方法ではエラーになります
Javaのように1発で宣言する方法ないですか?

39 :デフォルトの名無しさん:2008/05/28(水) 18:11:12
追加
Data[4][4]
こちらの方式を使う場合の話です

40 :デフォルトの名無しさん:2008/05/28(水) 18:15:20
ありません

41 :デフォルトの名無しさん:2008/05/28(水) 18:16:11
そうなんですか 残念!

42 :デフォルトの名無しさん:2008/05/28(水) 18:18:15
せっかくだからラムダ式を使って

Array.New(4,4, () => new Foo())

こんな感じのを作ればいいんだろうけどintだと初期値いらんな

43 :デフォルトの名無しさん:2008/05/28(水) 18:39:10
>>38
それなら[,]でいいと思うが一応。
int[][] Data = new int[4][] {
new int[4],
new int[4],
new int[4],
new int[4],
}};
もしジャグ配列とただの多次元配列の区別が付いていないなら、勉強し直すこと。

44 :デフォルトの名無しさん:2008/05/28(水) 18:47:38
>>43
わかりました
やはり通常 ジャグ配列より多次元配列の方が効率よくて推奨なんですかね

45 :デフォルトの名無しさん:2008/05/28(水) 18:52:46
いいや全然
明らかにジャグ推奨

46 :デフォルトの名無しさん:2008/05/28(水) 18:53:40
>>44
おおざっぱに言ってしまえば、多次元配列の中身は1次元配列といっしょだから。
添え字の書き方が特殊なだけで。

47 :デフォルトの名無しさん:2008/05/28(水) 19:00:02
>>45-46
そうですか ジャグでもいいんですか
Javaに流用しやすいのがいいですね

48 :デフォルトの名無しさん:2008/05/28(水) 21:45:34
ジャグより多次元の方が早いだろ

49 :デフォルトの名無しさん:2008/05/28(水) 21:50:49
一番下の添え字だけ変えていくならジャグの方が速いよ
バラバラなら多次元の方が速いこともある

50 :デフォルトの名無しさん:2008/05/28(水) 22:52:51
>>37
「=」押した瞬間 Pgで事前に指定(フォーカスのある)したテキストボックスに
ポピー&ペーストできる方法ありませんかね・・・

ググッっはいるんですけど ^^;

51 :デフォルトの名無しさん:2008/05/28(水) 22:57:09
>>50
電卓にCtrl+cで値をコピーできるから
クリップボード参照してテキストボックスに入力してみては?

52 :デフォルトの名無しさん:2008/05/28(水) 23:28:09
>>51
確かにそれはいえてるんだけど
かっこよさの観点から「=」入れると
かっこいいいいいいいい!

俺もてもての展開を気体

53 :デフォルトの名無しさん:2008/05/28(水) 23:30:23
くーるまーにーポッピー


54 :デフォルトの名無しさん:2008/05/28(水) 23:50:03
>>51
確かにそれはいえてるんだけど
かっこよさの観点から「=」を叩いた瞬間テキストボックス
入るとかっこいいいいいいいい!
ジョジョふうにゆうと

CooooooooooooooooL

>>53
コピーな

55 :デフォルトの名無しさん:2008/05/28(水) 23:51:21
>>52
出来るかどうか分からんけど
電卓の上に透明なウィンドウ重ねて
マウスやキボドの入力をそのまま電卓に送って
=押されたときだけクリックのあとにCtrl+cを送って、貼り付けるとか

56 :デフォルトの名無しさん:2008/05/29(木) 10:33:43
クリップボード壊しちゃ駄目かな?
WM_COPY使えたりしないか

57 :デフォルトの名無しさん:2008/05/29(木) 11:12:39
ファイルで1バイト(8 bit)の読み込みは
ReadByte()
で出来ますが
1ワード(16 bit)の読み込みはどうすればいいですか?
ReadShort()
というのはなさそうですが

58 :デフォルトの名無しさん:2008/05/29(木) 11:13:42
Read()

59 :デフォルトの名無しさん:2008/05/29(木) 11:15:52
ReadByte() + 256 * ReadByte()

60 :デフォルトの名無しさん:2008/05/29(木) 11:19:11
ありがとうございます
やってみます

61 :デフォルトの名無しさん:2008/05/29(木) 12:15:19
BinaryReaderを使え

62 :デフォルトの名無しさん:2008/05/29(木) 12:22:47
BinaryReader微妙に使いにくいんだよね
とりあえずエンディアン指定ぐらいしたいなぁ

63 :デフォルトの名無しさん:2008/05/29(木) 12:35:28
>>62
あとReadStruct()とかあるといいよな。

64 :デフォルトの名無しさん:2008/05/29(木) 16:53:11
2つのバイト列が一致しているか比較したい場合にはどうしたら良いのでしょうか?
byte[] b1とb2の中身が同じかどうか調べたいのです。

==やEqualsだと判別できないようです。

一回、Base64で文字列にして比較するか、
foreachでぐるぐる回しながら1バイトづつ比較するのでしょうか?

65 :64:2008/05/29(木) 17:02:18
てへっ、いいサイトを見つけて納得しました。
http://blog.livedoor.jp/gushwell/archives/2005-03.html

66 :デフォルトの名無しさん:2008/05/29(木) 17:16:47
Enumerable.SequenceEqualだな3.5的に

67 :デフォルトの名無しさん:2008/05/29(木) 17:25:15
>>66
まじっすか、3.5はいろいろありますねぇ。
3.5が標準で搭載されるように早くならないかなぁ。


68 :デフォルトの名無しさん:2008/05/29(木) 17:32:52
オレなんか、C#3.0からもう戻れない状態だw

69 :デフォルトの名無しさん:2008/05/29(木) 17:38:20
LINQだけ抜き出して.NET 2.0にくっつければいいんだろ
誰かLINQと互換性のあるライブラリとか作ってないの

70 :デフォルトの名無しさん:2008/05/29(木) 17:45:13
拡張メソッドが記述できない時点でほとんど意味は無いと思うが…

71 :デフォルトの名無しさん:2008/05/29(木) 17:55:27
.NET 2.0が対象でもC#3.0は使えるだろ
LINQがないだけで

72 :デフォルトの名無しさん:2008/05/29(木) 17:59:47
拡張メソッドは無理になくてもいいかな、匿名クラスとラムダ式ができないと発狂するかも

73 :デフォルトの名無しさん:2008/05/29(木) 21:37:56
>>69
MONOのSystem.Core.dll

74 :デフォルトの名無しさん:2008/05/30(金) 00:30:07
>>70
自前でExtensionAttribute宣言すればいいじゃない。

[AttributeUsage(AttributeTargets.Method | AttributeTargets.Class | AttributeTargets.Assembly)]
class ExtensionAttribute : Attribute { }

75 :デフォルトの名無しさん:2008/05/30(金) 10:01:13
VS2008で.NET Compact Framework 2.0、ターゲットをCEで
エミュレータ環境にてC#でのプログラミングをしています。

System.Windows.Forms.ControlクラスのFontプロパティに
Arai と Tahoma 以外のフォントを指定する方法を御存知の方は
いらっしゃいませんか?

Form や Label、TextBox に MS明朝やゴシックなどを指定
したいのですが、フォント選択のダイアログには Arai と Tahoma
しか表示されず、またコンストラクタ内(InitializeComponentメソッド
内、または同メソッド実行後に)に下記のような指定をしても、
デフォルト(Arai, 10pt)のままです。

this.Font = new System.Drawing.Font("MS ゴシック", 9F, System.Drawing.FontStyle.Regular);

プログラム自体が原因ではなく、他に原因(プロジェクトの設定等)
があるのかも分からない状態です。

よろしくお願いいたします。


76 :デフォルトの名無しさん:2008/05/30(金) 10:06:37
とりあえずInstalledFontCollectionでフォントファミリを列挙してみたらどうだろう

77 :75:2008/05/30(金) 12:11:42
即レス、ありがとうございます。

InstalledFontCollection でフォントファミリを列挙してみたところ、
"Courier New,MS UI Gothic,Tahoma,MS ゴシック,MS Pゴシック"の
フォントを確認できました。

しかし、フォントダイアログに表示されていた"Arai"が一覧にありません。
デバッグで確認した結果、"Arai" を指定(というか、フォントファミリの
一覧にないフォントを指定)すると、"MS Pゴシック"が使用される事が
分かりました。

しかし、これ以上は分かりません。今はエミュレータですが、このプロ
グラムを動作させるCEには "MS 明朝" がサポートされているしで、
何が何だか分からなくなってしまいました(´-`;)



78 :デフォルトの名無しさん:2008/05/30(金) 12:21:43
Arialじゃないのか?

79 :デフォルトの名無しさん:2008/05/30(金) 12:47:03
>75が新井さんで自作フォントなんじゃね?とか言ってみる

80 :75:2008/05/30(金) 13:25:45
おっと!>78 の指摘通り、Arialですw

昔、PGについて右も左も判らない頃に先輩から「このフォントは
ヘルメットのAraiが作ったんだよ」と言われ、ヘルメットのロゴと字体が
にていたので、綴りを確認しないまま、そのままAraiに脳内変換。
その後、後輩に指摘されるまで、あらゆるところでずっと使っていました。

 参考:アライヘルメット(左上のロゴを参照)
 http://www.arai.co.jp/jpn/top.html

…未だトラウマな件はさておき、本題について誰か御存知ないですか?


81 :75:2008/05/30(金) 15:58:09
自己レスです。

フォント選択のダイアログには Arial と Tahoma しか表示
されなかった件について、ダイアログに「すべてのフォント
を表示」のチェックボックスにチェックを入れたら表示され
たので指定する事ができました。

ただし、MS明朝を指定してもエミュレータ上ではゴシック
に置き換えられて表示されるので、CEエミュレータの問題
と思われますので、質問をWindowsCEプログラミングスレ
に移動して続けたいと思います。

レス頂いた方々、ありがとうございました。(´-`)ノシ


82 :デフォルトの名無しさん:2008/05/30(金) 16:01:35
.Net FrameworkにSTLでいうdequeってないよね
どっかにdequeのいい実装はない?

83 :デフォルトの名無しさん:2008/05/30(金) 16:29:25
VS2008でテストを書いているんですがメッセージボックスのテストとかってどう書けばいいんでしょうか


84 :デフォルトの名無しさん:2008/05/30(金) 17:24:09
日本語でおk

85 :デフォルトの名無しさん:2008/05/30(金) 17:31:45
>>82
それこそSTL見ればいいんじゃね? あとJavaとか

86 :デフォルトの名無しさん:2008/05/30(金) 17:35:54
自分で書くのがめんどくさいんだよ
いいよもう自分で書くよ

87 :デフォルトの名無しさん:2008/05/30(金) 17:36:05
ボタンを押したらメッセージボックスが出てきてOKを押したときのテストとか?を書きたい

何も考えずButton_Clickをテストから呼んだら普通にメッセージボックスが表示されたorz
OKとかCancelでテストを書きたいんだけどテストコード上どう書けばいいのやら・・・


88 :デフォルトの名無しさん:2008/05/30(金) 17:45:50
>>87
だから日本語でおk。
エスパーするに、メッセージボックスで押されたボタンを判定したいということか?

89 :デフォルトの名無しさん:2008/05/30(金) 17:57:01
俺的にエスパーするとフォーム上にボタンを配置して
そのボタンを押せばメッセージボックスを出したいと言うことかな?

90 :デフォルトの名無しさん:2008/05/30(金) 18:19:24
>>82
Wintellect's Power Collections
プログラミングMicrosoft .NET Framework 2版で紹介されている。

91 :デフォルトの名無しさん:2008/05/30(金) 18:32:57
>>90
Thanks!!

92 :デフォルトの名無しさん:2008/05/30(金) 19:11:01
メッセージボックスで選んだボタンによる分岐などのテストだろ…
メッセージ送ったら何とかならんかったっけかな?


93 :デフォルトの名無しさん:2008/05/30(金) 19:46:11
メッセージボックスで押されたボタンを判定したいなら、MessageBox.Show()の戻り値を見ればいい。

DialogResult result = MessageBox.Show(); // メッセージボックスが閉じると、resultにOKとかCancelが入る
if (result == DialogResult.OK)
{
...
}
else if (result == DialogResult.Cancel)
{
...
}

94 :デフォルトの名無しさん:2008/05/30(金) 19:51:21
いやそういうことじゃないと思うんだよね…

95 :デフォルトの名無しさん:2008/05/30(金) 20:06:26
アセンブリが厳密署名をされているかどうか、確認する方法って、
バイナリエディタで書き換えてみる以外にあるでしょうか?

署名無し、
遅延署名の公開鍵のみで署名
秘密鍵で完全署名

これらの状態を出来るだけ簡単に判別したいのです。
真ん中のは起動できないので、まぁ、分かるような気もしますが、
厳密署名有と無しを簡単に見分ける方法はあるでしょうか?


96 :デフォルトの名無しさん:2008/05/30(金) 20:50:30
リフレクター
ILDASM
VSで参照

確かに不便だと思う

97 :デフォルトの名無しさん:2008/05/30(金) 20:58:26
そういうユーティリティ作ればいいんじゃね?
指定ファイルをLoadFromしてGetName()表示するようなの

98 :95:2008/05/30(金) 21:15:37
皆さんどうも有り難うございます。
確かに、ディスアセンブラみたいので見れば、PublicKeyTokenの値が見えますね。
難読化ばかりに興味がいっていて、気づきませんでした。

どうも有り難うございました。


99 :デフォルトの名無しさん:2008/05/30(金) 21:26:15
C#で指定した時間だけ処理を停止させるのってなんでしたっけ?
調べてもでてこないのでおしえてください

100 :デフォルトの名無しさん:2008/05/30(金) 21:31:57
Thread.Sleep

101 :デフォルトの名無しさん:2008/05/30(金) 22:16:45
>>99
「c# 停止」で出てきたが、電話帳でも調べたのか?

102 :デフォルトの名無しさん:2008/05/30(金) 23:49:33
「C# 指定した時間だけ処理を停止させる」で検索してたんだろ

103 :デフォルトの名無しさん:2008/05/31(土) 00:03:03
>88,89,92
メッセージボックスの「ボタンクリック」をテストコードに書きたいとです

ボタンクリック処理の中でメッセージボックスが出るんだけどそのたびにテストが止まるから
まぁメッセージボックスが出るたびに手動でクリックしていけばいいんだろうけど・・・


104 :デフォルトの名無しさん:2008/05/31(土) 00:57:43
>>103
Button.PerformClick呼ぶ。

105 :デフォルトの名無しさん:2008/05/31(土) 01:29:59
むちゃゆうなw


106 :デフォルトの名無しさん:2008/05/31(土) 03:38:25
プログラミングって論理的思考も必要だけど、
理路整然と説明できる力も必要だよね。
色んな解釈が出来ないように正確にコードを書いていくんだ。

107 :デフォルトの名無しさん:2008/05/31(土) 04:04:36
フォームデザイナで作られるリソースと、
リソースデザイナで追加したリソースとの共存って出来なかったのかなあ。
もしくは、フォームデザイナで追加出来る、
バイナリデーターの単純なコンテナがあればいいのに。

108 :デフォルトの名無しさん:2008/05/31(土) 11:38:54
共存したところで別に意味ないんでないか?
別々に呼び出して一緒に使えばいいだけで

109 :デフォルトの名無しさん:2008/05/31(土) 13:17:57
カスタムコントロール作った時に、
コントロールのresxに、固有のビットマップなんかを含めたくなるな。
Resources.resxに入れてるけど、ちとプログラムのモジュール性が下がる。

110 :デフォルトの名無しさん:2008/05/31(土) 17:10:11
なるほどね

111 :デフォルトの名無しさん:2008/05/31(土) 23:02:26
参照型のフィールドを明示的に初期化しなかった場合、初期値がnullになってたんですが
これは言語規格で決められてるのですか?

112 :デフォルトの名無しさん:2008/05/31(土) 23:05:06
はい。

113 :デフォルトの名無しさん:2008/05/31(土) 23:06:27
変数は0、参照はnull、stringもnull、配列もnull

114 :デフォルトの名無しさん:2008/05/31(土) 23:11:50
すいません!どなたかご教授願います

C♯から、VBAで記述されたプログラムを呼び出したいのですが
どうすればよいのでしょうか?

よろしくおねがいします

115 :111:2008/05/31(土) 23:13:21
>>112-113
thx

116 :デフォルトの名無しさん:2008/05/31(土) 23:17:05
>>114
そのVBAはExcelやWordのもの?
環境によっていろいろ違うから、
VBSやVB6のプログラムなどとの勘違いの可能性も含めてもう少し具体的に。

117 :114:2008/05/31(土) 23:23:05
>>116
ありがとうございます!
VBAはAccess上で記述されたものです。

118 :デフォルトの名無しさん:2008/05/31(土) 23:50:36
>>117
MS-Accessをオートメーション経由で動かしてVBAのマクロをつかう必要がある。
ExcelやWorをC#からオートメーションで操作するサンプルは割と多いのだが、
mdbだけを使いたいならADO.NET経由で十分だからかAccessはいいサイトが見つからない。

少しずれるがDoCmdを使っているあたりでおおよそどういったものかは見当は付くと思う。
http://www.microsoft.com/japan/msdn/office/access2003/odc_AcAutomateVBNet.aspx

119 :デフォルトの名無しさん:2008/06/01(日) 00:06:21
C/C++のsize_tに相当する型は、C#では何ですか?

120 :デフォルトの名無しさん:2008/06/01(日) 00:06:49
uint

121 :デフォルトの名無しさん:2008/06/01(日) 00:07:44
こいつはどうだい
http://support.microsoft.com/kb/306683/ja

122 :デフォルトの名無しさん:2008/06/01(日) 00:07:58
UIntPtrだな

123 :114:2008/06/01(日) 00:09:48
>>118
>>121

ありがとうございます!
ご紹介いただいたサイトを参考に一度組んでみます!

124 :デフォルトの名無しさん:2008/06/01(日) 01:22:00
初歩的な質問ですみません
C#にポインタはないんですか?

125 :デフォルトの名無しさん:2008/06/01(日) 01:27:48
あるよ


126 :デフォルトの名無しさん:2008/06/01(日) 01:46:30
unsafe{

//ここでポインタをご自由に

}

127 :デフォルトの名無しさん:2008/06/01(日) 02:07:22
オプションでunsafeを許可するのも忘れずに

128 :デフォルトの名無しさん:2008/06/01(日) 02:16:32
>>125-127
あるんですか。サンクス。
勉強します。

129 :デフォルトの名無しさん:2008/06/01(日) 03:45:45
>>124
ふうん。すごいね(棒)。ネット知識(笑)?

130 :デフォルトの名無しさん:2008/06/01(日) 11:02:34
確かunsafeの実装は必須じゃないんだっけ

131 :デフォルトの名無しさん:2008/06/01(日) 11:20:33
このあたりを読めばいいんだと思いますが

http://msdn.microsoft.com/ja-jp/library/t2yzs44b.aspx

でもポインタを使うのは標準のコーディングじゃないとしたら
ポインタを使わずに構造体をチェーンでつなぐようなことって
どうやるんですか?

構造体の配列を使ってますか?
教えてください。

132 :デフォルトの名無しさん:2008/06/01(日) 11:22:11
クラスにすればいい。
.NETの構造体はプリミティブな内容を表す以外には使わないことになってる。

133 :デフォルトの名無しさん:2008/06/01(日) 12:03:26
C#にクラスってあるんですか?
クラスはポインタを使わないんですか?

134 :デフォルトの名無しさん:2008/06/01(日) 12:05:56
クラスはデフォルトで参照型
常にポインタをやりとりしてる

135 :デフォルトの名無しさん:2008/06/01(日) 12:15:48
ポインタじゃなくて参照だっぜ
ポインタごときただのアドレス値などと一緒にしてもらっては困る

136 :デフォルトの名無しさん:2008/06/01(日) 12:19:01
どっちかというとポインタ
正しくはハンドル

137 :デフォルトの名無しさん:2008/06/01(日) 13:07:54
>133
>C#にクラスってあるんですか?
>クラスはポインタを使わないんですか?

どっちもないよ。自分で調べようともしない奴にはね。


138 :デフォルトの名無しさん:2008/06/01(日) 13:27:29
へーC#ってクラスないんですかー
勉強になりました。
明日先生に言ってみます。

139 :デフォルトの名無しさん:2008/06/01(日) 13:46:34
>>138
C#のクラスの先生に言うの?

140 :デフォルトの名無しさん:2008/06/01(日) 13:51:41
教えてください。

今、C#で簡単なデータベースを作っています。
同じフォルダにおいたmdfファイルに接続してあれこれ出入力するアプリです。
困っているのは、F5でデバックして起動している間はデータを保持するのですが、
一旦終了すると、テーブルのデータがすべて消えてしまうのです。
データを削除するようなコードは書いていません。明らかにデバッグ中は何をしても
テーブルのデータは維持されています。
また、デバッグをしていない状態で、サーパーエクスプローラでテープルを選択し、
[テーブルデータの表示]状態で手入力をしたデータは、デバッグを経てもずっと
テーブルに保持されます。 なぜなんでしょう?
フォーム上でテーブルの入力規則に違反したりということはありません。
デバッグ中は集計他あらゆる操作に対応しますので、テーブルにデータは入っているのに。

原因として何がありえますでしょうか?

141 :デフォルトの名無しさん:2008/06/01(日) 13:55:39
COMMITしてないんじゃないの?

142 :140:2008/06/01(日) 14:06:13
>>141
COMMITなるものの意味がよくわかりませんが、
確かに、mdfファイルとの関係が刹那的というか、
互いに唯一の存在として婚姻を確認しあった記憶がありません。
接続の設定をさらっとしただけです。
どこでそのCOMMITなるものをすればいいのでしょうか?
申し訳ありませんが、もう一言だけでもお願いします。



143 :デフォルトの名無しさん:2008/06/01(日) 14:13:41
婚姻?

144 :デフォルトの名無しさん:2008/06/01(日) 14:16:25
秘密を作らずずっと一緒にいることの設定 >婚姻

知らないうちにデータが消えるとか、他からの操作を受けたりしないでほしいのです。

145 :デフォルトの名無しさん:2008/06/01(日) 14:16:37
ObjectContainer client

client.Commit ();

これ

146 :デフォルトの名無しさん:2008/06/01(日) 14:21:01
繰り返しテストが出来るようにオリジナルのDBファイルから
デバッグ実行のたびにコピーしてるはず。設定で変えられたと思う。

147 :デフォルトの名無しさん:2008/06/01(日) 14:21:20
なんか自動翻訳機にかけられた文章のままで質問している人がいるな。

148 :140:2008/06/01(日) 14:22:14
>>145
ありがとうございました。
どこかのプロパティフォームで設定するわけではなさそうですね。
これから調べて適切なところに記入してみます。
ありがとうございました。

149 :デフォルトの名無しさん:2008/06/01(日) 14:22:42
普通に言葉を綴ってるつもりでもそれが詩になってしまうんだろう

150 :133:2008/06/01(日) 15:14:22
>>134-136
この参照型というのがポインタだと思えばいいんですかね。
違いはあるにしても役割的には同じみたいなんで。
もう少し調べてみます。
ありがとうございました。

151 :デフォルトの名無しさん:2008/06/01(日) 15:17:15
>>140

>>146 が言ってるのって、これだと思う。
ttp://www.ailight.jp/blog/unaap/archive/2005/12/07/10249.aspx

152 :デフォルトの名無しさん:2008/06/01(日) 15:41:18
>>150
加算減算ができるのがポインタで、できないのが参照、
くらいに思っとけば当面困らないと思う。

153 :133:2008/06/01(日) 21:42:46
なんとかできるようになりました。
ありがとうございました。
VC#の本とVC++の本を買ってきたのですが
VC#の本にはクラス定義のことが書いてなかったので
最初クラス定義ができないと思っていました。
チェーンの最初と最後を指すポインタ変数(参照型)も
クラスのメンバー変数にしないとエラーになったので
ダミーのクラスを定義しました。これが正しい方法か
どうかわかりませんが、とりあえず動いています。

154 :デフォルトの名無しさん:2008/06/02(月) 00:22:08
クラス定義をしなければあらゆるC#プログラムは動かないよ


155 :デフォルトの名無しさん:2008/06/02(月) 01:19:19
そう言えばC#ってクラスのメソッドの定義と宣言って分けれるの?

156 :デフォルトの名無しさん:2008/06/02(月) 01:27:42
>>155
メタ情報はアセンブリ自身が持っているから定義と実装を分ける必要はなく出来ない。
あえて分けたいならインターフェイスとその実装クラスになるだろう。
あとC#3.0からPartial Methodという似たものは追加になっているが、
宣言と実装を分けるためのものではない。

157 :デフォルトの名無しさん:2008/06/02(月) 01:30:34
そもそも分ける必要性って無いよね。
C/C++だとヘッダをインクルードしたりするけど、
C#なら直接アセンブリを参照設定して使うものだし。

158 :デフォルトの名無しさん:2008/06/02(月) 01:32:36
いや、普段C++やってて最近ちょっとC#を弄り始めたから
ちょっとだけ気になったんだ、ありがとう
ヘッダファイルないのが何か気持ち悪いと言うか、まだ慣れない

159 :デフォルトの名無しさん:2008/06/02(月) 01:41:44
C++/CLIを使い出すとわけわかんなくなるぞよよ

160 :デフォルトの名無しさん:2008/06/02(月) 10:08:12
逆にC#のクラスの書き方に慣れるとC++のヘッダファイルがめんどくさくなるよ。
あれこそVSが自動で挿入してくれればいいのに。

161 :デフォルトの名無しさん:2008/06/02(月) 17:03:21
ListViewで行間を広くするにはどうしたらいいのでしょうか?

162 :デフォルトの名無しさん:2008/06/02(月) 20:56:48
谷尻 かおり の技術評論社
C#いつ出るんだよ・・・
さっさとだしてくれよ
Accessなんかもういいからさ!
もおおおおおおおおおおおおおお!!

163 :デフォルトの名無しさん:2008/06/02(月) 21:25:11
>>162
もう出てない?

164 :デフォルトの名無しさん:2008/06/02(月) 21:28:06
谷尻ってデーターベース関連の本出してる人?
2008対応の本なら見てみたいな

165 :デフォルトの名無しさん:2008/06/02(月) 21:43:40
Visual C# 2005 [実践]プログラミングテクニック 応用できる基本の書き方

166 :デフォルトの名無しさん:2008/06/02(月) 22:21:39
だれか>>161のやり方おしえてください

167 :デフォルトの名無しさん:2008/06/02(月) 22:47:54
当然VC#2008だよ
そろそろ出してもいいだろ
2005買ったとたんに2008でたら
痛すぎて注文できない
そもそも高い
監修は旦那か?
お願いだから監修外して値段下げてーーーーー

168 :デフォルトの名無しさん:2008/06/02(月) 22:54:19
谷尻の本はイラネだろ。DGVひとつまともに解説できなかった人に
LINQとか増えてる2008のちゃんとした本が出せるとは思えない。



169 :デフォルトの名無しさん:2008/06/02(月) 23:04:55
「DGV」て、なあにググッたらワンちゃんのふん取り袋って出てきたが・・・

170 :デフォルトの名無しさん:2008/06/02(月) 23:09:34
DataGridViewか

171 :デフォルトの名無しさん:2008/06/03(火) 03:10:32
>>158
俺、最近仕事でC++に戻ったけど、あのヘッダを自分で書くスタイルはやっぱ最悪。
めんどくさいのはもちろんのこと、
private メンバ追加しただけでそのクラスを参照するありとあらゆるソースの再コンパイルが必要だし、
ヘッダ読み込みのせいでコンパイル速度も低下してるし。

メソッド追加するのがしんどくなって、長ったらしい関数が増える。

172 :デフォルトの名無しさん:2008/06/03(火) 11:32:28
byte[] buf = new byte[100];
みたいに配列を確保した時、各要素が0になるのは規格で決まってるんだっけ?

173 :デフォルトの名無しさん:2008/06/03(火) 11:41:26
うん

174 :デフォルトの名無しさん:2008/06/04(水) 02:17:21
コレクションフレームワークDictionaryとその反復処理(foreach+KeyValuePair) 
CSVファイルの読み取り方法
SQLServer ExpressEditionのデータベースへの接続のためのConnectionStringの書き方
(”...Data Source = .\\SQLEXPRESS”)

以上の機能の説明が全部網羅された本があったら教えてください。
(特に3番目を書いてるのは見たことがないです)
C#は言語自体はいいと思うけど、多くの市販の解説書はひどいものじゃないでしょうか?
私(Java,C経験者)に言わせれば上みたいな機能がFormの色づけよりずっと基本なんですが。



175 :デフォルトの名無しさん:2008/06/04(水) 02:21:56
そうですか

176 :デフォルトの名無しさん:2008/06/04(水) 07:38:01
>>174
まあまあ、ここでもブックマークに入れとけ。
http://www.connectionstrings.com/default.aspx

177 :デフォルトの名無しさん:2008/06/04(水) 09:40:50
>174
っ「SqlConnectionStringBuilder」

178 :デフォルトの名無しさん:2008/06/04(水) 09:52:19
あなたに言われてもね

179 :デフォルトの名無しさん:2008/06/04(水) 10:40:57
ListView の ColumnHeader の TextAlign について

0番目のHeader は TextAlignの 設定ができません(Leftのみ)。
・ColumnHeaderコレクションエディタで設定しようとすると
コンボボックスで選択したのに、Leftに戻ってしまいます。
・コードにて記述しても同じく、0番目はLeftのまま表示されます。

1番目以降は 任意の設定を認識してくれます。

原因等 ご存知の方、いらっしゃいましたらお教えください。

180 :デフォルトの名無しさん:2008/06/04(水) 10:57:08
あなたに〜

181 :デフォルトの名無しさん:2008/06/04(水) 11:18:47
>>179
仕様。

182 :デフォルトの名無しさん:2008/06/04(水) 11:46:03
>>181

即レス、ありがとうございました。
質問後、ググってたらまっ先にMSDNに記述ありました…


183 :デフォルトの名無しさん:2008/06/04(水) 14:54:34
DataSetで自動生成されたFindBy何がしかを使用して、
DS.SomeRow row = dataset.Some.FindByFooBar(foo, bar);
ってなことをやった時に、rowに値が入ったのか入らなかったのかを
判別する方法はないでしょうか?

fooとbarは主キーです。そのためにFindByが自動生成されている訳ですが。

やりたいことは、キー重複を防ぐために、挿入前に、事前に確認したいだけなので、
上の方法で取得できたか出来ないかを調べるのが、もっとも簡単かと思ったのですが。




184 :183:2008/06/04(水) 15:13:06
どうやら、主キーが複数ある場合はContainsでも駄目なようなので、
地道にFind(foo = f and bar = b)と書いて、返ってくるRowsのLenghtで
判断することにしました。

185 :デフォルトの名無しさん:2008/06/04(水) 15:30:32
ん?rowがnullかどうかじゃだめなのけ?

186 :デフォルトの名無しさん:2008/06/04(水) 15:33:57
VS2005でプロジェクトデザイナからアプリケーション設定を追加しようとすると、
「app.configファイルに値を保存しているときにエラーが発生しました〜」と怒られて
値が保存されません。
VS2005より後にTurboDelphi(.NET1.1)をインストールしたのが原因かと思い、
VS2005(.NET2.0)を再インストールしたのですが、改善されません。
対策が分かりましたら、どうかご教示をお願いいたします。

187 :デフォルトの名無しさん:2008/06/04(水) 16:06:42
>>185
それは試したんですけれど、rowがnullにはならなかったんですけれど‥‥。
そういうものかと思って納得したんですが、後でもう一度確かめてみます。

188 :デフォルトの名無しさん:2008/06/04(水) 16:09:56
>>186
app.configのXMLが壊れちゃっているのでは?
app.configだけ削除して、作りなおしてみるとか。

app.configなんて只のXMLですし、プロジェクトデザイナじゃなくて手書きでも問題無いですよ。
実際、VS2003の時は手書きだったし。
新しくapp.configを作って、なんとなく項目をマージすれば大丈夫。

189 :デフォルトの名無しさん:2008/06/04(水) 16:57:49
>>185
だーー。nullじゃないかどうかだけでいけますた。
なんでさっきは駄目だったんだろ。
どうも有り難うございました。


190 :デフォルトの名無しさん:2008/06/04(水) 17:30:53
オブジェクト思考難しー(右手で左の乳首をつまみながら

191 :186:2008/06/04(水) 17:33:37
>>188
即レスありがとうございます。
app.configの削除はやってみたのですが、ダメでした。
となると、手書きですか・・・

192 :デフォルトの名無しさん:2008/06/04(水) 18:15:03
System.Windows.FormsにSeparatorコントロールみたいなやつってある?

193 :デフォルトの名無しさん:2008/06/04(水) 18:17:56
WPFのSeparatorみたいなやつ?
コントロールとしては無いでしょ
WPFみたいに統一されてないからそれぞれの実装次第

194 :デフォルトの名無しさん:2008/06/04(水) 18:23:08
C#のソースに
[hoge(page)]
bool hage = true;

[hoge]
void panaya(object sender, EventArgs args)

のようにカギ括弧を使った書き方があるのですが、これは
・何という名前で?
・どのようにすれば作れるのですか?
 F1キーのヘルプだと、括弧内のクラスについての説明から始まっていてどう要領を得ません。
名前を教えて貰えれば、ヘルプや入門ページで探せる気もするんでお願いします。

195 :デフォルトの名無しさん:2008/06/04(水) 18:24:25
hage = true; これわざと!?

196 :デフォルトの名無しさん:2008/06/04(水) 18:25:52
>>194
属性
Attributeを継承したクラスを作ると出来る

197 :デフォルトの名無しさん:2008/06/04(水) 18:37:14
>195 狙ってない。狙ってない。落ち着いて。

>196
 ありがとうございます。
なんだか凄く一般的な名前で、上手くを検索できなかったようです。
「属性の適用」ってヘルプ記事を見つける事ができたのでこれから読んでみます。

198 :192:2008/06/04(水) 19:31:21
>>193
thanks

Control間の区切りで、水平セパレータ一本引きたいんだけど、
なさそうだね。

199 :デフォルトの名無しさん:2008/06/04(水) 19:48:05
>>198
昔ここで教えてもらったのでは、

Label separator = new Label{ BorderStyle = BorderStyle.Fixed3D, Size = new Size(100, 2) }

こんな感じでそれっぽくなった。

200 :192:2008/06/04(水) 20:34:18
>>199
おぉっ、まさしくこれです。

very thanks !

201 :デフォルトの名無しさん:2008/06/04(水) 21:41:36
>>199

へぇ〜 みんな そうやってんの?
オレ、いつもGroupBox を縮めて使ってたよ。

202 :デフォルトの名無しさん:2008/06/05(木) 10:47:38
Windows.Formで、SplitContainerを使用したとき、Panel1と2の間の
境界線の幅を太くして、つまりSplitterWidthを大きくして、
その境界線の上にコントロールを配置することは可能なんでしょうか?



203 :デフォルトの名無しさん:2008/06/05(木) 14:27:05
やってみろよって思うんだけど
出来なかったんだけどどうすればいいですかなら分かるけど

204 :202:2008/06/05(木) 16:00:18
>>203
質問の仕方が悪かったですね。
もちろん、試してみて出来なかったので質問しました。
両パネルにコントロールを配置することは可能ですが、
パネル部分以外のSplitContainerにコントロールを配置することは不可能なようです。
まぁ、コンテナっていうぐらいですから、当然ですか?

ということで、境界上に置くつもりだったコントロールは、片方のパネルの上に寄せました。
Shurikenのアドレス帳とかだと、境界上にコントロール置いてあるんですが、
あれは激しく自作っぽいですな。

205 :デフォルトの名無しさん:2008/06/05(木) 17:04:57
>>204
そのコントロールのParentがSplitContainerではなければ
コード上でそのコントロールのLocationを適切な値に変更すれば
境界上に配置可能。

206 :デフォルトの名無しさん:2008/06/05(木) 17:06:15
203の厭味ったらしい性格が治る見込みはありますか?

207 :デフォルトの名無しさん:2008/06/05(木) 17:11:13
ありません

208 :デフォルトの名無しさん:2008/06/05(木) 17:53:58
>>205
う〜ん、なるほど、動的に境界上のコントロールの座標を算出するってことですか。
確かに、SplitBarの移動のイベントは取れるようですので、可能かも。

私のやりたかったことって、単純にSplitContainerでは実現できなくて、
縦3分割の3つのパネルを作り、真ん中のパネルが固定幅というのと同義だ
ということに気付きました。

でも>>205がおっしゃるように、SplitContainerを使って、動的に計算した方が、
真ん中ペインをドラッグしたときのマウスイベントの処理が楽ですよねぇ。



209 :デフォルトの名無しさん:2008/06/05(木) 20:09:22
http://pc11.2ch.net/test/read.cgi/tech/1061285378/531-532
から誘導されました。

 前もって作った配列の要素とクラスとの"紐付け"をしたいのですが、
良い手はありますか?

ちょっと条件があります。
・DirectXで配列を引数にとる関数を使いたい。
・配列は構造体もクラスも使えるけど、構造体配列が好ましいらしい。
・頻繁に更新するので、List<T>.toArray()は勿体ないっぽい。

 だいたいこんな事を考えてます。
sruct instanceData {
 int hage
}
class GameCharactor // 構造体の配列と同数作られるクラス
{
  private int hoge;
  static instanceData[] idarray; //構造体配列
  GameCharactor(int i){hoge = i} //コンストラクタ
  public int hage{ get{return idarray[hoge]hage;} set{idarray[hoge].hage = value;} }//プロパティ
 public int class_only_member;
}
GameCharactor::idarray = new instanceData[numBoxes]; //構造体配列初期化
<略>
 List<GameCharactor> CharaList = new List<GameCharactor>(numBoxes); //最大がnumBoxes

 現状非常に見栄えが悪いかも知れません。
先入観的に、構造体配列に拘っていたりします。
おおまかにこれっぽく動いてC#で好ましい手とはどんなのがありますか?

210 :デフォルトの名無しさん:2008/06/05(木) 20:47:08
>>209
言いたい事は分からんでもないが。Listは、それ専用に書くかな。
何をやりたくて、どんな構造にしたいかで変わってくる部分も有るから。
聞きたい内容には、それでもいいんじゃない? でつよ。
2.どちらでもいい。配置指定の構造体のほうが楽かもね。
3.専用を作る
クラスの中にDX用の構造体を持ってもいい。

211 :デフォルトの名無しさん:2008/06/05(木) 21:36:33
初めまして。質問です。
string文字列に格納されている16進数を数値に変えるにはどうするのがスマートでしょうか?
例:
"1A"→26 に変換したい

212 :209:2008/06/05(木) 21:44:38
>210
変なの読んで貰って、ありがとうございます。
これで終わらせて、次の工程に進めます。

 頭の中に、ポインタとキャストがあるので、不安に
陥って書いてしまいました。 C++ではあり得ないなとか。
あんまり酷く言われなくて助かりました。

213 :デフォルトの名無しさん:2008/06/05(木) 21:45:01
int num16 = Convert.ToInt32("FFFF", 16);

214 :213:2008/06/05(木) 21:47:29
>>211
http://dobon.net/vb/dotnet/programing/converthex.html
ここに乗ってた全角はどうだろ・・・

215 :デフォルトの名無しさん:2008/06/05(木) 22:19:30
>>212
DXを駆使したいなら、あまりOOP的な関数は使わないほうが言いと思われ。
NEW繰り返すような事は控えたほうがいいかな。例えば、オブジェクトのデータは
最初にガバーーと取ってその中でやりくりとかね。リストも、専用に着けたり離したり
高速でできるように、もちろん時間内に処理できるできないで流動的なリストになる。
高速なオブジェクト管理も作るしね。 まあ、やりたい事によって色々ですよ。

216 :211:2008/06/05(木) 22:29:12
>>213-214
ありがとうございます!!!(>_<)
まさにそれです!!!お早い返事、ものすごく助かりました!!!

217 :デフォルトの名無しさん:2008/06/05(木) 23:53:14
c#使いの人たちは 打ち出しはクリスタルレポート使ってるの?

218 :デフォルトの名無しさん:2008/06/06(金) 16:33:18
シングルトンってガベージコレクションの対象になります?

219 :デフォルトの名無しさん:2008/06/06(金) 17:13:46
なりません

220 :デフォルトの名無しさん:2008/06/06(金) 17:23:08
>>219
ありがとうございます。
ちなみにならない理由て簡単に教えてもらえないでしょうか。

221 :デフォルトの名無しさん:2008/06/06(金) 17:28:00
staticな変数に入ってるオブジェクトはガベージコレクションの対象にならないから

アクセス可能な変数に代入されているオブジェクトはGCに回収されない
つまりstatic or 使用中のメソッドのローカル変数に代入されているオブジェクトは回収されない
そうじゃないものは回収される

222 :デフォルトの名無しさん:2008/06/06(金) 17:49:23
>>221
めっちゃ助かりました!
ありがとうございます

223 :デフォルトの名無しさん:2008/06/06(金) 18:15:37
Mutex m = 〜;
   :
// GC.KeepAlive(m);

てのがあったと思うけど、KeepAlive入れないとmがスコープ内にも関わらず回収されちゃうのは
コンパイラの最適化でもう使われないmにnullを入れるとかしてるの?
それともガベージコレクタが動的にコード見て判断してるの?

224 :デフォルトの名無しさん:2008/06/06(金) 22:33:50
JITコンパイラがnullにするコードを追加してる、多分。
まあMutexなんてusingしときゃすむ話だ。
ってかましろほっぽっとかずにusingなりちゃんとしとけよって話。


225 :デフォルトの名無しさん:2008/06/07(土) 02:32:02
配列やコレクションを引数にとるメソッドで、コレクション自体がnullの時はArgumentNullExceptionを
投げるんでしょうが、コレクションの要素の中にnullのものがあったときもArgumentNullExceptionを
投げていいんでしょうか。

226 :デフォルトの名無しさん:2008/06/07(土) 02:43:18
いや、よくない。
ArgumentExceptionなり、それの派生クラスを適当に定義して投げれ

227 :デフォルトの名無しさん:2008/06/07(土) 02:45:04
MSDNくらい見ようぜ

> メソッド呼び出し時に渡される引数が null 参照 (Visual Basic では Nothing) で
> あってはならないにもかかわらず、渡された引数のうち少なくとも 1 つが null 参照
> (Visual Basic では Nothing) のときに、ArgumentNullException がスローされます。


228 :デフォルトの名無しさん:2008/06/07(土) 09:15:31
よく読め

229 :デフォルトの名無しさん:2008/06/07(土) 13:46:25
visualC#2008でプログレスバーって言うのがありますよね?
アレを敵の体力バーにしたいのですが、どうすればプログレスバーの
値を増減させられますか?おしえてください。yahooで調べてもでませんでした。

230 :デフォルトの名無しさん:2008/06/07(土) 13:50:09
ネットで調べる前にまずヘルプみれっつうの

231 :デフォルトの名無しさん:2008/06/07(土) 13:55:56
体カバーにみえた

232 :デフォルトの名無しさん:2008/06/07(土) 14:03:09
ヘルプみて
頭がいたくなって
熱がでました。
ありがとうございました。

233 :デフォルトの名無しさん:2008/06/07(土) 17:55:42
MSDNはわかりにくい場合が多々あるのはわかるんだが
こういう質問を見ると、本当に調べたのか?と疑問に思う
はっきりいえば嘘だと思う

234 :デフォルトの名無しさん:2008/06/07(土) 21:03:17
>>233
もうちょっとオブラートに包んで!

235 :デフォルトの名無しさん:2008/06/07(土) 21:23:04
ググレカス

236 :デフォルトの名無しさん:2008/06/07(土) 22:08:45
初心者スレなんだからいいじゃん
初心者じゃないくせにうろうろすんなhage

237 :デフォルトの名無しさん:2008/06/07(土) 23:24:19
しかし、その程度のtipsも探し当てられない能力の低さには脱帽

238 :デフォルトの名無しさん:2008/06/07(土) 23:41:24
てかここで聞くよりググった方が早いだろ

239 :デフォルトの名無しさん:2008/06/08(日) 01:02:00
>217
クリレポはPro版から手軽に使えるから使うけど、.netのクリレポって最初の
起動が死ぬほど遅いんだよな。下手すれば10秒超える。

まぁ、どっちかといえばActiveReportの方が多いんじゃないかな?


240 :デフォルトの名無しさん:2008/06/08(日) 01:07:52
クリレポは確かに手軽に使えるけど、for VS2008にはマージモジュールが用意されてないんだよな
msiならあるんだが

241 :デフォルトの名無しさん:2008/06/08(日) 21:40:29
クリレポは機動が遅いから評判いまひとつなのか めもめも
葡萄屋のActiveReportかあ
買う金ないお
貧乏会社だし

242 :デフォルトの名無しさん:2008/06/08(日) 21:43:24
ジャイブレポートなんてどうかな?
VBでブイブイ言わせてるみたいだけど(うちの会社でわ)

243 :デフォルトの名無しさん:2008/06/08(日) 21:46:47
アクテブレポート12万だとー
ウインビスタのほうが安いじゃないか
MSを見習え

244 :デフォルトの名無しさん:2008/06/08(日) 23:23:14
Excelじゃダメな理由を教えろ

245 :デフォルトの名無しさん:2008/06/08(日) 23:27:14
Excelにはいて印刷?
聞いた事有るけど
C#のアプリでボタン押してExcel立ち上げて
Excelのプレビュー見て 印刷ボタン押して
めんどくさー

246 :デフォルトの名無しさん:2008/06/09(月) 00:31:17
OLEオートメーションでいいだろ

247 :デフォルトの名無しさん:2008/06/09(月) 00:43:30
自動印刷のあたりで、エクセルマクロを規制しようとするセキュリティソフトが騒ぎ出す
ユーザーから見て「エクセルが起動したこともわかんない」という状態は不可能

248 :デフォルトの名無しさん:2008/06/09(月) 00:47:11
OWCでいいだろ

249 :デフォルトの名無しさん:2008/06/09(月) 01:18:38
OWCって何でんの?

Oっきい方のトイレ?
うんこしながら考えろってこと?

250 :デフォルトの名無しさん:2008/06/09(月) 01:27:21
そのとおり!

251 :デフォルトの名無しさん:2008/06/09(月) 10:09:25
http://pc11.2ch.net/test/read.cgi/tech/1212972014/

252 :デフォルトの名無しさん:2008/06/09(月) 10:27:25
みんな仕事でC#使ってるだけなのかぁなんかガッカリだな

253 :デフォルトの名無しさん:2008/06/09(月) 10:58:17
俺は仕事じゃなくて自分用のツールとか作ってる
でも配るんなら.NETがネックになるから避ける人が多いかもね

254 :デフォルトの名無しさん:2008/06/09(月) 11:05:54
なんでSP3に入れてくれなかったんだろうね

255 :デフォルトの名無しさん:2008/06/09(月) 11:09:20
ドトネト弱者は放置でOK


256 :デフォルトの名無しさん:2008/06/09(月) 11:39:24
ドットネックw

257 :デフォルトの名無しさん:2008/06/09(月) 15:51:59
Process.Startで呼び出したEXEの戻り値ってどうやって取得すれば良いんでしょうか


258 :デフォルトの名無しさん:2008/06/09(月) 15:56:01
プロパティにあるだろ

259 :デフォルトの名無しさん:2008/06/09(月) 16:10:56
横入りで申し訳ないけど、>>248さんの言ってるOWCって何ですか?

260 :デフォルトの名無しさん:2008/06/09(月) 16:11:18
oh、ExitCodeか・・・見落としてた

261 :デフォルトの名無しさん:2008/06/09(月) 16:25:29
office web component かな?


262 :デフォルトの名無しさん:2008/06/09(月) 17:08:56
タイトルバーの右クリックにメニューを表示したいんです。
どなたかヒント下さい。

263 :デフォルトの名無しさん:2008/06/09(月) 17:24:00
ヒント:質問の仕方を考え直しましょう。

264 :デフォルトの名無しさん:2008/06/09(月) 17:31:50
やり方は知らないし関係ないけど、
タスクバーからのメニューの一番下が「閉じる」じゃないアプリには、たまにぶち切れそうになるな

265 :デフォルトの名無しさん:2008/06/09(月) 17:35:54
cmd.exeのことですね、分かります

266 :デフォルトの名無しさん:2008/06/09(月) 17:43:01
エスパーするとGetSystemMenu

267 :デフォルトの名無しさん:2008/06/09(月) 17:49:40
>>266
出来ました、ありがとうございます。
システムメニューって言うんですね、知りませんでした。

268 :デフォルトの名無しさん:2008/06/09(月) 21:56:50
>>264
なるw
右クリック→即左クリックで閉じようとしてヘルプとか開いたらもう・・・

269 :デフォルトの名無しさん:2008/06/09(月) 21:58:58
なんのためのAlt+F4

270 :デフォルトの名無しさん:2008/06/09(月) 22:32:46
タスクバーのアイコンダブルクリックでも閉じれるよ

271 :デフォルトの名無しさん:2008/06/09(月) 22:48:49
↑うそ付くなw

272 :デフォルトの名無しさん:2008/06/09(月) 22:54:55
あータイトルバーだった

273 :デフォルトの名無しさん:2008/06/09(月) 23:24:21
>>269
手が常にキーボードの上にあるとは限らない

マウスだけで操作してるときとか、タスクバー使うことがある
ただ、俺は>>268と違って右クリックx2派だが

274 :デフォルトの名無しさん:2008/06/10(火) 01:26:31
無限ループに入ってるっぽいアプリってAlt+F4効いたっけ?

275 :デフォルトの名無しさん:2008/06/10(火) 05:46:19
ウィンドウとは別のスレッドが無限ループしているとか
無限ループの中で(VBでいうDoEventsのように)
メッセージループへの応答をしていれば、効く。

そもそもそんな状態だったら、やたらとCPU食う以外
無限ループくささをあまり感じないと思うけど。

276 :デフォルトの名無しさん:2008/06/10(火) 11:49:48
システムメニューの閉じるつぶしてたら、上記の方法は全滅だけどな。

277 :デフォルトの名無しさん:2008/06/10(火) 19:50:49
>>275
sleep入れてりゃ単純な処理なら無限ループでも全くCPU食わないよ。
むしろ正常なプログラム。
ゲーム作るとメインループをぐるぐる回し続けるのが普通だからね。

278 :デフォルトの名無しさん:2008/06/10(火) 20:28:40
ゲームは普通のプログラムと違うだろ
ここでいう普通とは以下省略

279 :デフォルトの名無しさん:2008/06/10(火) 20:38:24
ASP.NetをC#やっててメッセージボックス?を出そうと思って
MessageBox.Show("表示したい内容");
と打ち込んでるんだが「現在のコンテキスト内に存在しません」とかなんとかエラーがでて実行できないんだけどどうしたらうまくいく?

280 :デフォルトの名無しさん:2008/06/10(火) 21:47:50
ASP.NETではWindows.Formは使えないぞ

281 :デフォルトの名無しさん:2008/06/10(火) 22:10:28
ぬ、そうなのか
どっかに教科書とかないもんかorz

ちなみにWebフォーム(?)でメッセージボックスだすにはどうすればいい?

282 :デフォルトの名無しさん:2008/06/10(火) 22:43:18
window.alert

283 :デフォルトの名無しさん:2008/06/10(火) 22:45:57
ありがとう、明日会社でやってみるよー

284 :デフォルトの名無しさん:2008/06/10(火) 22:47:43
それくらいぐぐれよ・・・

ここはふらっとだった

285 :デフォルトの名無しさん:2008/06/10(火) 22:53:58
ぐぐる前にここで聞け

286 :デフォルトの名無しさん:2008/06/10(火) 22:55:13
マルチディスプレーでデスクトップの全体の横幅を取得する方法教えてください。

287 :デフォルトの名無しさん:2008/06/11(水) 00:36:14
質問です。

LINQ to SQLのDataContextについてなんですが、
データをSQL Serverからではなく、XMLから読み込み、保存出来ないでしょうか?

288 :デフォルトの名無しさん:2008/06/11(水) 00:53:00
>>286
System.Windows.Forms.Screen.AllScreensで列挙して計算。

289 :デフォルトの名無しさん:2008/06/11(水) 00:56:20
>>288
レスありがとうございます。
どのように並んでるかは、どう判別するのですか?
全て横一列とは限りませんよね?

290 :デフォルトの名無しさん:2008/06/11(水) 00:58:46
>>289
文字列の配列で返してくれるよ(多分

291 :デフォルトの名無しさん:2008/06/11(水) 01:07:15
>>287
LINQ for xml というのが別にある

292 :デフォルトの名無しさん:2008/06/11(水) 01:10:15
>>290
Screenクラスの配列で帰ってくるので、各々の横幅は分かるのですが、どう並んでいるかの取得方法がわからなくてつまづいてしまいました。
文字列の配列とはどういうことでしょうか?

293 :デフォルトの名無しさん:2008/06/11(水) 01:13:37
LINQ to XMLとLINQ to Objectの違いがわからない

294 :デフォルトの名無しさん:2008/06/11(水) 01:14:06
>>290
あ。
.ToStringで相対位置がわかるのですね!すばらしい・・気付かなかった。
ありがとうございました。

295 :デフォルトの名無しさん:2008/06/11(水) 01:14:17
座標から計算すればいいんじゃないの?

296 :デフォルトの名無しさん:2008/06/11(水) 01:17:13
あーマルチウィンドウかマルチディ(

297 :デフォルトの名無しさん:2008/06/11(水) 01:20:08
>>295
あ。.Bounds.Xでわかるんですね。
さっき実験したときは全部0だった気がしてたので、どうやら勘違いしてたようでした。
解決しそうです。ありがとうございました。

298 :デフォルトの名無しさん:2008/06/11(水) 08:24:06
>>293
極端な話、IEnumerableに対するLINQがLINQ to Objectで
XElementに対するLINQがLINQ to XML。

299 :デフォルトの名無しさん:2008/06/11(水) 10:35:12
根本的な質問なんですが
C#でプログラムを書いて配布するときに.netも同じCD内にやいて配布することはできるのですか?

300 :デフォルトの名無しさん:2008/06/11(水) 11:11:08
>>299
http://msdn.microsoft.com/ja-jp/library/xak0tsbd(VS.80).aspx

ググればすぐHitするだろ低脳

301 :デフォルトの名無しさん:2008/06/11(水) 11:12:04
ここはふらっとだった…

302 :デフォルトの名無しさん:2008/06/11(水) 12:29:44
Form1のキャプション変更を教えてください
Form1.Caption=
ではできませんでした

303 :デフォルトの名無しさん:2008/06/11(水) 12:36:45
Captionってどっから出てきたの?
Text だろ。
でもForm1はインスタンスなの?
そうだとしてもウィンドウ実体ができてからでないとかわらんけどな。

304 :デフォルトの名無しさん:2008/06/11(水) 12:41:56
タスクバーの文字を変えるやつです
VBでは Form1.Caption= でよかったんですが
Form1.Text= というのもありませんでした

インスタンスというか最初に立ち上がる単体です

305 :デフォルトの名無しさん:2008/06/11(水) 12:48:12
まずは@ITのC#入門でも読んで基礎を身に付ければいいよ

306 :デフォルトの名無しさん:2008/06/11(水) 15:45:03
>>304
Me.Textは?

307 :デフォルトの名無しさん:2008/06/11(水) 15:46:16
しまったここはふらっとだった。
this.Textな

308 :デフォルトの名無しさん:2008/06/11(水) 16:52:26
>>307
おお、できました
サンクスです

309 :デフォルトの名無しさん:2008/06/11(水) 20:02:37
ぐぐる前にここで聞け

310 :デフォルトの名無しさん:2008/06/11(水) 21:54:40
StreamWriterでテキストファイルに書き込んでるんだけども
2バイト文字(だと思う)が文字化けしちゃうんだけどこれはなんで?

311 :デフォルトの名無しさん:2008/06/11(水) 21:55:50
Encoding

312 :デフォルトの名無しさん:2008/06/11(水) 22:14:36
>>310
あーそれ俺も蹴躓いた一番最後が改行コード1つで終わってると文字化けするっぽかった気が
てかコレ
StreamReader sr = new StreamReader(fs, Encoding.GetEncoding("shift-jis"));

313 :デフォルトの名無しさん:2008/06/11(水) 22:19:20
Shift_JISでおk

314 :デフォルトの名無しさん:2008/06/11(水) 22:22:10
日本語版以外を作るつもりはないけどEncoding.Default使っている。

315 :デフォルトの名無しさん:2008/06/11(水) 22:38:22
しまったここはふらっとだった。

316 :デフォルトの名無しさん:2008/06/11(水) 23:32:31
大文字小文字ね

317 :デフォルトの名無しさん:2008/06/12(木) 00:39:53
>>314
無指定時の標準がutf-8でEncoding.Defaultが別にある不思議。

318 :デフォルトの名無しさん:2008/06/12(木) 01:38:26
Encoding.DefaultはANSIのデフォルトコードページだろ。
なにが不思議なんだ。

319 :デフォルトの名無しさん:2008/06/12(木) 03:00:18
まぎらわしいのは確かだわな。Encoding.Ansiとかにしといてくれればいいものを。

320 :デフォルトの名無しさん:2008/06/12(木) 14:44:04
List<T>からAsReadOnly()でReadOnlyCollection<T>を得た後
ReadOnlyCollection<T>への参照のみ保持しておく
ってのはやっても大丈夫?

321 :デフォルトの名無しさん:2008/06/12(木) 15:01:10
>>320
だめ。ReadOnlyCollection<T> を新たに new すれば大丈夫だけど。

322 :デフォルトの名無しさん:2008/06/12(木) 15:03:29
.NETはじめたばかりなんだが
Formの描画可能エリアサイズ(フレームを除く幅・高さ)を取得する方法を教授して欲しい ^p^
まったくもって初心な質問だが、おおおお願いいたしまする

323 :デフォルトの名無しさん:2008/06/12(木) 15:06:07
WidthとHeightプロパティ

324 :デフォルトの名無しさん:2008/06/12(木) 15:06:40
>>322
ClientRectangle とか ClientSize

325 :デフォルトの名無しさん:2008/06/12(木) 15:07:49
>>321
えーと、何が駄目なんだ?

326 :デフォルトの名無しさん:2008/06/12(木) 15:09:07
ありがとう >>324 アイシテル

327 :デフォルトの名無しさん:2008/06/12(木) 21:08:43
>>320
全く無問題

328 :デフォルトの名無しさん:2008/06/12(木) 21:11:26
>>327>>320w
>>325に答えて欲しくて反対の意見を書いてみましたってか?

329 :デフォルトの名無しさん:2008/06/12(木) 21:12:10
日本語で頼む

330 :デフォルトの名無しさん:2008/06/12(木) 21:12:24
>>328
お前病気だろ

331 :デフォルトの名無しさん:2008/06/12(木) 21:16:29
AsReadOnlyってreturn new ReadOnlyCollection<T>(this);だけだぞ
そのあとはReadOnlyCollectionが参照を保持してるから元のリストはGCされない

332 :デフォルトの名無しさん:2008/06/12(木) 21:43:36
>>328
「問題無い」ことに反論あるならちゃんと理由を書きましょうね

333 :デフォルトの名無しさん:2008/06/12(木) 21:54:55
HashTableをforeachで取り出したときと逆順に取り出したいんだけどどうしたらいいか教えてください。

334 :デフォルトの名無しさん:2008/06/12(木) 21:55:28
無理です

335 :デフォルトの名無しさん:2008/06/12(木) 22:02:50
hashtable.OfType<DictionaryEntry>().Reverse()

336 :デフォルトの名無しさん:2008/06/12(木) 22:24:24
キャストに失敗することはありえないので、Cast<T>() の方が

337 :デフォルトの名無しさん:2008/06/12(木) 22:28:22
>>335
ありがとうございます。
OfTypeとかC#3.0ですか?
C#3入れてみます。。

338 :デフォルトの名無しさん:2008/06/12(木) 22:31:02
Select 繋げて匿名型の型付き Key, Value にもしたいななんとなく

… Hashtable 使うやつが 3.0 使えるのかってのは俺もスルーするー

339 :デフォルトの名無しさん:2008/06/12(木) 23:13:56
KeyValuePairの方がベター

340 :デフォルトの名無しさん:2008/06/12(木) 23:31:39
ぐぐる前にここで聞け

341 :デフォルトの名無しさん:2008/06/12(木) 23:45:15
しまった。ここはふらっとだった。

342 :デフォルトの名無しさん:2008/06/13(金) 08:05:32
メッセージボックスは
MessageBox.Show("メッセージ", "") ;
ですが
これでメッセージがでてOKを押すまで次の処理に移らないようにするにはどうすればいいですか?

343 :デフォルトの名無しさん:2008/06/13(金) 08:08:15
普通はメッセージボックスが閉じるまでブロックされてるはずだけど

344 :デフォルトの名無しさん:2008/06/13(金) 08:12:47
ループの中で使ってるんですが
連続で大量に出てしまいます
あ、タイマー割り込み先になってました
こちらを抑止しないとダメですね

345 :デフォルトの名無しさん:2008/06/13(金) 18:45:34
マルチスレッドのアプリケーションを作っているのですが、スレッドでTextBoxに書き込もうとするとエラーになります。
バックグラウンドでもスレッドを使っても同じエラーになるのですが、どうしたらいいでしょうか?

346 :デフォルトの名無しさん:2008/06/13(金) 18:47:00
Invoke

347 :デフォルトの名無しさん:2008/06/13(金) 18:48:20
これかな
ttp://codezine.jp/a/article.aspx?aid=139

348 :デフォルトの名無しさん:2008/06/13(金) 18:48:20
http://www.atmarkit.co.jp/fdotnet/dotnettips/312ctrlinvoke/ctrlinvoke.html

349 :デフォルトの名無しさん:2008/06/13(金) 18:53:21
345です。

早い回答ありがとうございます。Invokeを使って一度動かしてみます。

350 :デフォルトの名無しさん:2008/06/14(土) 02:13:35
DictionaryとSortedDictionaryの使い分け方を教えてくれー
要素数が多いとSortedDictionaryの方が有利なのかと思ったら
全然関係なかったし。


351 :デフォルトの名無しさん:2008/06/14(土) 03:44:19
>>350
foreachなどで順番に読み出したときにキー順に読み出せるかどうかの違い。
むしろSortedDictionaryとSortedListの使い分けの方が悩む。

352 :デフォルトの名無しさん:2008/06/14(土) 03:51:44
じゃあ順序はどーでもいいときはDictionaryでいいのかぁ?

353 :345:2008/06/14(土) 03:55:53
345です。

Invokeを使ってTextBoxに書き込みはできるようになったのですが、関数を
while(Roop){
スレッド内容
}
として、ボタンを押したときにRoopをfaultにした場合にしているのですが、終了しないのですがどうしたらいいのでしょうか?
一応、thred.Isbackgroundはtureにしています。



354 :デフォルトの名無しさん:2008/06/14(土) 04:13:47
ステップ実行してみたら?

355 :デフォルトの名無しさん:2008/06/14(土) 05:19:20
「スレッド内容」の中に時間のかかるループがあるとか。
あと落ち着け。

356 :デフォルトの名無しさん:2008/06/14(土) 09:24:45
いくつか質問があるのでお願いします。
1.ListにListをいれて2次元配列みたいにしようと
  List<List> list = new List<List>();
  したらエラー'System.Collections.Generic.List<T>' の使用には、'1' 型の引数が必要ですというように怒られた。
  理由がわからないのと、代用法を教えてください。

2. 配列を受け取って不要な要素の削除挿入がしたいので配列からListへの変換がしたいと思うのですができません。逆はあるのですが。
  新たにListを作って挿入していくしかないのでしょうか。

3. 通常DataSetはselectして抜き出して表示、加工してUpdateという使い方をしますが、CSVからDataSetを作るという記事を
  見て自前で作ったDatsetをデーターベースに突っ込めるか気になったので教えてください。




357 :デフォルトの名無しさん:2008/06/14(土) 09:30:09
中のListも型を指定しないといけない。
List<List<int>> list = new List<List<int>>();

2つ目はList<>のコンストラクタでいける。
int[] a;
List<int> l = new List<int>(a);
2次元配列とかからList<List<>>なら、こうも単純にはいかないだろうけど。

358 :デフォルトの名無しさん:2008/06/14(土) 09:44:19
>>350
Dictionary はハッシュ辞書、
SortedDictionary は赤黒木。

ハッシュは、所望の要素数に対して、
最低でも倍くらいのメモリ確保しとかないと実行速度落ちる。
(デフォルトコンストラクタで結構大きめにメモリ確保してたはず)

でも、キー順で要素取り出せる必要のないときは普通に Dictionary でいいと思う。

359 :デフォルトの名無しさん:2008/06/14(土) 10:57:25
教えていただけませんでしょうか。

GetPrivateProfileStringでINIファイルの中に定義したファイル名(フルパス)
を取得していますが、取得できたファイル名がトレースで見てみると
c:\\tmp\\test.txt
のように\が二つ並んでいます。このファイル名をつかってFTPアプリ用
のパラーメータ文字列を作ろうとしているのですが
String.Format(" -p -b {0} {1} {2} {3} {4}",
IP,//IP
FtpUser,//ユーザー
FtpPass,//パスワード
ArcFile,//転送対象ファイル名(問題の文字列)
FtpPath);//転送先パス
とやると、Arcファイル名の文字列にc:\\tmp\\test.txtのように
\が2個入っているため、正常にファイル名と認識できないようです。
そのため、FTPコマンド(独自作成)が異常終了している状況です。
どのようにすれば\\を1文字にして正常な形式のファイル名でコマンド
文字列を作成できるのでしょうか。

お手数ですが、どちら様かご教示のほど、お願いしますm(__)m。


360 :デフォルトの名無しさん:2008/06/14(土) 12:32:17
359です。
すいません。ほかに原因があったようです。
お騒がせしましたm(__)m。

361 :デフォルトの名無しさん:2008/06/14(土) 15:23:10
>>358
デフォルトってたしか3か5か7だったかせいぜいそのくらい。
3だった気がする。
どうせあっという間に拡張されるしどうでもいい話だが。


362 :デフォルトの名無しさん:2008/06/14(土) 17:37:30
システムがムシキングっぽいゲーム作ってるのですが、
画像の表示の仕方がわかりません。おしてください。
ちなみにマイクロソフトvisualC#2008をつかっています。

363 :デフォルトの名無しさん:2008/06/14(土) 17:41:09
基本的にここのレスって、言語を一から勉強すれば全て解決できるはずの問題ばっかりだね。


364 :デフォルトの名無しさん:2008/06/14(土) 17:43:52
一から勉強してるときにつまずいたやつが来てるんじゃないの?

365 :デフォルトの名無しさん:2008/06/14(土) 17:45:46
でも流石に>>362のような消防(ry

366 :デフォルトの名無しさん:2008/06/14(土) 17:59:54
てかググり方を教えるスレだから

367 :デフォルトの名無しさん:2008/06/14(土) 18:05:01
>>362
ゲ製作技術
http://pc11.2ch.net/gamedev/

368 :362:2008/06/14(土) 18:42:44
言い方がわるかったみたいなのでしつもんを変えます。
visualC#でpictureboxってありますよね?それを使ってボタンを押すと
画像が変わるプログラムをつかうりたいのですが、どうすれば画像をかえられますか?
一応 pictureBox1.image = ファイルの場所 とやってみたのですができませんでした。
おしえてください

369 :デフォルトの名無しさん:2008/06/14(土) 18:48:03
>>368
picturebox1,2,3と作ってvisibleで切り替えろ

370 :デフォルトの名無しさん:2008/06/14(土) 20:09:44
XMLを出力するとき、
XmlTextWriter と XmlWriter のどっちでも
できるっぽいんだけど、どういう使い分けをすれば
いいんでしょう?

371 :デフォルトの名無しさん:2008/06/14(土) 22:14:03
ドキュメント読め

> public abstract class XmlWriter : IDisposable

> public class XmlTextWriter : XmlWriter

この2つを見つけることができれば、あとは自明

372 :デフォルトの名無しさん:2008/06/15(日) 00:16:08
XmlTextWriterは推奨されてないよね?

>Microsoft .NET Framework には、
>XmlWriter クラスの実装である
>XmlTextWriter クラスが含まれていますが、
>2.0 リリースでは、Create メソッドを使用して
>XmlWriter インスタンスを
>作成する方法を推奨しています

373 :デフォルトの名無しさん:2008/06/15(日) 01:34:18
XmlTextWriterのインスタンスを直接生成することが推奨されていないのであって、
XmlTextWriterを使用することが推奨されていないのではない。

XmlWriterインスタンスと言っても、実際には具象クラスのインスタンスなわけだ。
どの具象クラスのインスタンスを返すかはXmlWriterの判断に委ねろ、ということだ。

374 :デフォルトの名無しさん:2008/06/15(日) 03:11:03
>373
直接生成しないでXmlTextWriterのインスタンス
どうやって作るの?

375 :デフォルトの名無しさん:2008/06/15(日) 03:12:16
XmlWriter.Create

376 :デフォルトの名無しさん:2008/06/15(日) 03:23:17
返り、XmlWriterだけど・・

377 :デフォルトの名無しさん:2008/06/15(日) 03:25:30
>>373
え?w

378 :デフォルトの名無しさん:2008/06/15(日) 03:27:13
>>376
ポリモルフィズムでぐぐっとけ

379 :デフォルトの名無しさん:2008/06/15(日) 03:59:26
子を作って親に入れるんじゃなくて、
親しか作れないのに?

380 :デフォルトの名無しさん:2008/06/15(日) 04:00:17
親の名義だけど実際に帰ってくるのは子だよ。

381 :デフォルトの名無しさん:2008/06/15(日) 04:25:00
XmlTextWriter.Create(@"hoge.xml")
で帰ってくるのXmlWriterだよ。

382 :デフォルトの名無しさん:2008/06/15(日) 04:28:02
なぜ>>372を否定したがるのかわからん

383 :デフォルトの名無しさん:2008/06/15(日) 04:33:33
>>381
抽象クラスのインスタンス帰ってくるわけないだろうが…

384 :デフォルトの名無しさん:2008/06/15(日) 04:47:20
あ、違った。
でも、XmlTextWriterは帰ってこないね。

385 :デフォルトの名無しさん:2008/06/15(日) 04:54:54
なるほど。
createの意味は分かった。
じゃあ、ソース上はXmlWriterでよくて、
XmlTextWriter使う必要ないんじゃないか。

386 :デフォルトの名無しさん:2008/06/15(日) 04:58:36
だからそう言っているじゃないか

387 :デフォルトの名無しさん:2008/06/15(日) 05:10:14
ぐぐる前にここで聞け

388 :デフォルトの名無しさん:2008/06/15(日) 05:44:26
どちらかというと.NETスレ向けかもしれませんが…
コントロールのイベントについてなのですが、SplitContainerを2段重ねたものにPanel、Label
をおいたものを作り、LabelにDoubleClick、MouseDown、MouseMove、MouseUpイベントを
追加して使用しているのですが、このコントロールを動的に作成し、同じコントロールをPanelの
中に入れ子になるように追加して使用するようになっています。
このとき、1段目のコントロールのLabel.DoubleClickはちゃんと発生するのですが、2段目以降の
コントロールのLabel.DoubleClickが発生せず困っています。Mouse〜イベントはちゃんと
発生するのですが…

コントロールを入れ子にしすぎると発生しなくなるイベントとかあるのでしょうか?

389 :デフォルトの名無しさん:2008/06/15(日) 11:31:09
>>381
変数の型とインスタンスの型を区別して考えるようにしろ。

390 :デフォルトの名無しさん:2008/06/15(日) 13:28:31
C#でGUIアプリケーションを作りたいんですが、
参考になりそうな本、もしくはサイトを教えてください。
自分のスキルは「JAVA・C」をポインタくらいまで学習した。Python・Perlの基本部分がわかる程度、です。
目標としては「live2ch」みたいなインターフェースのtxtログ検索プログラムを作ろうと思ってます。

391 :デフォルトの名無しさん:2008/06/15(日) 23:02:46
public class Number
{
public string[] Num;
}

public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void Form1_Load(object sender, EventArgs e)
{
Number Date = new Number();
Date.Num[0] = "01aaaa";          // ここでエラーが出る
}
}

オブジェクト参照がオブジェクト インスタンスに設定されていません。
というエラーが出るのですがどうしたらいいのうでしょうか

392 :デフォルトの名無しさん:2008/06/15(日) 23:09:44
>>391
3行目
public string[] Num = new string[10]; // 配列の大きさは適当 


393 :デフォルトの名無しさん:2008/06/15(日) 23:15:26
List<T>使ってAddした方が動的さが直感的で使いやすく
コードが分かりやすくて良いいんじゃないかと。

394 :デフォルトの名無しさん:2008/06/15(日) 23:17:14
ArrayListがいいよ

395 :391:2008/06/15(日) 23:21:36
AllDate date = new AllDate();

StreamReader sr = new StreamReader("data.dat", Encoding.GetEncoding(932));

while (sr.Peek() != -1)
{
buf = sr.ReadLine().Split('/');
for (int cnt = 0; cnt < 4; cnt++)
{
if (buf[cnt] == textBoxSearch.Text)
{
listBoxResult.Items.Add(buf[2]);
date.No[cnt] = buf[0];                   // ここでエラー
}
}
label5.Text = listBoxResult.Items.Count + "件の検索結果が出ました";
}
sr.Close();


このようなプログラムで、検索でヒットしたbuf[0]だけど他のClassに保存してプログラム内で使いまわしたいのですが、
>>392さんが教えてくれたやり方だと、宣言した大きさを超えるとやっぱり

オブジェクト参照がオブジェクト インスタンスに設定されていません。

というエラーがでてしまいます。どうしたらいいんでしょう・・・

396 :391:2008/06/15(日) 23:22:56
>>395
bufは
string[] buf;
で宣言してあります

397 :391:2008/06/15(日) 23:26:53
>>393,>>394
まじでありがとうございます

398 :デフォルトの名無しさん:2008/06/15(日) 23:30:40
>>397
お礼を言う時にまじではないだろw

399 :391:2008/06/15(日) 23:31:47
本当にありがとうございます
やばいです

400 :デフォルトの名無しさん:2008/06/15(日) 23:35:37
>>396
forで何回ループするかわかってるなら
その前で
date.No = new String[max];
とすればいいんじゃね

401 :デフォルトの名無しさん:2008/06/16(月) 05:28:57
>>398
そういう注意はいいねw言うべきだ

402 :デフォルトの名無しさん:2008/06/16(月) 10:43:44
C#2008EEをXPで使用して勉強しています。
親クラスから複数の子クラスが派生しており、シーンによって子クラスの
メソッドを呼びわけるようにしたいと思っていますが、
うまく呼びわけることができません。

class Parent
{
}

class Child1 : Parent
{
void Method(){}
}

class Child2 : Parent
{
void Method(){}
}

例えば上記のようになっていた場合、ユーザから入力された値によって
Child1のMethodとChild2のMethodを呼び分けたいのですが、
どのように記載すべきでしょうか。

こういうシーンが1箇所ならswitchで呼び分ければいいのかなと思ったのですが、
上記のように処理を分岐させたいシーンが複数あり、
その度にswitchを記述するのがよくないと思っています。
初歩的ですがアドバイスをお願いします。

403 :デフォルトの名無しさん:2008/06/16(月) 10:51:19
>>402
ベースクラスで virtual or abstract
派生先で override
…なんでもいいから、C# 入門みたいなテキストをまずはやってみな
基礎の基礎は掲示板だと限界がある。ピンポイントなもの向け>掲示板

404 :デフォルトの名無しさん:2008/06/16(月) 11:31:20
XPなら何も考えないでswitchで書けよ、と思ってしまふ

405 :デフォルトの名無しさん:2008/06/16(月) 11:50:28
XP違いw

406 :デフォルトの名無しさん:2008/06/16(月) 11:53:56
基本intでしか使わない変数を ごくたまーにdoubleで使うことが分かっている場合、
intで書いてそこだけdoubleにキャストすべきか、最初からdoubleで書くべきか、
そんなどうでもいいこと勝手にしろ、か・・・・ご意見拝聴致したく候。

407 :デフォルトの名無しさん:2008/06/16(月) 11:55:22
doubleをintにしたら?

408 :デフォルトの名無しさん:2008/06/16(月) 12:16:39
演算する時は常にdoubleで使うとかいうんじゃなければ、
intでいいんじゃまいか。

409 :デフォルトの名無しさん:2008/06/16(月) 12:21:11
そういうときは、なるべく余計な記述をしなくてすむようにしたいな。はじめからdoubleに一票。

410 :デフォルトの名無しさん:2008/06/16(月) 12:24:09
基本intでしか使わないって言ってるんだから、言葉通りに取ると、
それだとintで余計な記述をするようになるんじゃないの?

411 :デフォルトの名無しさん:2008/06/16(月) 12:25:09
doubuleにintいれても意味無いだろ

412 :デフォルトの名無しさん:2008/06/16(月) 12:27:24
>>403
今日ほど参考書を買おうと思った日はありません。
帰りに買って帰ろうと思います。
ありがとうございました。

413 :デフォルトの名無しさん:2008/06/16(月) 14:01:45
C#で小物ツールを作るときに、たとえば
mytool.css
をダブルクリックすると裏で自動的にコンパイルして
あたかもスクリプトのように実行してくれる仕組みとそれに対応した拡張子ってないですか?
それくらいは自分で作ればいいんでしょうけど。もしあれば教えてください。

414 :デフォルトの名無しさん:2008/06/16(月) 14:07:05
エディタの外部ツール登録とかじゃ駄目なのか?

415 :デフォルトの名無しさん:2008/06/16(月) 14:16:29
貴重な御意見しかと頂戴いたし申した。

416 :デフォルトの名無しさん:2008/06/16(月) 14:28:22
申すは可笑しいだろうjk

417 :デフォルトの名無しさん:2008/06/16(月) 14:29:45
申し訳ない

418 :デフォルトの名無しさん:2008/06/16(月) 20:04:19
ASP.NETをC#でやってるんだけどもそれもここで質問していいのかな?

テキストボックスに値を入力して、入力された値に含まれる半角・全角のスペースを消したいんだけど
("aa aa"と入力されたら"aaaa"とか)
今はTextChangedイベント使ってAutoPostBackプロパティをTrueに設定して動かしているんだけど、
ポストバック時の再表示がちらちらして鬱陶しいんだ

何か他に方法はないかな?

419 :デフォルトの名無しさん:2008/06/16(月) 20:41:45
>>418
javascriptを使ってクライアントサイドだけでチェックと変更をする。
具体的にどうするかはスレが違ってくるな。

420 :デフォルトの名無しさん:2008/06/16(月) 21:01:15
割り込みすみません。

今oracleのテーブルにアクセスしてクエリ抽出し、それをcsvに書き出す
というのを作っているのですがデータアダプタとかデータセットとか良くわかりません。。。
(oracleアクセスとクエリビルダで抽出までは出来たのですが)

参考になるサイトとかどなたかご存知でしょうか?
お願いします

421 :デフォルトの名無しさん:2008/06/16(月) 21:16:37
VS2008にしたんだけどビルドしてもDEBUGフォルダだけでReleaseフォルダが
出来ないんですけど何故?

422 :デフォルトの名無しさん:2008/06/16(月) 21:20:13
ちゃんと設定した?

423 :デフォルトの名無しさん:2008/06/16(月) 21:20:26
>>419
よかったらJavaScriptの方へ処理を飛ばすというかJavaScriptを動かす方法とタイミングを教えてくれないだろうか

424 :デフォルトの名無しさん:2008/06/16(月) 21:30:06
>>422
VS2005EEでは設定した覚えがないんですけど。。。

今はvs2008PEです

425 :デフォルトの名無しさん:2008/06/16(月) 21:31:53
Release ビルドしても出来ないの?

426 :デフォルトの名無しさん:2008/06/16(月) 21:33:14
>>425
2005のときはビルドとかリビルドとかのメニューありますよね?
アレのビルドってやると普通に出来たんですが・・・

427 :デフォルトの名無しさん:2008/06/16(月) 21:40:52
俺は使ってないからわからない

Visual Studio 2008 Part 10
http://pc11.2ch.net/test/read.cgi/tech/1213334321/

428 :デフォルトの名無しさん:2008/06/16(月) 21:43:52
>>427
ありがとう。行ってきます

429 :デフォルトの名無しさん:2008/06/16(月) 21:56:56
配列やリストの中の最大値、最小値を求めるメソッドって無いの?

430 :デフォルトの名無しさん:2008/06/16(月) 22:06:42
Max, Min
なんでそのままの名前なのに見つけられないの?

431 :デフォルトの名無しさん:2008/06/16(月) 22:08:13
ない。ソートして最大/最小のインデックスでええやん

432 :デフォルトの名無しさん:2008/06/16(月) 22:29:32
Min/MaxはIEnumerable<T>の拡張メソッドなので.NET3.5から、
くらいの言及はしてやっても良いと思うが

433 :デフォルトの名無しさん:2008/06/16(月) 22:30:12
質問者の側で指定がなければ最新版を対象に話するよ。

434 :デフォルトの名無しさん:2008/06/16(月) 23:13:42
>>427
けっこうそっちで苛められましたw

435 :デフォルトの名無しさん:2008/06/17(火) 00:10:24
>>420
ttp://www.atmarkit.co.jp/fdotnet/basics/adonet_index/index.html

436 :デフォルトの名無しさん:2008/06/17(火) 00:16:43
PostBackが鬱陶しいならajax

437 :デフォルトの名無しさん:2008/06/17(火) 00:18:26
>>435
ひでえw

438 :デフォルトの名無しさん:2008/06/17(火) 00:25:58
>>437
でも実はこれが一番の近道じゃないか?w

439 :デフォルトの名無しさん:2008/06/17(火) 01:09:51
>>434
酷いな。何故か勝手に割れだと決め付けられてるし。
緑の▲ボタンの右側にデバッグ/リリース変えるコンボボックスあるっしょ。

440 :デフォルトの名無しさん:2008/06/17(火) 01:37:50
>>423
<script type="text/javascript"><!--
function blankcheck(id){
  var txt = document.getElementById(id);
  txt.value = txt.value.replace(/\s/g, "");
}
//--></script>
<input type="text" id="TextBox1" onchange="blankcheck('TextBox1')" />
これでいけるのだが、よく考えるとasp:TextBoxタグにこれを追加するのが面倒だ。

無理やりねじ込む方法もあるが、AutoPostBackをはじめASP.NETがonchangeを使う可能性が
あるから危険かも。
window.onload = function() {
 document.getElementById('TextBox1').onchange = function(){blankcheck('TextBox1');}
}
asp:TextBoxタグなどを拡張するのがマナーなんだろうけどややこしそうだ。

441 :デフォルトの名無しさん:2008/06/18(水) 14:59:26
毎秒100個くらい構造体(40byte)をバイナリファイルに出力したいのですが

1:構造体をバイナリファイルに出力する方法
2:可能な限り速やかにファイルに実際に書き込みをするようにしたい

どうすればいいでしょう?おしえてください
よろしくおねがいします

442 :デフォルトの名無しさん:2008/06/18(水) 15:04:26
>>441
考え直してはくれないか・・・
public static void SaveToBinaryFile(object obj, string path) {
using (FileStream fs = new FileStream(path, FileMode.Create, FileAccess.Write)) {
BinaryFormatter bf = new BinaryFormatter();
bf.Serialize(fs, obj);
}
}

443 :デフォルトの名無しさん:2008/06/18(水) 16:13:40
>>442
ありです
やってみます

444 :デフォルトの名無しさん:2008/06/18(水) 19:16:08
>>442
なんだか変数の名前も記録されてしまいますね
ファイルがバカでかくなりそうなのでやめます

他に何かいい方法はないでしょうか?
まだまだ募集中〜

445 :デフォルトの名無しさん:2008/06/18(水) 19:21:55
募集中…

446 :デフォルトの名無しさん:2008/06/18(水) 21:06:57
募集中噴いたwwww

BinaryFormatterで最初の要求仕様は満たされているが、
余分な物を出力したくないと言うならBinaryWriterを使えば良い。

Marshalとか使った方法もあるけど、自分で調べれないような人は使ってはいけない。
・StructLayout&Marshal.SizeOf→Marshal.AllocHGlobal→<Marshal.StructureToPtr→Marshal.Copy→[FileWrite]>→Marshal.FreeHGlobal

447 :デフォルトの名無しさん:2008/06/18(水) 21:12:02
そもそも毎秒100個もファイル書き出すなよ・・・

448 :デフォルトの名無しさん:2008/06/18(水) 21:18:17
用途を聞かないと判らないが、そんな勢いでファイル出力しなきゃならない設計自体が間違っている予感。

449 :デフォルトの名無しさん:2008/06/18(水) 21:27:14
一つのファイルに対して 40byte*100個/秒 書き出すって意味じゃないのか。
いくらなんでも秒間100もファイル作るわけが・・ないよね?

しっかし、用途がさっぱり分からないなぁ

450 :デフォルトの名無しさん:2008/06/18(水) 21:28:49
そもそも秒間100もファイル作れるのか?

451 :デフォルトの名無しさん:2008/06/18(水) 21:38:05
用途がわかれば色々アドバイスもできるんだがな。
DB使えとか。リモーティングがいいとか。

452 :デフォルトの名無しさん:2008/06/18(水) 22:25:58
セクター直書きなら余裕。

453 :デフォルトの名無しさん:2008/06/18(水) 23:23:49
普通に考えて設計が間違ってるわな。
昔、CSVファイルを1秒毎にFTPで送るって仕様があってだな、そのファイルってのがリアルタイムで製作していくらしいんだ。
ファイル数は10〜20個で、1ファイルあたり100列くらい。
そのシステムが全国にあって、名古屋のFTP鯖に向けて送りたいらしい。
さらに失敗時に再送処理もいれてくれとか細かい設定まであった。

何を言っているのかわからなかったよ。

454 :デフォルトの名無しさん:2008/06/18(水) 23:29:04
RC版は正式版に自動アップデートするの?

455 :デフォルトの名無しさん:2008/06/18(水) 23:47:22
>>453
何がしたくてどう考えたらそんなこと思いつくんだろう・・・

456 :デフォルトの名無しさん:2008/06/18(水) 23:48:23
ただのアホ

457 :デフォルトの名無しさん:2008/06/18(水) 23:51:28
>毎秒100個くらい構造体(40byte)をバイナリファイルに出力したいのですが
一個のファイルだろさすがに書き方から見ても。
まあBinaryWriterでちまちま書いとけ。



458 :デフォルトの名無しさん:2008/06/19(木) 00:00:55
適切な大きさのバッファを割り当てればストリームで十分スピードは出る。
ちまちまランダムアクセスするよりずっと早い。

459 :デフォルトの名無しさん:2008/06/19(木) 00:05:50
??


460 :デフォルトの名無しさん:2008/06/19(木) 00:09:54
流れを読めない人なんだろうからほっとけよ

461 :デフォルトの名無しさん:2008/06/19(木) 01:23:38
ボットシステム作る板かとオモタww

462 :デフォルトの名無しさん:2008/06/19(木) 13:45:31
今、C#.NET FrameworkでWindowsアプリを作成する練習をしているのだが
メインのFormプロパティ FormBorerStyleに、Noneを指定した場合
フォームデフォルト(キャプションウィンドウ, タスクウィンドウ上)のコンテキストメニューは、どうやって呼出せばいいのでしょうか

(´・ω・`) 教えてエロい人

463 :デフォルトの名無しさん:2008/06/19(木) 13:56:40
CreataParamsオーバーライドしてStyleにWS_SYSMENU追加

464 :デフォルトの名無しさん:2008/06/19(木) 14:12:58
>>463 ありがとう!正常に表示されますた。
WindowStyleの追加削除は、そこで直接行えばいいのね(・ω・)




465 :デフォルトの名無しさん:2008/06/19(木) 16:34:15
C#2008を使用していますが、Typeの情報からインスタンスを生成する方法ってあるんでしょうか?

動かないけどこんな感じで
Type test = typeof(string);
Object obj = new Object (test); //stringのインスタンス生成したい




466 :デフォルトの名無しさん:2008/06/19(木) 16:41:30
>>465
アセンブリの遅延ロードなどで使う
Assembly asm1 = Assembly.LoadFrom("sclass.dll");
Type sclass1 = asm1.GetType("Sclass");
ISclass s1 = (ISclass) Activator.CreateInstance(sclass1);


467 :デフォルトの名無しさん:2008/06/19(木) 16:43:35
ActivatorとかType.GetContructorからとか
どうでもいいがStringは引数なしコンストラクタを持たないぞっと

468 :デフォルトの名無しさん:2008/06/19(木) 16:47:21
>>462
せっかくForm使ってるんだから、MenuStrip使えよ。

469 :デフォルトの名無しさん:2008/06/19(木) 17:04:23
>>466 >>467
ありがとう。
そのへん調べてみたら簡単には出来なさそうなので
もうちょっと勉強してから実装してみます。

470 :デフォルトの名無しさん:2008/06/19(木) 18:49:39
LoadFromを広めるな。

471 :デフォルトの名無しさん:2008/06/19(木) 19:46:55
>>470
どのへんがダメなの?

472 :デフォルトの名無しさん:2008/06/19(木) 20:22:12
アセンブリをハイジャックされる可能性がある。

473 :デフォルトの名無しさん:2008/06/19(木) 20:27:48
それはLoadFormと関係ない問題


474 :デフォルトの名無しさん:2008/06/19(木) 20:35:16
ASP.NETでTextFieldParserを使いCSV読み込ませる処理をやっているがWEBアプリなのでどんなデーターをねじ込まれるか分からないので
最低限バイナリファイルを弾きたいのだがtry chatchしてもexeファイルは弾くが画像データとかは例外を出さずにそのまま素通りしてしまう。
どうすればいい?TextFieldParserはストリームで読み込む。

475 :362:2008/06/19(木) 20:38:36
画像をpictureboxに挿入したいのですが、下のようにしてもできません、
ちゃんとusing System.Drawing;も打ち込んであります。ファイルの場所もただしいです。
なのに名前 'image1' は現在のコンテキスト内に存在しません。とでます。
解決策をおしえてください。
private void Button1_Click(System.Object sender, System.EventArgs e)
{
image1 = new Bitmap(C:\Users\pc\Documents\C#\Visual Studio 2008\Projects\" +
@"WFA1\WFA1\nomal.bmp", true);
PictureBox1.Image = image1;
}

476 :デフォルトの名無しさん:2008/06/19(木) 20:45:46
これは?
Bitmap image1;
それかこうするか
Bitmap image1 = new Bitmap(C:\Users〜
てか直接とか
PictureBox1.Image = Bitmap(C:\Users〜

477 :デフォルトの名無しさん:2008/06/19(木) 22:38:56
>>446

貴重な情報ありがとうございます
やってみました
いまのところ動いてるっぽいです
(intって8byteでしたっけ?boolとbyteが4byteでセーブされるw ま、いいけど)
今日のところはデータは1秒あたり平均20弱くらい来てたようです
ファイルに保存できました(たぶん)

どーもみなさんありがとうございました

478 :デフォルトの名無しさん:2008/06/20(金) 00:15:05
>(intって8byteでしたっけ?boolとbyteが4byteでセーブされるw ま、いいけど)
なに使って書いたわけ?
BinaryWriterならそんな無駄は出ないぜ(出たからどうだという話もあるが)。
Marshal使ったんなら別だが。


479 :デフォルトの名無しさん:2008/06/20(金) 00:53:06
Marshalを使ったのだろうけど、アラインメントを理解してない。

480 :デフォルトの名無しさん:2008/06/20(金) 00:57:09
もし使うならちゃんと調べて使えと書いてたのに・・。

LayoutKind.Sequentialの構造体アライメント(Pack)/構造体のサイズ(Size)を指定する
もしくはLayoutKind.ExplicitにしてSizeを指定し、FieldOffsetで適切に配置してやればおk

481 :デフォルトの名無しさん:2008/06/20(金) 01:07:02
こうゆうケースではバイトオーダーも気にしなきゃいけないのかな?
BinaryWriterだとリトルエンディアン固定で考えればいいはずだけど。

482 :デフォルトの名無しさん:2008/06/20(金) 01:43:07
うん、バイトオーダーが違う環境だと問題が起きるよ。

もしそういうケースで使用するなら、出力ファイルのバイトオーダーをどっちかに揃えてやらないといけない。
リフレクション使ってバイト列を逆にするやつ作っとくと楽かも

483 :デフォルトの名無しさん:2008/06/20(金) 01:49:40
まあ普通はIPAddress.HostToNetworkOrderとかつかう。


484 :デフォルトの名無しさん:2008/06/20(金) 03:15:25
C#でUACのLowモードで他のプロセスを実行させる方法って、ありますか?
.NET Framework 2.0でやりたいのですが、C++でVista Win32 SDKを使わないと無理でしょうか?

485 :デフォルトの名無しさん:2008/06/20(金) 10:07:49
TcpClientを作成して、接続⇒データ送受信⇒切断を繰り返したいのですが、
TcpClient.Closeしてしまうと、再接続のときにまたNewしないといけないとか、
TcpClient.Client.DisConnectで接続を切って、再接続しようとすると例外が発生したり
上手くいきません。スマートな方法教えてもらえないでしょうか?

486 :デフォルトの名無しさん:2008/06/20(金) 10:14:31
どんなのを指してスマートと言うんだ?
TcpClientが一回の接続用に設計されてるのは変えようが無いが

487 :485:2008/06/20(金) 10:40:26
>>486
>TcpClientが一回の接続用に設計されてる
のような仕様なのであれば
>TcpClient.Closeしてしまうと、再接続のときにまたNewしないといけない
も納得がいくので問題ないです。


スマートというのは、
インスタンス一つで接続⇒データ送受信⇒切断と使いまわせたら、と考えてました。

488 :デフォルトの名無しさん:2008/06/20(金) 10:43:36
一回の接続専用と割り切って,newするだけでリフレッシュできる設計もスマートだと思わない?

489 :デフォルトの名無しさん:2008/06/20(金) 10:43:56
ポルナレフ呼んでくるぞ!?

490 :デフォルトの名無しさん:2008/06/20(金) 10:55:11
TcpListener クラスとか使えたりするのかな?

491 :デフォルトの名無しさん:2008/06/20(金) 11:58:42
Excelマクロを呼び出した後、クローズと終了はExcelから手動により行い
たいのですが、COMオブジェクトの解放はExcelが起動されている状態でも
以下のやり方でOKなのでしょうか?

Excel.Application xls = new Application();
Excel.Workbook wbk = (Excel.Workbook)(xls.Workbook.Open(〜省略〜);
xls.Run(〜省略〜);
//wbkクローズとxlsQuitは行わない
Marshal.ReleaseComObject(wbk);
Marshal.ReleaseComObject(xls);


492 :デフォルトの名無しさん:2008/06/20(金) 12:10:51
短時間で大量に送受信をするなら使い回した方が、
そうでないなら毎回newするほうがスマートな気がするがどうよ

493 :デフォルトの名無しさん:2008/06/20(金) 12:42:59
気のせいだ

494 :デフォルトの名無しさん:2008/06/20(金) 12:44:14
スマートとか意識してる時点でアホ

495 :デフォルトの名無しさん:2008/06/20(金) 13:31:28
>>492
> 短時間で大量に送受信をする
それならそもそもcloseしなければいい

496 :デフォルトの名無しさん:2008/06/20(金) 13:42:25
そう言ってるんじゃないの?

497 :デフォルトの名無しさん:2008/06/20(金) 14:12:14
そう言ってるな


498 :362:2008/06/20(金) 23:01:44
476様 ありがとうございました。 おかげでエラーがなくなりました
ですが、ほかの部品(っていうのかな?)がまったく表示されなくなりました。
がんばって直したいとおもいます。画像について教えていただきありがとうございました。

499 :498:2008/06/20(金) 23:17:45
連スレすいません、さっきのほかのものがまったく表示されなくなった件なんですが、
自分では解決できそうにないので、とりあえずコードの一部をのせてみました。
もしこれだけで分かる方がいらっしゃいましたら、おしえてくださいませ。
おねがいします

500 :デフォルトの名無しさん:2008/06/20(金) 23:32:03
わかりません。

501 :デフォルトの名無しさん:2008/06/20(金) 23:48:32
>>499
多分ピクチャーボックスの裏に隠れちゃったんでしょ
背景として画像を表示してその上にボタンとか置きたかったら
FormのBackgroundImageプロパティに指定する方法もあるでよ

502 :デフォルトの名無しさん:2008/06/21(土) 05:52:29
コンソールアプリケーションで
データベースを使うのは無理でしょうか?
(型付きデータセットなど)

503 :デフォルトの名無しさん:2008/06/21(土) 07:02:52
使えるよ。何の制約もなく。

504 :デフォルトの名無しさん:2008/06/21(土) 08:21:00
eClipのようなクリップボードソフトを勉強の為に作っているんですが
履歴データ読み込み時に、改行を含む文字列の固まりを個別に認識する為に
履歴データ出力時に何か目印となるものを出力しておきたいのですが
何かいい方法はないでしょうか。


505 :デフォルトの名無しさん:2008/06/21(土) 08:27:05
テキストで書くなら、
元々の文字列に含まれてる改行を違う文字列に置き換えるとか
最初に何行あるのかのデータを書くとか

506 :デフォルトの名無しさん:2008/06/21(土) 10:34:57
>>491
それで問題なかったはず。
気持ち悪いけどね。

507 :デフォルトの名無しさん:2008/06/21(土) 10:36:05
>>504
っXML

508 :504:2008/06/21(土) 18:32:14
>>507
XMLについて調べてみましたが扱えない文字列等は発生しないのでしょうか?
>>505
ありがとうございます。参考になります。

なお、某所に以下のような記載がありました。
>eClip.datの形式はよくある、データをヌル文字(0x00)で区切り、末尾はヌル文字ヌル文字にするもの
これはC#でも同様な方法はとれるのでしょうか

509 :504:2008/06/21(土) 18:50:39
"\0"で書き込めました。お騒がせしました。

510 :デフォルトの名無しさん:2008/06/21(土) 22:19:05
CRC32計算したいんだけど、ライブラリにない?

511 :デフォルトの名無しさん:2008/06/21(土) 22:20:12
基本クラスライブラリには無い
さがしゃすぐ見つかるがね

512 :デフォルトの名無しさん:2008/06/21(土) 22:44:15
thnx。やっぱないのか。MD5やSHA1はあるのに、CRCはもう必要とされてないんだな。

513 :デフォルトの名無しさん:2008/06/21(土) 23:26:55
はっきり言ってアプリケーションよりで使う意味はあんまりないんじゃね?

514 :498:2008/06/22(日) 00:08:04
すいません、urlはるのわすれてました。
ttp://proxy.f3.ymdb.yahoofs.jp/bc/485bbb84_2994/bc/%a5%de%
a5%a4%a5%c9%a5%ad%a5%e5%a5%e1%a5%f3%a5%c8/C%23.txt?bckJ8WIBKpgzoKFJ
こちらです

515 :デフォルトの名無しさん:2008/06/22(日) 00:53:36
わかりません。

516 :デフォルトの名無しさん:2008/06/22(日) 16:06:14
日経BPのV C# 2005 アプリケーション入門って
本好評なんだけど やってみてさっぱり判らなく
自分自身にがっかりしますた
オブジェクト指向って付いていけないよ・・・・・・・
もう俺も引退かな・・

517 :デフォルトの名無しさん:2008/06/22(日) 16:26:38
>>516
日経なんか読むよりも触ってみた方がいい
オブジェクト指向よりまずはイベントにべた書きでも言語になれる事
そこからオブジェクト指向的にリファクタリングしていけばいい

518 :デフォルトの名無しさん:2008/06/22(日) 18:12:44
ありがとうございます
2週間くらい読んで
オブジェクト指向のところに入って
チンプンカンプン アマゾンの書評には初心者向け
とか 簡単に読み進めれるとか書いてあるのに

自分ときたら理解できずコード紙に張って手で追っかけ
あっち飛んでこっち飛んで

わからねええええええええええ
絶望・・・おれ終った・・・・・・

とういう感じでした

基本に戻って勉強します
相談みたいな感じになったけれども
ありがとう

519 :デフォルトの名無しさん:2008/06/22(日) 18:48:35
俺C#4年やってるけどオブジェクト指向わかりましぇーん

520 :デフォルトの名無しさん:2008/06/22(日) 18:53:06
VisualStudioのツールボックスとかエクスプローラといった
パネル(ウィンドウ?)はどのコントロールを使用しているのでしょうか?

521 :デフォルトの名無しさん:2008/06/22(日) 18:54:55
厨房でもわかるのにわからないのか。

522 :デフォルトの名無しさん:2008/06/22(日) 19:17:52
>>520
ドッキングウィンドウのこと? ドラッグで移動させたり独立ウィンドウになったりするやつ?
それなら基本クラスライブラリには無いよ。

523 :デフォルトの名無しさん:2008/06/23(月) 09:45:12
>>506
有難うございます。

その言葉を頂き安心しました。

色々やってみた結果、Excel側でクローズする場合はReadOnly且つEditable=False
でオープンした方が良いという結論になりました。

524 :デフォルトの名無しさん:2008/06/24(火) 21:56:07
TableLayoutPanelを使ってボタンコントロールを配置しています。
「追加」と「挿入」ボタンを設置し、追加の場合は単純なADDを、
挿入の場合は座標を取得してADDにcolumnとrowを指定してコントロールを挿入しています。
追加の場合は末尾に追加されていくだけなので問題ないのですが
挿入の場合、挿入したコントロールの箇所に更に挿入処理を(何度か?)行うと
順番が滅茶苦茶になってしまいます。
(下の図では最後は△が2つ続かないといけないのですが、(1,2)にある●の次に△が来ます)

@AB         @AB  (1,1)に   @AB   (1,2)に   @AB
CDE →●を挿入 C●● →△を挿入 C△● →△を挿入 C△●
FGH         ●●D         ●●●          △●●

Removeを行った場合も、"途中で挿入した位置を飛び抜かした位置に飛ぶ"ような現象もあるため
ADD・Remove共にIndexを見てるのかとも思いましたが、どうにも原因が掴めません。
何か解決策があればお願いいたします。


525 :デフォルトの名無しさん:2008/06/24(火) 21:57:17
すいません、質問よろしいでしょうか。
クラスtestのprintメソッドでProgramクラス内にある変数 i の内容を表示させようとしたのですが、
「静的ではないフィールド、メソッド、またはプロパティ'ConsoleApplication1'で、オブジェクト参照が必要です。」(エラー位置 20行 37列)
と怒られてしまって前に進めない状態になってしまいました。どのように修正すればよろしいでしょうか。

using System;
using System.Text;

namespace ConsoleApplication1
{
public class Program
{
public int i = 100;
public static void Main(string[] args)
{
test wao = new test();
wao.print();
}
}

class test
{
public void print()
{
Console.WriteLine("{0}",Program.i);  //ここが 20行目 37列目です。 Program.1 がおかしいと怒られました。
}
}
}

どうぞよろしくお願いします。

526 :524:2008/06/24(火) 22:00:55
最後のは(1,2)ではなく、(2,1)でした。
すみません。

527 :デフォルトの名無しさん:2008/06/24(火) 22:04:27
何がしたいのか良くわからないプログラムだ。
class test のクラス内でiもProgramも参照不可能だし。
Programはクラス名だし、何をしたいんだ?


528 :デフォルトの名無しさん:2008/06/24(火) 22:07:36
wao.print(this);
}
}

class test
{
public void print(Program p)
{
Console.WriteLine("{0}",P.i);  //ここが 20行目 37列目です。 Program.1 がおかしいと怒られました。

う〜〜ん、これでどうだ? 検証してないけど。

529 :デフォルトの名無しさん:2008/06/24(火) 22:20:14
testもProgramも同じclassってもんだ。
だからProgramもtestと同じようにあつかわにゃならん。
testを使うときにまず何をした?

530 :デフォルトの名無しさん:2008/06/24(火) 22:59:48
とりあえず、static をいれたら動く

public int i = 100;

public static int i = 100;

なにがしたいかは わからんが

531 :デフォルトの名無しさん:2008/06/24(火) 23:21:41
C#でメッセループするときの負荷100%防止策ってThread.SleepでFA?
なんかWinAPIのGetMessageに比べて間抜けに見えるんだが俺だけなんだろうか。

532 :デフォルトの名無しさん:2008/06/24(火) 23:27:25
kwsk
いじりがいがありそうな

533 :デフォルトの名無しさん:2008/06/24(火) 23:34:03
>>525
何がしたいのか分からないが、エラーメッセージそのままじゃない?(時々、エラーメッセージの日本語が理解できないときがあるが俺だけ?)
>>528
後半はそれで問題ないと思う(正しいパラメータが渡されてくるなら)
ただ、このコードを見てると凄く頭が痛くなる。テスト目的でも設計が糞すぎてうんこしたくなる
print()メソッドはProgramクラスに入れるべき

534 :デフォルトの名無しさん:2008/06/25(水) 00:23:45
意図もまったくわからないのに設計語っちゃうんですか?

535 :デフォルトの名無しさん:2008/06/25(水) 00:36:29
>>480
おそくなってすいません
Pack=1ってやってみました
おかげさまでサイズが小さくなりました

それでもboolが4バイトw

536 :デフォルトの名無しさん:2008/06/25(水) 00:38:22
まーだアラインメント理解してないのか


537 :デフォルトの名無しさん:2008/06/25(水) 00:45:04
なに?それ?

538 :531:2008/06/25(水) 00:54:16
>>532 俺宛?
最近C#とManagedDirectXに手出し始めたんだけど、解説書とかあんまし無いんでググってみた。
とりあえずゲームパッドを使いたいんでDirectInputを見てたんだ。
++だとPeekMessageで高負荷、GetMessageで低負荷みたいな使い分けがあることとかを学習した。
C#でもDllImportでコレやるんか。コレってアンマネジになるんかな。例外処理とかメンドそうだなって思ってたところに、
while(true)とSleep()を使ったループを発見したんだ。
コレだとVSも静かだし便利だ。ウン。でもコレってダサいよね、ってことでここに来てみた。

>>535
BooleanはCLI内で4byteで、0x0の時にfalseだとどっかで読んだ記憶が。と、過去レス読まずに答えてみる。気にしないでスルーしてくれ

539 :デフォルトの名無しさん:2008/06/25(水) 02:52:43
>>538
MDXはWinForm依存でタイマーで間に合う程度のものを対象としているからしょうがないわな。
Sleep使ってるのはかなりやっつけのサンプルプログラムだと思う。
もうXNAへシフトしてるから資料がないのはしょうがない。
XNAならシビアなタイミングのゲームにも対応できる。

540 :デフォルトの名無しさん:2008/06/25(水) 08:48:40
まさかManagedDirectXがアンマネージだとか思ってないよね?

541 :デフォルトの名無しさん:2008/06/25(水) 09:30:43
>>531
http://pc11.2ch.net/test/read.cgi/gamedev/1212989813/31-35
MDXとWinFormsの組み合わせでゲームループを実装するならこれが普通。

GetMessageとPeekMessageが低負荷/高負荷ってのはちょっと違うな。
GetMessageだとあるFPSを維持するのにタイマメッセージを使う必要があるが
これは精度が悪すぎて紙芝居ゲーのまったりFPSですら実現が難しい。
なので通常はマルチメディアタイマーで自前で前フレームからの時間を
計測しつつPeekMessageでぶん回し、CPUの食いかたが気に入らないなら
適度にSleepを差し挟む。
これはWin32だろうがMDXだろうがXNAだろうが裏でやることは全然変わらない。

542 :デフォルトの名無しさん:2008/06/25(水) 12:24:26
タイミングを通知するだけで付加情報のないイベント(たとえば下のようなものです)を
発生させる度にEventArgsのインスタンスを生成するのは無駄なような気がするのですが、
EventArgsのインスタンスを使い回しても問題ないものなんでしょうか。

public event EventHandler Tick;

protected virtual void OnTick(EventHandler e)
{
if (Tick != null)
{
Tick(this, e);
}
}


543 :デフォルトの名無しさん:2008/06/25(水) 12:28:00
つ EventArgs.Empty

544 :デフォルトの名無しさん:2008/06/25(水) 12:31:25
>>543
おお、早速のご指導ありがとうございます。見落としていました。

545 :デフォルトの名無しさん:2008/06/25(水) 12:40:59
EventArgsって何のためにあるんだ?

546 :デフォルトの名無しさん:2008/06/25(水) 12:46:43
後で拡張しやすくするため

547 :デフォルトの名無しさん:2008/06/25(水) 13:01:13
どんな風に拡張しやすくなるんだ?

548 :デフォルトの名無しさん:2008/06/25(水) 13:19:09
>>545
反変性のためじゃない?
具体例を挙げると、

this.Hoge += (object sender, HogeEventArgs e) => { };

通常はこうするところを、

this.Hoge += (object sender, EventArgs e) => { };

こうかける。つまり、EventHandlerデリゲートは
規約に従っている全てのイベントに使えるということ

[MSDN] デリゲートの共変性と反変性 (C# プログラミング ガイド)
ttp://msdn.microsoft.com/ja-jp/library/ms173174.aspx

549 :デフォルトの名無しさん:2008/06/25(水) 13:29:10
引数何も使わないなら引数なくてもいいじゃん
HogeEventArgsのやつに突っ込みたいなら

this.Hoge += (sender, e) => SomeAction();

こうでいいじゃん

550 :デフォルトの名無しさん:2008/06/25(水) 13:42:55
// ラムダ式や匿名メソッドは限定的なんで除外。
例えばイベント引数が必要ないからって event Action Hoge; なイベントを作ったとする。
でこのイベントを色々なところで使って記述した。
その後ある場合に限ってイベント引数が必要だってことになった。
ここで event Action<Hage> Hoge; に置き換えると今までの記述全部書き換えにゃならない。
今まで書いてたのはそんな引数必要ないのに。

ていうときにEventHandlerパターンに従ってると簡単に拡張できるの。

551 :548:2008/06/25(水) 13:57:52
あ、ごめん。ちゃんと書くべきだった
一応、そのラムダ式と同じシグネチャを持つデリゲートのつもり

void Method1(object sender, EventArgs e) { }

があるときに、(Hoge, Fugaがなんであれ)

this.Hoge += this.Method1;
this.Fuga += this.Method1;

とかけると

552 :デフォルトの名無しさん:2008/06/25(水) 14:10:27
control.Invokeの場合にEventHandlerかMethodInvokerの形にしておくと
パフォーマンスがいいようなことがMSDNに書いてある。
計ったことはないけど。
普通のイベントでは特に差はなかった。

553 :デフォルトの名無しさん:2008/06/25(水) 17:48:58
パフォーマンスもまあそうだけど、
問題はリフレクションで動的バインドされてしまうこと。


554 :531:2008/06/25(水) 19:31:41
>>541 thx。コレは勉強になった。

いまスゴクいいとこ発見した。
ttp://techno-st.net/2008/04/visual_c.html
とりあえずコレをいじりながらいろいろ試して勉強してみる。

>>539 既存の資料はC++が難解でおれにはまだ無理なんだ。でもXNAとか俺にはまだ早そう。そんな感じ。
>>540 スマン。読み返して俺も変だと思った。
C#はForm周りとかルーキーでもとっつき易いけどネフレの外との温度差がつらい気がする。ってことを言いたかった

555 :デフォルトの名無しさん:2008/06/25(水) 19:37:41
Timerは論外

556 :デフォルトの名無しさん:2008/06/25(水) 19:43:20
…Xnaのほうがゲーム作るなら簡単だぞ?念のためにいっとくが。

557 :デフォルトの名無しさん:2008/06/25(水) 20:02:21
>>553
どういうこと?

558 :デフォルトの名無しさん:2008/06/25(水) 22:55:07
例えばそのInvokeの処理内で例外投げるとスタックトレース取れないとか。


559 :デフォルトの名無しさん:2008/06/25(水) 22:57:38
それってリフレクションのせいなの?
初めて知った

560 :デフォルトの名無しさん:2008/06/25(水) 23:14:38
正確には、リフレクションのせいで例外がすべてTargetInvocationExceptionにラップされ、
それを解除するためにInvokeでInnerExceptionが再スローされ、
結果そこまでのスタックトレースが空になる。


561 :デフォルトの名無しさん:2008/06/25(水) 23:29:18
と思ったけどMethodInvokerでも駄目だった勘違いスマソorz

562 :デフォルトの名無しさん:2008/06/25(水) 23:30:12
結局リフレクションはしてるの?

563 :デフォルトの名無しさん:2008/06/25(水) 23:38:08
叫んでる

564 :デフォルトの名無しさん:2008/06/26(木) 00:13:29
それはリフレイン

565 :デフォルトの名無しさん:2008/06/26(木) 00:40:15
delegateのInvokeとSystem.DelegateのDynamicInvokeだと性能が段違い。
DynamicInvokeはまともにリフレクションを使っている。
control.Invokeは引数がSystem.Delegateというのがポイント。

EventHandlerとMethodInvokerが特別扱いなのはこういう感じなのかと予想している。
void Invoke(Delegate d, object [] args) {
  EventHandler eh = d as EventHandler;
  MethodInvoker mi = d as MethodInvoker;
  if (eh != null) eh(args[0], (EventArgs)args[1]);
  else if (mi != null) mi();
  else d.DynamicInvoke(args);


566 :デフォルトの名無しさん:2008/06/26(木) 02:41:13
>>565
適当にソース追っかけてみたけど大体そんな感じだな

InvokeMarshaledCallbackDo()で、EventHandler、MethodInvoker、
WaitCallbackはそのまま呼び出して、それ以外はDynamicInvokeと

以下は大まかな流れ。とりあえず、参考までに

Invoke()
 -> MarshaledInvoke()
  -> PostMessage()

WndProc()
 -> InvokeMarshaledCallbacks()
  -> InvokeMarshaledCallback()
   -> InvokeMarshaledCallbackHelper() (ExecutionContext.Run()からデリゲート経由)
    -> InvokeMarshaledCallbackDo()

567 :デフォルトの名無しさん:2008/06/26(木) 09:08:44
TreeViewのデフォルトで、キーボードからaとか押すと
aから始まるノードに移動するが
これはどうやって制御すんの?

568 :デフォルトの名無しさん:2008/06/26(木) 16:36:59
TextBox.Text="hoge¥thoge";
てやるとタブが打てると思うけどタブが何文字分かって設定できますか?

569 :デフォルトの名無しさん:2008/06/26(木) 16:56:24
TAB幅の設定はAPIだと、EM_SETTABSTOPS でやるんだけど、
これ直接SendMessageすればいけるかも。

570 :デフォルトの名無しさん:2008/06/26(木) 17:45:30
>>569
ありがとうございます。
apiよくわからないけどググって来ます。

571 :デフォルトの名無しさん:2008/06/26(木) 18:45:04
>>565-566
EventHandlerとEventHandler<EventArgs>で互換がないから要注意ということですな。
これでキャストエラーになってしまう。
EventHandler<EventArgs> h = (sender, args) => { };
Delegate d = (Delegate) h;
EventHandler x = (EventHandler) d;


572 :デフォルトの名無しさん:2008/06/26(木) 19:32:00
EventHandler<EventArgs> h = (sender, args) => { };
EventHandler x = new EventHandler(h);

573 :デフォルトの名無しさん:2008/06/26(木) 21:02:51
C#ってJAVAでいうJUNITってありますか?

574 :デフォルトの名無しさん:2008/06/26(木) 21:23:41
nunit

575 :デフォルトの名無しさん:2008/06/26(木) 22:29:57
(フィールドを追加更新の為)いらなくなったデータソースを削除したいのですが
「データエクスプローラー」のタブからは右クリック削除できるのですが
「データソ−ス」から消すにはどうすればいいのでしょう

消えなくて1時間ほど格闘中

576 :デフォルトの名無しさん:2008/06/26(木) 22:54:00

「データエクスプローラー」のタブからは 右クリックで、データ接続は削除できるのですが
「データソ−ス」のタブから データセットを消すには どうすればいいのでしょうか?

変な文章になっていたので訂正



577 :デフォルトの名無しさん:2008/06/26(木) 23:04:29
MbUnit
TestDriven.NET

578 :デフォルトの名無しさん:2008/06/26(木) 23:17:32
だ・・わからん 寝ます・・・

579 :デフォルトの名無しさん:2008/06/26(木) 23:34:30
なんでVisualStudioがないんだよう


580 :デフォルトの名無しさん:2008/06/27(金) 08:49:26
エディタの置換機能を作ろうとしてるんですが、
文字列中の特定の文字を、一度に全部ではなく
1個ずつ順番に置換するのに便利な関数などはありますか?
例えば、Cのstrtokなどのような




581 :デフォルトの名無しさん:2008/06/27(金) 08:57:02
Regex の Match.NextMatch

582 :デフォルトの名無しさん:2008/06/27(金) 09:03:59
ありがとう、調べてみます

583 :デフォルトの名無しさん:2008/06/27(金) 21:17:02
C++からC#を使い始めてディープコピーに戸惑っています。

クラスを使う必要があるときC++のでは
Class A;
vector< A > B;
for( int i = 0 ; i < 5 ; i++ )
{
A.Init();
・・・
B.push_back( A );
}

とか書いてたんですがC#だと
List< A > B;
for( int i = 0 ; i < 5 ; i++ )
{
Class A = new Class();
・・・
B.Add( A );
}

にしないとうまく動かない。
こういうのってC#にそった考え方に変えるべき?
それともClass内部でディープコピーさせておくべき?

584 :デフォルトの名無しさん:2008/06/27(金) 21:20:50
普通にnewしろ

585 :デフォルトの名無しさん:2008/06/27(金) 23:07:31
ぐぐる前にここで聞け

586 :デフォルトの名無しさん:2008/06/27(金) 23:24:04
しまった ここはふらっとだった

587 :デフォルトの名無しさん:2008/06/27(金) 23:41:59
>>583
C++のクラスは値型。
C#のクラスは参照型。

588 :デフォルトの名無しさん:2008/06/27(金) 23:54:07
>>587
ズバリな回答ですな

589 :デフォルトの名無しさん:2008/06/28(土) 01:02:14
RPGツクール最新作、XBOX360用のソースコードを出力する機能を搭載、Xbox Live経由で全世界に配信も
http://namidame.2ch.net/test/read.cgi/news/1214581472/

エンターブレインが発売を予定している「RPGツクール」の最新バージョンにおいて、
XBOX360に対応することがわかった。

XBOX360への対応は、PC上のRPGツクールで作成したプロジェクトを、XNA Game
Studio用のプロジェクトに変換(C#及びXNAを用いたソースコードとして出力する)と
いうものになるという。

この機能の実装により、従来ではRPGツクール内で実装するには難しかった機能を
ソースコードレベルで編集し調整を行うことが可能となるとともに、完成したゲームの
配布は「XNA Game Creators Club」を通して行うことが可能となる。

日本発のゲームエンジンとして、商用ゲームの開発に利用といった展開に期待できる。
また、RPGツクールとXNA Game Studioの連携により、段階を踏んだゲーム開発者の
育成にも期待が持て、教育機関への普及も考えられる。

http://news4xbox.blogspot.com/2008/06/rpgxbox360.html

590 :デフォルトの名無しさん:2008/06/28(土) 13:31:07
所詮アスキー信用できん

591 :576:2008/06/28(土) 13:41:55
VS2008 独特の問題なのか
3日めググッテまいります

592 :デフォルトの名無しさん:2008/06/28(土) 14:22:21
VS2008スレに移動します
すまんかったの

593 :デフォルトの名無しさん:2008/06/28(土) 14:45:25
タイトルバーを表示せず、かつサイズを変更できるウィンドウを作成したいのですがどうすればよいのでしょうか?

594 :デフォルトの名無しさん:2008/06/28(土) 14:52:33
ControlBox=falseでよくなかったっけ

595 :デフォルトの名無しさん:2008/06/28(土) 14:57:03
よくないよ

596 :デフォルトの名無しさん:2008/06/28(土) 15:03:17
回答どうもありがとうございます。しかし、それではタイトルバーが表示されたままなのです。
わたしは以下のようにしたいのです。
ttp://sakuratan.ddo.jp/uploader/source/date85322.png
何度もすみませんがよろしくお願いいたします。

597 :デフォルトの名無しさん:2008/06/28(土) 15:09:11
FormのText入れたままとか言わないか?

598 :デフォルトの名無しさん:2008/06/28(土) 15:59:42
>>590
エンターブラインですけど

599 :デフォルトの名無しさん:2008/06/28(土) 16:05:17
>>598
エンターブラインは古いほうのアスキーの子会社じゃん。

600 :デフォルトの名無しさん:2008/06/28(土) 16:07:16
ブラインって何だよ。コピペしたら間違えたがな糞が

601 :デフォルトの名無しさん:2008/06/28(土) 16:18:25
>>597
ありがとうございます。Textを空にしたら出来ました。もう少し調べるべきでした。
たびたびの質問で申し訳ありませんがウィンドウのサイズ変更で横しか変更できないようにするにはどうすればよいのでしょうか?
つまり、高さの変更は出来ないが、幅の変更は出来るということです。
よろしくお願いいたします。

602 :デフォルトの名無しさん:2008/06/28(土) 16:59:45
MaximumSize/MinimumSize

603 :531:2008/06/29(日) 03:23:49
今こういう方向を目指して勉強中。つ http://dream-drive.net/down/joypointer.htm
こんな感じで常駐させる用にはTimerの精度でも十分だと思った。
ところで、スティックでマウス移動とかは問題なさそうなんだが、パッドからキー入力に対応するのはネフレとDirectInputの中では不可?

>>556
MSDN覗いてみたら、XNAって箱○コン用っぽくみえた。

604 :603:2008/06/29(日) 03:44:36
ごめんなさい。自己解決しました。Sys.Win.Forms.SendKeys

605 :デフォルトの名無しさん:2008/06/29(日) 12:21:05
そういう使い方ならDirectInput使わなくてもjoyGetPosでいいんじゃね

606 :デフォルトの名無しさん:2008/06/29(日) 19:10:53
質問でござる
http://dobon.net/vb/dotnet/internet/downloadfile.html
このサイトに載っていた下記のコードを実行すると15秒くらいかかるんですが
これって遅いですよね?
うちのPCがへちょいせいでしょうか


Stopwatch sw = new Stopwatch();
sw.Start();

System.Net.WebClient wc = new System.Net.WebClient();
wc.DownloadFile("http://www.google.co.jp/", @"c:\google.html");
wc.Dispose();

sw.Stop();

607 :デフォルトの名無しさん:2008/06/29(日) 19:29:37
>>606
うちじゃ0.2秒くらい
ADSL+Celeron1.2G程度


608 :デフォルトの名無しさん:2008/06/29(日) 19:32:35
環境によっては WebClient の初回動作がめちゃくちゃ遅い
原因は不明

609 :デフォルトの名無しさん:2008/06/29(日) 21:32:11
質問です。。。

ボリュームをコントロールするためにはどこをいじればいいのでしょうか?

delphiやらwin32やらでは見つかったのですが・・・。

610 :デフォルトの名無しさん:2008/06/29(日) 22:02:56
Win32APIをDllImportで使うのよ
CodeProjectとか漁ればライブラリあるかもしれないけど

611 :デフォルトの名無しさん:2008/06/29(日) 22:25:49
>>608
便乗して質問なのですが、Webブラウザで

webBrowser1.Navigate("http://hoge.com/index.html#1");

とすると、表示する時にカクッ、カクッと2段階にぎこちなく表示されます。
#1無しならば、もちろんスッと表示されますが、#1をつけてもスムーズに表示する
ような方法はありますでしょうか?

612 :デフォルトの名無しさん:2008/06/29(日) 22:42:22
>>611
ブラウザで普通に開いてもそうなるだろ

613 :デフォルトの名無しさん:2008/06/29(日) 23:00:18
プロキシの自動構成が走ってるんじゃね?


614 :611:2008/06/29(日) 23:14:00
>>612
ブラウザで普通に開く時よりもかなりもたつくので、何か方法があると思ったのですが・・・

615 :デフォルトの名無しさん:2008/06/29(日) 23:41:44
>>610
直でアクセスですね。 ありがとうございました。

616 :デフォルトの名無しさん:2008/06/29(日) 23:42:32
タスクトレイに格納した後に,その上でマウスホイール転がしたーとかを知る方法ってあるかな??

617 :デフォルトの名無しさん:2008/06/29(日) 23:50:07
フック

618 :デフォルトの名無しさん:2008/06/29(日) 23:52:58
船長

619 :デフォルトの名無しさん:2008/06/30(月) 00:01:50


620 :デフォルトの名無しさん:2008/06/30(月) 00:16:39


621 :デフォルトの名無しさん:2008/06/30(月) 00:19:31


622 :デフォルトの名無しさん:2008/06/30(月) 00:25:25


623 :616:2008/06/30(月) 06:30:32
なるほどフックですか。どもです。

624 :デフォルトの名無しさん:2008/06/30(月) 14:06:53
.net3.0って2.0の上位互換?
2.0で作ったのって3.0で動きますか?

625 :デフォルトの名無しさん:2008/06/30(月) 14:15:35
互換つーか.NET 2.0に幾つかライブラリを増やしたもの。2.0部分は変わってない。

626 :デフォルトの名無しさん:2008/06/30(月) 14:58:26
>>625
ありがとう。入れきてます。

627 :デフォルトの名無しさん:2008/06/30(月) 15:03:40
WinAPIの構造体を.NET用に書き出すとき、 char[定数] はどれを使えばいいですか?
構造体中で長さを指定できずに困っています。

628 :デフォルトの名無しさん:2008/06/30(月) 15:08:16
DllImportに手を出すならMSDNの「アンマネージ コードとの相互運用」以下全部熟読。

629 :デフォルトの名無しさん:2008/06/30(月) 15:20:27
どっひゃー VC#2008って win2kに入らんのかょ・・・・orz

630 :583:2008/06/30(月) 16:35:22
>>584、587
C#にそってnewを使っていこうと思います。ありがとう。

もうひとつ質問なんですが

public class TEST_A()
{
}

abstract public class TEST_B< T > where T: TEST_A, new()
{
}

↓ここのTに他で定義されたTEST_B< T >を入れたい
public class TEST_C< T > where T: TEST_B, new()
{
}

こんな風にしたいんですけど、どう書けばいいんでしょうか。

631 :デフォルトの名無しさん:2008/06/30(月) 16:39:28
public class TEST_C< T > where T: TEST_B<T>, new()
{
}

こうじゃないの?

632 :627:2008/06/30(月) 16:52:13
>>628 ありがとうございます。
文字列に対する既定のマーシャリングの部分で質問させてください。
char[]を含む構造体を渡して、参照先で値を受け取るのが目的です。
char[]としてはByValTStr属性が適合しそうなのですが、String型ではアンマネージな参照先で値を変更してはいけないというような記述があります。
しかし、構造体内ではStringBuilderは無効であり、文字列バッファのサンプルではStringBuilderを引数に直接渡すものしかありません。
構造体内で文字列バッファを使用するにはどうすればよいのでしょうか。

633 :デフォルトの名無しさん:2008/06/30(月) 17:07:17
文字列のマーシャリングんところにあるだろー?

634 :デフォルトの名無しさん:2008/06/30(月) 18:55:38
ComImportあたりを使って実装されたDirectXラッパーライブラリはあるでしょうか?
Managed DirectXだと1対1の実装ではないので、Cで書いたプログラムを移植するのに
わけがわからなくなってしまっているので探しているのですが。
自作しようかと思ったのですが、あまりに壮大すぎて無理そうですし。


635 :デフォルトの名無しさん:2008/06/30(月) 19:22:41
>>629
IDEがほとんど一緒で変わっていない2005でいいじゃん。

636 :デフォルトの名無しさん:2008/06/30(月) 19:45:04
>>631
それも試したけど動きませんでした
質問内容とは少し違うけど、結局ほしいのはメンバ関数だったので
こんな感じでやったら動きました。 ありがとう。

public class TEST_A { }

public interface TEST_B_Interface
{
 void TEST_B_Func();
}

abstract public class TEST_B< T >
: TEST_B_Interface
where T: TEST_A, new()
{
 public void TEST_B_Func() { }
}

public class TEST_C< T > where T: TEST_B_Interface, new()
{
 TEST_C()
 {
  T data = new T();
  data.TEST_B_Func();
 }
}



637 :デフォルトの名無しさん:2008/06/30(月) 19:58:34
コンパイル(ビルド)した日時を適当な
Labelに入れたいんですけど何かいい方法ありませんか?

例えば、「バージョン情報」の項目の一つとして、
ビルドした日時を入れておける、みたいな感じなんですけど。

638 :デフォルトの名無しさん:2008/06/30(月) 20:25:33
>>637
そういうの生成するタスクかコードジェネレータ書いてビルドプロセスに
入れる。

639 :デフォルトの名無しさん:2008/06/30(月) 20:30:57
>>634
ラッパーというとSlimDXというのがあるな
中身は見てないから、どんなものかはわからんが

640 :デフォルトの名無しさん:2008/06/30(月) 22:36:39
勉強でwebサイトを作ろうとやっているわけなんですが、
アップ時に、どうしても
Parser Error Message: Could not load the assembly 'App_Web_default.aspx.cdcab7d2'. Make sure that it is compiled before accessing the page.
と出てきてしまい、アップが出来ない状況です・・・・・
<%@ page language="C#" autoeventwireup="true" inherits="_Default, App_Web_default.aspx.cdcab7d2" %>
が悪いと出てくるわけなんですが、どうすればいいのか理解ができない状況です・・・

もし、ここが悪いんじゃね?っていうのがあれば教えていただければ幸いです。


641 :デフォルトの名無しさん:2008/06/30(月) 22:39:13
アップって何?

642 :デフォルトの名無しさん:2008/06/30(月) 22:40:34
笑ったら負けよアップップ

643 :デフォルトの名無しさん:2008/06/30(月) 22:42:07
>>641
すません、言い方が悪かったす。
ffftpでアップロードして見てみたところ、上記のエラーがでてきた感じでした。

644 :デフォルトの名無しさん:2008/06/30(月) 22:43:33
板違い

645 :デフォルトの名無しさん:2008/06/30(月) 22:47:11
>>644
板違い扱いなんすか?orz
すんませんした。

646 :デフォルトの名無しさん:2008/06/30(月) 22:57:28
>>645
[WebProg板]

【質問】ASP.NETスレ Part4【議論】
http://pc11.2ch.net/test/read.cgi/php/1184683786/

647 :デフォルトの名無しさん:2008/06/30(月) 23:01:09
>>646
すんません。ありがとうございます。そっちで聞いてみますね。すいませんでした。

648 :デフォルトの名無しさん:2008/06/30(月) 23:12:25
がんばれー

649 :デフォルトの名無しさん:2008/07/01(火) 21:08:43
Control.OnPaintメソッドでPaintイベントを発生させるようなんだけど、
OnPaint自体は誰が起動してるんですか?

あと、OnPaintをオーバーライドするのと、Paintイベントを
ハンドラで処理するのはどっち使っても同じことなんですか??

650 :デフォルトの名無しさん:2008/07/01(火) 21:13:32
OnPaintはそのコントロール自身が内部から呼んでる
派生クラスではOnPaintオーバーライドが推奨

651 :デフォルトの名無しさん:2008/07/01(火) 21:24:37
かぶさってるウインドウが動いたとかなんとかでOnPaintは勝手に呼ばれるんだろ

652 :デフォルトの名無しさん:2008/07/01(火) 21:34:04
OnPaintの前はWM_PAINTメッセージだな

653 :デフォルトの名無しさん:2008/07/02(水) 16:10:09
アプリが非アクティブのときにもtooltip.showでツールチップを表示したいんですが、どうしたらいいでしょうか?
tooltip.ShowAlwaysでは駄目だったのですが・・

tooltip.showはOnMouseMoveから呼んでいます。

654 :デフォルトの名無しさん:2008/07/02(水) 17:02:40
リストボックスのアイテムに変更があった場合にイベントを起こしたい
のですが何かいい方法はないでしょうか。

655 :デフォルトの名無しさん:2008/07/02(水) 21:32:21
自分のプログラムで変更してるんじゃないの?

656 :デフォルトの名無しさん:2008/07/02(水) 23:45:47
派生クラスを作ってイベント起こせ

657 :デフォルトの名無しさん:2008/07/03(木) 12:26:45
WPFならObservableCollection

658 :デフォルトの名無しさん:2008/07/03(木) 20:07:25
DataGridViewをPanelコンポーネントに入れてみたんだけど、
不必要な黒ぶちが表示されるんだ。
Cellの部分だけ表示するにはどうしたらいいのかな?

http://www.uploda.org/uporg1520851.png

659 :デフォルトの名無しさん:2008/07/03(木) 20:17:02
サイズ小さくすればいいじゃん

660 :デフォルトの名無しさん:2008/07/03(木) 20:28:05
panel引っ張って小さくしてももスクロールバーが表示されるようになるだけで駄目なんだ
datagridview自体を小さくすればいいって事?

661 :デフォルトの名無しさん:2008/07/03(木) 21:27:42
> panel引っ張って小さくしてももスクロールバーが表示されるようになるだけで駄目なんだ
面白い冗談だな

662 :デフォルトの名無しさん:2008/07/03(木) 22:25:38
boolのサイズって4byteだよね?
Marshal.StructureToPtrで1byteにならないよね?
ちょっと独り言

663 :デフォルトの名無しさん:2008/07/03(木) 22:29:09
boolは1byte


664 :デフォルトの名無しさん:2008/07/03(木) 22:31:28
マーシャリング後の(Win32的な意味での)BOOLは4byte

665 :デフォルトの名無しさん:2008/07/03(木) 22:37:23
typedef int BOOL;

666 :デフォルトの名無しさん:2008/07/03(木) 23:00:41
>>663
しったか乙

667 :デフォルトの名無しさん:2008/07/03(木) 23:04:45
よく知らんけど、boolは4byteでしょ。
true , falseで設定をメモリー上に保存すると無駄にメモリーを消費するから
バイト配列に1 , 0で保存したほうが良いとどっかで読んだよ。

668 :デフォルトの名無しさん:2008/07/03(木) 23:04:56
boolは1byte

669 :デフォルトの名無しさん:2008/07/03(木) 23:09:03
少なくともSystem.Boolean(=C#のbool)のサイズは1byte

670 :デフォルトの名無しさん:2008/07/03(木) 23:11:53
>>666-667
MSDNでも読め

671 :デフォルトの名無しさん:2008/07/03(木) 23:15:47
>>670
ハァ?

672 :デフォルトの名無しさん:2008/07/03(木) 23:17:09
あーboolは2バイトか

673 :デフォルトの名無しさん:2008/07/03(木) 23:18:59
はいはい
釣りはいいから


674 :デフォルトの名無しさん:2008/07/03(木) 23:20:51
unsafe
{
Console.WriteLine("sizeof(bool) = {0}", sizeof(bool));
Console.WriteLine("Marshal.SizeOf(typeof(bool)) = {0}", Marshal.SizeOf(typeof(bool)));
}

結果
sizeof(bool) = 1
Marshal.SizeOf(typeof(bool)) = 4

675 :デフォルトの名無しさん:2008/07/03(木) 23:22:31
ほらね

676 :デフォルトの名無しさん:2008/07/03(木) 23:26:02
structに配置した場合のアラインメントが4バイト境界になるんだよね。
boolはなぜか。


677 :デフォルトの名無しさん:2008/07/03(木) 23:29:09
struct{ bool; bool; } とか struct{ fixed bool[2]; } でも8バイトになるの?

678 :デフォルトの名無しさん:2008/07/03(木) 23:33:35
struct MyData1 { public bool Data1; public bool Data2; }
unsafe struct MyData2 { public fixed bool Data[2]; }

結果
sizeof(MyData1) = 2
Marshal.SizeOf(typeof(MyData1)) = 8

sizeof(MyData2) = 2
Marshal.SizeOf(typeof(MyData2)) = 4

679 :デフォルトの名無しさん:2008/07/03(木) 23:37:16
完璧に間違ってるのは>>667だけ

680 :デフォルトの名無しさん:2008/07/03(木) 23:40:15
Monoだとサイズが違ったりとかしそう

681 :デフォルトの名無しさん:2008/07/03(木) 23:41:59
>>680
マーシャリング後のサイズは環境に合わせて変わるで正解よ。
そもそもマーシャリングというのがそういうもの。

682 :デフォルトの名無しさん:2008/07/03(木) 23:41:57
しない

683 :デフォルトの名無しさん:2008/07/03(木) 23:48:14
>>680
だから言い直してるだろ

684 :デフォルトの名無しさん:2008/07/03(木) 23:51:17
>>676
ごめん訂正
structの長さは中に含まれる型のうち最大のものに長さ * n倍になってる

struct bb0 { bool b1; } => 1
struct bb1 { short a; bool b1; } => 4
struct bb2 { int a; bool b1; } => 8
struct bb3 { long a; bool b1; } => 16

2段目を見て勘違いしてた。

struct bb2 { int a; bool b1; bool b2; bool b3; bool b4; } => 8
これも8のまま

685 :デフォルトの名無しさん:2008/07/04(金) 00:15:35
・・・独り言のつもりがとんでもないことに

686 :デフォルトの名無しさん:2008/07/04(金) 00:28:30
なってない

687 :デフォルトの名無しさん:2008/07/04(金) 00:30:57
(´・ω・`)ちぇ

688 :デフォルトの名無しさん:2008/07/04(金) 11:11:07
Windows Formにて
タスクバーウィンドウに表示されるコンテキストメニューから
「移動(M)」の項目を無効にしたいのですが、どのウィンドウ
スタイルをイジくればいいのか分かりませぬ。

教えてエロい人 ( ;ω;)

689 :デフォルトの名無しさん:2008/07/04(金) 11:26:07
>>688
ttp://www.atmarkit.co.jp/fdotnet/dotnettips/142closebtn/closebtn.html
ここは、SC_CLOSEを消してるが、SC_MOVE = 0x0000F010 で移動を消してやるとできる。

690 :デフォルトの名無しさん:2008/07/04(金) 11:26:47
そのかわりマウスでも動かせなくなるけどな。

691 :デフォルトの名無しさん:2008/07/04(金) 19:49:47
質問させてください。
WindowsVistaマシンにて、ProgramFiles配下にA.exe とB.exeを配置し、
A.exeからB.exeを起動するようなプログラムを組んだ場合
uacにひっかかるのでしょうか?

試せばすぐに判ることだとは思いますが、
現在、Vista環境が無いため、試せないので・・・
ご教授お願い致します。


692 :デフォルトの名無しさん:2008/07/04(金) 20:33:37
起動は問題ないよ
でもこのくらいすぐにわかるくらいに
勉強したほうがいいよ
絶対役に立つ

693 :さむくん:2008/07/05(土) 00:49:19
今晩は。
C#からアンマネージのdllを呼び出しています。スレッドセーフにするため
スレッド独自のメモリを割り当て使用する(TlsAlloc())予定ですが...
dllMainのプロセス起動/終了は1回行われますが、予定外のスレッド終了(DLL_PROCESS_DETACH)が
3回発生しています。デバッガで見ると、
   スレッドxxxxはコード0で終了しました
が4行出ています。(現在はマルチ処理は組み込んでいません)
また、スレッド開始は全く発生していません。
C#からC++のdllを呼び出す時は、TlsAlloc()は使用してはいけないのでしょうか?
どなたかご存知の方いましたら教えてください。


694 :デフォルトの名無しさん:2008/07/05(土) 02:22:45
スレッドは勝手に作られる

695 :デフォルトの名無しさん:2008/07/05(土) 03:11:39
デバッガのせいとか

696 :デフォルトの名無しさん:2008/07/05(土) 03:59:49
>>693
ぜんぜん問題ないな。
case DLL_PROCESS_ATTACH:
  WriteConsole(GetStdHandle(STD_OUTPUT_HANDLE), "DLL_PROCESS_ATTACH\r\n", 20, &len, NULL);
  tlsindex = TlsAlloc();
  TlsSetValue(tlsindex, GlobalAlloc(GPTR, BUFSIZE*sizeof(int)));
  break;
case DLL_THREAD_ATTACH:
  WriteConsole(GetStdHandle(STD_OUTPUT_HANDLE), "DLL_THREAD_ATTACH \r\n", 20, &len, NULL); 
  TlsSetValue(tlsindex, GlobalAlloc(GPTR, BUFSIZE*sizeof(int)));
  break;
case DLL_THREAD_DETACH:
  WriteConsole(GetStdHandle(STD_OUTPUT_HANDLE), "DLL_THREAD_DETACH \r\n", 20, &len, NULL);
  GlobalFree(TlsGetValue(tlsindex));
  break;
case DLL_PROCESS_DETACH:
  WriteConsole(GetStdHandle(STD_OUTPUT_HANDLE), "DLL_PROCESS_DETACH\r\n", 20, &len, NULL);
  GlobalFree(TlsGetValue(tlsindex));
  TlsFree(tlsindex);
  break;


697 :デフォルトの名無しさん:2008/07/05(土) 16:27:51
VC#Express2005で使われていないメソッドやクラスを一気に消す方法 もしくは、一覧を表示する方法は無いですか?

698 :デフォルトの名無しさん:2008/07/05(土) 16:47:06
まずは「使われていない」っていうのがどういうことかを
もう少しくやしく

699 :デフォルトの名無しさん:2008/07/05(土) 17:00:28
すみません。

プログラム内で参照されていない、で 理解頂けますでしょうか・・・・

700 :デフォルトの名無しさん:2008/07/05(土) 18:25:28
usingの整理はVC#2008の新機能(Expressでも使える)
[編集]−[IntelliSense]−[using の整理]−[未使用の using の削除]

あと[usingの並べ替え]でABC順に並べ替えたりもして地味に便利。

残念ながらVC#2005では使えない。

701 :デフォルトの名無しさん:2008/07/05(土) 18:28:34
ん、よく読まずに書いたけどusingの話じゃないのね

それって無理じゃないか?

702 :デフォルトの名無しさん:2008/07/05(土) 18:42:07
>>700
ありがとうございます。
便利そうですね。win2000なので、VC#2008入れられなくて残念です。

>>701
ええ。usingじゃなくて 単にどこからも使われていないメソッドとかを一気に消したかったのですが、地道に消していくことにします。
ありがとうございました。

703 :デフォルトの名無しさん:2008/07/05(土) 19:09:18
>>702
TSなら "コード分析の実行"すればわかるでしょ。
(Proにあったかどうかは失念)
それ以外なら FXCop 使うしかないけど 同様の結果が得られる。

アップストリームからの呼び出しのないメソッドは
CA xxxx で警告される

704 :デフォルトの名無しさん:2008/07/05(土) 19:17:31
Proには無い

705 :デフォルトの名無しさん:2008/07/05(土) 19:54:54
>>703
すみません。TSとは何でしょうか?
FXCopググって着ます。


706 :デフォルトの名無しさん:2008/07/05(土) 20:02:16
>>705
(Visual Studio) Team System


707 :デフォルトの名無しさん:2008/07/05(土) 20:02:52
Team System

708 :デフォルトの名無しさん:2008/07/05(土) 20:24:55
>>706,707
ありがとうございます。
Expressなのでだめですね・・・・

709 :デフォルトの名無しさん:2008/07/07(月) 04:31:32
C#で他のプロセス上のデータを読もうとしています
Spy++で対象のオブジェクトを調べたところ、クラス名がListBox、
ウィンドウキャプションがListBox1ということが分かりまして
IntPtr hwp = FindWindow("ListBox", "ListBox1");
としました

ListBoxはカラム数が1で、単純なテキストデータが何行が書かれています。

このあと、hwpからListBoxに書かれているそのテキストデータを
全て読み出すにはどうすればいいでしょうか?
Marshal.PtrToStructureなどを試しましたがダメでした

ご教示頂けると大変助かります
よろしくお願い致します。

710 :デフォルトの名無しさん:2008/07/07(月) 05:21:07
>>709
FindWindowで探せるはトップレベルのみ、
APIの使い方がわからないレベルならAPIスレ行ってから出直してくれ。

711 :709:2008/07/07(月) 06:54:25
>>710
トップレベルにListViewがあるんです
このコードまででウィンドウハンドルは取得できていて、
GetWindowText()を呼べばキャプションもちゃんととれます

知りたいのは取得したIntPtrから
どうすれば保持しているデータを取得できるのか、ということです

712 :デフォルトの名無しさん:2008/07/07(月) 09:29:13
ListBoxなのかLixtViewなのかはっきりしてくれ

713 :デフォルトの名無しさん:2008/07/07(月) 10:48:20
>トップレベルにListViewがあるんです
って段階でアレだが。

本当にウィンドウハンドルとれてるなら
LB_GETTEXTLEN
LB_GETTEXT
Marshal.AllocHogeHoge/FreeHogeHoge
でできるが

714 :デフォルトの名無しさん:2008/07/07(月) 10:54:41
別プロセスならVirtualAllocExやらReadProcessMemoryやらが必要な気が

715 :デフォルトの名無しさん:2008/07/07(月) 14:12:50
>>713
SendMessage()とLB_GETTEXTでいけました
ありがとうございます!

716 :デフォルトの名無しさん:2008/07/07(月) 19:43:14
ListのForEachでbreakするにはどうすればよいでしょうか?

とりあえずnew List<int> {1, 2, 5, 10}.ForEach((int i) => { if (i == 5) break; Console.WriteLine("" + i); });
と書いたら「break または continue に対応するループがありません」と言われました。

717 :デフォルトの名無しさん:2008/07/07(月) 20:03:52
>>716
List.ForEach( Action ); はループじゃなくて関数だから警告がでるんじゃない?
ラムダ式を使ってまでForEachを使うメリットってあるの?


718 :デフォルトの名無しさん:2008/07/07(月) 20:07:56
TakeWhile使え

719 :デフォルトの名無しさん:2008/07/07(月) 20:29:55
素直に foreach を使うか、すすめはしないが例外を使う
try {
  ls.ForEach( i => { if (i == 5) throw new ForEchoBreakException() ; Console.WriteLine(i); });
} catch (ForEchoBreakException) {}


720 :デフォルトの名無しさん:2008/07/07(月) 20:48:08
>>718
TakeWhileは遅延評価になるから、似たような拡張メソッドを自作する必要があるな

721 :デフォルトの名無しさん:2008/07/07(月) 20:50:04
DataGridView_SelectionChanged(object sender, EventArgs e)
{
DataGridView.ClearSelection();
}

上記のタイミングで選択解除しても、カーソルだけは残ってしまうのですが、
カーソルも消す簡単な方法ってありませんか?

722 :デフォルトの名無しさん:2008/07/07(月) 20:59:24
一般にselectedとcursoredは別もんだぞっと。
CurrentCellプロパティ

723 :デフォルトの名無しさん:2008/07/07(月) 21:35:54
>>722
thx

DataGridView_RowPrePaint(object sender,DataGridViewRowPrePaintEventArgs e)
{
e.PaintParts &= ~DataGridViewPaintParts.Focus;
}
できた


724 :デフォルトの名無しさん:2008/07/08(火) 01:39:35
>>716
new List<int> { 1, 2, 5, 10 }.TakeWhile(i => i != 5).ToList().ForEach(Console.WriteLine);

725 :デフォルトの名無しさん:2008/07/08(火) 18:19:14
猫でも分かるCプログラミングというサイトや本がありますが
分からなかった場合、読者は何になるんですか

726 :デフォルトの名無しさん:2008/07/08(火) 18:25:54
ミジンコ

727 :デフォルトの名無しさん:2008/07/08(火) 18:38:52
百舌谷:「C#スレでCを聞くとは、猫遥か下の頭の狂ったミジンコが垂れ流した糞尿以下の存在だ。」

728 :デフォルトの名無しさん:2008/07/08(火) 21:01:41
「猫でも分かるが○○には分からないCプログラミング」

729 :729:2008/07/09(水) 00:24:06
#include <stdio.h>
#include <stdlib.h>
#define HIGH_VALUE 32767
typedef struct {int seihin; int suryou;} rec;

readF(FILE *F, rec *R) {
if (fscanf(F,"%d %d",&R->seihin,&R->suryou)==EOF)
{R->seihin=HIGH_VALUE;return(EOF);}
else return(!EOF);}
print_page(rec *IR, int I_eof){static int line,page=1,curP=1;
switch(curP) {
case 1:goto L1;
case 2:goto L2;
};
L1:
while (I_eof!=EOF) {line=1;
printf("\n 製品 入庫数 ページ%d",page);line++;
while (line<=7&&I_eof!=EOF) {
if (IR->seihin==-1) printf("\n%9s %9d","合計",IR->suryou);
else printf("\n%9d %9d",IR->seihin,IR->suryou);
curP=2;return(0);
L2:line++;
}
printf("\n\n----------------------------\n");
page++;
}
}

730 :729:2008/07/09(水) 00:26:28
つづき

main(){FILE *T;int T_eof;rec TR, IR;int seihin,gokei;
T=fopen("nyuko.DAT","r");T_eof=readF(T,&TR);
while (T_eof!=EOF) {seihin=TR.seihin;gokei=0;
while (seihin==TR.seihin&&T_eof!=EOF) {
gokei+=TR.suryou;
IR.seihin=TR.seihin;IR.suryou=TR.suryou;print_page(&IR,0);
T_eof=readF(T,&TR);
}
IR.seihin=-1;/*"合計"*/;IR.suryou=gokei;print_page(&IR,0);
}
fclose(T);
return(0);
}

C言語をC#に変えなくちゃいけないんですが助けてください!!

731 :デフォルトの名無しさん:2008/07/09(水) 00:33:26
マルチは誰も相手にしないよ。

732 :729:2008/07/09(水) 00:42:41
マルチってなんですか・・?すいません

733 :デフォルトの名無しさん:2008/07/09(水) 00:44:06
>>732
        ,.-─ ─-、─-、
      , イ)ィ -─ ──- 、ミヽ
      ノ /,.-‐'"´ `ヾj ii /  Λ
    ,イ// ^ヽj(二フ'"´ ̄`ヾ、ノイ{
   ノ/,/ミ三ニヲ´        ゙、ノi!
  {V /ミ三二,イ , -─        Yソ
  レ'/三二彡イ  .:ィこラ   ;:こラ  j{
  V;;;::. ;ヲヾ!V    ー '′ i ー ' ソ
   Vニミ( 入 、      r  j  ,′
   ヾミ、`ゝ  ` ー--‐'ゞニ<‐-イ
     ヽ ヽ     -''ニニ‐  /
        |  `、     ⌒  ,/
       |    > ---- r‐'´
      ヽ_         |
         ヽ _ _ 」

     ググレカス [ gugurecus ]
   (西暦一世紀前半〜没年不明)
彼が生前残したHP http://www.google.co.jp/


734 :729:2008/07/09(水) 01:56:08
すいませんよくわからなくてやってしまいました。
今日中にやらないといけないのでナントカお願いします(_ _);

735 :デフォルトの名無しさん:2008/07/09(水) 01:56:49
スレタイ読めないの?

736 :729:2008/07/09(水) 02:09:20
C#に変換するのができないんですが、Cのとこにいったほうがいいんでしょうか?すいません

737 :デフォルトの名無しさん:2008/07/09(水) 02:10:54
http://pc11.2ch.net/test/read.cgi/tech/1197620454/

738 :デフォルトの名無しさん:2008/07/09(水) 02:11:53
そんな泥縄通用せんよ。

739 :729:2008/07/09(水) 02:12:40
どうすればいいんでしょうか?

740 :デフォルトの名無しさん:2008/07/09(水) 02:20:51
>>739
答えが降ってくるまでマルチ連投しれ。
それか,朝まで自分でがんがれ!

741 :デフォルトの名無しさん:2008/07/09(水) 21:10:48
メソッドの戻り値って、配列とコレクション、どっち使うことが
多いんでしょう?

コレクションのが便利だと思うんだけど、
.netのクラスライブラリは配列のが多いよね?

配列じゃないと中に入れてるものの型が分からないから?

742 :デフォルトの名無しさん:2008/07/09(水) 21:15:03
用途による
型はジェネリック使えばいいし
そうじゃなくても型指定されたコレクション作ればいい

743 :デフォルトの名無しさん:2008/07/09(水) 23:24:21
C#の2008EEってコンポーネント作れないんでしょうか?
VS2008買わないとダメなんでしょうか

744 :デフォルトの名無しさん:2008/07/10(木) 00:50:25
>>741
ガイドラインに「プロパティの型を配列にするな」みたいなことが書いてあった気がする
コレクションなら普通にプロパティにすればいい

>>743
System.ComponentModel.Component を継承するだけだろ

745 :デフォルトの名無しさん:2008/07/10(木) 02:55:34
今までJava程簡単な言語はそうそう無いんじゃないかと思ってたけど、C#がその上を行くとは思わなかった
VBにも劣らないね、たぶん!

746 :デフォルトの名無しさん:2008/07/10(木) 02:58:52
>>745
気付くの遅すぎだろ?
あ,釣りか。

747 :デフォルトの名無しさん:2008/07/10(木) 11:04:16
>>745
宣伝ではないが、Java数年C#数年やったが、JavaのはC#に総て引っ越した。
本業は別言語だがな。趣味でさくっと書くや、簡単なツールにはC#が速くて楽。
VBは昔から嫌いだった。 (釣られた?

748 :デフォルトの名無しさん:2008/07/10(木) 11:09:18
javaはサーブレット/JSPなとこだけ残ってるな、うちは。
sparcのSolarisでapacheで動くようになったら全部移ってもいいが・・・

749 :デフォルトの名無しさん:2008/07/10(木) 11:41:26
GetKeyboardStateを使ってCでいうif ( KeyTbl[VK_RETURN] & 0x80 )
のようなビット演算を行いたいのですが、どのように記述すれば
良いのでしょうか。↓のような感じでは怒られてしまいます…。

byte[] keystate = new byte[256];
GetKeyboardState(keystate);
if (keystate[(byte)Keys.ShiftKey] & 0x80 != 0)
{
}

750 :デフォルトの名無しさん:2008/07/10(木) 12:01:03
演算子の優先順位ぐらい基礎以前だろ

751 :デフォルトの名無しさん:2008/07/10(木) 12:04:48
等値式( ==, != )は論理( &, ^, | )より優先順位が高い

演算子 (C# プログラミング ガイド)
ttp://msdn.microsoft.com/ja-jp/library/ms173145(VS.80).aspx

ちゃんとkeystate〜0x80を()で括ってやれ

752 :デフォルトの名無しさん:2008/07/10(木) 12:16:18
>>741
その場で新しく作るなら配列が一番速いからじゃね

753 :デフォルトの名無しさん:2008/07/10(木) 12:39:55
>>751
有り難う御座いました。期待通りの動作が出来ました。
精進します。

754 :いのしし:2008/07/10(木) 14:13:33
始めまして、

 C#でプログラミングをしていて、GUIコントロールに拡張プロパティを
追加しようとしてつまづいてしまいました。

状況:
 IExtenderProviderの実装クラスを作成して、フォームに張る事で、
TextBox等にプロパティを追加する事には成功したものの、
DataGridViewの子要素(例:DataGridViewTextBoxColumn)に対して、
プロパティが追加できない。

 Webで調べて、IExtenderProviderServiceを使えばなんとかなるかもしれない
(思い違いかもしれませんが・・・)ところまで、調べたのですが、ここで
お手上げ状態になっています。

 拡張クラスを使う手も考えたのですが、横断的関心事の
解決に使いたいので、拡張プロバイダでの解決方法を
めざしています。

どなたか、この問題に対する解決方法をご存知ありませんでしょうか?
よろしくお願いいたします。


755 :デフォルトの名無しさん:2008/07/10(木) 14:26:57
マルチは感心しないな

756 :いのしし:2008/07/10(木) 15:07:04
> 755
申し訳ない。

 他方での反応が良くなかったので、人口の多そうな
こっちに移って来たというのが、実状です。


757 :デフォルトの名無しさん:2008/07/10(木) 15:15:53
>>756
そっちを閉めれば問題ない

758 :いのしし:2008/07/10(木) 15:31:32
>757
クローズしてきました。

759 :デフォルトの名無しさん:2008/07/10(木) 17:52:54
ボタン押した際にタブページ(コレクション?)を増やすのってどうやんの?
あと増やしたタブページ内にリストビュー生成したいんだけど方法がわかんね

760 :デフォルトの名無しさん:2008/07/10(木) 18:00:55
適当にデザイナでTabControlにタブページ幾つか追加しといて、ついでにページにリストビューも追加して
Form1.designer.csだっけ、それのInitializeComponentメソッドの中見ればいいよ

761 :デフォルトの名無しさん:2008/07/10(木) 18:02:20
>>760
initialize時に生成してるのパクればいいのか、ありがとう

762 :デフォルトの名無しさん:2008/07/10(木) 19:27:31
あるフォルダ内にあるファイルのうち、
「隠しファイル属性の設定されていないファイル」
をループで処理したいと考えています。

DirectoryInfo dir = new DirectoryInfo(@"C:\foo");
FileInfo[] files = dir.GetFiles("*.txt");

foreach (FileInfo f in files)
{
FileAttributes fas = f.GetAttributes;
if ((fas & FileAttributes.Hidden) != 0)
{
[隠しファイル以外のファイルの処理]
}
}

という方法は考えたのですが、他に何か良い方法はありますか?
数が多いので、できる限りループ回数は減らしたいです・・・
(ファイル数は60,000以上で、今後増える一方)

763 :デフォルトの名無しさん:2008/07/10(木) 19:42:25
http://dobon.net/vb/dotnet/graphics/setremaptable.html
このサイトを参考に勉強しているのですが、

//ColorMapオブジェクトの配列(カラーリマップテーブル)を作成
System.Drawing.Imaging.ColorMap[] cms = new System.Drawing.Imaging.ColorMap[]
{
new System.Drawing.Imaging.ColorMap(),

new System.Drawing.Imaging.ColorMap()
};

とする際に配列の長さを2以上、たとえば10にしたいときに

System.Drawing.Imaging.ColorMap[] cms = new System.Drawing.Imaging.ColorMap[10];

とすると「オブジェクト参照がオブジェクト インスタンスに設定されていません。」のエラーが出てしまいます。
すごく基本的なところで躓いている気がするのですが、どう書いたらいいのでしょうか?

764 :デフォルトの名無しさん:2008/07/10(木) 20:04:38
>>762
ユーザや他のプログラムが属性いじらないって保証があるならキャッシュするとかあるけど
基本的にそれでいいんじゃない?

>>763
配列の個々の要素もnewしないと駄目だが。
そのサンプルで { } の中でやってるみたいに。

765 :デフォルトの名無しさん:2008/07/10(木) 20:19:41
>>764
レスありがとうございます。

{}のなかにnew System.Drawing.Imaging.ColorMap()をたくさん書けばその長さ確保できることは確認できました。
では10個必要なら10列書くしかないということでしょうか?
数字で指定できるスマートな書き方がありそうだと思ったのですが・・・。

766 :デフォルトの名無しさん:2008/07/10(木) 20:20:28
ループって知らんの?

767 :765:2008/07/10(木) 20:25:55
>>766
宣言の段階でループってのはしたことなかったので発想できませんでした。
ありがとうございます。

768 :762:2008/07/10(木) 22:38:39
>>764
ああ、やっぱりこの方法なのですねー。
でも周りにC#使いいないから、そう言ってもらえて安心しました。
ありがとう。

769 :デフォルトの名無しさん:2008/07/10(木) 23:41:50
>>768
C# 3.0ならこう書ける。

var cms = Enumerable.Range(0, 10).Select(dummy => new System.Drawing.Imaging.ColorMap()).ToArray();

770 :デフォルトの名無しさん:2008/07/10(木) 23:53:53
そんな書き方するなよ

771 :デフォルトの名無しさん:2008/07/10(木) 23:54:57
LINQクエリ式、リスト内包みたいなものだと思えば >>769 の書き方もありかと。

772 :デフォルトの名無しさん:2008/07/11(金) 08:01:01
SplitContainerのPanel1Collapsedしたときのちらつき軽減の方法ありませんか?
DoubleBufferedはtrueにしてみたのですが改善できないのです

773 :デフォルトの名無しさん:2008/07/11(金) 08:08:03
>>772
それは SplitContainer というか、Windows の仕様じゃね?
WinForms に限らず、ウィンドウリサイズするときってちらつくし。

774 :デフォルトの名無しさん:2008/07/11(金) 09:24:28
そりゃバックグラウンドをいちいち描いてりゃ
ちらつくわな

775 :デフォルトの名無しさん:2008/07/11(金) 09:25:52
string s1 = "aaabbbccc";
string s2 = "bbb";

上記2つのstringの共通した文字列(この場合bbb)をstringで取得するメソッドや方法はありますでしょうか?

776 :デフォルトの名無しさん:2008/07/11(金) 10:05:31
string GetCommonString(string s1, string s2)
{
if (s1.IndexOf(s2) >= 0) return s2;
if (s2.IndexOf(s1) >= 0) return s1;
return "";
}

777 :デフォルトの名無しさん:2008/07/11(金) 10:09:00
>>775
例と説明が悪い予感がする


778 :デフォルトの名無しさん:2008/07/11(金) 10:09:18
>>775の書き方だとstring s2 = "dddbbbeee";の時にも対応できるようにしたいんじゃないの

779 :デフォルトの名無しさん:2008/07/11(金) 10:11:23
>>775
string s1 = "aaabbbccc";
string s2 = "aaadddbbb";
の場合はどうしたい?

780 :デフォルトの名無しさん:2008/07/11(金) 10:22:13
>>776-779
たしかに表現が悪かったです。

前方一致といったほうがいいのでしょうか

> string s1 = "aaabbbccc";
> string s2 = "aaadddbbb";
> の場合はどうしたい?

なのでこの場合aaaを抽出したいです。

781 :デフォルトの名無しさん:2008/07/11(金) 10:27:43
string s1 = "aaabbbccc";
string s2 = "cccbbbaaa";
の場合はどうしたい?

782 :デフォルトの名無しさん:2008/07/11(金) 10:29:27
情報を小出しにしてるとは思わないが泥縄状態だなぁ。今考えてるところだろう。

783 :デフォルトの名無しさん:2008/07/11(金) 10:34:12
どんなプログラムのどの部分の部品としてこれを使いたいのかを説明したら?
これを使わない解決法が得られるかもしれないよ


784 :デフォルトの名無しさん:2008/07/11(金) 10:35:17
>>781
なるほど、いろんなケースが考えられますね・・・

> string s1 = "aaabbbccc";
> string s2 = "cccbbbaaa";
> の場合はどうしたい?

s1の先頭からs2の先頭の共通部分(この場合ccc)を取り出す
という説明ではどうでしょう

なのでこの場合cccを抽出したいです。

785 :デフォルトの名無しさん:2008/07/11(金) 10:40:12
string s1 = "aaabbbccc";
string s2 = "caaabbbccc";
じゃ、この場合も"c"?


786 :デフォルトの名無しさん:2008/07/11(金) 10:44:21
>>785
はい、そうなります

やはり一文字一文字比較して抽出したほうがよさそうですね
IndexOfですと共通文字列がわかっていることが前提ですし

787 :デフォルトの名無しさん:2008/07/11(金) 10:48:22
string s = string.Empty;
for (int i = s2.Length - 1; i >= 0; i--) {
string ss = s2.Remove(i);
if (s1.IndexOf(ss) > 0) {s = ss; break; } }
return s;
こんなかんじ?

788 :デフォルトの名無しさん:2008/07/11(金) 10:48:59
string s1 = "aaabbbcccadd"; 
string s2 = "caaabbbccc"; 
これは "ca" ?

789 :787:2008/07/11(金) 10:55:11
間違えた
for (int i = s2.Length; i >= 0; i--) {
string ss = i == s2.Length ? s2 : s2.Remove(i);

790 :デフォルトの名無しさん:2008/07/11(金) 11:01:00
>>787
おおおぉ、うまく抽出されました
ありがとうございます

>>788
はい、そうなります

791 :787:2008/07/11(金) 11:01:15
何度もすみません
s1.IndexOf(ss) >= 0

792 :デフォルトの名無しさん:2008/07/11(金) 11:21:52
暇つぶしに作ってたら仕様が違ってたみたいだが、せっかくなんで書く
二つの文字列の中で共通している連続文字列の一番長い部分を抜き出す場合のソース
sCが答え
i2をループさせずに0固定にすれば同じはず

string sC = "";
int cntC = 0;
for (int i1 = 0; i1 < s1.Length; i1++) {
for (int i2 = 0; i2 < s2.Length; i2++) {
int cnt = 0;
while (true) {
int ix1 = i1 + cnt;
int ix2 = i2 + cnt;
if (ix1 >= s1.Length)
break;
if (ix2 >= s2.Length)
break;
if (s1[ix1] != s2[ix2])
break;
cnt++;
}
if (cnt > cntC) {
cntC = cnt;
sC = s1.Substring(i1, cnt);
}
}
}

793 :デフォルトの名無しさん:2008/07/11(金) 11:56:55
では、いまどきのC#風で
class StrSep2 : IEnumerable<string> {
  string text;
  public StrSep2(string text) { this.text = text; }
  public IEnumerator<string> GetEnumerator() {
    for (int i=0; i<text.Length; i++)
      for (int j=0; j<text.Length-i; j++)
        yield return text.Substring(i, j+1);
  }
  IEnumerator IEnumerable.GetEnumerator() { return GetEnumerator(); }
}

var ds = from t in new StrSep2(s2) orderby t.Length descending select t;
foreach (var s in ds) if (s1.IndexOf(s) >= 0) { Console.WriteLine(s); break; }

一部いれかえれば仕様どおり
public IEnumerator<string> GetEnumerator() {
    for (int i=0; i<text.Length; i++) yield return text.Substring(0, i+1);
}


794 :デフォルトの名無しさん:2008/07/11(金) 12:18:50
ソートが不要になってだいぶ効率アップ
public IEnumerator<string> GetEnumerator() {
 for (int i=text.Length; i>0; i--)
    for (int j=0; j<=text.Length-i; j++)
      yield return text.Substring(j, i);
}
foreach (var s in new StrSep2(s2)) if (s1.IndexOf(s) >= 0) { Console.WriteLine(s); break; }


795 :デフォルトの名無しさん:2008/07/11(金) 15:22:39
本当はC使ってポインタでガリガリ書く方が効率がいいんだが

static class StringEx {
 public static IEnumerable<string> Suffixes(this string s) {
  for(int i=0; i<s.Length; i++) yield return s.Substring(i);
 }
}

---

var list = s1.Suffixes().OrderBy(s => s).ToList()
var i = list.FindIndex(s => s > s2);
if(i == -1) i = s1.Length;

// s1.Substring(i-1) か s1.Substring(i) のどちらかで s2 との一致長が最大
// 境界に注意

796 :デフォルトの名無しさん:2008/07/11(金) 18:23:36
this?

797 :デフォルトの名無しさん:2008/07/11(金) 18:43:14
拡張メソッド。System.Coreを参照に行くのが気に食わない。

798 :デフォルトの名無しさん:2008/07/11(金) 22:07:21
なんか仕様があいまいに感じるけど俺の頭が悪いせいか?

たとえば検索キーがABCD(A,B,C,Dはそれぞれ他を部分文字列として含まない文字列)
で表現でき、検索対象がAABABCABCDで表現できるときの期待される結果って?

799 :デフォルトの名無しさん:2008/07/11(金) 22:08:13
質問 おねがいします
C#で動画を作成、操作するにはどういうやりかたがあるんでしょうか?
具体的には自動生成されるたくさんのbitmapをつなげてムービーに加工したいとおもってます。
今は連番のbitmapが出力されるとこまでプログラムで作っていてそこからはvista付属のムービーメーカーで画像をつなぎ合わせていますが、
サイズが大きくなると自動化しないととてもじゃないがやってられないような
ちなみに強引に作った物はこれです。
http://jp.youtube.com/watch?v=_iv0idI4Qf0

800 :デフォルトの名無しさん:2008/07/11(金) 22:18:05
取りあえず比較的手軽なのはAVI系のAPIかね
C/C++の方が絶対楽だけど

つか探せば連番画像をAVIにしてくれるソフトぐらい転がってそうだが

801 :デフォルトの名無しさん:2008/07/11(金) 22:32:45
せめてDirectX
API無しは流石に考えられん

802 :デフォルトの名無しさん:2008/07/11(金) 22:47:15
>>798
俺は元の説明を無視して各事例から、

検索対象に含まれる検索キーのプレフィックスで、長さが最大のもの

と解釈した

イメージとしては、検索キーの末尾から1文字ずつ削りながら探すといったところか

803 :デフォルトの名無しさん:2008/07/11(金) 23:04:00
Cから入って全く分からないのですが、
const定数の多次元配列はどう作ればいいんでしょうか

const byte [2,2] barray = {{1,2},{3,4}};
と入れてみたのですが
 配列のサイズは変数宣言の中で指定できません ('new' を使用して初期化してください)
と言われてしまいます

804 :デフォルトの名無しさん:2008/07/11(金) 23:06:22
全く分からない人が何故いきなり配列を使うのかその方が謎だ

805 :デフォルトの名無しさん:2008/07/11(金) 23:29:39
>>803
> 配列のサイズは変数宣言の中で指定できません

806 :デフォルトの名無しさん:2008/07/11(金) 23:40:05
>>803
Cのconstとはかなり意味が違うからその辺は思い込みを捨てて基礎からやったほうがいいよ。
constはリテラルのみreadonlyにしても参照型の中身までreadonlyにできない。


807 :デフォルトの名無しさん:2008/07/11(金) 23:40:06
constの解説も読むと良いよ

808 :デフォルトの名無しさん:2008/07/11(金) 23:53:24
>>804-807
readonlyをつけても書き換えが出来てしまうと言う事は、
読み取り専用領域に確保する方法は無く、コンパイル時に定数へ置き換える機能しか無いと言う事でしょうか?

809 :デフォルトの名無しさん:2008/07/11(金) 23:59:15
いったんCの常識を捨てろ

810 :デフォルトの名無しさん:2008/07/12(土) 00:02:37
C#の配列は参照型だ。Cの常識は通用しない。

readonly byte [,] barray = {{1,2},{3,4}}; 
でコンパイルは通るが、barryがreadonlyになるだけで、brray[0,0] = 999 は書き換えることが出来る。

811 :デフォルトの名無しさん:2008/07/12(土) 00:05:56
中身を書きかえれないようにしたい場合はどうすればいいの?

812 :デフォルトの名無しさん:2008/07/12(土) 00:11:15
そのbarrayは、Cだとunsigned char *const barrayにmallocしました状態なんだな。
unsigned char const *constにする方法はない。
だから、読取りだけのプロパティやインデクサをよく使う。

813 :デフォルトの名無しさん:2008/07/12(土) 00:11:22
AsReadOnlyでも使ってれば

814 :デフォルトの名無しさん:2008/07/12(土) 01:14:38
C#のIDEでコントロールの親ってどうやって指定したらいいですか?><
具体的にいうと
panel1の上にpanel2が乗っててその上にSplitContainerが乗っかってる状態を
panel1の上にSplitContainerが乗っかってる状態にしたいけど
うまく選択と移動が出来なくてどうやったらいいのかわかんないです

815 :デフォルトの名無しさん:2008/07/12(土) 05:27:19
>>814
つ[ドキュメント アウトライン ウインドウ]

816 :デフォルトの名無しさん:2008/07/12(土) 10:29:40
static classをシリアライズ化するにはどうしたら良いでしょうか?

817 :デフォルトの名無しさん:2008/07/12(土) 10:33:52
そもそもstatic classなんて状態持たすもんじゃない

818 :デフォルトの名無しさん:2008/07/12(土) 11:16:35
すみません
正確にはstaticなメンバ変数をシリアライズ化・デシリアライズ化するにはどうしたらいいか、でした

819 :デフォルトの名無しさん:2008/07/12(土) 11:50:13
*個々の*メンバ変数はインスタンスだろ
普通のシリアライズと同じ手順でできるじゃん

820 :デフォルトの名無しさん:2008/07/12(土) 13:54:54
まあどうしてもやるなら
ISerializable実装
でも例えば別のインスタンスをデシリアライズしたら
staticなメンバは上書きされるとか嫌すぎるぞ

821 :デフォルトの名無しさん:2008/07/12(土) 17:08:15
> シリアライズ化
ってアレだ。馬から落馬みたいなもんか

822 :デフォルトの名無しさん:2008/07/12(土) 17:12:00
以降USBバスとかの話題禁止

823 :デフォルトの名無しさん:2008/07/12(土) 17:14:04
COBOL言語とかも禁止か。

824 :デフォルトの名無しさん:2008/07/12(土) 17:14:57
C#でドライバ回りがりがりやってる奴居るの?

825 :デフォルトの名無しさん:2008/07/12(土) 17:34:35
質問です。

SplitContainer上のSplitterの部分をクリックした時に、Splitterを左端に移動するようなプログラムを作りたいと思い、
SplitContainerのMouseClick時に、SplitDistanceを0に設定する事で解決しようとしたのですが、
実際にSplitterをクリックすると、一瞬だけはその設定通りに動くのですが、すぐにクリックする前の場所に戻ってしまいます。
期待通りの動作をさせるにはどうするとよいのでしょうか。
ちなみに、Panel1MinSize、Panel2MinSize共に0に指定しているので、これが原因というわけではないようです。

826 :デフォルトの名無しさん:2008/07/12(土) 17:40:23
>>825
Panel1Collapsedは使わないのか

827 :825:2008/07/12(土) 17:43:49
>>826
Panel1Collapsedでは、Splitterも一緒に消えてしまうので、今回の目的とは少しずれてしまう感じです…。

828 :デフォルトの名無しさん:2008/07/12(土) 18:58:45
TreeViewのフォーカスについて質問です。
SplitContainerで左にTreeView、右にWebBrowserを配置して
TreeViewのノードをクリックしたらノードが保持しているURLに
WebBrowserがNavigateするようにしたのですが
private void treeView1_AfterSelect(object sender, TreeViewEventArgs e) {
webBrowser1.Navigate(e.Node.Text);
webBrowser1.Focus();
}
このように書いてもWebBrowserのほうにフォーカスが行かずに
TreeViewにフォーカスが残ってしまいます。
どうにかしてWebBrowserにフォーカスを残す、もしくはTreeViewにフォーカスを
戻さない方法はないでしょうか?

829 :デフォルトの名無しさん:2008/07/12(土) 19:03:38
BeginInvoke と無責任レスしてみるテスト

830 :デフォルトの名無しさん:2008/07/12(土) 20:09:51
質問があります。

data.xには加速度センサのx軸の値が入ります。

string xpoint;
xpoint = data.x.ToString();
x_point.Text = xpoint;

このように型変換すると、
以下のようなエラーがでます。
保護されているメモリに読み取りまたは書き込み操作を行おうとしました。他のメモリが壊れていることが考えられます。

ご教授ください。

831 :デフォルトの名無しさん:2008/07/12(土) 20:12:38
x_pointってなんぞ

832 :デフォルトの名無しさん:2008/07/12(土) 20:20:44
具体的にどの行?
dataの型は? xの型は?

833 :デフォルトの名無しさん:2008/07/12(土) 21:05:32
エスパーすると無効な変数を使っているんだろ

834 :デフォルトの名無しさん:2008/07/13(日) 02:08:29
>>815
できました><
ありがとう

835 :デフォルトの名無しさん:2008/07/13(日) 04:35:01
>>830
P/InvokeやらActiveXを使ってるんだろうけど、
情報を小出しにするな。ご教授野郎はろくなのいないな。

836 :デフォルトの名無しさん:2008/07/13(日) 04:58:13
×ご教授ください
○ご教示ください

837 :デフォルトの名無しさん:2008/07/13(日) 06:09:45
http://www.google.co.jp/search?num=50&hl=en&q=%22%E3%81%94%E6%95%99%E6%8E%88%E3%81%8F%E3%81%A0%E3%81%95%E3%81%84%22
http://www.google.co.jp/search?num=50&hl=en&q=%22%E3%81%94%E6%95%99%E7%A4%BA%E3%81%8F%E3%81%A0%E3%81%95%E3%81%84%22

838 :デフォルトの名無しさん:2008/07/13(日) 10:43:42
ToolStripMenuItem.ClickとToolStripMenuItem.ItemClickedって何が違うの?

839 :デフォルトの名無しさん:2008/07/13(日) 10:44:12
>>836
最近この手「御用厨」馬鹿が多くて困るが、「教授」を「教示」と同じ使い方をして
本来まったく問題がない。

わんくまあたりのブログで「教授」の方が意味的に重い、と無知を晒している奴もいたが
実際はそんなことはない。

840 :デフォルトの名無しさん:2008/07/13(日) 11:08:15
>>838
DropDownItemClickedの間違いじゃない?字面の通りの違いで詳しくはMSDN。

教示、教授より普通に教えてくださいのほうが好感が持てると思うよ。

841 :デフォルトの名無しさん:2008/07/13(日) 12:35:55
私も初心者です。これは名刺代わりの挨拶です。

やねう企画代表者やねうらお(本名・磯崎元洋)が
・ソフトウェアの不正コピーを行っていた
・労働契約上の違反をしていた
・他は不正コピーしていないことを証明しようとしてエロゲーのパッケージを発見し、
 写真に撮ってアップロードしようとした。
http://d.hatena.ne.jp/pmoky/19000106
やねう企画の裏側(競馬の詐欺ソフトの製作現場)
http://d.hatena.ne.jp/pmoky/20060510
http://d.hatena.ne.jp/pmoky/20060511
http://d.hatena.ne.jp/pmoky/20060512
有限会社やねう企画(所在地・大阪府八尾市末広町2−1−2)が計画倒産
http://www.sia.go.jp/~osaka/zenso/19.09.pdf

やねうらおプロフィール
性格:友達から「チンピラ」「ヤクザ」と呼ばれている。前世で殺人鬼だった宿業を背負っているという妄想(自覚)あり。
最終学歴:専門学校卒
主な職歴:有限会社センキ(凌辱系アダルトゲームの製作会社)を経て独立、有限会社やねう企画を設立、2006年に計画倒産
代表作:『夜這いマニア』『盗撮マニア』『お楽しみCDシリーズ』『競馬詐欺ソフト』『BM98』

やねうらお語録
>「ワシのほうが潔癖やと思うんやけどな。
>絶対に違法コピーのソフトしか使わんし。
>たとえば強盗に入ったときに、ちょっとかわいそうになって
>十万円だけ残してったら、おかしいやろ?
>自分の『強盗する』という意思に対して矛盾やろ?
>だからワシは、一個も買ったソフトを使ったことがない!!」


842 :デフォルトの名無しさん:2008/07/13(日) 12:38:01
コピペ君って馬鹿だな、まで読んだ。

843 :デフォルトの名無しさん:2008/07/13(日) 13:21:25
最近、やねうらおは弓月(>>841)とか言う真性のキチガイに絡まれている

【自作自演】弓月城太郎氏に関するまとめ【神秘体験】
http://d.hatena.ne.jp/yaneurao/20080619

844 :デフォルトの名無しさん:2008/07/13(日) 13:45:12
>>843
正直、ざまぁとしか思わん。

845 :デフォルトの名無しさん:2008/07/13(日) 13:49:21
スレ違いはスルーでお願いします

846 :デフォルトの名無しさん:2008/07/13(日) 17:22:53
>>844
やねの悪評がねもはもないように見えて、かえって助かってるんじゃね?
だいたいいっつも >>841 >>843がセットで書き込まれてるってどういうことよ。

847 :デフォルトの名無しさん:2008/07/13(日) 17:32:32
やね=弓月

848 :830:2008/07/13(日) 17:43:01
自分も何が知りたいのか良く分からずに質問してしまいました。
もう少し整理したいと思います。

スレ汚しすいませんでした。

849 :デフォルトの名無しさん:2008/07/13(日) 17:50:19
さあ、仕切りなおして行きますか!
次の方どうぞ ^^

850 :デフォルトの名無しさん:2008/07/13(日) 23:59:09
C#でmciを利用しようとしているのですが、wavだけが再生できて、MIDIやmp3が再生できません。
mciSendStringの戻り値からエラーメッセージを取り出してみても、
「指定されたデバイス ドライバの読み込み中に不明な問題が発生しました」(エラーコードは266)
というありきたりなもので、手がかりがつかめませんでした。
また、パスの中に空白があるわけでもなく、そもそも同じディレクトリのwavは再生できているのでパスの問題でもないようです。
「type mpegvideo」を指定してみても、変わりないようです。

ちなみに、C++からmciを利用してみたところ、mp3でもtype指定なしで問題なく動作しました。
原因として考えられるものはないものでしょうか。
wavだけが再生できるのが不可解です……。

/*******************/
// mciSendStringの宣言
[System.Runtime.InteropServices.DllImport("winmm.dll")]
static extern int mciSendString(String command,StringBuilder buffer, int bufferSize, IntPtr hwndCallback);

// 呼び出し時
mciSendString("open BGM.mp3 type mpegvideo alias MyMusic",null,0,IntPtr.Zero); //エラー266が出る
mciSendString("play MyMusic from 0",null,0,IntPtr.Zero);

851 :デフォルトの名無しさん:2008/07/14(月) 00:02:34
諦めて音楽再生部分C++で書いちゃえば?

852 :デフォルトの名無しさん:2008/07/14(月) 00:44:03
bool型変数の中身覗かないでtrue/false切り替える方法ってありませんか?

853 :デフォルトの名無しさん:2008/07/14(月) 00:47:02
「中身覗く」とは?

854 :デフォルトの名無しさん:2008/07/14(月) 00:50:30
>>851
はい、ほかにもDirectXを利用するという方法もありますし、代替策は確かにあるとは思うんですが、
原因だけでもわからないと、気持ち悪いんです。

855 :デフォルトの名無しさん:2008/07/14(月) 01:05:47
>>852
if (a) { a = false; } else { a = true; }
とかじゃなく、
a = !a;
ですましたいってことか?

856 :デフォルトの名無しさん:2008/07/14(月) 01:07:41
Interlocked.CompareExchangeみたいなのが欲しいのかねぇ?

857 :デフォルトの名無しさん:2008/07/14(月) 01:09:08
>>855
そう言うことです
っていうかa =!a;で良いんですか?

858 :デフォルトの名無しさん:2008/07/14(月) 01:18:37
>>857
!演算子ってのは要するに、オペランドの真偽値を逆にして返すだけのものだから。

859 :デフォルトの名無しさん:2008/07/14(月) 01:20:10
>>857
普通にいけるぞ

860 :デフォルトの名無しさん:2008/07/14(月) 01:47:02
!演算子もaの中身を覗いてますが。

861 :デフォルトの名無しさん:2008/07/14(月) 02:16:53
>>850
俺の環境では下のソースでMIDIが再生できた。Windows Vista 32bit, .NET 2.0 SP1
SoundPlay.Play(@"open C:\__________\midi\rainbowload.mid alias music");
SoundPlay.Play("play music");
class SoundPlay
{
[DllImport("winmm.dll")]
extern static int mciSendString(string a, StringBuilder b, int c, IntPtr d);
public static int Play(String msg)
{
StringBuilder sb = new StringBuilder();
return mciSendString(msg, sb, 0, IntPtr.Zero);
}
}


862 :デフォルトの名無しさん:2008/07/14(月) 02:55:07
for (int r = 2; r < 18; r++){
 for (int c = 0; c < 7; c++){
  if (table[c, r] != null){
   mthod(table[c, r]);
  }
 }
}
を実行するとNullReferenceExceptionがおこります。
以下のcsvをtable[,]に展開してます。
どういて例外が起こるのでしょうか?

1,2,3,4,5,6,7
,,8,9,a,,
,,b,c,,,
,,d,e,,,
,,f,10,,,
,11,12,13,,,
,14,15,16,,,
,17,18,19,,,
,1a,1b,1c,,,
,1d,1e,1f,,,
,,,20,21,22,
,,,23,24,25,
,,,26,27,28,
,,,29,2a,2b,
,,,2c,2d,2e,
,,,2f,30,,
,,,31,32
,,,33,34


863 :デフォルトの名無しさん:2008/07/14(月) 02:57:23
tableがnullなんだろ

864 :デフォルトの名無しさん:2008/07/14(月) 03:11:06
mthodがnullなのかもしれん

865 :デフォルトの名無しさん:2008/07/14(月) 03:11:23
そう思ってif(table[c, r] != null)ってしてるんだけど・・・

866 :デフォルトの名無しさん:2008/07/14(月) 03:15:11
>>864
for()の前にも別の引数で同じメソッド呼び出してるんだけど、
そっちでは例外出ないんだよね・・・
引数の型はstringです・・・

867 :デフォルトの名無しさん:2008/07/14(月) 03:15:18
>for (int r = 2; r < 18; r++){ 
これの4行まえでヌルポしてました。ガッ!

868 :デフォルトの名無しさん:2008/07/14(月) 03:17:05
>>865
それはtable[,]の要素がnullでないことを確認してるのであってtableがnullでない事を確認してるのではない


869 :デフォルトの名無しさん:2008/07/14(月) 03:17:19
てか落ちてる場所はどこなんだ?

870 :デフォルトの名無しさん:2008/07/14(月) 03:20:50
>>868
なるほど・・・
でもtable[,]はグローバルな変数だから・・・

csv読み込むメソッドがおかしいんだな、きっとそうだ!
おまえらありがとう、続きはまた明日にしてみる

871 :デフォルトの名無しさん:2008/07/14(月) 03:23:54
string[,] hoge = new string[10,10];

みたいなやつをやらないとダメなんだぜ

872 :デフォルトの名無しさん:2008/07/14(月) 03:28:16
グローバルだから何だってんだよ
newしろよ


873 :デフォルトの名無しさん:2008/07/14(月) 11:50:17
Webbrowserコンポーネントで、マウスの戻るボタンや進むボタンを使うにはどうすればいいですか?

874 :デフォルトの名無しさん:2008/07/14(月) 12:01:37
マウスのドライバとかの実装次第な気がする
そのアプリのBS/S+BSにボタン割り当てるとか駄目?

875 :デフォルトの名無しさん:2008/07/14(月) 12:03:11
自分でボタン貼り付けてWebBrowser.GoBackを呼ぶ、という話でなく?

876 :デフォルトの名無しさん:2008/07/14(月) 13:04:54
あくまで自分のPC環境の話だけど、押された時はMouseDownでMouseButtons.XButton1が来た
試してないからわからんけど、キーイベントでKeys.BrowserBackも来るかもしれない

877 :デフォルトの名無しさん:2008/07/14(月) 18:48:15
WebBrowserにフォーカスがあるとイベントが来なかったりしなかったっけ?
だもんでWebBrowserを継承してPreprocessMessageを
オーバーライドしなければいけなかった希ガス

878 :デフォルトの名無しさん:2008/07/14(月) 18:55:34
ハードについてる専用ボタンか、、、spy++してみた?

879 :デフォルトの名無しさん:2008/07/14(月) 20:05:53
10個の数字から一番大きいものを探すのに、今、

Math.Max(a, Math.Max(b, Math.Max...............

という感じで、Math.Max並べまくってるんだけど、
もっといい方法ないでしょうか。

880 :デフォルトの名無しさん:2008/07/14(月) 20:16:42
エスパーになれと?

881 :デフォルトの名無しさん:2008/07/14(月) 20:17:25
エスパーキタコレ

882 :デフォルトの名無しさん:2008/07/14(月) 20:23:37
>>879
new[] { a, b, c, … }.Max()

883 :デフォルトの名無しさん:2008/07/14(月) 20:29:26
別に小学生がプログラムをやるのは構わないが、数学とかちゃんと基礎科目の知識を蓄えながらやって欲しいよな


884 :デフォルトの名無しさん:2008/07/14(月) 20:50:56
普通に理解できるし何も間違ってないだろ
ループ使ってもやってることは同じ

885 :879:2008/07/14(月) 21:34:50
>882
ありがとうございます。

886 :デフォルトの名無しさん:2008/07/15(火) 09:48:49
Math.Max(Math.Max(・・・を並べるのとループはやってることは同じでも
全然違うだろう

887 :デフォルトの名無しさん:2008/07/15(火) 10:31:16
>>860
本当?本質的にはフリップフロップのトグル(電気信号の反転)なのに、
中身覗いたりするのはいくらなんでも無駄だろう。

a = !a;が、たとえば
pop
neg
push
と展開されるならば、誰も中身は覗いてないよ。

仮想マシンだって、そんなにへぼはせんだろ。

888 :デフォルトの名無しさん:2008/07/15(火) 10:34:51
popしてるじゃん

889 :デフォルトの名無しさん:2008/07/15(火) 10:48:45
レジスタにロードするのに、中身覗く必要はないよ。
(何をもって「覗く」とたとえるかは、哲学の問題かもしれないが)
じゃあ、日本語で。

暗幕の中に電球があって、その外に押しボタンスイッチがある。
スイッチを押すたびに電球のON/OFFが切り替わるが、
スイッチの見た目の状態は変化しない。
担当者は、電球の状態を反転せよと命令されるたびにスイッチを押す。
スイッチを押すときに、現在の状態を知る必要はない。

890 :888:2008/07/15(火) 10:50:50
あ、ごめん、おいらはアトミックな操作的な意味で言ってた

891 :デフォルトの名無しさん:2008/07/15(火) 10:57:46
CPUの中の人も大変だな

892 :デフォルトの名無しさん:2008/07/15(火) 11:21:23
アホっぽい展開でワラタ

893 :デフォルトの名無しさん:2008/07/15(火) 11:24:33
>>889
小学生みたいないいわけだな。ブール代数を一から勉強してこい。
入力がないのにNOT回路が動くわけねーだろ。

894 :デフォルトの名無しさん:2008/07/15(火) 11:42:02
if (b) { b = false; } else { b = true; }

b = !b;
の話じゃないのか。

895 :デフォルトの名無しさん:2008/07/15(火) 11:43:42
どっちも中身を参照してるじゃん。それで?

896 :デフォルトの名無しさん:2008/07/15(火) 11:46:32
TTLとかPLAとかで回路組んだことない人たちには、やっぱり直感的
じゃないんだろうな。まあ、いいや。そろそろスレ違いだし。

897 :デフォルトの名無しさん:2008/07/15(火) 11:52:23
半田ごて使わずに直感的はないだろ。

898 :デフォルトの名無しさん:2008/07/15(火) 11:58:21
popの実装を知っていたら覗いてないという発想はないな。

899 :デフォルトの名無しさん:2008/07/15(火) 12:02:33
で、結局
if(a) a = false else a = true;

a = !a;
の生成されるコードはどう変わってくるのよ?最適化されて同じ奴が出力されるの?
ま、前者を思いつくことはないからどうでも良いが

900 :デフォルトの名無しさん:2008/07/15(火) 12:17:12
それぐらい自分で試せよ。
bool a = true;
0000002c mov esi,1

if (a) a = false; else a = true;
00000031 test esi,esi
00000033 sete al
00000036 movzx eax,al
00000039 mov edi,eax
0000003b test edi,edi
0000003d jne 00000044
0000003f xor esi,esi
00000041 nop
00000042 jmp 00000049
00000044 mov esi,1

a = !a;
00000049 test esi,esi
0000004b sete al
0000004e movzx eax,al
00000051 mov esi,eax

901 :デフォルトの名無しさん:2008/07/15(火) 12:25:48
昔の古いソースを見てみたらメソッドの命名規則が変なので
一括で修正したいのですが、VSでメソッドだけ検索する方法はありますか?(正規表現とか)
DelphiやJavascriptなどなら"function"を頼りに検索すれば見つかったのですが
C#は変数と関数の区別がつきにくいのでどうやって検索したらいいのか分からない・・・

具体的にはhasChildという関数をHasChildと変えたいのです。(もちろん置換すべきメソッドは他にもいくらでもあるorz)

もう一つ質問ですが、hasChildといった関数はすべてprivateかprotectedな
そのクラスの中でしか使わない関数なのですが、この場合の命名規則はHasChildかhasChildなのかどちらでしょう?


902 :デフォルトの名無しさん:2008/07/15(火) 12:29:15
VSならいくらでも手がある気がするけど。
例えば、ソースの右のコンボボックスから適当に選択して
飛んだとこで右クリックでリファクタ→名前の変更とか

903 :デフォルトの名無しさん:2008/07/15(火) 12:29:18
hasChild(をHasChild(にすりゃいいんじゃないの

904 :デフォルトの名無しさん:2008/07/15(火) 13:03:37
>>903
デリゲート変数使った呼び出しかもしれないぞw

905 :850:2008/07/15(火) 19:59:35
>>861
むう、やはり動かないようです…。
自分で色々試してみて、無理だったらMCI以外の手段で鳴らすようにします、
わざわざコードを書いていただいてありがとうございました。

906 :デフォルトの名無しさん:2008/07/15(火) 23:23:36
>>901
一発じゃ難しいかもしれんが

クラスビュー→検索→オブジェクトの種類でグループ化→
マウスでひとつひとつ選択→右クリック→名前の変更

一応、安全には書き換えられる。

後者の質問は private は基本好きにどうぞ。protected は公開
しているのと一緒なので Pascal case (UCC)推奨。
というか MS ガイドライン的には確か UCC 基本で、LCC は
private instance field(正確には縛りなし)と parameter のみかな。
ある意味覚えやすい。


907 :デフォルトの名無しさん:2008/07/16(水) 10:51:07
>>902-906
遅レススマソ&サンクス

>>906を参考に検索しながらやりました
UCCはDelphiチックでLCCはjavaチックなのだな?
 


908 :デフォルトの名無しさん:2008/07/16(水) 15:00:01
なのだな?

909 :デフォルトの名無しさん:2008/07/16(水) 15:31:37
いえ、たっちです


910 :デフォルトの名無しさん:2008/07/16(水) 15:35:42
UCCだのLCCだのその辺の人には意味不明の略語を使うのは
初心者スレとしてどうなのかね

UpperCamelCase lowerCamelCase
のことなんだろうけど一瞬なんのこっちゃと思ったわ

911 :デフォルトの名無しさん:2008/07/16(水) 15:42:52
上島珈琲か

912 :デフォルトの名無しさん:2008/07/17(木) 01:41:37
Microsoft的な用語はCamel CaseとPascal Caseだべ。

913 :デフォルトの名無しさん:2008/07/17(木) 17:14:26
何かのテキストファイルを読み込む時に、コメント行(例えば//)
の行は読み込まずに一行の文字列として返すメソッドを作りたいの
ですが、どのような方法が効率的なのでしょうか。

914 :デフォルトの名無しさん:2008/07/17(木) 17:46:04
手を動かせ

915 :デフォルトの名無しさん:2008/07/17(木) 17:58:11
コメント行?
行頭から行末まで全部がコメントじゃない場合はどうしたいの?

916 :デフォルトの名無しさん:2008/07/17(木) 17:59:41
//〜改行まで読み飛ばしながらStringBuilderに詰める

917 :デフォルトの名無しさん:2008/07/17(木) 17:59:55
訂正
× 行頭から行末まで全部がコメントじゃない場合
○ 行頭から行末まで全部がコメントというわけではない場合


918 :デフォルトの名無しさん:2008/07/17(木) 21:39:00
C#でノートPCの電源(コンセントが抜かれたのを)が切れてたのを感知することは可能でしょうか?

919 :デフォルトの名無しさん:2008/07/17(木) 21:52:45
WM_POWERBROADCASTとかで取れないかな?

920 :デフォルトの名無しさん:2008/07/17(木) 21:56:10
コンセントが抜かれたら即死なんじゃね?

921 :デフォルトの名無しさん:2008/07/17(木) 21:57:24
ああ、ノートPCか。

922 :デフォルトの名無しさん:2008/07/17(木) 22:46:17
>>919
ありがとう ググッテきます

923 :デフォルトの名無しさん:2008/07/18(金) 01:04:15
StringBufferとStringってどう使い方が違うんでしょう?

924 :デフォルトの名無しさん:2008/07/18(金) 01:18:07
>>923
後からどんどん追記するか、
最初限りで変化しないか。

925 :デフォルトの名無しさん:2008/07/18(金) 01:28:07
このスレはJavaの質問まで答えるようになったのか

926 :デフォルトの名無しさん:2008/07/18(金) 01:36:52
>>924
なるほどありがとうございます
StringBufferは追記できない代わりに軽いとかですかね?

927 :デフォルトの名無しさん:2008/07/18(金) 01:42:47
Stringは追記できない
Stringの+は連結した新しいStringを一々作る
StringBufferは追記できるので軽い
もっともこれはJavaの話で
C#ではStringBufferの代わりにStringBuilderを使う

928 :デフォルトの名無しさん:2008/07/18(金) 02:06:56
あ、StringBuilderでした
勘違いですすみません

929 :デフォルトの名無しさん:2008/07/18(金) 02:08:34
あれ?StringBuilderの方が追記可能でしたっけ

じゃあ、
string t;
foreach(なんたら){
 t += かんたら;
}
みたいな処理はStringBuilderの方がいいってことですかね

930 :デフォルトの名無しさん:2008/07/18(金) 02:12:06
MSDNに詳しく書いてじゃん。

931 :デフォルトの名無しさん:2008/07/18(金) 02:15:07
>>929
そのとおり

932 :デフォルトの名無しさん:2008/07/18(金) 03:39:50
ありがとうございます
一つ賢くなりました

933 :デフォルトの名無しさん:2008/07/18(金) 08:18:25
Builderって言うぐらいだしね。

934 :デフォルトの名無しさん:2008/07/18(金) 08:36:42
JavaにもStringBuilderあるよ


935 :デフォルトの名無しさん:2008/07/18(金) 10:46:46
すみません教えてください

Form1 に button1 と openFileDialog1
Form2 に pictureBox
で、button1をクリックした時、openFileDialogが開いて、
ファイル名を選択してOkしたら、Form2のpictureBoxに表示させたいのですが、
Form2のpictureBoxへ表示するところはどのようにすればいいでしょうか?

private void button1_Click(object sender, EventArgs e)
{
    if (openFileDialog1.ShowDialog() == DialogResult.OK)
    {
        Form2 form2 = new Form2();
          // form2.pitureBox1.imageLocation = openFileDialog1.FileName;
        form2.Show();        
    }
}

936 :デフォルトの名無しさん:2008/07/18(金) 10:57:42
Form2にImageLocationって感じのプロパティとかLoadImageって感じのメソッドを用意する

937 :デフォルトの名無しさん:2008/07/18(金) 10:58:50
form2.Image = new Bitmap(openFileDialog1.FileName);

//Form2.cs
public Image Image {
get { return this.pictureBox1.Image; }
set { this.PictureBox1.Image = value; }
}

938 :デフォルトの名無しさん:2008/07/18(金) 11:04:19
ttp://dobon.net/vb/dotnet/control/draganddrop.html
を参考にリストボックスでのドラッグアンドドロップを実装しましたが
自分から自分へのD&Dは禁止としたいです。
DragDropイベント時にでも判定出来ないものかと調べているのですが
分かりません。どうすればいいのでしょうか。

939 :デフォルトの名無しさん:2008/07/18(金) 11:08:37
渡すのをDataObjectにして、その中に自分自身も入れとく。

940 :デフォルトの名無しさん:2008/07/18(金) 11:08:58
>>929
そういうときはstring[]に入れてString.Concatが最速

941 :デフォルトの名無しさん:2008/07/18(金) 11:43:06
こうですか?わかりません ><
string t;
foreach(なんたら){ 
 t = String.Concat( new string[] { t, かんたら } );



942 :デフォルトの名無しさん:2008/07/18(金) 12:03:11
>>936 >>937 ありがとうございました。うまくできました。

//Form1.cs
    if (openFileDialog1.ShowDialog() == DialogResult.OK){
        Form2 form2 = new Form2();
        if (openFileDialog1.ShowDialog() == DialogResult.OK) {
            form2.Image = new Bitmap(openFileDialog1.FileName);                // ◎
             //form2.pitureBox1.imageLocation = openFileDialog1.FileName; //  X
            form2.Show();
        }
    }

//Form2.cs
    public Image Image{
        get {return this.pictureBox1.Image; }
        set {this.pictureBox1.Image = value;}
    }

943 :938:2008/07/18(金) 13:23:06
>>939が良く理解出来なかったので、汚いやり方ですが
ドラッグ中の前後にフラグを立てて

//ドラッグ&ドロップ処理を開始する
ownDrag = true;
DragDropEffects dde = lbx.DoDragDrop(itemText, DragDropEffects.Copy);
ownDrag = false;

DragEnterイベントで以下のようにすれば上手く行きました。

if (ownDrag == true)
{
    e.Effect = DragDropEffects.None;
}
else
{
    e.Effect = DragDropEffects.Copy;
}

944 :デフォルトの名無しさん:2008/07/18(金) 19:45:44
C#においてGraphicsとImageとBitmapの違いを教えてください

945 :デフォルトの名無しさん:2008/07/18(金) 19:50:52
Graphics 描画操作のためのクラス
Image ベクトル画像やラスタ画像など画像を抽象化して表すクラス
Bitmap ラスタ画像を表すクラス

946 :デフォルトの名無しさん:2008/07/18(金) 19:54:14
なるほど
ImageをGraphicsとして操作するっつーのはImageを直に編集しにくいからですね
ありがとうございました


947 :デフォルトの名無しさん:2008/07/18(金) 19:56:54
>>944
マジレスすると、そういうのは掲示板で人に聞くには不適切な質問だと思うぞ。

948 :デフォルトの名無しさん:2008/07/18(金) 19:57:21
そうでもない

949 :デフォルトの名無しさん:2008/07/18(金) 19:57:54
じゃなくて描画対象は画像に限らないから
プリンタに描画したりディスプレイに描画したりする

950 :デフォルトの名無しさん:2008/07/18(金) 22:31:55
ピクセルを操作する命令がBitmapにだけあるのが特徴的

951 :デフォルトの名無しさん:2008/07/18(金) 22:46:28
まあラスタ画像だから当然っちゃ当然
WPF ではなくなったけどな

952 :デフォルトの名無しさん:2008/07/19(土) 13:05:42
>>951
WPFってベクター画最強伝説って奴ですか?

953 :デフォルトの名無しさん:2008/07/19(土) 17:42:02
関連することで便乗質問しますが、
GraphicsとGraphicPathって何が違うんでしょうか?

954 :デフォルトの名無しさん:2008/07/19(土) 18:10:41
名前とか

955 :デフォルトの名無しさん:2008/07/19(土) 19:13:53
>>953
さすがにそれは解説読めば分かるだろ

956 :デフォルトの名無しさん:2008/07/20(日) 01:01:46
GraphicPathは書式付きかな?

957 :デフォルトの名無しさん:2008/07/20(日) 02:47:15
MSDNライブリ読まないでここで質問するのは、夏がそうさせるんだよな。

958 :デフォルトの名無しさん:2008/07/20(日) 02:52:07
ふらっとでそんな事いう奴の方が夏臭い気もするがなw

959 :デフォルトの名無しさん:2008/07/20(日) 02:56:06
さっそく厨が沸いてきたw

960 :デフォルトの名無しさん:2008/07/20(日) 02:56:43
夏だからな。

961 :デフォルトの名無しさん:2008/07/20(日) 02:58:35
最近のゆとりはreadmeやhelpも読まないで使いこなせなかったら、糞アプリとか言い出すからな。
新人教育なんてやってられんぜ。

962 :デフォルトの名無しさん:2008/07/20(日) 03:04:45
GraphicsとGraphicPathの違いは一言でいうとなんだろ

963 :デフォルトの名無しさん:2008/07/20(日) 04:51:41
名前だろ

964 :デフォルトの名無しさん:2008/07/20(日) 05:01:16
Pathのありなし。

965 :デフォルトの名無しさん:2008/07/20(日) 05:07:12
説明みればそのままだよな。
なんで説明読まないんでバカな質問繰り返してんだろうか。

966 :デフォルトの名無しさん:2008/07/20(日) 08:11:11
この前、同じ寮にいた奴がDVDプレーヤー買ったんだけど映らないので見てくれと言ってきた。
行ってみるとテレビとプレーヤーにコードが繋がれてないんだよね。
映るわけないだろ、取説に書いてあっただろと言うと、奴は、
読んでも意味ワカンネーから読んでねーと言い放った。 それと同じじゃね?

967 :デフォルトの名無しさん:2008/07/20(日) 09:14:36
うん

968 :デフォルトの名無しさん:2008/07/20(日) 09:32:46
Graphics クラス
GDI+ 描画サーフェイスをカプセル化します。このクラスは継承できません。

GraphicsPath クラス
接続された一連の直線と曲線を表します。このクラスは継承できません。

何が違うのかよくわかんねいぞ

969 :デフォルトの名無しさん:2008/07/20(日) 09:59:16
だろ? 読んでも意味ワカンネーから読まないんだよ。

970 :デフォルトの名無しさん:2008/07/20(日) 10:00:11
語彙が乏しいな


971 :デフォルトの名無しさん:2008/07/20(日) 10:09:04
質問です。

C#のFormから打った内容をWordに出力させる際
同じ段落の途中から書式を変更するやり方がわかりません。

つまりWord文章内で

ある段落:
 TextBox1.Text   TextBox2.Text
 (↑MS明朝)   (↑MSゴシック)

としたいのだが、
以下のコードだと両方MSゴシックで出力されてしまうわけでorz


Word.Paragraph oPara1;
oPara1.Range.Font.Name ="MS 明朝";
oPara1.Range.Text=TextBox1.Text;

oPara1.Range.Font.Name ="MS ゴシック";
oPara1.Range.InsertAfter(" " + TextBox2.Text);

誰か頼む・・



972 :デフォルトの名無しさん:2008/07/20(日) 10:20:25
ワードのオートメーションってやったことないのでテキトーなこと言うけど、
一度手動でやって記録されたマクロを見ればそこに答えがあるんじゃないの?

973 :デフォルトの名無しさん:2008/07/20(日) 10:23:23
そりゃあ同じRangeだからそうなるだろ
ちょっとメソッド名眺めた感じRange.SetRangeとか_Document.Rangeとか使えそう

974 :デフォルトの名無しさん:2008/07/20(日) 10:38:01
TextBoxで任意の文字列だけ色やフォントを変えるにはどうすればいいですか?

975 :デフォルトの名無しさん:2008/07/20(日) 10:49:06
できないので、RichTextBoxを使う。

976 :デフォルトの名無しさん:2008/07/20(日) 11:20:39
できないんですか(´・ω・`)
ありがとうございました(´・ω・`)

977 :デフォルトの名無しさん:2008/07/20(日) 11:31:03
>>972
>>973

ありがとうございます。
調べつつやってみます。

978 :デフォルトの名無しさん:2008/07/21(月) 19:48:18
C#でぬるぽは出来ますか?

979 :デフォルトの名無しさん:2008/07/21(月) 19:50:25
できます

980 :デフォルトの名無しさん:2008/07/21(月) 19:53:00
いいえ、ぬるりです

981 :デフォルトの名無しさん:2008/07/21(月) 20:53:43
コントロールの中にコントロールを入れられる
たとえばSplitContainerみたいなユーザーコントロールはどうやってつくればいいですか


そもそもスムーススクロールって自作しなくてもできた?

982 :デフォルトの名無しさん:2008/07/21(月) 22:33:51
>>981
どんなコントロールでも子コントロールを持てる。
だがあんたの口ぶりからすると、もっと細かい条件がありそうだから、それがわかるまで
細かい回答は控える。

983 :デフォルトの名無しさん:2008/07/22(火) 12:24:36
ControlのOnResizeなどに渡されてるEventArgsって何の役に立つんですか?
OnMouseDownのMouseEventArgsなどは座標なんかのプロパティがあるからわかるんですけど。


984 :デフォルトの名無しさん:2008/07/22(火) 12:28:43
>>983
>>545-

985 :デフォルトの名無しさん:2008/07/22(火) 12:33:54
なるほど

986 :デフォルトの名無しさん:2008/07/22(火) 19:40:41
ファイルにロックが(使用中か)かかってるか調べるにはどうしたらいいんでしょうか。

987 :デフォルトの名無しさん:2008/07/22(火) 19:45:26
実際に開いてみる

988 :デフォルトの名無しさん:2008/07/22(火) 20:07:03
>>982
説明が難しいのですが
デザイナ上でTabControlみたいに、中にほかのコントロールを入れれるユーザーコントロ−ルをつくりたいのです

989 :デフォルトの名無しさん:2008/07/22(火) 20:28:57
ファイルのロックがはずれるまで待機する方法はないでしょうか。

990 :デフォルトの名無しさん:2008/07/22(火) 20:29:36
開けるまで何度も再試行する

991 :デフォルトの名無しさん:2008/07/22(火) 21:24:35
つまんね

992 :デフォルトの名無しさん:2008/07/22(火) 22:03:14
詰まんないも何も正攻法だろ

993 :デフォルトの名無しさん:2008/07/22(火) 22:05:53
外れる保証がないじゃん
永久に待機し続けるのか?
1回失敗したら「失敗しました」でやめたらいいじゃん

994 :デフォルトの名無しさん:2008/07/22(火) 22:09:47
>>993
あきらめちゃだめよ!

995 :デフォルトの名無しさん:2008/07/22(火) 22:17:54
いや普通タイムアウトを用意するだろ

996 :デフォルトの名無しさん:2008/07/22(火) 22:31:41
俺はファイルのパスで取得したMutexを使っているけど、
関係ないプロセスが使ってきた場合は対処できないし、
いい方法があれば本気で知りたいわ

997 :デフォルトの名無しさん:2008/07/22(火) 22:35:23
ゆとり用の機能はOSで準備していない

998 :デフォルトの名無しさん:2008/07/22(火) 22:37:43
>>993
頭悪すぎワロタw

999 :デフォルトの名無しさん:2008/07/22(火) 22:45:16
>>998
代替案どうぞ

1000 :デフォルトの名無しさん:2008/07/22(火) 22:48:50
続きはWEBで

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

216 KB
★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)