ふらっとC#,C♯,C#(初心者用) Part67
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2010/12/16(木) 18:23:33「どんなにくだらないC#プログラミングに関する発言でも誰かが優しくレスをしてくれるスレッド」です。
ほかのスレッドでは恐ろしくて書き込めないような低レベル、もしくは質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からない場合など、勇気をもって書き込んでください。
内容に応じて、他スレ・他板へ行くことを勧められる、あるいは誘導される場合がありますがご了承下さい。
なお、テンプレ2行目が読めない回答者は邪魔なので後述のC#相談室に移動して下さい。
>>980を踏んだ人は新スレを建てて下さい。
>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。
■前スレ
ふらっとC#,C♯,C#(初心者用) Part66
http://hibari.2ch.net/test/read.cgi/tech/1290854247/
■関連スレ
C#, C♯, C#相談室 Part63
http://hibari.2ch.net/test/read.cgi/tech/1289733048/
VB.NET質問スレ(Part35)
http://hibari.2ch.net/test/read.cgi/tech/1284423653/
くだすれC++/CLI(初心者用)part2
http://pc12.2ch.net/test/read.cgi/tech/1268613679/
■備考
コードの量が多い場合は下記サイトを使うなどしたほうがいいかも
http://ideone.com/
コードを貼り付けてRun codeのチェックをはずしてsubmitボタンを押すと
コードを鯖側にアップして専用のアドレスが発行されます。
直接貼る場合は下記サイトなどを利用してhtmlエンコードした方が
インデントも残って見やすいです
http://kawama.jp/php/encode_html.php
0478デフォルトの名無しさん
2010/12/30(木) 13:24:300479デフォルトの名無しさん
2010/12/30(木) 13:25:43返らないと思って使ってたら返ってた、なんてことになるって話だろう
0480デフォルトの名無しさん
2010/12/30(木) 13:27:14Fillなんちゃらとか、適切な名前ならいいでしょ
0481デフォルトの名無しさん
2010/12/30(木) 14:45:16Quaternion xz = new Quaternion(new Vector3D(1, 0, 1), degreexz);
A.Rotate(xz);
回転角degreexz[°]でXZ軸でAを回転させたいのですが、どこがおかしいでしょうか。ご指南お願いします。
0482デフォルトの名無しさん
2010/12/30(木) 14:46:460483デフォルトの名無しさん
2010/12/30(木) 14:50:48マルチだからスルー、とかよくわkんないんだけど、なんか答えちゃいけない規則でもあるの?
0484デフォルトの名無しさん
2010/12/30(木) 14:51:450485デフォルトの名無しさん
2010/12/30(木) 14:59:280486デフォルトの名無しさん
2010/12/30(木) 15:03:350487デフォルトの名無しさん
2010/12/30(木) 15:18:34何のライブラリのQuartanionやVector3Dなのかわからない。
C#から使えるMS製ライブラリのうちQuartanionやVector3Dを含むものは複数存在する。WPFならそう書け。
何を回転させたいのか具体的に書け。
0488デフォルトの名無しさん
2010/12/30(木) 16:55:52どうやればいいかわかりません。
LINQを使えばできたと思うのですが、どう書けばいいものやら…
どなたか教えていただけませんでしょうか?よろしくお願いいたします
0489デフォルトの名無しさん
2010/12/30(木) 17:13:440490デフォルトの名無しさん
2010/12/30(木) 17:22:07とか
0491デフォルトの名無しさん
2010/12/30(木) 17:49:51http://msdn.microsoft.com/ja-jp/library/ms229017.aspx
0492デフォルトの名無しさん
2010/12/30(木) 17:50:44MSDNにしてはわかりやすい。
0493デフォルトの名無しさん
2010/12/30(木) 18:04:50>インスタンスのサイズが 16 バイト未満である。
っていうとintだと3つまでか?
0494デフォルトの名無しさん
2010/12/30(木) 18:12:180495デフォルトの名無しさん
2010/12/30(木) 18:52:48また随分と簡潔な基準だな。
これだと、構造体にするべきケースって殆ど無さそう。
0496デフォルトの名無しさん
2010/12/30(木) 19:07:540497デフォルトの名無しさん
2010/12/30(木) 19:08:58自分が製作しているプログラムは複数音の再生なので、それを録音したいのです。
録音の方法はPCから鳴っている音を録音する方法が良いのかなと考えています。
サウンドレコーダー程度のものでいいので、つけることは出来ますか?
サウンドレコーダーがC#のプログラム上で自動で録音を始めることさえ出来れば良いのですが…
長文大変申し訳ありません。
よろしくお願いします。
0498デフォルトの名無しさん
2010/12/30(木) 19:11:11試してみます!
0499デフォルトの名無しさん
2010/12/30(木) 21:34:030500デフォルトの名無しさん
2010/12/31(金) 14:36:03ウィンドウメッセージで押すとかすればいいんじゃないの
0501デフォルトの名無しさん
2010/12/31(金) 15:43:18WebForm1.aspx内のclass Aで計算した値をWebForm2.aspx内のclass Bへ受け渡したいです
始めにclass A内の計算を実行して、Labelに結果を表示してからWebForm2.aspxへ移り
WebForm2.aspxのclass Bでclass Aの計算結果を使用したいので
class Bでclass Aをインスタンス化しclass A内の計算を実行させると
2度同じ計算をさせることになるので一度で済ませる方法がないか探しています
0502デフォルトの名無しさん
2010/12/31(金) 16:24:150503デフォルトの名無しさん
2010/12/31(金) 19:32:03来年はどうもQtスレに行くことになりそうです。
0504デフォルトの名無しさん
2010/12/31(金) 21:35:200505デフォルトの名無しさん
2010/12/31(金) 22:35:05ありがとうございます
0506デフォルトの名無しさん
2010/12/31(金) 22:54:49インデクサの使い方教えろ
0507デフォルトの名無しさん
2010/12/31(金) 23:22:110508デフォルトの名無しさん
2010/12/31(金) 23:37:03{
public int this[int a, int b, int c]
{
get
{
return a*b*c;
}
}
}
A test = new A();
Console.Writeline("{0}", test[1,2,3]);
6
0509デフォルトの名無しさん
2010/12/31(金) 23:40:383 次元ベクトル を表す Vector3D クラスのコレクションクラス Vector3DCollection を作ったとしたら、
それを配列のように扱いたいことがあるはず。
んじゃあ、配列使えよって言うかもしれないが、配列にはメソッド作ったり出来ないし、
その他ゴニョゴニョできないからね。(拡張メソッドレベルなら作れるけど。)
まあ、string とかも添字に使えるから色々な使い方があるだろうが。
0510デフォルトの名無しさん
2011/01/01(土) 00:18:400511デフォルトの名無しさん
2011/01/01(土) 08:38:48>>500さんありがとうございました。
ウィンドウメッセージとは具体的にどのような命令(コード)なのでしょうか?
初心者の質問で申し訳ないです。
0512デフォルトの名無しさん
2011/01/01(土) 10:56:07型に付いてるDefaultMemberAttributeを調べる
PropertyInfoだけじゃ分からん
0513デフォルトの名無しさん
2011/01/01(土) 11:43:310514デフォルトの名無しさん
2011/01/01(土) 12:07:000515デフォルトの名無しさん
2011/01/01(土) 13:08:48Reflectorで見てもDefaultMemberAttributeが使われてないから不思議だったんだけど、C#だと出ないのね
ありがと
0516デフォルトの名無しさん
2011/01/01(土) 15:24:03何もかもが終わった
byte[]のwavデータを一時停止するなんて高度(笑)なことができるわけがなかったんだ
・DirectAudio
Direct〜は嫌いだから使わない
・XAudio
wav再生できない
・WPFのMediaElement(一番簡単)
ファイルからしか再生できない
silverlight使えばsetsourceでいけるけど勉強する気がない
・ActiveXのWMP
ファイルからしか再生できない
0517デフォルトの名無しさん
2011/01/01(土) 15:28:29> Direct〜は嫌いだから使わない
> Direct〜は嫌いだから使わない
> Direct〜は嫌いだから使わない
0518デフォルトの名無しさん
2011/01/01(土) 15:55:49文句は言わせないぜ
へへへ
0519デフォルトの名無しさん
2011/01/01(土) 16:28:05>wav再生できない
え?
0520デフォルトの名無しさん
2011/01/01(土) 16:35:03やる気がないってことだよ
言わせんな恥ずかしい
0521デフォルトの名無しさん
2011/01/01(土) 18:47:54wavはヘッダだけ飛ばせばあとはデータをそのままバッファに直接書き込むだけ
0522デフォルトの名無しさん
2011/01/01(土) 23:20:36言い訳が酷すぎるだろw
0523デフォルトの名無しさん
2011/01/01(土) 23:59:28一時停止なくてもボタン1つ消えて使用者が少し不便になるだけだし
まぁなくてもいいかなって気分になってきたのだ(・´ω`・)
0524デフォルトの名無しさん
2011/01/02(日) 04:51:35pass:news
0525デフォルトの名無しさん
2011/01/02(日) 04:55:090526デフォルトの名無しさん
2011/01/02(日) 07:29:52Form.Click +=まで入力すると 「new EventHandler(Form_Click); 挿入するにはTabを押してください」と表示され
Tabを押すと、Form.Click +=new EventHandler(Form_Click); 「このクラスにハンドラー'Form_Click'を生成するにはTabを押してください」となり
またTabを押すと自動で
void Form_Click(object sender, EventArgs e) {
throw new NotImplementedException();
}
まで挿入されますが、これをTab押したときにラムダで挿入するやり方はありますか?
こんな感じで挿入してくれるとうれしいのですが。
Form.Click += (sender, e) => {
};
0527デフォルトの名無しさん
2011/01/02(日) 10:16:50(以下のコードスニペット作れば
0528デフォルトの名無しさん
2011/01/02(日) 12:25:52ListViewで列、項目を入力して試しにデバッグさせてみたらアイテム名が表示されません。
デザイナでは視覚的に確認できるのですが、書き出すと真っ白になってしまいます。
どういった原因が考えられるでしょうか?
0529デフォルトの名無しさん
2011/01/02(日) 14:39:06???
ビルドして実行すると、ってこと?
0530デフォルトの名無しさん
2011/01/02(日) 15:18:40はい。ビルドして実行すると、です。
0531デフォルトの名無しさん
2011/01/02(日) 16:07:06ListBoxって選択されてる項目のTextしか取得できないの?
Items.Countでループさせて、全項目のText取得したいんだけど
もしかして、ループ時に順次select状態にしてText取得していかなきゃだめなの?
そんでループ処理後にselect状態の項目をループ前の状態に戻すしかないの?
うーん・・・
0532デフォルトの名無しさん
2011/01/02(日) 16:10:350533デフォルトの名無しさん
2011/01/02(日) 16:12:240534デフォルトの名無しさん
2011/01/02(日) 16:15:02本当にくだらない質問だな....
こんなところにうだうだ書いてる時間に試してみればいいのに
0535528
2011/01/02(日) 16:34:47お騒がせしました。
0536デフォルトの名無しさん
2011/01/02(日) 16:44:23試したからいってるんだけど
「それしかないの?」って
フフン
0537デフォルトの名無しさん
2011/01/02(日) 17:00:50ListBoxに与えるテキストって利用者が勝手に変えたりするの?
固定なら最初からstring配列で持っておいて・・・とかすればいいんじゃないの?
0538デフォルトの名無しさん
2011/01/02(日) 17:23:11もしかして全部覚えてるの?
0539デフォルトの名無しさん
2011/01/02(日) 17:25:37ライブラリを数個しかしらなくてもその時々でたまたま知ってる人が覗いてれば問題ない
0540デフォルトの名無しさん
2011/01/02(日) 18:23:44ありがとう
それしかないか
0541バルサン(´・ω・`) ◆E.J7ujd3Xbu.
2011/01/02(日) 18:34:310542バルサン(´・ω・`) ◆E.J7ujd3Xbu.
2011/01/02(日) 18:47:170543バルサン(´・ω・`) ◆E.J7ujd3Xbu.
2011/01/02(日) 18:55:120544デフォルトの名無しさん
2011/01/02(日) 18:57:09ListBox..ValueMember = "Code";
ListBox.DataSource = (DataTable)xxx;
でforeachやforでxxxのDataRowを参照すればいいんじゃないの?
0545デフォルトの名無しさん
2011/01/02(日) 19:22:55ありがとう
wavデータサイズを固定指定してるところを可変にして、ループ再生用のwhileを消して、再生中ステータス取れるようにして
もろもろ修正したらうまく動いたよ
ありがとう
0546デフォルトの名無しさん
2011/01/03(月) 03:08:49ありがとう
でもこれでいけたYo
(string)listbox1.Items[0]
0547デフォルトの名無しさん
2011/01/03(月) 17:40:04int a;
}
public interface interfaceB : interfaceA {
int b;
}
public class classC : interfaceB {
}
の時、classC.aは使えないんですか?
0548デフォルトの名無しさん
2011/01/03(月) 17:40:24そのとき録音時間を変数などに入れて時間を指定して起動させたいのですが方法はありますか?
コードはこれです。
Process roku = new Process();
roku.StartInfo.FileName = Environment.GetEnvironmentVariable("ComSpec"); // cmd.exe
roku.StartInfo.CreateNoWindow = true; // 起動に ウィンドウ を使用しない
roku.StartInfo.UseShellExecute = false; // 起動に OS のシェルを使用しない
roku.StartInfo.RedirectStandardInput = false; // 標準リダイレクト入力を不許可
roku.StartInfo.RedirectStandardOutput = true; // 標準リダイレクト出力を許可
roku.StartInfo.Arguments = @"/C SoundRecorder /FILE rec1.wma /DURATION 0000:00:00 /ON"; // コマンド設定(/C = 実行後 終了)
roku.Start(); // 起動
下から2行目の@"/C SoundRecorder /FILE rec1.wma /DURATION 0000:00:00 /ON"の
DURATION 0000:00:00に数値を入れるといいのですが、それを変数を使って代入したいのですが
どう書けば時間を指定できますか?
0549デフォルトの名無しさん
2011/01/03(月) 17:45:58マルチメディア系のAPIとか機能使って録音した方がよくねえ?
0550デフォルトの名無しさん
2011/01/03(月) 17:46:39string time = "0000:00:00";
roku.StartInfo.Arguments = @"/C SoundRecorder /FILE rec1.wma /DURATION " + time + @" /ON"
0551デフォルトの名無しさん
2011/01/03(月) 17:55:21そもそもinterfaceにフィールドは定義できない
0552デフォルトの名無しさん
2011/01/03(月) 18:08:45使い方がよくわからなかったので諦めました。
>>550
ありがとうございます。
指定する時間が複数の場合、あらかじめ代入してた変数を使って行いたい場合はどうすればよいですか?
秒の部分しか使わないのですが…。
0554デフォルトの名無しさん
2011/01/03(月) 18:42:04string sec = "00";
string time = "0000:00:" + sec;
こんな感じでいいんじゃね?
0555デフォルトの名無しさん
2011/01/03(月) 18:51:24>>554
ありがとうございました。
>>554の方法で出来ました。
0556デフォルトの名無しさん
2011/01/03(月) 19:38:11録音が終わったときに(サウンドレコーダーが閉じられたときに)いろいろな設定をしたいのですがうまくいきません。
どのようにしたらいきますか?
コードです。
roku.Exited += new EventHandler(p_Exited);
roku.EnableRaisingEvents = true;
roku.Start();
private void p_Exited(object sender, EventArgs e)
{
toolStripStatusLabel1.Text = "";
toolStripButton26.Enabled = true;
toolStripButton27.Enabled = true;
toolStripButton23.Enabled = true;
toolStripButton24.Enabled = true;
numericUpDown1.Enabled = true;
}
行いたいのは{}の中です。
0557デフォルトの名無しさん
2011/01/03(月) 19:42:43>うまくいきません。
イベントが発生しなくて目的の設定がうごかないってこと?
0558デフォルトの名無しさん
2011/01/03(月) 19:44:12「有効ではないスレッド間の操作: コントロールが作成されたスレッド以外のスレッドからコントロール 'toolStrip2' がアクセスされました。」
と表示されます。
0559デフォルトの名無しさん
2011/01/03(月) 19:54:160560デフォルトの名無しさん
2011/01/03(月) 20:04:26具体的にどのような操作をすればよいのですか?
調べたのですがよくわかりません…。
0561デフォルトの名無しさん
2011/01/03(月) 20:49:36まず録音関連を担当する自作クラスを用意
(途中経過はよくわからないのでスレの情報をそのままいれた)
http://ideone.com/V2Xq4
上記クラスを使う側のコード
http://ideone.com/5aWiF
0562デフォルトの名無しさん
2011/01/03(月) 21:24:36コピペしたところエラーが表示されました。
・「using System.Linq;」は無いようなのですが大丈夫ですか?
・MyRoku roku = new MyRoku();
roku.Exited(p_Exited);
roku.Start();
部分は、Form1_Loadからボタンを押したときに移しましたが大丈夫ですか?
・エラーが表示されます。
「エラー1'form.MyRoku.Exited(form.MyExited)' に最も適しているオーバーロード メソッドには無効な引数がいくつか含まれています。」
「エラー2引数 '1': 'メソッド グループ' から 'fomr.MyExited' に変換できません。」
「エラー3デリゲート 'form.MyExited' に一致する 'p_Exited' のオーバーロードはありません。」
解決方法はありますか?
0563デフォルトの名無しさん
2011/01/03(月) 21:25:33リサイズ中に枠をぐりぐりするとリサイズできなくなってしまう
自分で見ても原因がまるでわからないので、誰か神眼でバグを指摘しておくれ
■ソース
ttp://ideone.com/qGhgB
■ぷろじぇくと
ttp://www.rupan.net/uploader/download/1294057460.zip
0564デフォルトの名無しさん
2011/01/03(月) 21:31:48>・「using System.Linq;」は無いようなのですが大丈夫ですか?
必要かどうかは自分のコード全体から判断してくれw
>解決方法はありますか?
もしかしてかなりの初心者?
>>1のコード貼るサイトを利用してコード張ってくれ・・・・
途中経過がさっぱりわからんのに説明めんどくさい
0565デフォルトの名無しさん
2011/01/03(月) 21:32:23とりあずOnXXXでベースクラスのオーバーライドしたメソッドを呼ばないのは如何なものか
0566デフォルトの名無しさん
2011/01/03(月) 21:42:04紐付けしてるのか失礼。
0567デフォルトの名無しさん
2011/01/03(月) 21:47:14>g.Dispose();
これ要らない。
なんで要らないのかは理解しておいた方がいいよ
0568デフォルトの名無しさん
2011/01/03(月) 21:47:32少しいじっていたらなんとかなりました。
申し訳ないです。
皆様ありがとうございました。
0569デフォルトの名無しさん
2011/01/03(月) 21:50:12中は透明かよwめんどくせー
かぎりなく透明に近いけど0じゃない色で描画すればクリック判定あるよw
0570デフォルトの名無しさん
2011/01/03(月) 22:10:10確かFormそのままではだめだったということだったんだが・・
0571デフォルトの名無しさん
2011/01/03(月) 22:12:40>>570
高度なことはできないと自信を持って言える
0572デフォルトの名無しさん
2011/01/03(月) 22:18:31確か>>570のやつだとOpacityのように全部が半透明とかじゃなく
部分的にアルファ適応とかできたはず
ただしウインドウの枠の部分も自前で・・・みたなちょっと面倒なやつだったけど
なので>>563のようなコードの場合は枠必要ないので向いてるかなあと・・・
0573デフォルトの名無しさん
2011/01/03(月) 22:31:16>>567
変えてみたよ
ttp://ideone.com/NiPsL
>>569-569
>>571
このやり方じゃあ絶対にできないのか
部分アルファにするしかないのか
0574デフォルトの名無しさん
2011/01/03(月) 22:37:54c#のFormのデフォだと透明か色付きしかできなくて
半透明で塗りつぶすとかできないのよね
その代わりForm含む配下のコントロール全部を半透明とかできるけど
部分的にアルファ値を有効にするにはいろいろやらないとだめだったね
そのコードが手に入れば枠の中を完全な透明に近い色付きで塗れば
中もクリック判定が生きてくるんだけどね〜
0575デフォルトの名無しさん
2011/01/03(月) 23:48:07C#のFormクラスのイベントは別途拾いなおす必要があるのか?
http://youryella.wankuma.com/Library/Extensions/Form/LayeredWindow.aspx
参考にしたのはここ
>>573を参考に改造したのがこれ
http://ideone.com/7rfrI
メインのフォームのコードだけ張り替えてくれ
0576デフォルトの名無しさん
2011/01/04(火) 09:00:24http://www.mediafire.com/?rmwmk77pr6w5llf
+=直後 tab2回でラムダ式 一方、+=後スペースを入力しtab2回でデフォルト
C#オンリー
Express版はおそらく動かない
0577デフォルトの名無しさん
2011/01/04(火) 14:00:43はどのようにすればよいでしょうか?ひとつのクラスにあるプロパティやフィールドなどは取得できるのですが。。。
public class Child : IDataErrorInfo
{
public string Value{ get ; set ; }
public Error{ get ; }
public string this[string columnName] { get ; }
}
public class Parent{
public Parent() { _child = new Child() ; }
public Child _child ;
//複数の子が存在する
}
static void Main()
{
Parent _parent = new Parent();
}
の_parentからIDataErrorInfoのErrorを一括で取得したいです。
■ このスレッドは過去ログ倉庫に格納されています