ふらっとC#,C♯,C#(初心者用) Part63
「どんなにくだらないC#プログラミングに関する発言でも誰かが優しくレスをしてくれるスレッド」です ロクに回答もしない癖に態度だけデカイエセ回答者の出入り禁止 他人の人格を攻撃する荒らしの出入り禁止
(-_-メ)
(-_-メ)
(-_-メ)
DelegateCommandでググるとサイトごとに微妙に違うコードが書いてあってどれ使えばいいのやら
なにそれ
GPLとか無視すりゃいいじゃん なんか言ってきたら知るかバーカでおk
RoutedCommand:visualツリー上の別の要素に処理を委ねられる DelegateCommand:Viewの要素から、VMがもつModelに処理を委ねられる。MVVM用 こんな認識でええんかいな。解説してるサイト少なすぎて存在意義がわからんぞ
>>9 解釈次第ってことは自分はこれで大丈夫だと解釈しています、って主張すりゃいいんだもんな。
グレーはなんでもホワイトだ。
12 :
デフォルトの名無しさん :2010/09/21(火) 21:26:07
こんばんは フォームの検索ボタンを押すとAccessで作ったデータベースのから一番多いものをtextBoxに表示させるプログラムを作りたいですのがわからないので教えてください。 例 検索ボタンを押すと管理のテーブルの商品フィールドの中から一番多い商品名をtextBoxに表示させる(大根が一番多い場合textBoxに[大根]と表示させる) 質問等あればよろしくお願いします。
そういうSQL書いて投げればいい。
まず入門書一通り読んでから来い
> 質問等あればよろしくお願いします。 お前の質問がねぇよww
>>12 前半の形容詞節までは分かったが主格と目的格が無くてさっぱり質問が分からないですぅ
例の内容からすると、検索ボタンの押し方か、管理テーブルの商品フィールドの中から一番多い商品名を得る方法か、
textBoxに商品名を表示させる方法か、[大根]と表示させる方法のいずれかだとは思いますが、
とりあえずボタンがクリックされたときにSQLでgroupしてcountしてtextBox.Text=〜すればいいのではないでしょうか
DBMSとのお話の仕方
http://msdn.microsoft.com/ja-jp/library/ms228366 (VS.80).aspx
またおまえか
またおまえか
童貞臭いなと思ってたらまたおまえらかよ・・・
またおまえか
>>10 後者は正しくは ICommand 直接実装だな。
DelegateCommand は ICommand の実装の仕方の1パターン。
これはひどい
なんていうか…なんだろうな
ひどいな
26 :
デフォルトの名無しさん :2010/09/21(火) 22:22:54
とりあえず単芝はvipにいこか
それは私なので違います
>>21 RoutedCommandもICommand実装の1パターンでしょ。
何か特殊な実装になってるの?
ミクシィにC#のコミュがあってその中の質問スレにあった
mixiで投稿された質問をこっちにコピペするバカがいたってことか
>>29 システムが用意してる
ちなみに開発者が勝手に用意するICommandの独自実装にはRelayCommandってのも紹介されてる
教えてください。 System.Security.Cryptography.RSACryptoServiceProvider を使うと、 RSA の公開/秘密鍵による暗号/復号を行えます。 このとき、使用する鍵は ToXmlString( true / false ) で取得できますが、 どちらかの鍵を任意に指定することは出来ないでしょうか? つまり、公開鍵を人間に分かりやすいただの文字列、たとえば "abcdefg" などにして、 対応する秘密鍵を生成させる方法はないものかと。
それができるなら凄く危ない気がする
なんか公開鍵暗号ってものをわかってない気がする。
なんかキーストアとかねーの?
基本的に手入力しないでしょう 鍵何bitにするのか知らないけど
RSACryptoServiceProviderは最低でも384ビットだったはず base64で書かせると64文字か
公開鍵は公開する物なのに その公開する物から秘密鍵が作れちゃどうにもならんだろ 秘密鍵が全く秘密じゃなくなる
>>34 なんか腑に落ちないんだけどDelegateCommandとかわざわざ
ICommand実装しなくてもデリゲートを単独で使えばいいんじゃないのって思っちゃうけど、
CanExecuteを利用した要素の有効無効切り替えを使いたいのかな。
画像をドラッグアンドドロップして表示させるプログラムを作っているのですが、ドラッグアンドドロップできません。 普通ドラッグするとカーソルの横に+が表示されますが、作成したフォーム上ではそれが表示されないです。 どこが間違っているのでしょうか?フォームのプロパティでもAllowDropはtrueにしています。 環境はXPでVisual C# 2010です。 using System; 〜略〜 using System.Windows.Forms; namespace WindowsFormsApplication1{ public partial class Form1 : Form{ public Form1(){ InitializeComponent(); } private void Form1_Load(object sender,EventArgs e){ panel1.AllowDrop=true; } private void panel1_DragEnter(object sender,DragEventArgs e){ if(e.Data.GetDataPresent(DataFormats.FileDrop))e.Effect=DragDropEffects.Copy; else e.Effect=DragDropEffects.None; } private void panel1_DragDrop(object sender,DragEventArgs e){ string[] fileName=(string[])e.Data.GetData(DataFormats.FileDrop,false); pictureBox1.Image=Image.FromFile(fileName[0]); } } }
> else e.Effect=DragDropEffects.None;
超エスパーすると、 picturebox が panel の上に乗っかっていて drag のイベントが picturebox に奪われている。
>>44 すみません、自分にはそれが間違いなのかどうか判断できません。
どう書き直したら良いのでしょうか?
>>45 pictureboxとpanelは下のようになっていまして、重なってないです。
□□←panel
↑
picturebox
イベントハンドラに登録し忘れ?
むしろどっからドロップしてこようとしてるの?
>>43 パネルにドロップしたいの?フォームにドロップしたいの?
フォームのDragEnterイベント書かないとフォーム上ではカーソル変わんないよ
>>47 よくわからないのでネットで調べてみます。
>>48 デスクトップに置いてあるjpegファイルです。
>>49 パネルにです。
あるサイトのプログラム落として調べたところpanelのイベントのみでうまく動いていたのですが・・・、
フォームのDragEnter書いて試してみます。
Form1.Designer.cs の InitializeComponent に以下の記述があるか なってるか確認して。なければ動かない。 this.panel1.AllowDrop = true; this.panel1.DragEnter += new System.Windows.Forms.DragEventHandler(this.panel1_DragEnter); panel1_DragEnter は質問元の関数をコピペした。 すくなくともこれだけでカーソルが変わるのだけは確認。
>>51 this.panel1.DragEnter += new System.Windows.Forms.DragEventHandler(this.panel1_DragEnter);
こっちの方はありませんでした。
追加したところカーソルが変わることを確認いたしました。一応、画像の表示はなされませんでした。
this.panel1.DragDrop += new System.Windows.Forms.DragEventHandler(this.panel1_DragDrop); 理由はよくわかりませんが、上記も追加したら画像が表示されるようになりました。 多くの方々ありがとうです。
54 :
デフォルトの名無しさん :2010/09/22(水) 02:49:11
>>52 >>53 >理由はよくわかりませんが
覚えるチャンスだろうw
DragEnterとDragDropでイベントが違うし
>>43 のコードにイベントを処理するコードも書いてあるじゃん
そうやって覚えていかれると その、なんだ、困る
いわゆるポトペタの弊害
たぶん、もう見てないぜ。 宿題とかもなにも理解せずに コピペですませちゃうんだろうなぁ。
>>56 いや、これはポトペタすらしてないだろ
web からソースをコピペしただけ。
ポトペタしてたら、イベントハンドラが登録されてない
なんてことはあまりおきない。
59 :
デフォルトの名無しさん :2010/09/22(水) 03:14:31
>>58 いやいやw
イベントハンドラは抜け落ちるよ
デザイナーの挙動を考えると
60 :
53 :2010/09/22(水) 03:15:49
まだ見てますよー。 調べればすぐわかることだったら失礼になるかもと、とりあえずグーグル先生に尋ねてました。
まあ初心者だったら引っかかるかもな 普通はハンドラ関連付けるコードがわかりやすい場所にないし その分VB.NETは親切設計か
62 :
デフォルトの名無しさん :2010/09/22(水) 03:27:14
>>61 VB.netはやったことないのでわからんがVC#の場合
イベントハンドラの登録部分はデザイナー使うとProgram.csにかかれちゃうし
ネットに転がってるサンプルの大半はProgram.csを貼らないしね
デザイナがイベントハンドラ書くのは〜.designer.csな
とりあえず
>>43 のために訂正
VB.NETはイベントハンドラになるメソッドに Sub Button1_Click(...) Handles Button1.Click End Sub みたいに書くのが基本
今日仕事して休みとは言え そろそろ寝た方がいいぞ貴様ら
66 :
デフォルトの名無しさん :2010/09/22(水) 03:39:17
>>63 ああw
そうだったミスったw
Program.csはFormのインスタンス作ってるだけか
>>42 うん、そう。
CanExecute を使いたいってのが最大の動機だと思う。
68 :
デフォルトの名無しさん :2010/09/22(水) 09:40:24
C#の勉強を始めたばかりで右も左もわからない状態ですが疑問があります。 自分でクラスを作ってFormと処理クラスを分けているのですが、Formの継承 クラス以外でSystem.Windows.Formsのメソッドを使うのは一般的なのでしょ うか? 処理クラスの中でエラーが起きた場合に、MessageBox.Showを利用してエラー 表示を行っております。 また、開発中にデバッグ情報を出力したいと思うのですが、MessageBox.Show で出力していると、OKを押すまで処理がとまるのですが、ほかにデバッグ情報 を出力するのに一般的な方法はありませんか?
一般的かどうかは知らないけど俺は
>>68 みたく別のForm継承外クラスにまとめて書いてるな
ログとか残す時に簡単だし
>>68 別にテストのことを考えないなら処理側で MessageBox.Show でもいいと思うけど、
テストのしやすさを考えると、その部分、インターフェイスか何かにしておいて外から挿せるようにした方がいい。
デバッグ情報は、Debug.Trace とかで Visual Studio のトレースウィンドウ辺りに情報出せたはず。
あるいは、一時的に値見たいだけなんだったら、ブレークポイント仕掛けて止めてみればいいし。
71 :
デフォルトの名無しさん :2010/09/22(水) 10:27:07
72 :
デフォルトの名無しさん :2010/09/22(水) 10:31:44
いうほど難しいことしてないような。
ASP.netは
かなりの技術は要らないと思う
ニコ生でこれのプログラミング放送してたやん
見た目の話ならスタイルシート外せば結構しょぼいことが分かる
wpf すごいのな。 以前、挫折してたことが簡単に出来てびっくり。
お邪魔します。質問をさせて頂きます。 既に存在する『aaa.txt』を開いて その内容を一行ずつ読み込んで 『bbb』から始まる行を見つけて その行の内容が『bbb:ccc:ddd』(最後に\r\n)の時 『ccc』部分を『eee』に上書きしたいと思っています。 この時、『ccc』の直前にファイルポインタを移動すれば 書き換えられると考えているのですが、 『bbb:ccc:ddd』の行を読み込み終えた時の ファイルポインタの位置を調べる方法を教えて下さい。 また、この方法で位置を調べた時に返って来るのは『ddd』の 直後の位置だと考えているのですが それが間違っていたら訂正をお願い致します。
long pos = stream.Position;
>>79 string[] array = System.IO.File.ReadAllLines(aaa.txt);
foreach(string s in array){
if (s.StartWith("bbb"){
if(s == "bbb:ccc:ddd"){
s.Replace("ccc", "eee");
}
}
}
てかStartWith要らないような
>>71 これで金儲けを狙ってて営業するみたいな事を言ってたけど成功するのかな
>>82 そういう技術と関係ない政治的なことはこのスレではどうでもよいから。
>>82 なら銀光でこれより使い勝手も見栄えも上の作るわ
2.0で作ったプログラムをVS2010で開くときにダイアログに従って変換したんです。 で、VS2010で修正して、Windows7で実行したらコントロールの位置がずれるんです。 表示されたフォームのサイズもコントロールのロケーションもコードと違っています。 ためしに同じようなレイアウトをVS2010で作ったら、こっちは普通に表示します。(当たり前か) 何か原因に思い当たる事って有ります?
あいまいな質問来たああああああああ
89 :
デフォルトの名無しさん :2010/09/22(水) 17:24:23
うーん
>>63 の書いてるところにイベントハンドラとかコントロールのデフォルト値じゃない
項目についてかかれてたりするのでそれを見比べてみれば?
>変換したんです これせずに実行したら普通に動くんだとしたら・・・
あいなまに質問 にみえた
92 :
68 :2010/09/22(水) 18:13:48
あまり一般的な方法というのはなさそうですね。
>>69 , 70
ありがとうございます。
皆さん各々でいろいろ工夫されてるんですね。
Debug.traceはじめて知りました。
使ってみます。
>>87 です。
Windows7のPCにVS2010入れてデバッグしてみました。
結果、何故かForm1.Designer.csのFormにコントロールの追加をし終わった後の
this.ResumeLayout(false);
ここでいきなりLocationが変更されてました。
その行をコメントアウトすればLocationは変更されず、デザイナで配置した通りのレイアウトで起動する。
何故?
94 :
79 :2010/09/22(水) 18:45:59
お教え下さりありがとうございます。解決しました。
>>80 Positionをキーワードに調べて何とか形にしました。助かりました。
>>81 Replace部は別の方法を取らせて頂きましたが、
『ccc』部分がcatだったりeggだったりと
文字数以外は決まっていないファイルを扱う予定だったので
StartsWithを使わせて頂きました。
尋ねる際に説明が不足していたのかもしれません、失礼致しました。
this.SuspendLayout(); こっちをコメントアウトしてもレイアウトが崩れなかった 何故?
96 :
デフォルトの名無しさん :2010/09/22(水) 19:49:23
Real PlayerまたはReal AlternativeががインストールされたPCでC#からReal Mediaの動画を流したいのですが無理ですか?
ActiveXコントロール使えばできるだろ 今時Real Mediaなんて時代遅れなものを使う必要があるのかは疑問だけど
C#はWMVしか再生出来ないから無理 CかC++で作るしかない
>>98 WMV再生する場合でもActiveXをホストすることになる
WPFなら一応MediaElementがあるけど実体はAXのWMP
Real Playerでも同じこと
rmって主流じゃないの!? えろ動画はrmだよ!?
int n=1;
質問です。 Datetime dt;と宣言した変数に データベースから2010-09-22 0:00:00を取得して代入したとします。 このdtはプログラムを実行しているPCの日付設定のタイムゾーンの影響を受けますか?
好きなようにしたらいい
いつタイムゾーンが関わる余地があったのか本気で分からない
分からないのならスルーしたらいいよ
109 :
105 :2010/09/22(水) 21:58:16
C/SアプリでS側でDBでSELECTしてC側でhttpで取得して C側でDateTime dtに入れてる。 CはS側のタイムゾーンと一致してるとは限らない。 けどC側でdt.ToString()したときにS側のタイムゾーンで表示したい。 C側のタイムゾーンの影響を受けるならなにかしらしないといけない。 受けないなら無問題。
受けるわけねえじゃん 頭悪いんじゃないの?
※注意※ ここは初心者用スレです ※注意※
仮想環境用意して自分でやってみるのが一番納得出来ると思うよ
HTTPで取って来てるってことは自分でParseか何か使って変換してるんだろうか。
asia/tokyoがタイムゾーンから消えて中国かどっかになるみたいな事をどこかで聞いたんですけどまじですか?
Visual Studio 2008のC#Webアプリです。 処理に時間がかかるので、マウスカーソルを砂時計に しようと思い調べました。 System.Windows.Forms.Cursor.Current = Cursors.WaitCursor; とやってもマウスカーソルは変わらず、 System.Windows.Forms.Application.UseWaitCursor = true; としてもダメでした。 デバッグでブレークポイントを入れてみましたが、 カーソルが変わる気配すらありませんでした。 なにか方法があれば教えてください。
America/Tokyoかもしれんよ
WebアプリでForms…
>>115 this.Cursor = System.Windows.Forms.Cursors.WaitCursor;
>>115 どうやってそれがうまくいくと思えるのか理屈が知りたい。
理屈じゃねえんだ
念力デバッグというのもありますので。
124 :
105 :2010/09/22(水) 23:34:40
取得したXMLの日付がタイムゾーン持っててもろに影響受けてました。
>>110 が頭悪いのは分かった。
で?
腹減ったにゃ
俺も
カップラーメン用3分タイマー作ろうぜ
そのためにPCに火いれるよりも 180数えたほうが楽。
物騒ですね
物理層ですね
>>102 今はwmv/flv/mp4が3強じゃないか
お湯を入れる直前から2分がちょうど食べごろ
134 :
68 :2010/09/23(木) 06:55:08
>>70 すみません。
Sys.Debug.Traceは.NET4からの機能なのですね。
.NET 3.5を利用しているのですが、にたようなことはできないでしょうか?
135 :
デフォルトの名無しさん :2010/09/23(木) 07:04:36
パネルを2枚用意していて、そのパネルの上にボタンを配置しているのですが パネルをVisible=Trueにしても、ボタンをVisible=Trueにしてもボタンが表示されません どのような原因が考えられますか?
136 :
135 :2010/09/23(木) 07:13:25
すみません。パネルについて勘違いをしていたようです。 パネルが2枚重なっていると、上のパネルは下のパネル状に配置されたコントロールになるのですね・・。 すみません。 パネルを2枚独立させることってできますか? やりたいことは、2枚のパネルを用意しておき条件によってその2枚のパネルのどちらを表示させるかを 決めたいです.
137 :
デフォルトの名無しさん :2010/09/23(木) 07:18:58
>>136 もっとうまいやり方があるかもしれないが俺の知ってる範囲では
1)動的にコントロールを追加する方法
2)いじらない方のパネルの横と縦を一時的に小さくする
(もしくは表示開始位置を極端な座標を与えて一時的にエリア外に出す)
たぶん親コントロールのクライアントエリア内でパネルをFillで表示して
切り替えしてる感じなんだろうけど・・・
>>136 ドキュメントアウトラインから親子関係を修正
>>134 出力ウインドウに吐き出すときはSystem.Diagnostics.Debug.Print 使ってる
System.Diagnostics.Traceはまだ使ったことないから違いがわからん
Debug.Traceは多分勘違い
140 :
デフォルトの名無しさん :2010/09/23(木) 10:05:08
C#でトランスレータみたいなものを作りたいのですが、 簡単なサンプルみたいなものはありませんか?
トランスレータって何?
翻訳ソフトか一昔前のC++からCのソースに変換するような奴か
つまりこうか public string translator(string raw) { if (raw == "こんにちは世界!") return "Hello world!"; else return null; }
144 :
デフォルトの名無しさん :2010/09/23(木) 10:37:36
C#のソースコードを訳すよりCLRを解釈して訳す方が簡単かもねw
C# をプリプロセスなりなんなりで拡張するのは .NET 5 待った方がいいかも。
自分で考えて作るのは最強に難しい部類だな 方法が確立されてて専門書がいくらでもあるからそういうの読むのが苦でなければ簡単なんだが 専門書読もうと思ったらアカデミックな基礎知識が少しは必要なので コンパイラ作成の本とか眺めてみて無理だと思ったら諦めた方がいいよ
コンパイラ作成の知識あっても、C# の文法全部対応するの結構しんどいけどね。 「亜種をあんまり作られたくない」って理由で、C# は文法定義とかをあんまり積極的に公開してなかった気が。 まあ、仕様書読めばある程度書かれてるけども。
148 :
デフォルトの名無しさん :2010/09/23(木) 10:59:33
>>147 中間コードを解析するのが一番だけど中間コードの仕様って公開されてるのかな?
また質問者を置き去りにして雑談大会か・・・。
>>147 MSのC#の仕様書はかなり細かいところまで規定されているだろ。
151 :
デフォルトの名無しさん :2010/09/23(木) 11:06:57
>>149 いやある程度は・・・
つまり見たこと無いけどxxを解析すればなんとかなんじゃね?
の延長でしょw
トランスレータの定義も明確じゃないのに?
153 :
デフォルトの名無しさん :2010/09/23(木) 11:08:50
>>152 話の中身と想定してるものが違えば割り込んで
追加説明すればいいんじゃないの?
物すごい勢いで伸びてると思ったら 単芝だった
156 :
140 :2010/09/23(木) 11:12:04
すみません。トランスレータと言ったのがよくなかったみたいですね。 私が作りたいのはもっと単純で、stringオブジェクトの中より記号を拾い その記号から文字列を生成するだけのものです。
157 :
デフォルトの名無しさん :2010/09/23(木) 11:13:50
記号から文字列ってのがよくわからん。 たとえば、元の文字列がどんなので、結果としてどんな文字列を生成するつもりなん?
160 :
デフォルトの名無しさん :2010/09/23(木) 11:25:51
>>159 ゲームのメッセージの中でたまにバグって[名前]とか残ってるああいうのかな?
>>156 プログラミング初心者なのはいいけど、説明能力初心者なのは反省して欲しいもんだな。
なんでちゃんと推敲しないの?
俺なんか質問する場合は自分の意図がちゃんと他人に伝わるか、何度も読み直してチェックするが
普通そういうものじゃないのか?
>>161 あなたが何を言いたいのかわかりません。
ちゃんと読みなおしましたか?
きっと140さんは158を一瞬開いて、プログラムが書かれてないから一瞬で閉じてしまったに違いないんやな
165 :
デフォルトの名無しさん :2010/09/23(木) 11:40:38
>>165 死ねってことだよ
言わせんなはずかしい
あの…初心者用スレなんで…
>>162 ちょっとなにいってるのかわかんないです
170 :
デフォルトの名無しさん :2010/09/23(木) 11:46:11
RichTextBoxを使った画面をデバッグしていると、急激に重くなりました。 タスクマネージャを見ると、どうも conime.exe と言うプロセスが10個近く増えていたのですが、 原因は何でしょうか?(VS2008です)
分からないのならスルーして下さい
>>167 しねっていうのが読み取れませんでした
すみません
あなたの文章わかりづらいですね
conimeでシリアライザが固まるとかフォルダ削除できなくなるとかいろいろあるよね
176 :
170 :2010/09/23(木) 12:08:04
>>174 コンソールは使わないので無効化して、起動しなくなりました。
ありがとうございます!
177 :
96 :2010/09/23(木) 12:24:49
ご教示いただきましたActiveXコントロールでReal Mediaの動画を流したいのですがどのように流すのでしょうか? サンプルコードがあればと思い「c# activex real media」で検索してみたのですが見つからず・・・
カスタムコントロールをデザイナで配置しようとすると コンポーネント"xxx"を生成できませんでした。エラーメッセージ; "System.IO.Path.TooLongException: 指定されたパス、ファイル名、またはその両方が長すぎます。 完全限定型名は 260 文字未満で指定し、ディレクトリ名は 248 未満で指定してください。 というようなエラーが出てきてしまいます。 このプロジェクトが置いてあるフォルダの階層はかなり浅く、 なぜこのエラーが出るのか分かりません。 何か他に原因があるのでしょうか? どなたか教えて下さい。
>>178 突っかかるような言い方で悪いけど、それってカスタムコントロールをデバッグしろ、
でもソースコードも何をやっているかも秘密です、って言ってるのと同じじゃないのか?
つかカスタムコントロールのコンストラクタでパス開くような真似するなよ
WPFだったりして。
182 :
デフォルトの名無しさん :2010/09/23(木) 12:51:49
今はC#4.0でコンパイルしてプログラムを配布するのはやめたほうがいいいですか? C#2.0の環境で動くものが多いのですが、やっぱりC#4.0環境が少ないって事だからでしょうか?
C#のバージョンとターゲットフレームワークは分けて考えなさい
Win7って3.5SP1がデフォで入ってるんだっけ?
4.0がデフォで入ってる
189 :
デフォルトの名無しさん :2010/09/23(木) 15:13:05
フォームのプロパティを変更するときにForm1.csで「this.プロパティ = "";」と書いて変更しているのですが 他のクラスファイル(abc.cs)からプロパティを変更するのはできないのですか? 「Form1 obj = new Form1();obj.プロパティ ="";」変更しようとしてもエラーになってしまい出来ません。
アクセス修飾子
何てエラーになるの?
new だと新しくインスタンス作っちゃうけど、それはいいの?
193 :
189 :2010/09/23(木) 15:42:31
エラーは「'ClassStadySample1.Form1.textBox1' はアクセスできない保護レベルになっています。」と出ました。 Form1.csに書かれているクラスForm1は「public partial class Form1 : Form」となっています new新しく使わないほうがいいですか?
Form1.cs を開いて、textBox1 のプロパティを表示する。 Modifiers を public にする、と一応望みはかなう。
textBox1がprivateだから。
いや新しいインスタンス作ってるからダメでしょ 前スレに出てた何重ものキャストが必要なんじゃない?
まあ、一番の解決方法は文法を勉強することだろう。
またリファレンス嫁すか
今度こそポトペタの弊害ナリ(どや顔)
201 :
デフォルトの名無しさん :2010/09/23(木) 19:43:22
クラスに複数のメソッドを作っているのですが、 コンストラクタからすべてのメソッドを実行させることはできませんか?
どこまでできたら初心者脱出できるのかわかんないや WPFでメモ帳作ろう。
実行すればいいじゃないとしか言えない。
最低でも書いてみてから質問してるんだろうか…?
205 :
201 :2010/09/23(木) 19:58:13
手作業で全部書いていけばできるのは分かっているのですが、 一括で呼び出す方法はありませんか?
あるわけねえだろ
207 :
201 :2010/09/23(木) 20:00:37
やっぱいいです。
なんでそんなことをしたいのかわからんが リフレンションでググれ コンストラクタ内で呼べるかどうかは知らない
209 :
201 :2010/09/23(木) 20:02:47
>>206 すみません。
ないのはわかったのですが、なぜあるわけないのでしょうか?
呼び出せない理由はないと思うのですが。
>>207 は私ではありません。
×リフレンション ○リフレクション
ニッチ需要過ぎて無いだろう。 作れないことはないが、作られていないものなんてこの世には沢山あると思うんだ。
普通、そんな必要性ないし。
自分の求めてる機能はあるはずと思い込める頭の構造が気になる
それがゆとり脳
初・心・者・ス・レ ですよ
だから何?
218 :
201 :2010/09/23(木) 20:17:38
>>208 調べてみます。ありがとうございます。
>>211 ,213
ないことはわかりましたって・・。
ですが、
>>206 が
> あるわけねえだろ
といっているので、技術的な問題があるのかと思っただけです。
とくに問題があるわけがあるわけでもなく、単にないだけなんですよね?
なら、そう言っていただければよかったのですが。
技術的な問題がない、わけではない。
どう考えたってクラス設計間違えてるとしか。。。
意味と理由を求めるのが悪い癖だよなあ インターフェイスの存在意義ってなんですか?abstract classで十分じゃないですかとか あるものはあるし、ないものはないんだよ とりあえず従っておけ
222 :
201 :2010/09/23(木) 20:34:08
>>219 まだ勉強を始めたばかりで言語仕様について理解できていない点が多いですが、
勉強のためにどういう問題があるか教えていただけませんか?
>>221 自分の知識のためにも、理由があるのであれば知っておきたいです。
たとえば、なぜC言語があるのにC++ができたか、VC++があるのにC#ができたのかと
いう意味を知っておいたほうが、私は乗り出しはスムーズになります。
>>221 なんか日本人的な発想だな。
流石にそれは賛成できない。
むしろ意味や理由を考えない人の方がプログラマ向いてないだろう
いや、最後の行の「とりあえず従っておけ」が趣旨なら、そこについては同意。
意味なんか考えた所で開発者の胸中の推測にしかならんだろ 「本当ですか?」って聞き返されて「本当だよ」と答えられるの? 大事なのは仕様の理解であって存在する意味でも理由でもねえ
何で怒ってるんだか。
いつもの奴だからスルーするんだ
228 :
201 :2010/09/23(木) 20:41:36
すみません。 私の日本語の記述が悪いのか、あなた方の日本語の理解能力が悪いのかはわかりませんが、 「ない」ではなく「あるわけがない」というからには、なんらかの理由やら技術的な問題が あるかと思ったのですが、そういうことではなく単に「ない」だけなのでしょうか?
多重継承はいろいろ問題があるから、最近設計された言語では避けられている。
便利かどうか、需要があるかどうか、 この2つしか理由なんてないと思うけどね。
君の日本語能力に難があるだけ。
便利かどうかって軸は、 実際には便利ってのと、副作用として他に悪影響ださないかのトレードオフだけどね。
>>228 普通の人はコンストラクタでクラスのメソッドを全部呼ぶなんてことはしない。
だから言語設計者がそんなものを作るはずがない。だから「あるわけがない」というわけだ。
234 :
201 :2010/09/23(木) 20:57:23
>>231 すみません。では、もう一度書きなおしますね。
ご迷惑かとは思いますが、わかりづらい点があれば何度でもご指摘いただければと思います。
私が質問した、「コンストラクタよりクラス内の全てのメソッドを呼び出す方法はないか」という質問に対してですが、
解答として「ない。できない。」ということはわかりました。
ですが
>>206 さんにいただいた「あるわけねえだろ」という回答について、「ない」という回答ではなく、「あるわけが
ない」というご回答をいただいたので、私はそれに「なぜ、あるわけがないのか」という疑問がわきました。
「ない」というのであれば「機能が用意されていない」というように認識はできるのですが、「あるわけがない」とい
うのは、「○○の問題があるのだから、あるわけがない。」や「そんなことが言語的にできるわけがない」というように
感じ取れたため、その理由についてお教えいただけないかとご質問させていただいております。
どうか、よろしくお願いいたします。
RSS1.0, 2.0 Atom1.0 の3つを同じ様に処理する方法を教えてください
236 :
201 :2010/09/23(木) 21:02:44
>>233 そういう意味ですね。わかりました。
ありがとうございました。
>>235 クラスでラップしとけばいいだけじゃね?
238 :
デフォルトの名無しさん :2010/09/23(木) 21:22:15
Regex.Replaceについてですが、<は< >は> &は&に一括で置き換えることはできないですかね?
239 :
デフォルトの名無しさん :2010/09/23(木) 21:23:28
エスケープされずにそのまま出るんですね・・。 <は< >は> &は&です
エスパーレスだが、HtmlEncode/Decode 使えばいいんじゃね?
241 :
デフォルトの名無しさん :2010/09/23(木) 21:30:23
Regexを使ってすることはできませんか?
242 :
デフォルトの名無しさん :2010/09/23(木) 21:33:07
>>241 C#(というか.net?)の正規表現はperl5互換らしいので
勉強してくればいいよ
その辺はC#とは別の話だし
MatchEvaluatorとか使えばいいんじゃね?
<と>と&だけなら 普通に頭から1文字づつチェックしていけばいいような気がする…
245 :
デフォルトの名無しさん :2010/09/24(金) 00:04:53
md5ハッシュ計算プログラムです 半角英数字なら問題ないのですが、日本語で「あ」が「8f03c3a6dbec1d0f1a5af60947b7b052」と本来なるはずなんですが、まったく違うものが出てきます 日本語でも正しく処理して「あ」の場合は「8f03c3a6dbec1d0f1a5af60947b7b052」となるようにするためにどなたかご教示お願い致します using System; namespace crypt { class Program { static void Main(string[] args) { string s = "あ"; byte[] data = System.Text.Encoding.ASCII.GetBytes(s); System.Security.Cryptography.MD5CryptoServiceProvider md5 = new System.Security.Cryptography.MD5CryptoServiceProvider(); byte[] bs = md5.ComputeHash(data); System.Text.StringBuilder result = new System.Text.StringBuilder(); foreach (byte b in bs) { result.Append(b.ToString("x2")); } Console.WriteLine(result); Console.ReadKey(); } } }
ASCIIにしちゃだめだろ。
>>247 ideoneが非対応なんだろうけど、たぶん正しくエンコードされてない
Unicode (UTF-8): 8c0c3027e3cfc3d644caab3847a505b0
日本語 (シフト JIS): 8f03c3a6dbec1d0f1a5af60947b7b052
日本語 (EUC): 5e92a0d76f4fe012cbc02e351a78e519
参照のコンポーネント群の概略説明の一覧ってないですか? いっぱいありすぎて現状把握すら出来ません
250 :
デフォルトの名無しさん :2010/09/24(金) 12:03:45
.NET Framework2.0の環境でも動くプログラムを作る場合に vc#で「プロジェクト」->○○のプロパティのアプリケーションの対象のフレームワークってところを2.0のものに設定しないとダメですか? 初期の設定ではここが.NET Framework 4.0になってました
設定しないとダメ
そりゃそうだ
253 :
デフォルトの名無しさん :2010/09/24(金) 12:27:43
.netのバージョン別普及率を調べる方法ってありませんか?
調べる方法ならアンケートしかないだろうが とりあえずOS毎に基本インストールされてるのってどこだっけかな
windowsの次期バージョンで2.0も切り落とされそうだな
257 :
デフォルトの名無しさん :2010/09/24(金) 13:57:05
コンソールプログラムを任意の場所で終了させるときにEnvironment.Exit(0);を使うのとApplication.Exit()を使うのではどちらがいいでしょうか?
Applicationはコンソールアプリには無関係だな
>>256 2.0を切り落とすってことは3.0/3.5を切り落とすということ。
そんな事はあり得ないけど、仮にそうなっても4.0で動くから問題は無い。
>>257 プロセスを終了させるならEnvironment.Exit
Application.ExitはWindows アプリケーション用で、
Program.cs内のRunで開始されたメッセージループから抜け出してRunに制御を返すだけ。
次の行で新しいウィンドウを開いたりもできる。(普通やんないけど)
Windowsアプリケーションでは、this.Close()とApplication.Exit()のどっちを使った方がいいの?
どういう目的かしらんが どういう目的にしても その二つは比べられるような動きにはならんぞ
263 :
250 :2010/09/24(金) 14:39:34
助言を元に2.0に設定しました コンパイルしてリリースしたら出来上がったプログラムと同じフォルダに「プログラム名.config」ってconfigファイルが出来たのですが このconfigファイルもプログラムと一緒に配布しないとダメなんでしょうか?
264 :
デフォルトの名無しさん :2010/09/24(金) 14:43:30
心配せんでもお前が作ったソフトは誰も使わん
そんな、ひどい… *使いますか? ィァ はい いいえ
>>261 Form.Close()は呼び出したウィンドウだけが閉じる。
Application.Exit()は開いてる全部のウィンドウを閉じようとする。
Form.Closeを呼んでも終了するとは限らないような それはWPFの話だったか?
FormClosingのCloseReasonとかにも影響するな
270 :
267 :2010/09/24(金) 15:03:08
スマン。完全に誤解させる書き方だった。 Form.Close()は呼び出したウィンドウだけを閉じようとする。 Application.Exit()は開いてる全部のウィンドウを閉じようとする。 どっちもFormClosingイベントが呼ばれて、実際に閉じるかどうかはFormClosingの結果次第。
271 :
デフォルトの名無しさん :2010/09/24(金) 15:16:48
VC#でコンパイラのバージョンを選択したいのですがどこで設定できますか?
VSを古い奴に入れ替えればよい
バージョンが選択できたところで何の意味もねえような
古いVSでもコンパイルできるようにC#3.0/3.5/4.0の新機能を使わないように制限したいんじゃないか? コンパイラは無料で入手できるんで新しいのを入れてもらうのが一番簡単。それでダメならアセンブリを同梱しとけばいいんじゃないか。
開発してるPCのコンパイラがC#4.0なんですが、C#2.0の環境でも動かせるの用に作りたいです
> C#2.0の環境 直接csc.exe使うんでもない限り関係ないだろう 単に実行するだけならターゲットを.NET 2.0にすればいいぞ? あっちとこっちで並行開発したいのならVSのバージョン合わすしかないな
コンパイル自体をユーザーにさせるのでなければC#のバージョンなんて関係ないよね。 オープンソースにすんの?
278 :
デフォルトの名無しさん :2010/09/24(金) 17:11:12
CSSで使う16進数カラーコードで選択した色をcd.Color.ToString()で表示すると Color [Red]と表示されたり、Color [A=255, R=95, G=226, B=115]と表示されます 赤ならFF0000と表示したいので Convert.ToString(cd.Color.R, 16) + Convert.ToString(cd.Color.G, 16) + Convert.ToString(cd.Color.B, 16) と書いたのですが、そうするとFF00となってしまいます どなたか良い解決方法をご教示お願いします
ToArgb() ただしアルファが頭に付くので取り除くなら0xFFFFFFとの論理積 あとはToStringの書式指定で16進に変換
280 :
278 :2010/09/24(金) 17:21:54
すいません解決できました 桁をそろえる処理を入れて解決しました
(cb.Color.ToArgb() & 0xFFFFFF).ToString("X")
283 :
278 :2010/09/24(金) 17:40:18
このように書きました
cd.Color.R.ToString("X2") + cd.Color.G.ToString("X2") + cd.Color.B.ToString("X2");
X2の部分をXと書くと桁が削れました
>>279 さんと
>>281 さんの方法で
(cb.Color.ToArgb() & 0xFFFFFF).ToString("X")
と書いたらうまくいきましたが、Xの部分はX2と書かなくてもちゃんと表示できるのは何故なのでしょうか?
>>282 さんのご紹介くださったコードも素晴らしいですね
ToArgb使うとアルファ値も含まれるからおかしくならねえの?
"X"じゃなくて"X6"だった死にたい
286 :
デフォルトの名無しさん :2010/09/24(金) 18:02:58
デフォルトでTextBoxに文字列が挿入されていて、 そこにカーソルをいれるとデフォルトの文字列が消えるものがよくありますが、 あれはどうやって作っているのでしょうか?
SendMessageでEM_SETCUEBANNERを送る
>>286 自分で試してみたところまで書くとかして、
>>278 みたいな質問文の構成にすると解答が得られやすい
ふぅ
>>248 エンコードの違いで変わったのですね
勉強になりました
ASCIIとUnicodeとかの区別がつかないのはまずいと思う
GetEncoding(932)staticプロパティにしてくれよ
GetEncoding(932)staticプロパティにしてくれよってば!
294 :
293 :2010/09/24(金) 22:23:42
同じ事じゃん
何者だ
GetEncoding(293)staticプロパティにしてくれよ
それぐらい自分で定義して使えよな
面倒臭いス もうshift_jisなんてWebから消え去ればいいス
えーマジShiftJIS?キモーイ ShiftJISが許されるのはWin98までだよね!キャハハハハハハハ
きもいっス
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<base href="
http://hibari.2ch.net/tech/ ">
<title>ふらっとC#,C♯,C#(初心者用) Part63</title>
>>300 2ch に喧嘩売ったな
新しい鬼道ッス
304 :
デフォルトの名無しさん :2010/09/24(金) 23:39:07
string型の変数の文字コードを変換する方法をどなたかご教示おねがいします 検索するとbyte配列に入れて文字コードを変換する方法が見当たるのですがこれしか無理でしょうか?
>>304 だから、ちったあ文章推敲しろって本当。
文字コードを変換って、そんな漠然とした質問があるかよ。
やっぱりコピペなんて馬鹿な奴の所業だよな。 何が言いたいのかさっぱりわからん。 コピペ君って馬鹿だな
>>304 C# は string に格納されてる間は UTF16 よ、必ず。
C# で文字コードが問題になるのは、ファイルとかの IO 関連と、バイト配列化するときくらい。
意味は分かるがちょっとなー string型は常にUTF-16で文字コードの情報は持っていない だから「string型の変数の文字コードを変換する」ということ自体成り立たない 持ってないんだから
9秒遅れたorz ファック
シット
これからはbyte[]型に直して文字コードを変換するようにします 308さん309さんありがとうございました
いえいえどういたしまして
いえいえどういたしまして
316 :
デフォルトの名無しさん :2010/09/25(土) 00:42:37
PHP・Java畑でC#デスマに突っ込まれたけど、腐った言語だねwww この業界で15年以上働いてるけど、ソース管理が出来ない仕様の言語ってのはわかった LINQ使ってるが、バージョン管理出来ない。7拠点でやってるけどコミットするたびに コンパイルが通らないwww SQLスクリプトも管理してるけど、ALTERやCREATEが混ざってたり、使用しないSQLが残ってたりで LINQとDBが一致しない。 おまけに画面にSQL式を書く仕様になってるからWebサービス使ってる意味がない。 1〜2年前に買った比較的新しいマシンだが、10年前のJava(Swing)並に重過ぎるww 本当にC#ってクソだね。話にならない。 未だにMVCすら実装できない糞仕様言語なんて、IT初心者コースのド素人向けだろ?
PHPはなぁ…言語仕様が糞だから逆に周辺が充実してるよねフレームワーク類とか
>>316 底辺最下層の不幸自慢かw
お前が無能だからそんな現場に一山幾らで放り込まれたんだろ。
ご愁傷様。でも、自業自得だね。
統合開発環境のツールボックスみたくタブと▽画鋲×の付いたメニューってどうやって作ってあるんだろう?
Magic DockingとかDockPanel Suiteとか みんなVS使ってる影響もあって、有料・無料・オープンソース、WinForms・WPFを選べるぐらい多い。
321 :
デフォルトの名無しさん :2010/09/25(土) 12:11:55
C#4.0で実装された機能を使わなければC#2.0ランタイムしか入ってないPCでも動きますか?
322 :
デフォルトの名無しさん :2010/09/25(土) 12:12:49
おまえ プログラミング言語を何だと思ってるんだ
なんも間違ってないわけだが。
.NET2.0 でも C#4.0 の機能の多くが利用できる。
>>325 C#2.0でビルドってなんだよ?
ターゲットフレームワークを.NET2.0にしてビルドする だろ?
普段は気にしないが、言語とランタイムのバージョンの話をしてる時にこの間違いは致命的。完全に間違ってる。
禅問答になってきたな。
言語バージョンと.NETバージョンを勘違いしてる人結構多いのは確かだな 記憶が曖昧だが、ターゲットバージョンを指定できるようになったのも 確かVS2008からだよな
C#のバージョンと.NETランタイムのバージョンは対応づけられるんだから、 どっちだっていいんだよ。
333 :
デフォルトの名無しさん :2010/09/25(土) 12:47:58
byte型の変数に格納されてる文字列を大文字にしたいのですがToUpper()使うとエラーがでます string型にしないとToUpperは使えないのでしょうか?
ターゲットバージョン指定は2008からだね。 2005は2.0専用、って感じで、それまでは特定バージョンのみだった。
>>329 そりゃVS2005の頃は.NET2.0しかなかったからだろ。後に.NET3.0を使えるようにする拡張が出た。
VS2008の方は.NET3.5と一緒にリリースされたので.NET2.0/3.0/3.5に対応してた。
byte型の変数に文字列は入らないだろよ・・・
未だに3.0、3.5が独立バージョンだと思ってるやつがいるくらいだしな。
ポインタで入れてんじゃねえの? そんな人は質問しないか・・・
Hello Worldのメッセージダイアログを出すだけのプログラムでも C#4.0でコンパイルしたらC#2.0で動かないとかカス言語だな
組み込み用途では使えないな。
>>340 > C#4.0でコンパイルしたらC#2.0で動かないとかカス言語だな
お前アホだな。
343 :
デフォルトの名無しさん :2010/09/25(土) 14:01:23
ほっとけよ
いやだ。
落ち着けよ
で、オチは?
347 :
デフォルトの名無しさん :2010/09/25(土) 14:52:39
メニューの子要素に項目をプログラムから追加するにはどうしたらいいですか? ファイル 一覧 子要素 子要素 子要素 みたいな感じに、一覧をクリックかマウスオーバーするとその時の状態によって 子要素を追加するようにしたいのですが。
想定後のを一旦デザイナで作ってみて、 .designer.csの#regionで隠されてるところを覗いてみると良いよ
349 :
デフォルトの名無しさん :2010/09/25(土) 15:04:18
>>340 動いたよ
逆にC#4.0でもC#2.0でコンパイルして動いた。
試しにC#1.0でLinq動かしたけど、普通に動いたよ
350 :
デフォルトの名無しさん :2010/09/25(土) 15:21:25
初心わすれれるるるべからず あれ? 初心わすれるべからず? 初心わするべからず? もういいや、 初心者座るべからず!
キヤノンの関連会社はイスがないことを自慢してましたね
すげー初歩的な質問で申し訳ないんだけど、分かる人いたら教えてくれ。 WindowsFormのイベントに関して、 FormにClickイベントを設定 FormにLabelを設置 LabelをクリックしてもFormに設定したイベントを発生させたい こういう場合どうすればいいんだっけ。 LabelにFormと同じClickイベント設定する方法は思いついたんだが これだとコントロール増えた時めんどうだし、 なんか別の方法があったような気がするんだよなぁ。
LabelのClickイベントからFormのClickイベントを呼べばいいじゃん
354 :
デフォルトの名無しさん :2010/09/25(土) 16:26:55
355 :
デフォルトの名無しさん :2010/09/25(土) 16:29:35
>>353 それをやるとオブジェクトが増えたときが大変だって話だろWindowForm自体にイベント持たせて
その都度、マウスポイントのX,Yを取得してその座標がどのオブジェクト上にカーソル乗ってるかで
判断するのが一般的なやり方
356 :
デフォルトの名無しさん :2010/09/25(土) 16:31:47
今はWindowFormで作るのとWPFで作るのはどちらがいいのでしょうか?
>>353 ,354
素早い回答ありがとう。その方法しかないのか。
幸い今のところはコントロールが3つしかないから
それぞれに同じイベントを設定しときます。
>>355 問題はLabelクリックするとWidnowsForm自体に設定してあるイベントが発生しないことなんだ
FormのControlAddedイベントで子コントロールにClickイベントを設定するするコードを書けばいい
360 :
デフォルトの名無しさん :2010/09/25(土) 16:40:56
>>357 そういう問題じゃなくてWindowsForrmsのイベントで渡されるEventの引数で
どのオブジェクトがselectednなってるか判断する方法じゃないと実装はできない。
なんでWinddowsFormsに定義するイベントインターフェースを見直す事が早道だ
361 :
デフォルトの名無しさん :2010/09/25(土) 16:43:03
>>358 それをやると、コントロール→コントロールのネストがあった場合は、バグが起きやすいよ。
あくまでオブジェクト思考で設計しないと解決しない問題
>>360 Clickイベントなんて使わずにWndProcをoverrideして新しいイベント作ったほうがいいってこと?
理解が及んでいなかったらすまん
363 :
デフォルトの名無しさん :2010/09/25(土) 16:54:57
>>362 そういう事でおk
できるだけMFCで実装してポリモーフィズム化して
WindowOSから発するMessageを拾って処理するのが定石。
.NETはそういう複雑な処理が出来ない(向かない)んで
出来るなら、whileで無限ループしてMessageを元にマウスの座標で
処理を分岐させるのが一般的なやり方
そこでRoutedEventのあるWPFが颯爽と登場するわけです 颯爽といいながら遅いんだけど
Clickイベントでおk
WPFを使うくらいならしこしこイベントハンドラを書いた方がいいんじゃないかと、 僕は思うわけです。
>>363 まさかC#初心者板でC++やれって言われるとは思いもしなかったよ
試しに.netだけで書いてみたけどやっぱりLabelの上だと反応しなかった
protected override void WndProc(ref Message m) {
switch (m.Msg) {
case 0x201:
// 処理
break;
}
base.WndProc(ref m);
}
>>364 はじめてWPFに魅力を感じた瞬間であった
子コントロールのメッセージはnotifyでくるんじゃなかったっけ
WPFはツリーのイベントが糞
372 :
デフォルトの名無しさん :2010/09/25(土) 17:25:46
WindowsフォームよりWPFの方が簡単ですか?
Enabled=falseで親コントロールにメッセージが渡った気が
慣れるとバインディングが楽なんだが 大体の人はWinFormの方が簡単だと感じるだろう
>>371 ありがとう
なんかいまさら
>>360 の言いたかったことが分かってきた気がした
MFC勉強して出直してきます。
>>372 簡単さで行ったらWindowsフォームじゃない?
376 :
デフォルトの名無しさん :2010/09/25(土) 17:34:46
>>375 結局はイベントなぞに頼らずにOSから発するMessageを拾ってやれって事だ
>>373 灰色にならなければ完璧だった
>>374 初学者にとって慣れるまでがイバラの道すぎる気がする
まあ、俺の頭が悪いせいかもしれんが
>>374 バインディングとテンプレートの素晴らしさは体感して欲しいと思う。
>>375 WinFormsの範囲でやれるなら簡単だけど
今回みたいにちょっと踏み込むと…ね。
379 :
デフォルトの名無しさん :2010/09/25(土) 17:41:45
C#でアクションゲームが作りたいんですけど何のライブラリが一番簡単ですか?
XNA
381 :
デフォルトの名無しさん :2010/09/25(土) 17:44:36
382 :
デフォルトの名無しさん :2010/09/25(土) 17:46:55
TextBoxをマルチラインにしてテキスト入力領域にしているのですが、 C-aをしても全選択にならなかったり、メモ帳レベルの編集機能がありません。 何か別のコントロールがあるのでしょうか?
384 :
デフォルトの名無しさん :2010/09/25(土) 17:49:09
>>382 有償だけど、
オリエント文化社のInputMAN使えばおk
これで多くの.NET技術者が救われた。
ついでに同社のSpreadSheetもオススメ
385 :
382 :2010/09/25(土) 17:54:58
>>383 ありがとうございます。
目の前にあったのに気付けませんでした・・。
ですが、TextBoxをRichTextBoxに置き換えると今まで作っていた
コードが動かなくなりました。
単に.Textを取得してそれを加工して置き換えるというだけで、
改行コードなどで判別してるのですが、改行コードなどの扱いが
変わるのでしょうか?
>>385 試してみたけどTextBoxの改行文字は\r\n、RichTextBoxの改行文字は\nになってるね
なんかRichTextBoxの仕様で\r\nが\nに変換されるらしいよ
387 :
382 :2010/09/25(土) 18:13:31
>>386 ありがとうございます。
書き込んでから私も試していたのですが、改行コードが変わってますね。
TextBoxの仕様がおかしいんじゃないかと思っていたら、やはり変だったんですね。
TextBoxのために正規表現に小細工を一杯入れたので、取っ払わなければ・・。
>>384 昔の社名を教えるなよ
今はグレープシティな
>>387 string text = richTextBox1.Text.Replace("\n", "\r\n");
とりあえずこうすれば変更しなくていいんじゃね?
390 :
189 :2010/09/25(土) 19:37:14
Modifiersをpublicにして解決しました 初期設定でprivateという事ですが、ここをpublicにして利用するのはあまりよくない事でしょうか? form部品のプロパティの変更はForm1.csから行うべきですか?
あまりよくないというか、やってる人はいない 普通は変更したいプロパティだけを公開するか 設定を行うクラスを内部クラスにしてしまう
392 :
デフォルトの名無しさん :2010/09/25(土) 19:57:36
IEコンポーネントを使ってブラウザを作る場合、セキュリティ対策はコンポーネントにまかせる形でいいのでしょうか?
貴方がどの程度のセキュリティを求めてるのか知らないので答えようがないです
namespace、クラス、メソットって頭文字は大文字から始めるべきですか?
395 :
392 :2010/09/25(土) 20:09:03
インストールされているIEと同じセキュリティにしたいのですが、そうなってますかね?
プログラムを実行したらwebBrowser1.Navigate("
http://example.com ");を実行するだけのプログラムです
俺がルールだ
俺クラスのインスタンスなどそこら中におるわい
そうかい
俺がルールだを参考にして何をどうする気だよ
WPFのルーティングイベントってFormsには無いの? あれないと不便じゃない?WPFから入ったし想像できんわ。
フォーム3にコンボボックスを6つ貼り付けて form3.ShowDialog(); form3_loadのところにコンボボックス1つあたり50個ほどの項目を追加(Beginupdate使用)すると フォームが表示されるのが3秒ほどかかり遅いのですが コンボボックスはこんなに遅いんでしょうか?
不便だからできたんだろ。 でも、Click とかのバブル アップは Fomrs のイベントでもあったような。 トンネル ダウン(PreviewClick とか)はなかったんじゃないかと。 というか、WPF でもあんまり生のユーザー入力イベント拾うことないけどね。 たいてい、Command を通すし。
>>404 1個何か追加するたびに再描画かかるようなコード組んでせいじゃない?
WM_NOTIFY介してFormにも伝わるけど不便
C#を高速化する裏技ありませんか? PHPならprintは使うなechoを使え見たいなやつです
C# のって言われると、こまごまとあるにはあるけども、 それよりは、GUI フレームワークの再描画減らすとか、そういうのの方が効果高いしなぁ。 実測しながら色々試すのが一番いいよ。
>>408 Stringをあまり使わないで StringBuilder使えぐらい…
「foreachは遅いから使うな、forを使え!」とか先輩に言われたな。 1万回やったって体感できねーっての
ナノ秒の世界に生きてるのかも知れんじゃあないか その先輩は
string[] s = 100個の文字 for(100回ループ) { }
途中カキコごめん ループ内は comboBox1.Items.Add(s[i]);
居もしないボトルネックと戦ってるうちは初心者だってじいさまが言ってただ
PHPだとforeachのほうが効率よくて早い
配列のforeachは最速。
>Stringをあまり使わないで StringBuilder使えぐらい… 多分正しく活用されることはないアドバイス。
ソース中のprintやechoを全部どうのこうのするよりも 1回のSQL実行減らした方が効果があるよ
>>413 string[] s = 100個の文字
SuspendLayout();
for(100回ループ)
{
comboBox1.Items.Add(s[i]);
}
ResumeLayout();
こうすれば少しはよくなるんじゃね?
comboBox1.Items.AddRange(s); の方がいいかも
C#に速度を求めるなっていう Win32APIとかCとかアセンブリとかを勉強すると、内部の構造がより分かるようになって高速化の仕方がわかるようになるかも まあ、高速化のためだけにそんなことするやつはいないと思うけど
高速化の仕方ってプロファイラでループ減らしたりメモ化したり、 逆に省メモリにしたりっていうアルゴリズム的なものだよね 元々C#を選んだ時点で中間コードに落として運用楽にしようぜ!ってゆーのが前提だとおもうんじゃ そこでjavaですよ
たぶん体感できるぐらい遅いならC#が遅いんじゃなく他に原因があるんだろうけど 気づかないんだろうな
木を見て森を見ないから
>>421 だな
せっかく配列作ったのに繰り返したら意味が無い
Itemの内部的には新しいstring作ることに替わりがないだろうし
気にするほど早くなるとは思えないけど
コンボボックスがあると異様に遅いなあと思ってさ。 リストボックスとかリストビューとかは遅く感じないんだけど。
まあ、大抵の場合はアルゴリズム的に無駄があったり、とくに描画周りはシビアだから、ネットとかで勉強するべきだよね ところで、だれかプロファイラの使い方教えて
Stopwatchはためしてないけど startTime = Environment.TickCountとかで計ると Beginupdateしたitem.Addと item.Adddrangeでは前者の方が早かったもんで。
実際にComboBoxにItem100個とか持たせるアプリって無いだろうけど あったら使い方間違えてるとしか言えない
BeginUpdateなんてあったのか。 試してみたけど3倍くらい効率いいのな。
>>431 一概に否定はできないでしょ。
VSのエディタの上部についてる奴を見れば納得すると思うけど。
よくあるところで都道府県選択でも47項目だもんな それにしたって100個だと探すの大変そうだな
436 :
デフォルトの名無しさん :2010/09/26(日) 09:43:23
プログラミングC#というオライリーの本を読んでいるのですが、 インデクサ、リフレクション、デリゲートの意味がよくわかりません。 簡単な説明はないでしょうか? Wikipediaを読んでみたのですが、よくわかりませんでした。
>>410 それは明確に差が出るね。
というか、ループの奥であんまり new するな(string の + は新しいインスタンス作る)というのが基本。
>>411 そりゃそうよ、配列に対する foreach って最適化の結果、for と同じコードになるもの。
インデクサはわかるでしょ 自前のクラスで[ ]使って見た目が配列っぽい機能を提供する仕組み
>>437 ienumerableの実装がタコだったらforのほうが早いかなw
>>439 それはでも、foreach の代わりに for が使える時点で、大した列挙じゃないんでは。
IList 実装クラスみたいに a[i] でアクセスできるような。
>>441 next内部で大量にエラーチェックしてたり、新規オブジェクト作ってたり、同期待ちしたり…
本来はNGなんだけどw
>>420 それやっても変わらなくね?
Layoutは使ってないんだから
>>442 参考までに
簡単にforeachからforに書き換えられる、
かつIEnumerableの実装が腐ってる
っていう例を教えてもらえまいか
445 :
デフォルトの名無しさん :2010/09/26(日) 10:46:05
ToolStripMenuItemをループを使って増やしているのですが、そのメニューをクリックすると メニュー項目に応じたIDを特定のメソッドに渡したいのですが、そういうことはできませんか? 局面によってToolStripMenuItemが違うので、onclickイベントで取得したところで、どのアイテム がクリックされたのか判断することができません
Tagにでも突っ込んでおけ
447 :
デフォルトの名無しさん :2010/09/26(日) 10:54:01
あるプログラムの起動時間を計測したいんですけどどうやるのでしょうか?
起動時間ってなんだい?
>>445 匿名メソッド使えばいいんじゃね
for (int i = 0; i < 10; i++) {
ToolStripButton b = new ToolStripButton();
int id = i;
b.Click += (sender, e) => {
SomeMethod(id);
};
toolStrip1.Items.Add(b);
}
>>444 いえいえ実例はあげられないですけど
自作クラスなどでIEnumerableの実装が腐ってる場合は
for使えってのもあながちまちがっていないかなと思ったまででw
匿名メソッドじゃなくてラムダ式だった。 まあどっちもおんなじか
遅延…
>>448 12:30分にメモ帳を起動して、13:03分に終了したら33分起動してたということです
Process.StartTime(とExitTime) 「かつて実行されていた」のは無理だからな
遅延実行…
456 :
デフォルトの名無しさん :2010/09/26(日) 13:24:36
初心者向けにお題をください 夕方までに作ってcodepadに貼り付けるのでご指摘おねがいします
64*64マスの迷路を乱数で生成して表示しろ 通路と壁の幅をともに1とする 入り口と出口は対面の壁に作ること
458 :
デフォルトの名無しさん :2010/09/26(日) 14:29:16
C#で作ったDLLはC#でしか使えないって聞いたのですが ラッパーDLLみたいなのってありませんか?
何がしたいのか言語名を出して具体的に書いてください
460 :
デフォルトの名無しさん :2010/09/26(日) 14:30:27
>>458 >C#で作ったDLLはC#
C#で作ったDLLは.net関連の言語ならどれでもいけるはず・・・
COM公開すれば、VB6だとかExcelとかからも使えるよ。
>>457 乱数は生成できたのですがどうやって道を作るのかわかりません
道は自分で作るものだ
464 :
デフォルトの名無しさん :2010/09/26(日) 15:23:43
465 :
デフォルトの名無しさん :2010/09/26(日) 15:25:05
一応あれか アップを考える上ではドラクエタイプとウィズタイプがあるのか マスが壁や床など全部をかねるタイプと マスは基本床なタイプ
467 :
デフォルトの名無しさん :2010/09/26(日) 15:35:03
>>466 この辺のことから逃げるようなら向いてないよw
お題をくださいとか調子に乗るからだよ 入門書よんでなさい
もっと初心者向けお願いします
宿題スレでも行ったら?
>>461 COM化するのめんどくさいしなかなか上手くいかないんだよね
>>471 C++/CLIに間を取り持ってもらうとか
473 :
445 :2010/09/26(日) 16:57:50
>>449 ありがとうございます。そんな書き方ができるんですね。
まだうまく動いていないのですが、
(sender, e)
の個所で、
ローカルの変数 'sender' をこのスコープで宣言することはできません。これは、'親またはカレント' スコープで別の意味を持つ 'sender' の意味が変更されるのを避けるためです。
というエラーがeにも出てしまいます。
これは何の変数を表しているのでしょうか?
ラムダ式でしらべてみたのですが、この場合何を表しているのかがわかりませんでした。
OnClickの引数と名前が被ってるだけ
475 :
デフォルトの名無しさん :2010/09/26(日) 17:05:25
ClickされたボタンなりラベルのTextプロパティの内容を取りたいのですが、 どのようにすればよいのでしょうか?
>>473 おい。
>>446 を無視してわざわざそんなコードにしたのか?
ToolStripMenuItem.Tagに入れておいて
OnClickで senderをToolStripMenuItemにキャストして読むだけだぞ
(sender as Button).プロパティ名
Tag便利だね、今まで知らなかったよ
WPFやSilverlightのBindがあればもっと何でも出来るけどな
>>472 GDI+をCOM化してOfficeから使えるラッパー作ろうとしたことがあるんだけど
なかなか上手くいかなかった
それは思いつかなかった
ユーティリティ
484=神様 ユーティリティで何か作ります
486 :
デフォルトの名無しさん :2010/09/26(日) 18:30:20
VC#2010でターゲットフレームワークを.NET Framework4.0 Cliant Profileのままなんですが Messagebox.Show("test")を表示するコードであってもこのままコンパイルしたプログラムはC#2.0では動かないんですか?
うん
488 :
デフォルトの名無しさん :2010/09/26(日) 18:46:56
TextBoxに入力された文字列がComboBoxやCheckedListBoxの中にあれば、チェック(選択)をしたいのですが、 どのように記述すればいいでしょうか? foreachで回せばいいと考えているのですが、何をどう回せばいいのかがまだ想像できません。
489 :
デフォルトの名無しさん :2010/09/26(日) 18:49:41
C#2.0で動かすにはどうコンパイルしたらいいでしょうか?
>>489 もう作っちゃったやつならソリューションエクスプローラーでプロジェクトのプロパティ出して
アプリケーションの対象のフレームワークを変更すればいい。
>>491 デフォルトでLINQとか余分なものがImportしてあったり
意外とめんどくさいけどがんばれ
493 :
デフォルトの名無しさん :2010/09/26(日) 19:16:41
XNAとDXライブラリはどっちが簡単ですか? ゲーム作る場合、RPGとアクションとシューティングはどれが簡単ですか?もっと簡単なゲームってありますか?
>>488 FindStringExact使えばいいんでね?
>>493 楽なのは XNA だと思うけど。
Managed な DX なら別にそれほど XNA と変わらない気もする。
C++ で native な DX ならやめとけ。
シューティングが楽かな、たぶん。
496 :
デフォルトの名無しさん :2010/09/26(日) 19:47:00
>>494 そんな便利なものがあるのですね・・
ありがとうございました
497 :
デフォルトの名無しさん :2010/09/26(日) 20:03:52
フォームに非可視の値を置いておくことはできますか?
>>497 それ、HTML脳過ぎるだろ。
ウェブアプリでhiddenタグ使うのは、サーバーに状態持ちにくいからよ。
Form継承したクラスにprivateフィールド持っとけばいいだけじゃねえか
見えないラベルでええやん
非可視の値って単に使わない変数に値を持っておけば良いだけだろう・・・ それとも他のクラスやプロセスから見えないって意味なのか?
普通、不可視じゃないの?
>>502 普通は変数に保持します。
値一つ保持するためにコントロール使うとか馬鹿げてる。
デバッグ時は見えるようにしておいて・・・ なんてのをやったことがあるな。
>>504 そんなものはMessageBoxでも使えば良いだろう
>>503 いや非可視って言葉がおかしいと思って。
普通、「不可視」だな。
あるexeから A.exeを呼び出す →戻り値に応じて処理 B.exeを呼び出す →戻り値に応じて処理 これを交互に規定回数行います A.exeでは 〜いろいろな処理〜 return A; B.exeでは 〜いろいろな処理〜 return B; こんな感じで戻り値で実行結果を返すようになっています C#内でプロセスを起動することはできるのですが、その戻り値を取得することってできますか? 一応Win32APIのGetExitCodeProcessでできることは分かったのですが、敷居が高くC#のみでできたらそうしたいと思っています
その.exeがAPIを公開していればできるんじゃないでしょうか
Process.ExitCode
514 :
デフォルトの名無しさん :2010/09/26(日) 22:53:23
こちらのスレの先生方はgithubとかcodepadなどでコードを公開してたりしませんか?
俺はしてない
516 :
デフォルトの名無しさん :2010/09/26(日) 23:12:08
MIDIで音を鳴らしたいのですが何ていう名前空間を使うのでしょうか? MIDIを鳴らすというのはMIDIファイルを再生するという意味ではなく、直接MIDIで音を鳴らすってことです
>>519 現時点では無いと思います
win32APIやDirectXを使うか、公開されているラッパーを使用して下さい
そうでしたか・・・ win32APIでやってみます ありがとうございます
midiOutOpen C#あたりでググると同じ事やってる人が居るから参考にするといいよ
そういえばmidiって最近聞かなくなったな
ガベコレについて勉強しろ。
>>524 GCについて勉強してきた
・使用されなくなったオブジェクトは予約領域へ移動する
・使用されなくなったオブジェクトかどうかはマークアンドスイープ、コピーGCなどで判別する
・メモリー不足にならないと予約領域は解放されない
であってる?
メモリ不足にならなくてもGC.Collect()すれば解放される
>>523 JASRACが個人が耳コピで自作したMIDIサイトにも課金→MIDIサイト絶滅
>>527 読み込んだ直後にやってみたんだが、たいして解放されなかった
オブジェクトをつかんで離さない奴でもいるのかね…
>>529 tempFileがオープンのままだとファイルがメモリに展開されたままとかっていう可能性はないかな
>>539 tempFileは開きっぱなしだが、開いたままだとずっとメモリーに残るのか?
>>531 すまん適当なこと言ってしまった。
試してみたけどちゃんとメモリに残らないようになってた。
プロファイラ使えばどこで何がメモリ消費してるのかすぐ分かるのに そのくらいならCLR Profiler(MS製・無償)あたりで十分。
>>533 さっそく試してみたんだが、なぜか、使えなかった
.net 4.0だとダメなのか…
>>526 そんな感じ。
で、常に GC 用の領域は確保されっぱなし。
OS 上、確保しっぱなしの領域の中で、GC 対象のメモリを .NET Framework が管理してる。
GC してメモリを解放したところで、それは .NET 上の話であって、OS から見ると確保されっぱなし。
メモリに余裕のあるデスクトップ機器の場合はその方がパフォーマンスいい。
536 :
デフォルトの名無しさん :2010/09/27(月) 09:04:27
ToolStripMenuItemの項目にウスオーバーしたというイベントはどのように取得するんですか?
>>534 フリーで.NET4対応だとXteProfilerぐらい?
538 :
デフォルトの名無しさん :2010/09/27(月) 12:24:43
C#4.0でコンパイルしたらメモリとか速度とか向上しますか?
家のDDR2がDDR3に向上しちゃうなら4.0やるわ
>>538 .NET4使うだけで
起動パフォーマンスが向上して、バックグラウンドGCでStop the Worldが軽減されたりする。
NGenも4.0になってマルチコア/プロセッサを活用するようになった。
WPF/WF/WCFあたりはかなり手が加えられてパフォーマンスとスケーラビリティが改善されたってさ
541 :
デフォルトの名無しさん :2010/09/27(月) 14:06:50
俺のスロット版PentiumIIもC#4.0さえあれば・・
骨董品じゃねぇかw
543 :
デフォルトの名無しさん :2010/09/27(月) 14:16:47
C#4.0の次バージョンはC#5.0か4.5になりますか? 今開発してたりベータ版が出てたりしませんか?
544 :
デフォルトの名無しさん :2010/09/27(月) 14:17:50
動作環境.NET Framework 4.0でぼくの家のパソコンが3.0なんですけど 4.0をインストールする方法を教えてください
C#でデザインパターンは覚えたほうがいいですか?
547 :
デフォルトの名無しさん :2010/09/27(月) 14:44:41
C#でダウンローダーを作るとき、あるファイルのダウンロードが済んだかどうか知ることってできますか?
549 :
デフォルトの名無しさん :2010/09/27(月) 15:12:46
初心者コードですがリファクタリングお願いします using System; namespace Hello { class Test() { public void Main() { Console.Write("Hellow World!!"); } } }
>>549 そういうネタをやるときには、スペルミスはわざとでも入れてはいけない。
551 :
デフォルトの名無しさん :2010/09/27(月) 15:17:01
>>549 出力文字列を定数化、もしくはリソース化すべき
Console.Write("Helloween");
これがパースできて DateTime.ParseExact("Nov 16 20:49:37 1994", "MMM dd HH':'mm':'ss yyyy", DateTimeFormatInfo.InvariantInfo, DateTimeStyles.None); 曜日を入れるとFormatException吐くんだけどなんでだろ DateTime.ParseExact("Sun Nov 16 20:49:37 1994", "ddd MMM dd HH':'mm':'ss yyyy", DateTimeFormatInfo.InvariantInfo, DateTimeStyles.None);
そりゃー、1996/10/16が日曜日じゃないからだろう
!!
DateTime.ParseExact("Wed Nov 16 20:49:37 1994", "ddd MMM dd HH':'mm':'ss yyyy", DateTimeFormatInfo.InvariantInfo, DateTimeStyles.None);
これでパースしてくれました
DateTimeはそこまで見てたのかorz
>>554 ありがとう!
Mainはstaticじゃないのか
>>546 知っといて損はないけどそっくりそのままC#に持ってくるのはダメ
特にオブザーバやイテレータはC#ではもともと完全に言語に組み込まれてるので使用禁止
partial class のおかげで、 visitor パターンが書きやすくて濡れる
559 :
デフォルトの名無しさん :2010/09/27(月) 18:06:16
VC#でProgram.csとForm1.csのコード量って最小限に収めたほうがいいですか? 目安として何行ぐらいまでに収めたほうがいいってのありませんか?
宗教論の予感
561 :
デフォルトの名無しさん :2010/09/27(月) 18:22:19
C#でZIPを解凍したいのですが何の名前空間を書けばいいか教えてください ZIPだけ解凍できればいいんです
標準ライブラリにはない
563 :
デフォルトの名無しさん :2010/09/27(月) 18:26:21
>>561 zipだけなら外部のライブラリがあったな
C#には出来ない分野ってなんですか?
自分でzip解釈して圧縮形式がdeflateならSystem.IO.Compression.DeflateStreamで展開できると思うよ
>>564 LowLevelじゃないグローバルフック
567 :
デフォルトの名無しさん :2010/09/27(月) 18:37:23
C#4.0が入ってない環境に再配布ランタイム?最分布ランタイム?っていうのを自動的にインストールさせてあげるのって実現できますか?
ちょっと前から湧いてる質問者さん4.0にこだわり過ぎじゃあないすかぁ?
>>546 貧乳よりは巨乳のほうがいいだろ?
C#のデザインパターンの本が出てたはずだから参考程度でも読んでみ
今時2.0にしがみ付いてる人は時代遅れだから3.0以上で作ればおk
貧乳も巨乳もいいもんだ。まんべんなく楽しみたいな
573 :
デフォルトの名無しさん :2010/09/27(月) 19:50:21
巨乳の方がいいとか言い切る男の人って…
画像をドラッグアンドドロップして表示させるプログラムを作っているのですが、ドラッグアンドドロップできません。 普通ドラッグするとカーソルの横に+が表示されますが、作成したフォーム上ではそれが表示されないです。 どこが間違っているのでしょうか?フォームのプロパティでもAllowDropはtrueにしています。 環境はXPでVisual C# 2010です。 using System; 〜略〜 using System.Windows.Forms; namespace WindowsFormsApplication1{ public partial class Form1 : Form{ public Form1(){ InitializeComponent(); } private void Form1_Load(object sender,EventArgs e){ panel1.AllowDrop=true; } private void panel1_DragEnter(object sender,DragEventArgs e){ if(e.Data.GetDataPresent(DataFormats.FileDrop))e.Effect=DragDropEffects.Copy; else e.Effect=DragDropEffects.None; } private void panel1_DragDrop(object sender,DragEventArgs e){ string[] fileName=(string[])e.Data.GetData(DataFormats.FileDrop,false); pictureBox1.Image=Image.FromFile(fileName[0]); } } }
Visual Studio 2008のC#Webアプリです。 処理に時間がかかるので、マウスカーソルを砂時計に しようと思い調べました。 System.Windows.Forms.Cursor.Current = Cursors.WaitCursor; とやってもマウスカーソルは変わらず、 System.Windows.Forms.Application.UseWaitCursor = true; としてもダメでした。 デバッグでブレークポイントを入れてみましたが、 カーソルが変わる気配すらありませんでした。 なにか方法があれば教えてください。
577 :
デフォルトの名無しさん :2010/09/27(月) 19:55:05
デジャヴが酷い
579 :
デフォルトの名無しさん :2010/09/27(月) 20:08:59
マウスをクリックじゃなくて マウスオーバーした時のイベントってとれますか? メニューに使いたいのですが
ゲーム作るならC#とHSPどっちが早いですか?
ダントツでHSPに決まってる
MouseEnterってありませんでしたっけ
このスレ、平日昼間に賑わってるなw プログラマって暇なのか?仕事無いのか? てかC#使いって結構多いのな
584 :
デフォルトの名無しさん :2010/09/27(月) 20:35:27
このスレはいつから新人と教育係が隣で話ししてるような状況になったんだ? 報酬ももらってないし業務命令も受けてないけど
C#好感度アップキャンペーンでMS社員が動員されてるとかwww
>>584 だれもお前に聞いてないから答えなくていいよ
カタカタ || ̄ Λ_Λ ||_(Д`; ) 「なに?この流れ・・・」 \⊂´ ) ( ┳'
コンボボックスで質問したものです。 addされる前は表示したい文字列1つだけをaddして combobox_Enterイベントでコンボボックスからなにか登録したいときは直前に全項目addすることにより 劇的に改善されたますた。 アドバイスくれた人、ありがとうな。 考えが煮詰まったときって他人の意見ってリフレッシュになるね。
まわりをみたらみんなC#で、Win32APIが大好きって言ったら「おまえきもいwww」って笑われた
C#にはWin32APIは鬼門 次世代Win32APIのWinFXに期待していたのに…。
あなたの為だから・・・
534で使えないといったものだが、「COMPLUS_ProfAPI_ProfilerCompatibilitySetting=EnableV2Profiler」を環境変数に突っ込んで管理者権限で突っ込んだら動いた プロファイル結果 LineToIndexオブジェクト(行テーブルを管理する):20MB StringBufferオブジェクト:50MB (実態はDiskbasedList) その他もろもろ:6MB プライベートワーキングセット:150MB
フィールドやメソッド、プロパティを書く順番ってどうしてる? 俺のソース見たらクラスによってバラバラなので統一しようと思うんだが どれでもいい気がして悩む。とりあえず クラス フィールド コンストラクタ プロパティ メソッド の順番でいこうかな。
>>598 種類別にregionで囲ってるやつとか結構よく見るな。
小さいクラスだと見なくていいprivate fieldsを囲うぐらいしかやんないけど
>>598 最近、フィールドとプロパティ分けない。
private int _backField;
public int Property { get { return _backField; } }
みたいにくっつけてる。
あるメソッド内でしか使わない static readonly メンバーは
そのメソッドの直前に書くし。
Windowsアプリケーションで、画面遷移・切替などの フレームワークなどありますでしょうか? 参考になる
603 :
602 :2010/09/28(火) 02:14:54
途中で送信してしまいました。 Windowsアプリケーションで、画面遷移・切替などの フレームワークなどありますでしょうか? 参考になるサイトなど教えてください。
作るの楽なのでいうと、Silverlight の Navigation かなぁ。 Silverlight 3 以降の SDK 入れると Navigation アプリ用のテンプレート入ってる。 一応、WPF にも NavigationWindow ってのがある。
PHPからきたのかな? TABコントロール…
>>598 俺もそんな感じ
場合によってはメソッドを
Form用にイベントハンドリングメソッド
継承用にオーバーライドメソッド
イベント発生用にトリガーメソッド(Onなんちゃらで始まるメソッド)
なんかに分けてregionでくくる時があるけどさすがにやり過ぎな気がしてきた
607 :
デフォルトの名無しさん :2010/09/28(火) 10:28:24
2週間くらいかけてC#でアプリケーションのプログラミングをしていたのですが、 先ほど、.NET 3.5で製作してしまっていることを気付きました。 .NET 3.5の機能は利用しないため.NET 2.0でいいのですが、途中からダウングレード することはできませんか?
本当に使ってないならそのまま動くんじゃね
>>607 プロジェクトのプロパティで
対象のフレームワークを 2.0 にすればいいよ。
LINQとかusingでエラーが出たり
足りないusingが出たら削除や追加していけばいい
610 :
デフォルトの名無しさん :2010/09/28(火) 10:51:21
>>609 ありがとうございます。
using System.Linq;
を削除するだけでビルドできました。
611 :
デフォルトの名無しさん :2010/09/28(火) 10:53:33
すみません。 他にも一応参照設定でいくつか削除もしました。 一応書き込んでおきます。
はい
プログラムを公開してソースを公開したくない場合はどう対処したらいいですか?
どういう理由で公開したくないの? 業務上公開できないデータがあるから? コードが汚いから?
公開したくないの意味がわからない したくないならしなければいいだけじゃないの? 逆コンパイルされて読まれるのが嫌って話なら諦めるしかない
>>612 ggってもそれらしい記事見当たらないんだがこれマジ?
そこはたまに釣られてくるキチガイを叩いて遊ぶための隔離スレ
>>615 難読化。読まれて困るのならクライアントに渡すな。
>>618 一応言っとくけど、自分の書いたソースコードがそのまま一緒に公開されるって意味じゃないからね。
C#のソースコードをコンパイルしてできたバイナリから、ソースコードを推測できるってだけ。まあほとんど元に戻るけどね。
ほんとにゴミ言語だなw
ちなみに.net系は全部逆コンパイルできる。 てかjavaもだいたいおんなじ仕組みで逆コンパイルできる。
しかも復元する言語まで変えられるw
これ.netの標準ライブラリのコードも読めるんだよな。
ILからC#へ変換できるっちゅーことは だいたい対応付けられてて最適化もされてないってことかな つまりILの時代が始まる
ソースを難読化か暗号化ってできないから困る
>>625 それってC言語があるのにわざわざアセンブリでプログラム組むようなもんだよ。
まあ悪くはないかもしれないけど。
>>626 人力難読化だ!
読みにくい無駄で冗長なコードを書け!
バグコードも仕込んでおけw
通常処理の一部をわざわざネイティブのDLLで置いておくってのはどうか
そんな心配しないでも お前らのコードなんてだれも見ないから安心しろ
>officeやvisual studioは何を使って書かれているの? >これをオープンソースで出してくる日がくると思ってんの? >.NET系はサーバーサイドプログラミング環境でしょ?どう考えたって。 彼らの頭の中ではVisual Studioで.NETは使われていないらしい。
うん
FlashDevelopはC#で書かれている
バージョン経るごとに.NETの割合が増えて 今ではユーザが目にするとこの殆どが.NETになってるのになw
アンチMSって馬鹿だな
普段windows使ってるくせに「俺はMSが嫌いなんだよ」とか言ってるやつはバカだよね
本人に自覚がないのが一番恐ろしい
本当に見せたくないロジックはサーバーに置いとくのがこれからのトレンドか
Javaのパクリ言語なんだからソース丸見え機能もパクったんだよ
はい、話題のすり替えきましたよー
C#はDelphiのぱくりな JavaのパクリはJ#っていう黒歴史がちゃんとあるじゃないか
兄弟関係にあるものはパクリじゃないだろう
>>643 彼らの頭の中ではそうなんだろう。
>officeやvisual studioは何を使って書かれているの?
>これをオープンソースで出してくる日がくると思ってんの?
>.NET系はサーバーサイドプログラミング環境でしょ?どう考えたって。
こんな事を平気で言い出すような頭のおかしい連中だぜ
頭がおかしくなかったら 他言語のスレまでわざわざ出張してこないだろ
Ruby 最強
同意
仕事で仕方なく使ってる可能性もあるだろ phpとか好き好んで使ってる奴いるの?
同意
ソース見えるのを叩いてると思ったら次はRubyかよ 忙しない奴等だなw
>>639 ネットに繋がってないとアプリケーションが動かないっていうのは若干不便そうだな。
実際にそう言うの作ろうとした場合はやっぱWCFとか使って実装するんかな
>>648 もしそうだったら
>>644 みたいな馬鹿げたことは言わないだろ。
馬鹿なアンチMSが使えもしない言語を叩いて、周りから馬鹿にされてるだけ。
技術面の話には全く絡んでこないのが何よりの証拠。
>officeやvisual studioは何を使って書かれているの? >これをオープンソースで出してくる日がくると思ってんの? >.NET系はサーバーサイドプログラミング環境でしょ?どう考えたって。 これ何を言おうとしてるのか全くわからんのだが 誰か解説してくれないか、いやまじで
Visual StudioはC#で作られてます。
>>653 C#で作るとソースが見える→オープンソース→OfficeやVSはオープンソースじゃない→C#使ってるわけがない
って理屈らしい。ねーよ
VS2010を構成するDLLのほとんどはReflectorでソース見えるよ エントリポイントだけはネイティブコードで作られててCLRをホストしてる
ソースが見える→オープンソースと同義 っていう認識がかなりヤバイと思う
この話題自体が初心者御用達だからヤバイとは思わない 知識がついてきたら自然と認識が改まるよ
プログラミングにおけるこの手の暗号化と最適化の話題は htmlのblinkタグとmaqueeタグみたいなものだと思ってる
中国人の思想だな
中国は国を挙げてソース出せって言ってただろ 発想が根本から違う
そもそも.NETの標準ライブラリのソースは公開されている。難読化もされていない。ちなみに、暗号化以外の難読化をすると若干実行速度も早くなる。
アセンブラ読めるならソースなんか要らん
まあ、読める人は読めるわけだからねえ…。
アセンブラ読めたとしてもそれなりの規模のプログラムだと意図を読み取るのは相当難しいだろ できたとしても相当時間かかるんじゃないか?
666 :
デフォルトの名無しさん :2010/09/28(火) 20:03:12
webbrowzer1っていうIEコンポーネントでホームページを開くとき、 javascriptとcssを無効有効を切り替える方法ってありませんか?
コンストラクタで処理した値を、同一クラスの別コンストラクタに渡したいのですが。 :thisだと、順番が逆で、privateメソッドにすればできるのですが、コンストラクタ内でうまく処理する書き方ってあるのでしょうか?
>>668 処理をメソッド化してコンストラクタの外に出すだけでしょ
670 :
668 :2010/09/28(火) 22:19:33
<<669 そういうことなんですが。 コンストラクタ内で処理できる方法はないのかと、思ったので 質問してみたのですがなさそうですね。 ありがとうございました。
staticメンバでいいやん
>>561 System.IO.Packaging.ZipPackageクラス
TextBox を拡張した UserControl を作成しました。 この UserControl を Form に貼り付けた時に、 Form側で TextBox のイベントを拾うにはどうしたら良いでしょうか? 検討した方法 その1. UserControl に TextBox のアクセサを用意して、イベント登録。 その2. UserControl で新しいイベントを定義して連鎖させる。 TextBox --> UserControl --> Form その3. コールバック
>>674 2だろうけど、
もしUserControlに貼ってあるのがTextBoxだけなら、
基底クラスをUserControlじゃなくてTextBoxにする
今はC#4.0でコンパイルしてプログラムを配布するのはやめたほうがいいいですか? C#2.0の環境で動くものが多いのですが、やっぱりC#4.0環境が少ないって事だからでしょうか?
まあ、単純に何か1個の理由があるわけじゃないけども。 想定顧客がクリーンインストール状態の XP 利用者だから 2.0 にしたい 単にC# 4.0についていけてない 2.0 時代からの継続開発で、単にアップグレードめんどくさい VS 2008/2010 買えずにいる 等々。 自分が 4.0 使える身なら、後は顧客として何を想定するかで決めりゃいいんじゃない。 利用者に .NET のバージョンアップを強要することで減る需要と、 自分が 4.0 使えることで楽になるってのの利点のバランス計って。
使いたいライブラリの中で 4.0 化が進んでないとかいうものもある (以前知り合いが2005/8じゃないとツールが使えないとか言ってたぐらいのソースです。) し、環境が少ないという点ではそもそも .NET じたいが XP では標準ではないから .NET は使わないほうが良いともいえる。
679 :
デフォルトの名無しさん :2010/09/29(水) 13:09:02
.netで作ったものならサポートするバージョンの.net flameworkを入れてあればOS問わず動きますか? 例えば32bitとか64bitとかも意識しなくてもOKですか?
動くよ。 x86/x64 意識しないといけないのは P/Invoke とかでネイティブに触れてる時くらい。
681 :
674 :2010/09/29(水) 13:25:47
ドラクエみたくフィールドをキャラクターが歩くだけのプログラムが作りたいんですけど そういうライブラリってありませんか?
>>684 わざわざソースコードまで用意していただきありがとうございます
イルカのカイル君よりは良いんじゃないかと思う
どこ狙ってるのか(日本人名だし…)とか、どうやって企画通したかの方が気になる。
>>690 プレゼンにて
日本「萌えキャラ路線で行きます。」
MS「ボーカロイドのパクリかよ。クリプトンに訴えられても知らんぞ。」
台湾「じゃあ私がもらうアル(`ハ´ )」
ななみちゃんってのもあったけどあれは非公式だっけ
696 :
デフォルトの名無しさん :2010/09/29(水) 18:39:29
XNAとDXライブラリの質問最近多いけど 何なの流行ってるの?
流行ってたらなんなの?w
GDI/GDI+使わずにっていうことはWindows.Formsは使用禁止か 選択肢としてはManagedDirectXかWPF WPFならそれぐらいのゲームは作れる ManagedDirectX使うなら素直にxnaかDXライブラリ使ったほうが楽
DirectX10で良いなら Windows API Code Pack for Microsoft .NET Framework を使えば良いじゃん SlimDXでもいいけど
Hikaru ってどういうことだよ
704 :
デフォルトの名無しさん :2010/09/29(水) 21:52:37
>>696 ブラウザで動かしたいということならSilverlight
実は描画もものすごく速くて、GPUアクセラレーションを有効にすればXNAと比べても遜色ないパフォーマンス
(´・ω・`)…
それが何だよ。 そういう君みたいな気色の悪い趣味の奴が世の中の多数派だとか思ってるのなら 勘違いもいい加減にしとけよ。 真面目に吐き気がするわ
DataGridViewで特定のセルを操作不可にはできないのでしょうか? ReadOnlyでは編集は制御できるのですが、選択ができてしまうので 理想としてはEnabledの様なものがあればいいのですが
CellBeginEditイベントでキャンセルするとか
(´・ω・`)…
(`・ω・´)
(´・ω・)σ)`・ω・´)
(´・ω・`)
SilverLightってWPFのサブセットなの?
設計方針的にはそう<WPFのサブセット。 実際には、微妙に構造から変わってるクラスもあるし、 Silverlightの方で先に実装されちゃうものも多少はある。
(´・ω・`)
>>716 正確には「SilverlightのGUIフレームワークはWPFのサブセット」な
Silverlight自体は小型版の.NET Framework全体を含んでるから
「Silverlightは.NET Frameworkのサブセット」というべき
DataGridView で、行選択と列選択の両方に対応させるにはどうすれば良いでしょうか? もしくは、セルを複数選択するにはどうすれば良いでしょうか? クリックイベントで行または列の全てのセルを選択する方法を考えています。
722 :
デフォルトの名無しさん :2010/09/30(木) 13:20:04
C#をwebで使うにはWindowsサーバでaspを使わないと動かせないことを知りました windowsサーバを持ちいらないケースでwebで利用するものを作る場合、sliverlightやwpfの勉強をこれから始めるのは無駄になりますでしょうか?
用いない
724 :
720 :2010/09/30(木) 13:37:08
>>721 ちょっと見つけられなかったのですが、
クリックされた際に、SelectionModeを変更する方法で解決できました。
ありがとうございました。
>>722 > C#をwebで使うにはWindowsサーバでaspを使わないと動かせないことを知りました
Linuxサーバ+Monoで動かす手もある
> windowsサーバを持ちいらないケースでwebで利用するものを作る場合、sliverlightやwpfの勉強をこれから始めるのは無駄になりますでしょうか?
WPFで作るのはクライアントアプリだから関係ないが
無駄になるってどういう意味で?
>>722 silverlightはapacheでも動くっぽいけど?
Mono触ったこと無いけどSocketがあればLinuxサーバでもC#でWebアプリ書けちゃうよ
C#でCGI作ればいいよ
726が無知というのは分かった
Silverlightも100%クライアントサイドだから関係ないぞ MIMEさえ設定されてればHTMLに画像貼るのと一緒
じゃあ何でland.toでSilverlightが動かせないんだ?え?あ?
Web初心者スレにいけ
>>732 お前馬鹿ってよく言われるだろ?え?あ?
(´・ω・`)…
ヨメマセーン!
(´・ω・`)
日本人は喰える。喰い物である。 byチャイナ
フォームアプリケーションで質問です。 プロジェクト新規作成で自動で作られるフォーム処理のスレッドとは別に、 通信を行うスレッドを作り、そこで受信したデータをフォームのテキストボックスに表示したいのですが、 クラスの階層的には Formクラス→スレッドを含む通信クラス になっています。 どうやって親であるFormクラスのテキストボックスに相当する変数にアクセスすればいいのでしょうか? c++とかだとポインタを渡したりとか色々やれますが、C#だとどうするのが一般的なのか分かりません。
C++でポインタが理解できるなら全く同じように参照を渡すだけでもできるが 行儀よく作るならイベント駆動になるな 通信クラスはデータを受信したらイベント起動 フォームはイベントにハンドラを登録しておいてハンドラでテキストボックスなりに出力 あとISynchronizeInvoke
>>745 ありがとうございます。
調べながらやってみます。
下痢のときにデートは勘弁してほしい・・・
素で気づかんかった
笑ったwww
751 :
744 :2010/10/04(月) 22:34:42
結果、最初イベント駆動で検索してデリゲートの理解から深めようとするうちに、
>>747 のやり方でいんじゃね?と思ってやってみたところ
アクセシビリティに一貫性がありません。戻り値の型 '型' のアクセシビリティはメソッド 'メソッド' よりも低く設定されています。
のエラーが出て、InvokeRequiredを確認してinvokeを使う形で上手くいきました。
助言ありがとうございました。
アクセシビリティのエラーは全く別問題だろ アクセスレベルがpublicでない型(クラスやデリゲート)をpublicメンバの戻り値として使ってる
753 :
デフォルトの名無しさん :2010/10/05(火) 13:27:00
サクラエディタでC#書いてるんですけど クラスファイルが複数ある場合ってコンパイル面倒くさいですね 楽する方法ありませんか?
Visual Studioの使い方を覚える
copy using.cs+a.cs+b.cs+c.cs compiletarget.cs
>>753 こいう輩って何が目的でこんな事をやってるの?
インドの苦行で針を1000本飲む以上に理解出来ない
757 :
デフォルトの名無しさん :2010/10/05(火) 14:30:21
タダだからVC#Express使え C#や.NETはIDEで使うのを前提にして設計されてるので テキストエディタで書くのはただの苦行で何の意味もない
>>756 ハッカー()ワラに憧れた時がおまえにもあっただろ?
それだよ
中に病的なアレだよ
760 :
デフォルトの名無しさん :2010/10/05(火) 14:46:47
デリゲートはデリケートなので、慎重に><; はたまた、ゲリデートで困っちゃうんです><;
今時のハッカーはサクラエディタを使うのか
IDE立ち上げるまでもないちょっとした作業に使う事はあっても、メインで使う物じゃないよなぁ
(´・ω・`)…
764 :
デフォルトの名無しさん :2010/10/05(火) 16:21:33
テキストエディタを作ろうと思うんですけど、参考図書や参考になるWebページはありませんか?
sourceforgeにさくらエディタのソースがある
Azukiのソース
>>765 さくらはC++ですよね?
Azuki調べてみます
10 PRINT "バカ"; 20 GOTO 10 俺はこのプログラムからPC始めた 今は覚えることがいっぱいあって大変だなw
今はBasicも凄いぞ
10 PRINT "アホ"; 20 i=i+1 30 if i>7 then i=1 40 color i 50 goto 10
10 ON STOP GOTO 10:STOP ON:PRINT "アホ":GOTO 10
1行プログラム流行ったよなw
10 PRNT "Syntax Error in 10" 20 BEEP
シュールだなw
うごかないだろw
10 ? "error";:beep
777 :
デフォルトの名無しさん :2010/10/05(火) 20:06:42
すいません先生方ご教示お願いします クラスは1ファイルに1つにしたほうがいいですか? またnamespaceとクラス名を同じにしても大丈夫ですか? こんな感じにファイル1つにかきたいのですが namespace test { class test{} class test1[] }
>>777 十分に小さくて何らかの共通項があるなら構わない、ぐらいでやってる
列挙体の寄せ集めとか、EventArgs&EventHandlerとか、超シンプルな基底&派生クラスとか
> またnamespaceとクラス名を同じにしても大丈夫ですか?
ややこしくね?
名前空間とクラス名を同じにするのはやめた方がいい 他のコードでusingしたときに曖昧になるから回避が面倒
781 :
デフォルトの名無しさん :2010/10/05(火) 22:12:46
static void Main(string[] args) { MessageBox.Show(args[2]); } コマンドラインで引数を与えられなかった場合、起動したらエラーになってしまうのですが これはどのように対応するのでしょうか?
if (args != null) { MessageBox.Show(args[2]); }
引数が与えられなくてもargsには長さ0のstring型配列が渡されてます あとは何とかしてください
>>782 でもエラーになるのは解決しないだろ
if (args == null || args.Length < 2) { MessageBox.Show("エラー"); return; }
意地悪しないで最初から素直に教えてあげようよ……
これで文句無いだろ if (args != null || arg.Length > 2) { MessageBox.Show(args[2]); }
ワロスワロス
この程度のコードも書けないお前にキングクソワロス
790 :
デフォルトの名無しさん :2010/10/05(火) 22:53:04
コピペ君って馬鹿だな、まで読んだ。
この前まで店頭で手に入ったのにオクで買うとか凄まじい馬鹿だよ 家族名義で7台そろえたわ
||じゃなくて &&の間違いだろ…
ボケる流れです
実装依存しない様に組むのが正しい
Mainのstring[]はnullではないのは言語仕様だから
>>798 args = new string[]{"hoge"};
Main(args);
さてどうなる?
800 :
デフォルトの名無しさん :2010/10/06(水) 11:50:57
using System;みたいに書くのあるじゃないですか こういうふうにusingで最初に宣言して使うのと System.Console.Writeみたいに省略なしで書くのとでどちらが重いとか軽いとかありますか?
コンパイルした時にコードの方完全修飾名に置き換えてるに決まってるじゃん 変化ない
802 :
デフォルトの名無しさん :2010/10/06(水) 12:01:49
VC#のプロジェクトのプロパティでClickOnceセキュリティ設定があるんですけど これを有効にして「これは完全に信頼するアプリケーションです」をマークしたほうがいいですか? これってVistaとかで初回起動時のプログラムが怪しいかどうかのポップアップを消す意味の設定ですか?
clickonceってオンラインアップデートとかしちゃえるような便利な奴だっけ
サーバ上にアプリを置いてクライアントがアプリを起動するとき自動的にチェックする・・・
最新バージョンの有無をな
(´・ω・`)…
807 :
デフォルトの名無しさん :2010/10/06(水) 14:21:30
PHPのexitみたいに途中で終了させるのはどうやるのでしょうか?
break
Environment.Exit()
return
つうかさC#使うならひまわりとかなでしことかHSP使ったほうがよくないか? C#製アプリなんて.netが入ってないと動かないじゃん
せやな
んなこといったら、全部 HTA でいいじゃまいか
せやな
815 :
デフォルトの名無しさん :2010/10/06(水) 16:30:21
SlimDXを使ったプログラムを作ろうと思うんですが これで作ったものはユーザーにSlimDXのランタイムをインストールさせないと動かないって事ですか? 利用者に.NETフレーム以外のランタイムをインストールさせる手間をかけない場合はXNAを選択したほうがいいですかね?
XNAもランタイムいるよ。 まあインストーラー次第じゃない?
817 :
デフォルトの名無しさん :2010/10/06(水) 17:10:22
Visual C# 2010のツールボックスにCOMコンポーネントのRealPlayer G2 Controlを追加しました 部品をフォームに貼り付けました ソリューションエクスポローラーの参照設定にCOMの欄にあるReal Player ActiveX Control Libraryを追加しました 以下のコードを書きました private void Form1_Load(object sender, EventArgs e) { axRealAudio1.Source = "D:\\douga\\okiniiri_douga\\101.rm"; axRealAudio1.AutoStart = true; } 実行したら音声しか出ません 動画はどうやって表示するのでしょうか?
テキストファイル中の \u001b と言う文字列を読み込んで、 UNICODEとして変数に格納したいのですが、どうしたら良いでしょうか? 試しに string a = "\\u001b".Replace('\\', '\'); としてみましたが、ビルドエラーになりました。
Char.Parse
Substringするなり正規表現なりで数字部分取り出してInt32.Parseしてcharにキャスト
822 :
デフォルトの名無しさん :2010/10/06(水) 18:48:32
windowsのガジェットみたいに右側に表示し、 他のソフトで最大化したときに、右側のソフトに被らないようにするのは どういう風に出来ますでしょうか?
823 :
818 :2010/10/06(水) 19:02:14
>>819 >>820 ありがとうございます。とりあえず以下のような感じで動きました!
あと、少し長くなってしまったのですが、処理的にどこか省けますかね?
string target = "____\\u0055----\\u0056====";
string pattern = "\\\\u[\\d][\\d][\\d][\\d]";
Match m = Regex.Match(target, pattern);
while (m.Success)
{
string from = target.Substring(m.Index + 2, 4);
int toInt = Int32.Parse(from, NumberStyles.HexNumber);
char toChar = (char)toInt;
target = target.Remove(m.Index, 6);
target = target.Insert(m.Index, toChar.ToString());
m = Regex.Match(target, pattern);
}
Console.WriteLine(target);
824 :
408 :2010/10/06(水) 19:08:53
ありがとうございました
(´・ω・`)…
それよりfromって変数名気になる
\\だらけで汚い @使う
Regex.Replace(string, string, MatchEvaluator)使う
@使うのが気持ち悪い
830 :
デフォルトの名無しさん :2010/10/06(水) 20:11:54
@(オナホ)の主張 使ったことないのに、気持ち悪いとかいわないでよ!
toIntいらないだろ
>>823 string target = "____\\u0055----\\u0056====";
string result = Regex.Replace(target, @"\\u(\d+)", (m) =>
((char)Int32.Parse(m.Groups[1].Value, NumberStyles.HexNumber)).ToString()
);
Console.WriteLine(result);
・ω・`)…
どこで聞いていいのかわからないので質問させてください WindowsやWindowsMobileでデータを取り込むアプリケーションをC#で作成しました SQLServerCompactを使っているのですがsdfのデータをサーバ上のSQLServerに移す場合どのようにするのが一般的ですか? バッチ式アプリケーションというらしいのですが業務系の仕組みをググってはみたものの見つからずに困ってます
835 :
818 :2010/10/06(水) 21:10:12
>>832 短っ。
いろいろ参考になるソースですね。
ありがとうございました!
test
質問です。 VS2008でdatagridviewを使ったWinフォームアプリを使っていて 以下の機能を実装しようとしています。 「ヘッダー以外のグリッド内部をダブルクリックしたときのみ閉じる(this.Close())」 デザインは、フォームにdatagridviewがはり付けられたものとなっています それっぽいイベントを探しましたが、CellDoubleClickイベントなどではヘッダー部分をダブルクリックしても 落ちてしまいます フォーム自体を修正してもかまわないです よろしくお願いします
HITTEST系のイベントなかったっけ?
>>838 private void dataGridView1_CellDoubleClick(object sender, DataGridViewCellEventArgs e) {
if (e.RowIndex != -1 && e.ColumnIndex != -1) this.Close();
}
行ヘッダーがないならe.RowIndex != -1 だけでもいいよ
>>838 DataGridViewCellEventArgsのプロパティ一回でも目を通した?
>>840 早速の回答ありがとうございます!
エクスプレスエディションでサンプルフォーム作ってみてコピペしてみたらイケました
実際に仕事で使ってるのはカスタムコントロールなので、教えていただいた方針で
明日いじってみます
844 :
デフォルトの名無しさん :2010/10/07(木) 00:02:04
簡単なゲーム作りたいんだけど、 c#とflashのアクションスクリプト勉強するならどっちがいいだろう?
845 :
デフォルトの名無しさん :2010/10/07(木) 00:03:38
>>844 どっちでもお好きに
ASの場合無料で使いやすいIDEみたいなのあったっけ?
C#ならXNAとかも無料で手に入るし資料もぐぐればでてくるしで・・・
>>845 Cは使えるんだけど、オブジェクト指向プログラムはほとんどしたことないからC#先にやった方がいいかなぁ
フラッシュプロCS5買おうと思ってるから無料にはこだわってないんだけど
Suzukaがある
848 :
デフォルトの名無しさん :2010/10/07(木) 00:15:20
>>846 そんなに難しいことではないしC++ほど糞でもないからC#は楽よ
まあとりあえずはC#でやってみなよ
silverlightも中身はC#で組めるし
ちゃんとオブジェクト指向とかやる気があるんだったら絶対C#の方がいい C#やってればASも他の言語も簡単に使える
850 :
デフォルトの名無しさん :2010/10/07(木) 00:20:53
そっかぁ C#やるかぁ。 誰にでも作ったゲームやってほしかったから、.netフレームワークとかXNAとか強要したくなかったんだけど、 silverlightで動くなら大丈夫かな
まあゲームならCでDXライブラリが最強だけどな
一つに固執しないで複数やれってこと C#は勉強しやすい環境が整ってるし他の言語にも移行しやすいので入り口としては悪くない ASはちょっと特殊なので
853 :
デフォルトの名無しさん :2010/10/07(木) 00:28:46
>>851 DirectXは自分で3Dライブラリ作ってゲームも公開してるのさ。
もっと効率よくて楽につくりたいのと、新しい言語の勉強したくなってね
>>850 なんだ、C#勧められても(追加インストール物が原因で)乗り気じゃないなら
最初からASの方勧めてもらいたかったんだろ?気持ちは決まってたんだろ?
>>853 そんな凄腕ならC#なんかやる意味ないよ
856 :
デフォルトの名無しさん :2010/10/07(木) 00:34:08
オブジェクト指向わからんのにDirectXなんか使えるの? まあDirectXなんか9割定型句だけど
858 :
デフォルトの名無しさん :2010/10/07(木) 00:37:53
>>857 使えるでしょ
C++使ってCライクな書き方で十分かける範囲だと思うよ
859 :
デフォルトの名無しさん :2010/10/07(木) 00:40:01
>>854 いや、C#もアプリ程度の物は作った事あるけど好きよ
ま、Flash買う自分への口実が欲しかったのはあるけどw
勉強するならC#からなんだろうね
>>855 別に凄腕じゃないよ
ライブラリって言ってもDirectXライブラリを存分に使ってるラッパー的な物だし
でも俺のリア充友達なんかはDirectXのバージョンすら古いからね
DirectX8とかw
やねうらお氏来たああああああああああ
861 :
デフォルトの名無しさん :2010/10/07(木) 00:46:58
懐かしい名前だ
>>857 一応クラス組んでゲームはつくったけど、どーもオブジェクト指向がなんぞやっていうのか本質が掴めなかった
DirectXとオブジェクト指向は全く関係ないよ。DirectXはただのライブラリだし
863 :
デフォルトの名無しさん :2010/10/07(木) 00:50:40
>>862 Cでプログラム書くとヘッダー取り込めばあちこちで触れて
のんべんだらりとしたコードになりやすいけどオブジェクト指向の場合
データとそれに関連するコードをクラスの中へ封入することで
まとまった書き方できるんだよね・・・
動きゃいい
Xna Framework あたりはむしろ Win だけで使うって言うより、 Win/XBox360/WP7 の クロス環境でかつ配布も可能って所が利点な気がするけどな。
866 :
デフォルトの名無しさん :2010/10/07(木) 01:05:22
>>865 あんまり利点になってないけどなw
xnaが標準でも持ってるダイアログを使おうとしたけど箱最適化されてて
windowsじゃあ640x480とかで使うとおかしくなるとかw
867 :
デフォルトの名無しさん :2010/10/07(木) 12:41:30
そう、SlimDXのバージョンにあったSDKが必要
SlimDXはやめたほうがいいね
あれ、ランタイムだけでいいかな まあツール類もあるしSDKでいいでしょ
ありがとうございます DXSDK_Jun10.exe571.7MBけっこう重い・・・
たびたびすみませんSlimDXってDirectMusicはサポートしてないのでしょうか?
DirectMusicってDirectXにも入ってないっしょ? 2007Nox以降入ってないからサポートしようも無い 何がしたいかで代替手段はあるかもよ
XNAのがいいよ
DirectXに入ってないんでしたかorz 用途はMIDIを使って音を好きなように鳴らしたいです
DirectX SDKのみだとC#コード上ではDllImport祭りになるの?
ならない ComImport祭りになる
なんでたかがMIDIなのに面倒くさいの
879 :
デフォルトの名無しさん :2010/10/07(木) 15:20:38
波形データのサイズが全く問題にならなくなったので ゲームなんかではMIDIはもういらないというのが最近の流れ 環境に激しく依存するから糞
midiそのものはデータが単純だけにドライバが複雑。 それが取っ払われたら面倒になるのはしょうがない。 midi鳴らすには、ローレベルで地道に出すか 外部アプリを利用するか、中間のライブラリ利用するか
普通にWindows Media Playerコントロール使ったらだめなのか
なんか埋め込めるテキストエディタって無いですかね?
リッチなやつ?
秀丸やサクラエディタが埋め込めたらいいなー
やっとDirectX SDKのダウンロードが終わりました もうダウンロードだけでつかれた
助けてください><
ttp://dobon.net/vb/dotnet/programing/playmidifile.html ここの「DirectXを使用して再生する方法」のサンプルを使いたいんですが
参照にMicrosoft.DirectXとMicrosoft.DirectX.AudioVideoPlaybackが存在しません><
ページにはDirectX Redistributable for Software Developersをインストールしろと書いてありますけど
DirectX SDKとはべつものってことなんでうsか?
887 :
デフォルトの名無しさん :2010/10/07(木) 17:29:48
>>886 使いこなせないなら上の二つのうちどちらかで解決しろw
>>886 それはMDXという終わったやつだからあきらめよう
上のやつでいいじゃない
SlimDXをうごかすためにDirectX SDKがいるのかとおもってましたいらなかったんですね
XNAでもMIDIをサポートしてたら勧められるんだけどね
SlimDXはやっぱり諦めます ヘルプ見ましたがMIDIには対応してないことがわかりました WinAPIで頑張ることにします ありがとうございました
なんでMIDIをそのまま配布先で再生する必要があるのかわからない あらかじめ音声信号に変換したものを配ればいいだろ
(´・ω・`)…
音声ファイルとmidiファイルのサイズの違い
MIDIってどんな音が鳴るかは完全に環境依存なんだよ?
トランペットが指定されていてもトンチキなドライバが尺八の音色を使うかもしれん
全シーケンサー作者とヤマハとローランドを敵に回した
898 :
デフォルトの名無しさん :2010/10/07(木) 19:28:10
>>894 いまどきそんなのが重要になるのって・・・
特にwindows・・・
>>895 サンプリングは音源依存だと思う
勝手に敵に回っててくれ
日記はちら裏に書け
すいませんMCIで音が鳴りました! 先輩方のお陰です!助かりました ありがとうございました!
902 :
デフォルトの名無しさん :2010/10/07(木) 21:44:05
midioutで鳴らすのかと思ってた
midioutも簡単だよw midiキーボードもどき作ったりも簡単
簡単も糞もアプリから見たらmidioutもソフト音源も透過的でしょ。 言ってる意味がわからん
はあ?
全然簡単じゃねえよ 今C#初めて30日ぐらいしか経ってないけどapiなんて全然わかんねえよ C#やる前はHSPやってたからプログラム初心者じゃないけどな
一生HSPやってろよ
//
http://msdn.microsoft.com/ja-jp/library/cc410493.aspx MCIERROR mciSendCommand(
MCIDEVICEID IDDevice, // デバイス識別子
UINT uMsg, // コマンドメッセージ
DWORD fdwCommand, // フラグ
DWORD dwParam // パラメータを保持している構造体
);
↑の関数は
[DllImport("winmm.dll")]
public static extern int mciSendCommand(
int IDDevice,
uint uMsg,
uint fdwCommand,
uint dwParam);
と、C#書くので合ってますでしょうか?
ああ、だからmidiにこだわってるのか BASIC系だと、単音を鳴らしたりするサンプルはよく出てくるな 現実にはそんなもんよっぽど特殊な用途でない限り使わないけど
typedef UINT MCIDEVICEID
>>907 HSPなめんじゃねえ!ゲーム作れるぜ!
俺の周りの元HSP使い達は 揃ってHSP爆発しろっていってるけどな
HSP難しいよ なんでHSPみたいな低レベルな言語(悪い意味ではない)じゃダメで C#みたいな高級な言語が出てくるかっていうと、結局人間の頭が悪いから
馬鹿でもできたほうがいいからな 工場の単純労働みたいになるのが理想的だね
高級言語になればなるほどコーダーも高レベルにならざるを得ないけどね オブジェクトでつまずいてる人結構居るし
実装が見えない難しさと 大局が掴みにくい難しさ
>>908 CodeProjectにC# MIDI Toolkitつうのがあるけどそういうのではだめなのか?
C# MIDI Toolkitを試してみました 互換性がなんちゃらのメッセージが出たので変換して空実行したのですが 参照のDLLが見つからないととなり利用することができませんでした。 実はMCIは遅いという事がわかり、MidiOutOpenとかそっちのほうでやってるサンプルを見つけまして なんとか単音だけ発音できることに歴史的な成功を果たしました
( ̄・ω・ ̄)
昔に一度VB6でmidiout使って楽譜っぽいの入力して音鳴らさせるの作った スレッド使えなくてめっさ苦労したわー いい時代になったな
(´・ω・)
( ̄・ω・ ̄)
独自のSplitContainerを作っているのですが、 formに貼り付けて、その上にコントロールを置いても、親として認識してくれません。 どうすれば良いでしょうか?
ContainerControlとかControlStyles.ContainerControlとかParentControlDesignerとかその辺じゃね
ICntainerControl
926 :
923 :2010/10/08(金) 15:47:52
>>924 よくわからないのですが、クラスの先頭に
[Designer("System.Windows.Forms.Design.ParentControlDesigner, System.Design", typeof(IDesigner))]
をつけたところ、ユーザーコントロールにはコントロールを置けましたが、
ユーザーコントロールの上にパネルをfillで配置しているため、常に隠れてしまいます。
他にもいろいろ探してみましたが、見つからないので、今回はデザイン上はあきらめて、ロジックでparentを設定して対応します。
ありがとうございました。
( ̄・ω・ ̄) はいどうも
ω・ ̄)
Form に Picturebox と Button があり、Bitmap1 と Bitmap2 に作画して、それを透過で Bitmap0 にコピーして合成したのち、Bitmap0 を Picturebox に表示したいのですが、 MakeTransparent を使うと合成はしてくれますがアニメーションしてくれません。 使わないとアニメーションしてくれますが、当然合成できません。 複数の Bitmap を合成してアニメーションするには、どうすればいいんでしょうか? private void button1_Click(object sender, EventArgs e) { List<Bitmap> bmp = new List<Bitmap>(); List<Graphics> g = new List<Graphics>(); for (int i = 0; i < 3; i++) { bmp.Add(new Bitmap(100, 100, System.Drawing.Imaging.PixelFormat.Format24bppRgb)); g.Add(Graphics.FromImage(bmp[i])); } pictureBox1.Image = bmp[0]; Pen pn = new Pen(Color.White); for (int i = 0; i < 100; i++) { for (int j = 1; j < 3; j++) g[j].Clear(Color.Black); g[1].DrawLine(pn, 0, i, 99, 99 - i); g[2].DrawLine(pn, 0, 99 - i, 99, i); bmp[1].MakeTransparent(Color.Black); g[0].DrawImage(bmp[1], 0, 0); bmp[2].MakeTransparent(Color.Black); g[0].DrawImage(bmp[2], 0, 0); pictureBox1.Refresh(); Application.DoEvents(); } for (int i = 0; i < 3; i++) { bmp[i].Dispose(); g[i].Clear(Color.Black); } }
意味もなくリスト使ってg[1]だのbmp[2]だのやってるソース読んでると イライラしてくるなw 30年前のBASICのコードみたいというか、"CODE"っての意味を誤解してるんじゃないのかと からかいたくなる。
PASTAでええやん
>>930 >>931 あぁ、はいはい、コード汚くてゴメンネ。基本が N88 だから勘弁な。
さっきは言ってなかったけど、コピー元の Bitmap の数が決まってないんで、
ついついこうなるんだよね。何か別のやりかたもあるのかもしれないけどね。
bmp[0] くらいは変数名を別にしたほうがいいんだろうくらいは分かるけど。
GOTO とか使ってないし、ギリでスパゲッティ未満でしょ。素麺くらいで。
で、そんな程度のサンデープログラマーな初心者なんだから、からかわないで教えてよ。
おながい。
934 :
933 :2010/10/10(日) 00:23:53
簡単に解説しとく
MakeTransparentは実行するたびに内部的にBitmapを再生成するので、その都度Graphicsも再取得しなければいけない
つまり
>>929 のコードでは一回目以降すでに破棄されたbitmapに描画してるってこと
あと画像はどのみち再生成されるので配列でメモリ確保しとくのは無意味だと思う
935 :
933 :2010/10/10(日) 00:33:47
MakeTransparentした後はGraphicsを再取得か、今回は勉強になった
>>933 わざわざ、ありがとうございます。やりたい動作ができてます。感謝です。
MakeTransparent で bitmap が無くなっているなんて自分には想像もつきませんでした。
あと、直に picturebox に書くのですね。ヘタに自分でダブルバッファもどきなんて考えなくても、
ちゃんとやってくれるみたいですね。
実際に作っているプログラムでは、コピー元の bitmap は他のクラスに書いてもらって、それを
返してしてもらったのを合成したいのですが、そのときは new Bitmap(100,100,…) の部分を
new Bitmap(***) や (Bitmap)***.Clone でいいのではと思いますが、合ってるでしょうか?
ちょっと最後が意味不明だったかも。ちょっと言い換えさせてください。 new Bitmap(他のBitmap) や (Bitmap)変数.Clone でいいのではと思いますが、合ってるでしょうか?
>>937 >ヘタに自分でダブルバッファもどきなんて考えなくても
誤解してるようだけど、その点は
>>929 と
>>933 ではほとんど違いがないよ
単純にローカル変数に格納するかしないかの違い
ただ
>>929 の方はbmp[0].Dispose();してるから再描画しようとすると例外吐くがね
合成用画像を別で作ってるなら、そっちで透過色の設定もすればいいんじゃない?
そうすれば
for (int i = 0; i < 100; i++) {
pg.Clear(Color.Black);
for (int j = 0; j < 2; j++) {
pg.DrawImage(SomeClass.SomeMethod(i, j), 0, 0);
}
pictureBox1.Refresh();
Application.DoEvents();
}
だけで済むし
>>939 度々レスありがとうございます。そうですか、やってみます。
しかし、N88 や Delphi も使っていた(こなせてはない)のですが、
あまりにも勝手が違って四苦八苦・・・w
>>929 ですが、教えてもらったおかげで、数日かけて(w)やっと思っていた
通りの動作ができました。ありがとうございました。
Delphi使ったことないけどそんなに違うの? フレームワークのメイン設計者は.NETと同じ人なんだけど
N88とDelphiの距離に比べたら、ごく近所みたいなものだよ。
デルファイは過剰評価されすぎだよねw まだのフリー版がある時代に少し触ってみたけど、言語の設計はともかく、 あのIDEの使いにくさではVBに負けて当然だと思った。
フリーカーソルは気持ち悪いです
C#でリベンジできたんだから良いじゃないか
まあ、AndersのMS移籍、DelphiとVB(的なもの)の統合は素晴らしいかった。
HttpWebRequestと同Responseより薄いWeb用クラスって無いんでしょうか? ↓ぐらいの抽象度で、例外もWebExceptionかぶせたりせずIOExceptionのまま上げてくるようなものです。 interface WebRequest { string Method; IDictionary<string, string> Header; void AttachStraem(Stream body); } interface WebResponse { HttpStatusCode Status; IDictionary<string, string> Header; Stream GetBodyStream(); }
ない
探せば誰かが作ってるかもな まあそれぐらい作るのも大した手間じゃないっしょ
Socket使って自作してください
無いですか Socketからだとちと面倒なのでHttpWeb〜のデグレラッパーでしのぎます
うん。ありがとねー
955 :
デフォルトの名無しさん :2010/10/11(月) 19:48:40
C#だと本はいらんだろ ぐぐればいくらでも情報はでてくる 高度なことをやりだして本を買うかどうかってところだ
>>955 そっか〜買わなくてよかった。
ありがとうございました。
どいたしまして〜
private struct ele { public bool a; } ele a = ele(); //ele.a = true; ele["a"] = true; ele.a = 以外の方法で入れる事はできませんか?
うん。
javascriptのようなことがしたいのだろうけどないな。 .NET4.0のC#ならdynamic型で変態的なことが出来るけど。
javascriptが変態なんじゃ
動的な名前でプロパティを操作したいって意味なら リフレクション使えばいけるだろ
つ Jscript.NET
964 :
デフォルトの名無しさん :2010/10/12(火) 12:49:15
Dictionary<,>が使えないか検討する
struct ele { public bool a; public ele(bool b) { this.a = b; } } ele a = new ele(true); コンストラクタ使うんじゃダメなのか?
何がしたいのかよくわからんな、元の質問者
967 :
デフォルトの名無しさん :2010/10/12(火) 15:15:17
FormにButtonをぴったしくっつけるように配置したいのですが 自分のマウスの動かし方では難しくて厳しいです もっと確実な方法ってございませんか?
矢印キーで
Locationプロパティを直でいじる。 矢印キーを活用する。 書式設定>オブジェクトの整列を活用する。 全部試してみろ
970 :
デフォルトの名無しさん :2010/10/12(火) 15:45:44
968さんそれいいですね使わせて頂きます Formに下記のようにTextBoxを配置しました ■←TextBox1 ■←TextBox2 両方ともプロパティのAnchorにTop, Bottom, Left, Rightと指定して TextBoxのサイズがFormのサイズに合わせて拡大縮小するようにしました ただ、そうするとFormを下に伸ばすと上のTextBox1が下のTextBox2に被ってしまいます 何かよい解決方法はござませんか?
入力中のため気づきませんでした 969さんの方法も試してます
IDEの使い方かよ
>>970 TableLayoutPanel使ったら?
初心者スレだから仕方ないだろ
TableLayoutPanel か SplitContainer
デスクトップの領域を変更するのはC#で出来ますか? Cじゃないと無理ですか?
デスクトップの領域、を変更? したらどんなことになるの?
978 :
デフォルトの名無しさん :2010/10/12(火) 16:57:06
>デスクトップの領域を変更する 解像度の変更? これだとAPIをC#で呼び出せばいいだけじゃないかな? ただ解像度一覧を取得したりとちょっと面倒だったような
Vistaや7では右側にガジェットが表示されてるときにプログラムを起動して最大化しても ガジェットには被りませんでした やっぱ無理層ですね
それはまた別の話。
970です 出来ました! ありがとうございます! 本当にありがおうございます!
982 :
デフォルトの名無しさん :2010/10/12(火) 18:47:28
配列をListBoxにセットして表示されるアイテムでaから始まる文字列のみ表示するフィルターを行いたいのですが 配列のときにフィルターかける方法は思いついたのですが、ListBoxにセットしてからフィルターを書ける方法は可能でしょうか? もしなければ配列のときにフィルター書けるようにしたいと思います
DataTable使えば?
DataTableなんですがVC#2010 Expressを使ってましてツールボックスにないみたいで使えませんでした
配列だってツールボックスにはないだろ…
986 :
デフォルトの名無しさん :2010/10/12(火) 21:31:45
>>979 無理層
アプリケーション層
プレゼンテーション層
セッション層
トランスポート層
ネットワーク層
データリンク層
物理層
ゆとりもここまで来たか C#が馬鹿にされるのもやむなし
アプリ層の上は、政治層、経済層、宗教層だと思うんだ。
DataTableが難しいって・・・
もうええわ
ぶらんとしー、しゃー、ぷぅ
♭¢♯♪
C#で1.0〜2.0まで対応してるクラスってのと 4.0から対応してるクラスってのがあって 両方を一つのプログラムの中に書いた場合、動きますか?
997 :
デフォルトの名無しさん :2010/10/13(水) 12:55:35
>C#で1.0〜2.0まで対応してるクラス ってなに? C#の文法的な意味でいってるの?それとも.Netのバージョンの話? それからそのクラスっていうのはソースコードで存在するものなのか、 コンパイル済みのDLLなのかも書いてくれないと判断できない。
名前空間のメソッドとかプロパティのことです
おそらくNetFrameworkのことだろうけど 具体的にどのクラスが2.0まで対応なのか挙げてみて
続きは次スレで
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。