ふらっと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
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を一括で取得したいです。
0578デフォルトの名無しさん
2011/01/04(火) 14:24:580579デフォルトの名無しさん
2011/01/04(火) 14:35:16GetInterFace("IDataErrorInfo" , true )で取得しようとしてもさっぱりうまくいきません;w;
やり方が違うのでしょうか?そもそもGetInterfaceで取得するのではないのでしょうか?
0580デフォルトの名無しさん
2011/01/04(火) 14:44:44get;じゃなくて、現在の値を調べてエラーを返さないといけない
0581デフォルトの名無しさん
2011/01/04(火) 14:47:53あるひとつのクラスの中に内包されているインスタンス化されたクラスで
IDataErrorInfoを継承したインスタンスを取得したいのです><
0582デフォルトの名無しさん
2011/01/04(火) 14:57:35public class Parent{
public Parent() { _child = new Child() ; }
public IList<Child> Children { get; private set; }
}
のようにできないか検討する。できない理由があるのであれば、
var errors = from p in _parent.GetType().GetProperties()
where typeof(IDataErrorInfo).IsAssignableFrom(p.PropertyType)
let val = (IDataErrorInfo)p.GetValue(_parent, null)
where val != null
select val.Error;
ただし_childはプロパティにしてね
0583デフォルトの名無しさん
2011/01/04(火) 15:45:18今回の仕様ではChildは実はStringと<T>(整数系)から派生したパターンがあり
一律にListに入れることが出来ません;w;あと、Linqも.net2.0指定のためこれまた
使えないのです ( ; w ; )
0584デフォルトの名無しさん
2011/01/04(火) 17:06:050585デフォルトの名無しさん
2011/01/04(火) 17:15:370586デフォルトの名無しさん
2011/01/04(火) 17:17:19実行時に別に用意したメッソドに処理させるってことじゃないの?
0587デフォルトの名無しさん
2011/01/04(火) 17:35:460588デフォルトの名無しさん
2011/01/04(火) 17:36:54すべてのクラスで使えるようにpublicで宣言した変数があるのですが、
Form1からモーダルで開いたForm2からだと、
Ownerプロパティを付けないと参照できないのは、そういうもんですか?
何か宣言する場所とか間違ってるんですかね?
Formも一応クラスですよね?
0589デフォルトの名無しさん
2011/01/04(火) 18:28:03インスタンスの概念をもう一度考えてみたほうがいい
仮に皆が財布持ってるとして、中身はそれぞれでしょ?
0590デフォルトの名無しさん
2011/01/04(火) 18:31:31public static class GlobalVariables {
0591590
2011/01/04(火) 18:34:21public static class GlobalVariables {
public static int Hoge;
}
これでグローバル変数。GlobalVariables.Hogeでどこからでもアクセスできる。
Formにpublic staticで宣言するよりは後で探して修正しやすいのでマシだと思う。
0592デフォルトの名無しさん
2011/01/04(火) 18:35:37ずっとFormひとつでしか勉強してないから、よくわかんね。
Formが財布ってわけ?
ひとつのプロジェクトでも同じクラスではないってこと?
0593デフォルトの名無しさん
2011/01/04(火) 19:57:16リサイズの仕方がよくわからない
これはもう完全につんだな
0594デフォルトの名無しさん
2011/01/04(火) 20:01:42おお来たか
すでに解決したか何かでこないかと思った
対策としてだけどFormをもう一枚作ってそっちをOpacityを限りなく0に近い数値にして
>>575の上に重ねてイベントをそっちで拾わせてウインドウサイズを変えればいいんじゃないかと・・・
0595デフォルトの名無しさん
2011/01/04(火) 20:04:420596デフォルトの名無しさん
2011/01/04(火) 20:17:38俺.AddOwnedForm(>>595);
こんな風に誰が主人かを新しく開くフォームに教えてやればいいのさ
0597デフォルトの名無しさん
2011/01/04(火) 20:27:19ありがとう
その手があったか、フォーム2枚作って、イベント取得用フォームから枠用フォームいじくってみる
0598デフォルトの名無しさん
2011/01/04(火) 22:01:460599デフォルトの名無しさん
2011/01/04(火) 22:19:16私はプログラム初経験でC#を学んでいるのですがC#は前提としてCやC++が出来ないと学ぶのは難しいでしょうか。
もう一つC#は何を作るのに向いていて何に向いていないのでしょうか。
皆さんコード関連の質問をしている所に突然馬鹿な質問ですがよろしくお願いします。
0600デフォルトの名無しさん
2011/01/04(火) 22:24:44>前提としてCやC++が出来ないと学ぶのは難しいでしょうか
noでありyesかなあ・・・まあ難しく考えないでやってみれば?
開発環境もタダだし、ネットで探せばある程度のことはできるから
>何を作るのに向いていて
乱暴な言い方をすればwindows関連のアプリ
>何に向いていないのでしょうか。
組み込み
0601デフォルトの名無しさん
2011/01/04(火) 22:32:10十分何とかなる。
いろんなプロジェクトで人のソース読む機会がたくさんあったってのも大きいから
独学だとわからんけど
0602デフォルトの名無しさん
2011/01/04(火) 22:34:230603デフォルトの名無しさん
2011/01/04(火) 22:35:48あれ・・・その程度の変更で動いた?
0604デフォルトの名無しさん
2011/01/04(火) 22:43:40こいつぁすげぇ、リサイズしまくっても固まらない
Form2枚作って連動させたら、なぜか途中でリサイズ不能になってつんでたところだ
でも、リサイズしまくるとスカウターがメモリ不足でぶっ壊れる
ttp://picopico2.dip.jp/app/data/1294147670782.jpg
↓
ttp://picopico2.dip.jp/app/data/1294147679836.jpg
原因と対策方法を考えるか
ところで、なんでこれでリサイズがめちゃくちゃになるのかわからないんだ
リサイズ用フォームと枠表示用フォームのサイズを連動させてるんだが
誰か理由を教えてくれ
■そーす
・リサイズ用フォーム
ttp://ideone.com/eSRba
・枠表示用フォーム
ttp://ideone.com/YFjLQ
■ぷろじぇくと
ttp://www.rupan.net/uploader/download/1294148467.zip
0605デフォルトの名無しさん
2011/01/04(火) 23:07:31回答ありがとございます。
皆さんが仰るとおり取り合えずC#を勉強してみようと思います。
0606デフォルトの名無しさん
2011/01/04(火) 23:09:24>C#は前提としてCやC++が出来ないと学ぶのは難しいでしょうか
そんな事は無い…と、思う。
文法が似てるだけで、かなりの別物になってるし。
けど、C#を学ぶ上での有利不利は抜きにして
C言語自体は、やっといて損は無いと思うよ。(C++にまでは手を出さなくてもいいけど)
Windowsアプリを造りたいなら、Win32APIの基礎も。(C#の開発で使う事が無くても、概念の理解に役立つ)
>何を作るのに向いていて
上で言われてるWindowsアプリに加えて、WebアプリのフロントエンドもC#で作れる。
(Silverlight想定)
0607aaaaaaaaaaa
2011/01/05(水) 00:48:40private void Form1_MouseUp(object sender, MouseEventArgs e)
{
moving = onResize = false;
GC.Collect();
}
0608デフォルトの名無しさん
2011/01/05(水) 01:05:21CもC++もやったことない人よりも、
半端にCとかC++触ってる人の方が C# わけわからないって言ってる気もするなぁ。
もちろん、C++使いこなしてる人は別ね。
0609デフォルトの名無しさん
2011/01/05(水) 01:43:350610デフォルトの名無しさん
2011/01/05(水) 05:03:30使ってみたいと思ったのですが、VS2010Expressにはテンプレートはないのですか?
またこのApplicationSettingsBaseの評判ってどうですか?
user設定をを保存する場所が固定とかいう話ですが、配布を考えた場合、
勝手にフォルダを作られると嫌がるユーザーは多いのでしょうか?
配布のときはフォルダが作られることをしっかり断っておくのがよいのでしょうか?
0611デフォルトの名無しさん
2011/01/05(水) 09:09:270612デフォルトの名無しさん
2011/01/05(水) 10:12:30public abstract class SomethingBase
{
public string Something
{
get
{
var field = typeof(ここに派生先のクラス).GetFields();
//処理
}
}
}
0613612
2011/01/05(水) 11:04:27var field = this.GetType().GetFields();
で取得できました・・・でもこれだとpublicのみしか見つけないのでGetFields()の引数に
BindingFlags.NonPublicを指定したのですが、これでもprivateなフィールドは発見できず・・・
しかもpublicなフィールドまで発見できなくなります(BindingFlags.NonPublic | BindingFlags.Public)
にしても駄目でした・・・
0614デフォルトの名無しさん
2011/01/05(水) 13:27:26解決してると思うが
取りあえずの解決策
frm.Size = this.Size;
の後ろにでも
frm.Location = this.Location;
いれてみたら?
0615デフォルトの名無しさん
2011/01/05(水) 17:19:09.NET Framework 3.5は.NET Framework 2.0を内包しているんでしょうか?
3.5を入れたら2.0アプリも動くのかということなんですが・・・
0616デフォルトの名無しさん
2011/01/05(水) 17:27:230617デフォルトの名無しさん
2011/01/05(水) 17:29:360618デフォルトの名無しさん
2011/01/05(水) 17:30:280619デフォルトの名無しさん
2011/01/05(水) 17:57:42ありがとうございます!!
0620デフォルトの名無しさん
2011/01/05(水) 19:43:010621デフォルトの名無しさん
2011/01/05(水) 20:07:52http://msdn.microsoft.com/ja-jp/library/system.reflection.bindingflags.aspx
>Public または NonPublic と共に、Instance または Static を指定する必要があります。指定しない場合、メンバが返されません。
0622デフォルトの名無しさん
2011/01/05(水) 20:36:372. dataSet1.ReadXml(reader, XmlReadMode.InferTypedSchema);
3. dataGridView1.DataMember = "entry";
4. dataGridView1.DataSource = dataSet1;
上を実行するとdataGridView1にカラムとデータがきちんと表示されます
でもtest.rssを加工する為に1.の所を
WebClient wc = new WebClient();
string str=wc.DownloadString("http://test.rss");
としてstrの文字列を操作します
そしてstrをXmlReaderの型のreaderに戻したいのですがどうすればいいですか
XmlReaderのインスタンスを作ってCreateメソッドやStreamReaderのインスタンスを作るときの
コンストラクタにstrを指定したりと色々やってみましたがうまくいきません
strをローカルファイルに保存すればXmlReader.CreateメソッドでXmlReaderの型のreaderを作れると思うのですが
文字列であるstrからXmlReaderの型のreaderを直接作るにはどうしたらよいでしょうか
0623デフォルトの名無しさん
2011/01/05(水) 20:47:12var xmlreader = XmlReader.Create(strreader);
0624622
2011/01/05(水) 21:29:52ありがとうございます 無事動きました
>>var strreader = new StringReader(str);
このたった1行が思い浮かばず延べ10時間以上悩みました・・・
MSDNのXmlReader クラスを読んでもString クラスを読んでもStringReaderの文字
すら見つからない中でどうすれば「StringReaderの型」を使えばいいと思い浮かぶのでしょうか
考えつく秘訣とかあったら教えて欲しいのですが
0625デフォルトの名無しさん
2011/01/05(水) 21:33:01C#(というか.net)にはこういう読み方できるといいな〜ってのは大体実装されてるから
分からないときはC# Reader stringとかでぐぐるといいよ
0626デフォルトの名無しさん
2011/01/05(水) 23:43:56定期的に真っ白になるや
>>614
もうあきらめ始めてる
枠だけの透明なフォーム作るだけなのに、簡単そうに見えてまるでできない
明日までがんばって駄目だったらもう何もかもあきらめる
0627デフォルトの名無しさん
2011/01/05(水) 23:52:21ならないぞw
0628デフォルトの名無しさん
2011/01/05(水) 23:59:33スマン、paintイベント死んでただけだった
0629デフォルトの名無しさん
2011/01/06(木) 01:14:08だから透明や半透明にした状態でリサイズすると固まったんだ・・・
死にたい・・・
0630デフォルトの名無しさん
2011/01/06(木) 01:16:58.NET Framework自体にバグあるの?
0631デフォルトの名無しさん
2011/01/06(木) 01:29:44windowsXP+2008expressだと問題ねーぞ
0632デフォルトの名無しさん
2011/01/06(木) 09:04:240633デフォルトの名無しさん
2011/01/06(木) 19:35:29取得したいのですがどうしたら良いでしょうか?
0634デフォルトの名無しさん
2011/01/06(木) 19:42:50XNAでゲーム作りたいんだけどお勧めの参考書とかある?
もうまったくの初心者なんだけど
0635デフォルトの名無しさん
2011/01/06(木) 19:44:01俺が持ってる奴すげーいい
0636デフォルトの名無しさん
2011/01/06(木) 19:49:35それを教えてよwお願いだよー
0637デフォルトの名無しさん
2011/01/06(木) 19:52:140638デフォルトの名無しさん
2011/01/06(木) 19:55:23貸してやれよ
0639デフォルトの名無しさん
2011/01/06(木) 20:00:260640デフォルトの名無しさん
2011/01/06(木) 20:02:55ありがとう、オフィス加減ってとこが出してるやつだな
0641デフォルトの名無しさん
2011/01/06(木) 20:04:08それ!
0642デフォルトの名無しさん
2011/01/06(木) 20:07:00ぐぐれば基本はでてくる
0643デフォルトの名無しさん
2011/01/06(木) 20:08:57http://sorceryforce.com/xna/tips.html
というかXNAよりSLでゲーム作った方がいいんじゃね?
0644デフォルトの名無しさん
2011/01/06(木) 20:11:16あと紙ゆえの読みやすさってのもある。お金があるなら本買えばいいよ。
効率よくやろうぜ。
0645デフォルトの名無しさん
2011/01/06(木) 20:11:59その通り
0646デフォルトの名無しさん
2011/01/06(木) 20:12:11おお、こんなサイトもあるのか助かるー
xbox用にゲーム作りたいんだよだからXNAの方が入りやすいと思って
0647デフォルトの名無しさん
2011/01/06(木) 20:13:250648デフォルトの名無しさん
2011/01/06(木) 20:15:32というかゲームループ部分が見えない仕様なのでゲーム製作初心者にはちとなれるまで面倒かもね
0649デフォルトの名無しさん
2011/01/06(木) 20:24:22What is SL?
0650デフォルトの名無しさん
2011/01/06(木) 20:28:23Microsoft Silverlight その7
http://hibari.2ch.net/test/read.cgi/tech/1288613056/
0651デフォルトの名無しさん
2011/01/06(木) 21:35:55セカンドライフを思い浮かべた人は30代
0652デフォルトの名無しさん
2011/01/06(木) 21:39:440653デフォルトの名無しさん
2011/01/06(木) 22:16:24visualC#上でSQLserverで作成したデータベースに接続したいのですがうまくいきません。
まず、SQLserverでデータベースを作り、C#上で接続する際そのデータベースを指定してもエラーが出ます。
また、C#上で新しくデータベースを作成しても、SQLserverからファイルを開くことができません。
拡張子やファイルの場所を変えてもうまくいきません。
どうしたらいいでしょうか?教えてください><
■ このスレッドは過去ログ倉庫に格納されています