ふらっとC#,C♯,C#(初心者用) Part43
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2009/07/26(日) 11:01:47「どんなにくだらないC#プログラミングに関する発言でも誰かが優しくレスをしてくれるスレッド」です。
ほかのスレッドでは恐ろしくて書き込めないような低レベル、もしくは質問者自身なんだか意味がよく分からない質問など、
勇気をもって書き込んでください。
内容に応じて、他スレ・他板へ行くことを勧められる、あるいは誘導される場合がありますがご了承下さい。
>>980を踏んだ人は新スレを建てて下さい。
>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。
前スレ
ふらっとC#,C♯,C#(初心者用) Part42
http://pc12.2ch.net/test/read.cgi/tech/1245836827/
0002デフォルトの名無しさん
2009/07/26(日) 11:02:42-----関連スレ
C#, C♯, C#相談室 Part53
http://pc12.2ch.net/test/read.cgi/tech/1245150671/
WPF(XAML,XBAP,.NET3.5)GUIプログラミング Part4
http://pc12.2ch.net/test/read.cgi/tech/1245384489/
----参考サイト
http://www.google.co.jp/
http://msdn.microsoft.com/ja-jp/library/default.aspx
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/
0003デフォルトの名無しさん
2009/07/26(日) 11:04:080004デフォルトの名無しさん
2009/07/26(日) 11:33:340005デフォルトの名無しさん
2009/07/26(日) 11:51:08親フォームを閉じたときに
子フォームを全部閉じたいのですが
どうすればいいんでしょうか?
0006デフォルトの名無しさん
2009/07/26(日) 11:58:54子フォームが親フォームを参照するんじゃなくて,親フォームが子フォームを参照するんだ
それなら親が子を閉じるのは何も難しくないし余計な依存もできない
0007デフォルトの名無しさん
2009/07/26(日) 12:46:11>>6のいう参照の向きがどうこうって話もちょっと意味不明だな。
なんでいきなりそんな話になるのかw
0008デフォルトの名無しさん
2009/07/26(日) 13:08:16たとえば子フォーム作るたびに、List<Form>とかに記録しとけばいいってことだろ
で、親が閉じるとき、いちいち子フォームをClose()してけばいい
これを子フォーム視点で考えて、「親が閉じたら自分も自動的に閉じさせるには?」
とか考えはじめるとめんどくさくなる
00095
2009/07/26(日) 13:28:30子formをnewした時の戻り値をlistに入れといて
それを使って消すようにする
0010デフォルトの名無しさん
2009/07/26(日) 13:37:520011デフォルトの名無しさん
2009/07/26(日) 13:38:29その部分だけクラス化しておくと後で再利用……しないかw
0012デフォルトの名無しさん
2009/07/26(日) 13:58:550013デフォルトの名無しさん
2009/07/26(日) 14:06:39C# - unsafeなポインタ演算ができるとか…
VB.NET - 初心者に「これならぼくにも使えそう」と淡い期待を抱かすことができるとか…
0014デフォルトの名無しさん
2009/07/26(日) 14:09:0800155
2009/07/26(日) 14:46:24子フォームのほうで、this.close()すればいいのか?
0016デフォルトの名無しさん
2009/07/26(日) 14:50:270017デフォルトの名無しさん
2009/07/26(日) 16:54:340018デフォルトの名無しさん
2009/07/26(日) 18:10:300019デフォルトの名無しさん
2009/07/26(日) 18:13:01何で親フォームから子フォームのFome.Close()を直接呼ばないんだ?
0020デフォルトの名無しさん
2009/07/26(日) 20:05:410021デフォルトの名無しさん
2009/07/26(日) 20:07:2400225
2009/07/26(日) 22:05:03インスタンスをとっておくってこと?
普通は子ウィンドウ作って、値渡してShowして終わりってかんじだから
0023デフォルトの名無しさん
2009/07/26(日) 22:44:14>8で詳しく書かれている通りじゃないか。
>20,21で書かれている方法もある。
ようするにわざわざ答えを貰っているその意味が分からないレベルなんじゃないのか?
コレクションという用語の意味が分からないなら、MSDNなりチュートリアルサイトなりで自分で調べろ。
いちいち人に聞くより既に解説されていることを理解した方が早いぞ。
0024デフォルトの名無しさん
2009/07/26(日) 23:49:160025デフォルトの名無しさん
2009/07/26(日) 23:52:51というのが正しいかどうかは保証しないよ?
0026デフォルトの名無しさん
2009/07/27(月) 00:06:01http://msdn.microsoft.com/ja-jp/cc300389.aspx
0027デフォルトの名無しさん
2009/07/27(月) 00:24:220028デフォルトの名無しさん
2009/07/27(月) 09:41:410029デフォルトの名無しさん
2009/07/27(月) 19:25:59その中にpublic partial class Form1 : Formがあって更にその中にメソッドとかイベントを詰め込んでいます
namespaceとか別のcsファイルを作って細かく分けた方がメンテナンスには有利でしょうか?
どういうときに分けた方がいいのかいまいちよく分かりません
オープンソースの2chブラウザtwintailのソース見ると非常に細かく分けてあって俺もこういう風に書いて見たいな
とあこがれがあったりします。
0030デフォルトの名無しさん
2009/07/27(月) 19:51:50partialで分けなきゃいけないほどバカでかいクラスは作らないのが基本
0031デフォルトの名無しさん
2009/07/27(月) 19:52:450032デフォルトの名無しさん
2009/07/27(月) 20:00:020033デフォルトの名無しさん
2009/07/27(月) 20:58:360034デフォルトの名無しさん
2009/07/27(月) 21:25:48原則としてクラスごとに分ける。
ただしそれほどの規模のものでなく、互いに密着して使うようなクラス群なんかは
1つのソースに書いたりする。また、クラス内クラスも使う。
ある程度の規模になったらフォルダごとに分ける。
同時にnamespaceも切る。
自分で把握できないくらいソースツリーがでかくなったときは、
まずnamespaceを切って交通整理をすることを考えると良い。
0035デフォルトの名無しさん
2009/07/27(月) 22:56:59規模が大きいなら適宜プロジェクトを切ってdllに分割する
0036デフォルトの名無しさん
2009/07/27(月) 23:28:50(確かにそういう効果も期待できなくはないが)再利用のしやすさを考えて、
というのが主な動機じゃないのかな。
再利用するつもりもないものを別プロジェクトに切り出す人はあまりいない気がするけど。
0037デフォルトの名無しさん
2009/07/27(月) 23:49:450038デフォルトの名無しさん
2009/07/28(火) 02:55:530039デフォルトの名無しさん
2009/07/28(火) 03:41:560040デフォルトの名無しさん
2009/07/28(火) 08:28:43ユーザのために生成されたスタートアップのコードなんだから。
0041デフォルトの名無しさん
2009/07/28(火) 09:59:54それが本体。
エディタで開いて見てみればわかることだが、Program.csの中にMain関数があって、
プログラムはそっからスタートするんだと思えばいい。
Windowsアプリでフォームが表示されるより前に何かやりたい時は、そこにコードを書き足す。
0042デフォルトの名無しさん
2009/07/28(火) 10:12:49MainしかないProgram.csって何?って聞いてるのだと思うが。
0043デフォルトの名無しさん
2009/07/28(火) 10:26:49>アプリケーションのメイン エントリ ポイントです。
0044デフォルトの名無しさん
2009/07/28(火) 11:37:42何か特別な理由がない限り、Program.MainをProgram.csから
別の場所に移すケースって無いと思うんだが。
標準があって無きが如しのC/C++ならともかく、
C#はVisual Studioのやることがデファクトスタンダードだから。
0045デフォルトの名無しさん
2009/07/28(火) 11:42:43string s;
string t;
string r;
if (s == t || r)
return;
このごく自然で人間の感覚に則した書き方がコンパイルエラー
0046デフォルトの名無しさん
2009/07/28(火) 11:43:290047デフォルトの名無しさん
2009/07/28(火) 11:50:39でもそれを許可すると可読性が低下しそう
比較元は必ず一つであることを保証した>>45の書き方に死角は無かった
C# 4.0で改定されるといいですね^^
0048デフォルトの名無しさん
2009/07/28(火) 11:52:190049デフォルトの名無しさん
2009/07/28(火) 11:52:23はい次の方どうぞ
0050デフォルトの名無しさん
2009/07/28(火) 11:54:16演算子の優先順位変えられるわけねーだろ
0051デフォルトの名無しさん
2009/07/28(火) 11:56:390052デフォルトの名無しさん
2009/07/28(火) 11:59:11まあそういう出自の人なんだろう。
0053デフォルトの名無しさん
2009/07/28(火) 12:02:11MSとか他のサンプルソースでけっこうMain移してるの多いよ
0054デフォルトの名無しさん
2009/07/28(火) 12:09:17このような形でListの中に入れるものを変える形でジェネリック関数を定義しようとしたのですが、
エラー CS1502: 'sample.Program.BuildList(out System.Collections.Generic.List<int>)' に最も適しているオーバーロード メソッドには無効な引数がいくつか含まれています。
エラー CS1503: 引数 '1': 'out System.Collections.Generic.List<T>' から 'out System.Collections.Generic.List<int>' に変換できません。
というエラーが出てしまいます。
public List<T> Build<T>()
{
List<T> list;
BuildList(out list);
Console.WriteLine(list.Count);
return list;
}
public void BuildList(out List<int> list)
{
list = new List<int>() { 1, 2, 3 };
}
public void BuildList(out List<string> list)
{
list = new List<string>() { "a", "b", "c", };
}
0055デフォルトの名無しさん
2009/07/28(火) 12:58:23ファイル数を減らすためじゃね
>>54
コンパイルエラーだからインスタンス生成関係ない
0056デフォルトの名無しさん
2009/07/28(火) 13:26:03失礼しました。コンパイルエラーを回避する実装法が分からないんです。
0057デフォルトの名無しさん
2009/07/28(火) 13:45:30Build メソッドを消して BuildList を呼ぶようにすればいい。
0058デフォルトの名無しさん
2009/07/28(火) 13:52:40提示した再現サンプルとしてはそうなりますね。
ただ、実際はBuild作業が長く、その中で使い分けたいんです。
また、Build()とBuildList()は別クラスの中にそれぞれあります。
0059デフォルトの名無しさん
2009/07/28(火) 14:05:10BuildはList<T>を返すってなってるけど、実際にはList<int>固定だったりしない?
>>54がどこまで再現してるコードなのかはよく分からないけど
0060デフォルトの名無しさん
2009/07/28(火) 15:04:26コンパイル時に型が確定するわけじゃないのでBuildListのオーバーロードは解決できない。
あとはoutはむやみに使わないことだな。
Build側でnewして参照を渡すか、BuldListでnewするなら戻値にするべきだろう。
0061デフォルトの名無しさん
2009/07/28(火) 15:57:10if (new []{t, r}.any(x => x == s))
0062デフォルトの名無しさん
2009/07/28(火) 16:39:31string -= int が出来ないのは犯罪的な理由を孕んでいる為ですか?
0063デフォルトの名無しさん
2009/07/28(火) 16:48:240064デフォルトの名無しさん
2009/07/28(火) 16:49:34文字列同士の減算をサポートしてるスクリプト言語はありそうな気がするな。
掛け算が出来るのは結構ある。
0065デフォルトの名無しさん
2009/07/28(火) 17:00:54で期待される結果が
"tes"
と
"es"
の二通りが存在するためやっぱだめじゃね?
0066デフォルトの名無しさん
2009/07/28(火) 17:07:42これが自然な発想
0067デフォルトの名無しさん
2009/07/28(火) 17:11:200068デフォルトの名無しさん
2009/07/28(火) 17:13:180069デフォルトの名無しさん
2009/07/28(火) 17:15:15"test" - "a"
の方が問題じゃね?
文字列 * 数値は分かりやすいけど、数値 * 文字列だと途端に意味不明に
* なのに交換法則が成り立たないのは気持ち悪い
0070デフォルトの名無しさん
2009/07/28(火) 17:16:36最初の、+= int だとintが文字列になって追加されるけど、-= int だとどういう結果が予測される?
0071デフォルトの名無しさん
2009/07/28(火) 17:16:43前を引くにはどうする?
0072デフォルトの名無しさん
2009/07/28(火) 17:17:15演算子の意味とか順序はきちんと規格で決められてることなんだし
個人の直感と食い違っていても規格書に従わなきゃならない
それがコンピュータ言語
0073デフォルトの名無しさん
2009/07/28(火) 17:20:050074デフォルトの名無しさん
2009/07/28(火) 17:26:131 = x
むしろこれが出来ないならそれが成り立つ方が気持ち悪い
0075デフォルトの名無しさん
2009/07/28(火) 17:27:550076デフォルトの名無しさん
2009/07/28(火) 17:28:26タコども
0077デフォルトの名無しさん
2009/07/28(火) 17:35:44→"test"
左辺が右辺の最後尾に存在しなかったので0の扱い
1-0
→1
007858
2009/07/28(火) 17:50:58BuildList()で返すべき型が、バイナリレベルで配置が決められてる
いくつか定義したstructのひとつになっています。
今は3つの型ごとに処理関数を用意していて構築手順が3段階あるので9個定義してると。
>>60
C++のtemplateと動作原理が違うのは知ってますが、
どういう記述ができないのかのドキュメントがあまり見当たらなくて困りますね。
最初は戻り値で返していたのですがエラーが出たのでoutに切り替えたわけです。(変わりませんでしたが)
最終的にベタのbyte[]にならすので、そこの部分まで一括で行うクラスを用意した方がいいのかもしれません。
0079デフォルトの名無しさん
2009/07/28(火) 17:59:09if (typeof(T) == typeof(int)) return (List<T>)(object)new List<int>() { 1, 2, 3 };
else if (typeof(T) == typeof(string)) return (List<T>)(object)new List<string>() { "a", "b", "c", };
else throw new ArgumentException();
}
こんなふうに実行時にやってしまうことはできる
outは原則使うな
0080デフォルトの名無しさん
2009/07/28(火) 18:15:38「変換できません」ってエラーが出てんだから
0081デフォルトの名無しさん
2009/07/28(火) 18:23:20凝ったことするには実行時にリフレクションで頑張るのが基本
0082デフォルトの名無しさん
2009/07/28(火) 20:52:120083デフォルトの名無しさん
2009/07/28(火) 21:35:13制約をつければ別だけど。
それでコンパイル時にはBuildList(out List<object>) で検索に行く。
BuildList(out List<int> list)
BuildList(out List<string> list)
と順に探すが一致するのものがないのでコンパイルエラー。
0084デフォルトの名無しさん
2009/07/28(火) 21:42:52ジェネリックの共変・反変はサポートされていないので
BuildList(out List<object>)が仮に定義されていたとしてもコンパイルエラーになる
C#4.0でジェネリックの共変・反変が制限つきでサポートされるけどList<T>には使えないと思われる
(List<T>は書き込みが可能なので型安全性が保証できないため)
0085デフォルトの名無しさん
2009/07/28(火) 23:23:38ただ、仕事を始めると、どちらかというと人と多くかかわる仕事でやりがいが出てきた。
いろいろ怒られたけど、楽しいと思えた。
そして昨日、ついにその部署の廃止が決まった。廃止というより仕事が完了したから解散か・・・
明日からC#.NETをやってもらうからと告げられた。
俺が分かる言語は、MOVE、COMPUTE、PERFORMです。
オブジェクト指向?なにそれ?Java?名前は知ってる。
さて、どうするかな・・・
今日は部署移動とPCのセットアップで時間使ったが明日からやらなくてはいけない。
0086デフォルトの名無しさん
2009/07/28(火) 23:25:290087デフォルトの名無しさん
2009/07/28(火) 23:26:11それだと
"test" + "0" が "test0" で、
"test0" - "0" が "test0" になるよ
0088デフォルトの名無しさん
2009/07/28(火) 23:30:03アマチュアが当り散らしてきます
0089デフォルトの名無しさん
2009/07/28(火) 23:31:490090デフォルトの名無しさん
2009/07/28(火) 23:47:11文字列の結合を加法とした場合、
ゼロ元は空文字列だが逆元は何なのかね?
0091デフォルトの名無しさん
2009/07/28(火) 23:47:200092デフォルトの名無しさん
2009/07/28(火) 23:56:23数学の本質が分かってないからinterestingでもないな。
0093デフォルトの名無しさん
2009/07/29(水) 12:55:37最初のモーダルも閉じてしまいます。
OpenFileDialog等だと大丈夫なのですが。
0094デフォルトの名無しさん
2009/07/29(水) 13:03:07public partial class Form1 : Form
{
public Form1() {
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e) {
Form1 f = new Form1();
f.ShowDialog();
}
}
99%なんかやらかしてます。
0095デフォルトの名無しさん
2009/07/29(水) 15:37:27ありがとうございます。
やらかしてました・・・。
DialogResult.OKのままでした・・・orz
0096デフォルトの名無しさん
2009/07/29(水) 18:25:32Processクラスを使用しコマンドラインプログラムをcmdで起動したいのですが、
スペースを含むフォルダにあるコマンドのパイプラインを使うコマンドの起動ができません。
Process.StartInfoのArgumentsの「"」の問題と思いますが、わかりますでしょうか?
info.FileName="cmd";で、
info.Arguments = @"/c ""c\a.exe"" | ""c:\b.exe""";
がダメで、「ファイル名、ディレクトリ名、またはボリューム ラベルの構文が間違っています。」になる。
info.Arguments = @"/c c:\a.exe | c:\b.exe";
info.Arguments = @"/c ""c:\a.exe""";
は成功します。@をとって\->\\、""->\"にしても同じです。よろしくお願いします。
0097デフォルトの名無しさん
2009/07/29(水) 18:38:36""c\a.exe"" | ""c:\b.exe""
これとかどう解釈するんだろう
0098デフォルトの名無しさん
2009/07/29(水) 18:49:270099デフォルトの名無しさん
2009/07/29(水) 18:53:03"/c \"\"F:\\User\\xxxxxxxx\\Documents\\Visual Studio 2008\\Projects\\test\\test\\bin\\Debug\\test1.exe\" | \"F:\\User\\xxxxxxxx\\Documents\\Visual Studio 2008\\Projects\\test\\test\\bin\\Debug\\test2.exe\"\""
0100デフォルトの名無しさん
2009/07/29(水) 18:54:290101デフォルトの名無しさん
2009/07/29(水) 19:03:360102デフォルトの名無しさん
2009/07/29(水) 19:47:26ttp://msdn.microsoft.com/ja-jp/library/362314fe.aspx
いわゆる逐次的文字列リテラルとか
個人的には>>98が正しいような気がする
0103デフォルトの名無しさん
2009/07/29(水) 19:55:13ありがとう!全体を更に\"さらに囲むとできました。
>>98
コロン抜けは書き損ねです。すいません。
0104デフォルトの名無しさん
2009/07/29(水) 20:16:10間違い
info.Arguments = @"/c ""c:\Program Files\aa.exe"" | ""c:\Program Files\bb.exe""";
正解
info.Arguments = @"/c """"c:\Program Files\aa.exe"" | ""c:\Program Files\bb.exe""""";
でした。お騒がせしました。
0105デフォルトの名無しさん
2009/07/29(水) 21:47:501行n列のcsvファイルがあって、これを一行ずつdouble型の配列に収めたいのですが、
ファイル参照の後、
string path = openFileDialog1.FileName;
string[] x = File.ReadAllLines(path);
で一旦stringで確保した後でconvert.ToDouble()
する感じでいいのでしょうか。もっといいやり方ってありますか?
string[]には「”4.2274893747417E-07”」みたいな感じで入ってます。
アドバイスお願いします
0106デフォルトの名無しさん
2009/07/29(水) 22:01:54よほどでかいファイルならともかく
0107デフォルトの名無しさん
2009/07/29(水) 22:07:40n行1列じゃなくて?
とりあえずTextFieldParser
0108デフォルトの名無しさん
2009/07/29(水) 22:09:12まあそういうこと聞いてるんじゃないんだろうとは思うが。
行が多いなら、StreamReaderで1行ずつ読みながらの方が望ましい。
楽したいならVBのTextFieldParser使うって手もなくはない。
0109デフォルトの名無しさん
2009/07/29(水) 22:10:37しかしそれってCSVって言うのか?やっぱりn列あるの?
0110デフォルトの名無しさん
2009/07/29(水) 22:11:59それだったらそれのやり方でいいと思う
0111デフォルトの名無しさん
2009/07/29(水) 22:22:53そういう出力のデータなんで・・・。>>110さんのイメージが適切です。(拡張子がcsvなだけ)
あと、縦がnで、横が1です。なんかすいません。
もうちょい頑張ってみます。ありがとうございます。
0112デフォルトの名無しさん
2009/07/30(木) 07:12:18最近は表示のみで使っていてわかりませんが、最初のころは編集できたはずなのです
なにが原因かわかる方いますか
0113デフォルトの名無しさん
2009/07/30(木) 11:30:02あるクラスの内部でスレッドを作成し、IDisposableを実装してスレッドを終了させるようにしました
しかし、明示的にDisposeを呼び出さない限り、プログラムが終了しないようです
スレッドが終了しないとアプリケーションが終了しない
↓
アプリケーションが終了しないとDisposeが呼び出されない?
明示的にDisposeを呼び出さず、プログラム終了時に正しく解放するにはどうすればいいんでしょう
0114デフォルトの名無しさん
2009/07/30(木) 11:31:27パラサイトルーチンでDisposeをクロージャに内包したらよいのでは?
0115デフォルトの名無しさん
2009/07/30(木) 11:39:180116デフォルトの名無しさん
2009/07/30(木) 11:45:11C#で出来ます?探しても見つからない・・・
>>115
同期オブジェクトでどうやったら出来るんでしょうか
0117デフォルトの名無しさん
2009/07/30(木) 11:46:190118デフォルトの名無しさん
2009/07/30(木) 11:47:00リフレクター使ってDisposeが呼び出されてるところの先頭アドレスを割り出す
その後main関数のアドレスも調べてオフセット値を調べ、ポインタ演算で目標アドレスを設定してDisposeを生成
0119デフォルトの名無しさん
2009/07/30(木) 11:51:020120デフォルトの名無しさん
2009/07/30(木) 11:57:260121デフォルトの名無しさん
2009/07/30(木) 12:50:21System*.dllとmscorlib.dll?
0122デフォルトの名無しさん
2009/07/30(木) 13:10:19C:\WINDOWS\Microsoft.NET\Framework内のDLLすべて
0123デフォルトの名無しさん
2009/07/30(木) 23:56:21fileSystemWatcherについて教えてください。
フォルダを監視して、ファイルの生成で処理をしたいのですが、ファイルの生成直後だと、ファイルができていないこともあるので、しばらくウエイトしてから処理をしたいと思います。
そこで、
private void fileSystemWatcher_Created(object sender, FileSystemEventArgs e){
MessageBox.Show(e.FullPath);
}
を
private void fileSystemWatcher_Created(object sender, FileSystemEventArgs e){
backgroundWorker_DoWork(this, DoWorkEventArgs.Empty);
}
private void backgroundWorker_DoWork(object sender, DoWorkEventArgs e){
Thread.Sleep(5000);
MessageBox.Show(e.FullPath);
}
}
としてみたところ、eが引き継がれないことがわかりました。
backgroundWorker_DoWork(this, DoWorkEventArgs.Empty);
のIDを.Equallとかしてもだめでした。
こういう場合は、どうすればよいでしょう?
0124デフォルトの名無しさん
2009/07/30(木) 23:57:58まず多重継承でfileSystemWatcher_Createdメソッドをオーバーライドした後、演算子のオーバーロードで中間言語単位のウエイトをかければいい
0125デフォルトの名無しさん
2009/07/31(金) 00:01:300126デフォルトの名無しさん
2009/07/31(金) 00:02:11decimal型って少数入れるときって、mつけますよね
decimal aaa = 0.1m;
じゃあ
decimal aaa = 1;
1はOK何でしょうか?
お願い教えてください
0127デフォルトの名無しさん
2009/07/31(金) 00:06:08http://msdn.microsoft.com/ja-jp/library/364x0z75%28VS.80%29.aspx
0128デフォルトの名無しさん
2009/07/31(金) 00:09:07>>125
はい。コンパイル通りません。
>>124
初心者にはすこしむずかしすぎます。
理解できた単語は、
fileSystemWatcher_Createdメソッドをオーバーライド
ウエイトをかける
だけです。
どうしたらいいでしょう。
0129デフォルトの名無しさん
2009/07/31(金) 00:29:570130デフォルトの名無しさん
2009/07/31(金) 00:48:59Microsoft Visual C# 2008 Express Editionで参照の追加をしてクラスライブラリを参照してるんですけど
クラスライブラリの内容を変更したとき、その内容が反映される(staticなら使用できるように)のは、何をやったタイミングで
反映されるのでしょう・・・
謎です・・・
0131デフォルトの名無しさん
2009/07/31(金) 00:58:52それを参照しているプロジェクトをリビルドすればいいんじゃね
0132デフォルトの名無しさん
2009/07/31(金) 01:00:27クラスライブラリをビルドしたのにもかかわらず!
眠れん。。。。
0133デフォルトの名無しさん
2009/07/31(金) 01:05:05うまくいきません
私が、なんか勘違いしてるのかも
もういっかいやってみま
0134デフォルトの名無しさん
2009/07/31(金) 01:11:28クラスライブラリのビルド先パスとプロジェクトからの参照先パスは合ってる?
0135デフォルトの名無しさん
2009/07/31(金) 01:13:450136デフォルトの名無しさん
2009/07/31(金) 01:16:27参照先のクラスライブラリの方に問題があるみたいです
なんか元々あったクラスは見えるのに新しく作ったクラスは登録されていないみたいです
うーん
明日に持ち越します
自分はもう少しがんがッてみます
0137デフォルトの名無しさん
2009/07/31(金) 01:22:330138デフォルトの名無しさん
2009/07/31(金) 01:32:21反映されたーキター
でも、本命は反映されてないオブジェクトブラウザ見ると
なんかクラスは3個の四角が線で結ばれているが
(参照先で見える参照元では見えない)反映してほしいのには「上の絵+手紙のマークがついてる」限界だZzz
0139デフォルトの名無しさん
2009/07/31(金) 01:34:09ありがとうございますたー^^Zzz
0140デフォルトの名無しさん
2009/07/31(金) 04:00:120141デフォルトの名無しさん
2009/07/31(金) 13:18:180142デフォルトの名無しさん
2009/07/31(金) 14:30:480143デフォルトの名無しさん
2009/07/31(金) 19:34:59ソリューションにライブラリのプロジェクト自体を追加して依存したほうが安心。
0144デフォルトの名無しさん
2009/07/31(金) 21:13:180145デフォルトの名無しさん
2009/08/01(土) 20:51:55143へのレスだったら、違う。
多分、意識しないでやっているとは思いたいけど、なんかやっていない臭がしたから。
1.ソリューションエクスプローラでは、複数の関連プロジェクトを登録できる。
これで、アプリとライブラリのプロジェクトを纏めておく。これは基本だよな?
2.アプリのプロジェクトから参照する時はライブラリのプロジェクトを指定。
これで、依存関係で、ライブラリプロジェクトに依存するようになる。
ビルド順序もライブラリが先にビルドされるように注意しとくと完璧。
こうしておくとライブラリを更新していたときには自動的にアプリも再ビルドされる。
もちろんbinフォルダにもライブラリの最新アセンブリがコピーされる。
何も考えなくていいんで楽チン。
ただこれは、そういうものと思って何も考えないでこうしてるだけだから、実際は問題
あるかも。
何か問題あるなら教えてくれ。
0146デフォルトの名無しさん
2009/08/01(土) 21:44:140147デフォルトの名無しさん
2009/08/01(土) 21:48:05マルチスレッドの中でメンバ変数を使うのですが、
その値をすべての場所で一致させるにはどうしたらいいですか?
0148デフォルトの名無しさん
2009/08/01(土) 21:48:48遅延評価を使って参照渡しされるポイントにブレークポイント仕掛ければいい
0149デフォルトの名無しさん
2009/08/01(土) 21:50:57Formsの単体テストって皆さんどうやって記述してます?
デバイスに依存する部分があって、
マウスカーソルをじかに読んだりする部分もあるから
どうやって書いたらいいのか途方にくれてしまって……。
0150デフォルトの名無しさん
2009/08/01(土) 21:51:260151デフォルトの名無しさん
2009/08/01(土) 21:51:59まずは量子レベルでのテストを兼ねて世界1で実験、
その後エラーなしの世界2で実験して差分検討法で一致させてる
0152147
2009/08/01(土) 21:54:49その瞬間は全部の場所で同じ値に変わるというのはOKですか?
0153デフォルトの名無しさん
2009/08/01(土) 22:00:06だからこそ遅延評価
総称関数でパックしてやれば評価されるタイミングは関数依存
だから大丈夫
0155デフォルトの名無しさん
2009/08/01(土) 22:06:22メンバ変数への参照が一箇所でも残されていれば大丈夫ということ
だから手ごろな無名関数でクロシージャ作ってやればおk
0157デフォルトの名無しさん
2009/08/01(土) 22:11:410158デフォルトの名無しさん
2009/08/02(日) 08:07:09で次の処理をするプログラムです。当然、DocumentCompleted
で次の処理をして行くのですが、そのサイトは表示後に
JavaScriptで描画している部分があって、完全に描画が終了
するまで若干のタイムラグが生じています。なので、
DocumentCompletedにそのまま記述しただけではうまく動作
しないので、今は、timerを使って次の処理のスタート時間
を遅らせていますが、スマートなやり方でないので、何か
うまい方法はないでしょうか。
0159デフォルトの名無しさん
2009/08/02(日) 13:56:120160デフォルトの名無しさん
2009/08/02(日) 15:45:30既に一定の市場が確保できているからそう簡単に廃れることはない。
だが年単位で推移を見ると市場規模が倍になったり逆に半分になったりはするだろう。
すると会社を大きくできるところがあるかと思えば大手でもつぶれるところが出てくる。
0161デフォルトの名無しさん
2009/08/02(日) 15:48:140162デフォルトの名無しさん
2009/08/02(日) 16:28:44(A)の部分でどうすれば文字列型の引数("あいうえお")を渡せばいいか分りません。
どうすれば new Type[0] の部分に引数 "あいうえお" を指定する事が出来ますか?
※引数を渡さないメソッドの呼び出しは普通に出来ています。
string assemblyPath = @"C:TestLibrary.dll";
Assembly asm = Assembly.LoadFrom(assemblyPath);
type = asm.GetType("TestClass");
insDll = Activator.CreateInstance(type);
//TestMethodメソッドの宣言・・・(A)
MethodInfo mi = type.GetMethod("TestMethod", new Type[0]);
string getMessage = Convert.ToString(mi.Invoke(insDll, null));
0163デフォルトの名無しさん
2009/08/02(日) 16:31:280164デフォルトの名無しさん
2009/08/02(日) 16:32:07思い込みは捨てて全体を見ようぜ
string getMessage = Convert.ToString(mi.Invoke(insDll, null));
なんでnullを渡してると思う?
0165162
2009/08/02(日) 16:33:07そうなんですか。てっきり(A)の部分でしなくちゃならないと思ってました。
因みに、
string getMessage = Convert.ToString(mi.Invoke(insDll, null));
の部分でメソッドに引数 "あいうえお" を渡す場合にはどうすれば良いでしょうか?
0166デフォルトの名無しさん
2009/08/02(日) 16:33:08> MethodInfo mi = type.GetMethod("TestMethod", new Type[0]);
第二引数の意味は知ってるよな?
0167デフォルトの名無しさん
2009/08/02(日) 16:36:480168デフォルトの名無しさん
2009/08/02(日) 16:37:33Object obj,
Object[] parameters
)
だろ、ヘルプ見ろよハゲ。
new object[]{ "あいうえお" }
0169162
2009/08/02(日) 16:40:17駄目でした。。。なぜ???困った。
これじゃ、動的ロードが出来ても肝心の引数を渡すが事が出来ない。。。
動的ロードしたい意味が無い。
object[] o = new object[1];
o[0] = "あいうえお";
string getMessage = Convert.ToString(mi.Invoke(insDll,o));
0170デフォルトの名無しさん
2009/08/02(日) 16:43:000171162
2009/08/02(日) 17:03:19やっぱり引数を指定するとエラーが出ます。
自分なりに(A)(B)に色々と引数を渡す為に試してみたのですが、
ことごとく「オブジェクト参照が存在しません。」みたいなエラーが出てしまいます。
どなたか具体的に引数を渡す方法をぜひお願いします。
//(A)
MethodInfo mi = type.GetMethod("TestMethod", new Type[0]);
//(B)
string getMessage = Convert.ToString(mi.Invoke(insDll, null));
0172デフォルトの名無しさん
2009/08/02(日) 17:15:19http://www.atmarkit.co.jp/fdotnet/dotnettips/389methodinvoke/methodinvoke.html
0173デフォルトの名無しさん
2009/08/02(日) 17:17:470175デフォルトの名無しさん
2009/08/02(日) 19:22:09webBrowserでドキュメントの読み込みが終了したタイミング
で次の処理をするプログラムです。当然、DocumentCompleted
で次の処理をして行くのですが、そのサイトは表示後に
JavaScriptで描画している部分があって、完全に描画が終了
するまで若干のタイムラグが生じています。なので、
DocumentCompletedにそのまま記述しただけではうまく動作
しないので、今は、timerを使って次の処理のスタート時間
を遅らせていますが、スマートなやり方でないので、何か
うまい方法はないでしょうか。
0176デフォルトの名無しさん
2009/08/02(日) 19:26:170177デフォルトの名無しさん
2009/08/02(日) 19:30:31JavaScript の最後にイベントくっつけるくらいしかないんじゃね?
0178デフォルトの名無しさん
2009/08/02(日) 19:33:41Formsの単体テストって皆さんどうやって記述してます?
デバイスに依存する部分があって、
マウスカーソルをじかに読んだりする部分もあるから
どうやって書いたらいいのか途方にくれてしまって……。
0179デフォルトの名無しさん
2009/08/02(日) 19:38:240180デフォルトの名無しさん
2009/08/02(日) 20:05:22使ったことないので知らない
0181デフォルトの名無しさん
2009/08/02(日) 23:25:37string[] ary = {...};
ary.Hoge(start,length);
みたいなメソッドありますか?
0182デフォルトの名無しさん
2009/08/02(日) 23:32:400183デフォルトの名無しさん
2009/08/02(日) 23:37:100184デフォルトの名無しさん
2009/08/03(月) 01:14:20雷みたいな水色のアイコンで、
ISDN.exeみたいな名前でした
0185デフォルトの名無しさん
2009/08/03(月) 01:16:31ildasmとReflector
0186デフォルトの名無しさん
2009/08/03(月) 02:08:50変更するにはどうすればよいでしょうか?
<title>太郎</title>
↓
<title>マイケル</title>
0187デフォルトの名無しさん
2009/08/03(月) 02:20:330188デフォルトの名無しさん
2009/08/03(月) 02:22:19こうやってみたが(結果がこうなってしまった|こんな例外が出た|こんなコンパイルエラー)
ぐらいは書けよ
0189デフォルトの名無しさん
2009/08/03(月) 09:29:42Regex regex = new Regex(@"(<title>)(.*)(</title>)");
string s = regex.Replace(html, @"$1マイケル$3");
0190デフォルトの名無しさん
2009/08/03(月) 12:56:41C# と VB.NET の質問掲示板 - ASP.NET
http://bbs.wankuma.com/index.cgi
0191デフォルトの名無しさん
2009/08/03(月) 13:04:100192デフォルトの名無しさん
2009/08/03(月) 13:04:41日本語でOK
0193デフォルトの名無しさん
2009/08/03(月) 13:14:24ああまたか、という感想しか湧かない。
0194デフォルトの名無しさん
2009/08/03(月) 13:26:150195デフォルトの名無しさん
2009/08/03(月) 13:28:550196デフォルトの名無しさん
2009/08/03(月) 13:34:470197デフォルトの名無しさん
2009/08/03(月) 15:18:08大抵単なるstatic変数で事足りるし。
0198デフォルトの名無しさん
2009/08/03(月) 15:37:53それを助長するような機能をわざわざ付けるわけがない
0199デフォルトの名無しさん
2009/08/03(月) 18:39:30一撃必殺でスレッドセーフを叩き潰す関数内staticは、無い方がいいだろうって所だと見た。
0200デフォルトの名無しさん
2009/08/03(月) 19:15:55どう実装されてんのかReflectorで見たら、ものすごい力技で笑った。
基本的にはインスタンスのメンバ変数なんだけど、それをうまくメソッドローカルな静的変数に見せかけてる
0201デフォルトの名無しさん
2009/08/03(月) 21:22:49ほーほー、スコープ的に他のメソッドから見えないようにしてるのかな?
と、尻馬に乗って試してみた。
Public Class Class1
Shared a As Integer
Dim a2 As Integer
Public Shared Sub Test()
Static Dim a As Integer
a = 0
End Sub
Public Sub Test2()
Static Dim a As Integer
a = 0
End Sub
Public Shared Property prop() As Integer
Get
Return a
End Get
Set(ByVal value As Integer)
Static Dim a As Integer
a = value
End Set
End Property
(続く)
0202デフォルトの名無しさん
2009/08/03(月) 21:24:50Get
Return a
End Get
Set(ByVal value As Integer)
Static Dim a As Integer
a = value
End Set
End Property
End Class
これの結果が
Int32 a2
Int32 $STATIC$Test2$2001$a
Int32 $STATIC$set_prop2$20118$a
Static Int32 a
Static Int32 $STATIC$Test$001$a
Static Int32 $STATIC$set_prop$0118$a
という感じになる。
Static とか Int32 は区別のためにつけた。
VBだとSharedがクラス変数っぽい。
0203デフォルトの名無しさん
2009/08/03(月) 21:26:41class Program {
static void Main(string[] args) {
Class1 cls = new Class1();
Type typ = typeof(Class1);
FieldInfo[] infos;
infos = typ.GetFields(BindingFlags.NonPublic
| BindingFlags.Instance
| BindingFlags.Static);
foreach (FieldInfo f in infos) {
Console.Out.WriteLine((f.IsStatic?"Static ":"") + f.ToString());
}
}
}
0204デフォルトの名無しさん
2009/08/03(月) 21:26:560205デフォルトの名無しさん
2009/08/03(月) 21:30:50Staticがクラス変数扱いになったのはCOMの影響。
0206デフォルトの名無しさん
2009/08/03(月) 21:32:120207デフォルトの名無しさん
2009/08/03(月) 21:34:590208デフォルトの名無しさん
2009/08/03(月) 21:48:27Cはやめて今日からC#するってうちの教授なにかんがえてんだよ・・・
そもそも俺プログラムなんてVBAしか知らないしorz
すまん、ぐちってみた
0209デフォルトの名無しさん
2009/08/03(月) 21:50:41でおk
0210デフォルトの名無しさん
2009/08/03(月) 21:53:200211デフォルトの名無しさん
2009/08/03(月) 21:56:04VB.NETってのをかますと勉強しやすいのか。
ってか、Cの授業自体、休憩時間とかしてたしな・・・
がんばってみるよ。そもそもHTML自体分からんのだがな。
何でも、formタグの中にある<input type="ほにゃほにゃ" name="ほにゃほにゃ2" size="30" maxlength="20">
ほにゃほにゃとほにゃほにゃ2を抜き出して表示させろだと。さて、イミフだ
0212デフォルトの名無しさん
2009/08/03(月) 21:58:54VBAできるっていったってそんな深くまで理解して使ってるわけじゃないだろ
0213デフォルトの名無しさん
2009/08/03(月) 22:05:020214デフォルトの名無しさん
2009/08/03(月) 22:09:420215デフォルトの名無しさん
2009/08/03(月) 22:11:45IEが不具合起こしたら手がつけられんからなー。
HTMLブラウジングそのものが目的じゃないんだったら避けたほうがいいんじゃないかな。
0216デフォルトの名無しさん
2009/08/03(月) 22:15:370217デフォルトの名無しさん
2009/08/03(月) 22:18:38それよりもC#覚える方がずっと大変だからがんばれ
0218デフォルトの名無しさん
2009/08/03(月) 22:42:53いろいろなアドバイスを頂、少し前向きに取り組んで意向と思います。
input type = A
name = B
value = C
html中のA,B,Cを取得して一覧表示させればいいみたいです。
とりあえず教授の話してることメモしてるのを読み直しとこんな感じみたいです。
なにか参考書を買ってがんばってみようと思います。
WebBrowserを使えばhtmlの表示とソースの取得は出来ると教えてもらいました。
まずはその辺から組み立てていこうと思います。
0219デフォルトの名無しさん
2009/08/04(火) 01:31:56まじめにやると意外と大変。多分、html tidyあたりでxhtmlに変換した上で、XMLDocumentで読み込むべきかな。
0220デフォルトの名無しさん
2009/08/04(火) 04:29:370221デフォルトの名無しさん
2009/08/04(火) 08:06:45それ、たぶん不可能だと思うんだけど・・・
教授にきちんと聞いたほうがいい。なんか聞き間違いとかあるんでない?
0222デフォルトの名無しさん
2009/08/04(火) 09:18:32GetElementByName
GetAttribute
InnerText
等を使えばいけると思うけど
0223デフォルトの名無しさん
2009/08/04(火) 09:20:43接続の際のID、パスワードをユーザーから隠したいのですが
どのような方法がありますでしょうか?
0224デフォルトの名無しさん
2009/08/04(火) 09:29:220225デフォルトの名無しさん
2009/08/04(火) 09:58:22すいません、どういうレベルでと聞かれるとどう答えればいいのかわからないのですが・・・。
とりあえず今、考えているのはIDやパスワードをWeb上のファイルから都度読み込んで
あくまでソース内にはIDやパスワードを入れておかないようにしようかと思っています。
他にいい方法があればと思って質問しました。
0226デフォルトの名無しさん
2009/08/04(火) 11:01:49いけるのか?
参考HPなにかありませんか?
0227デフォルトの名無しさん
2009/08/04(火) 11:19:31翻訳記事だけど、
ttp://japan.internet.com/developer/20051115/25.html
とかどう
0228デフォルトの名無しさん
2009/08/04(火) 11:20:210229デフォルトの名無しさん
2009/08/04(火) 11:37:18いや
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Me.WebBrowser1.Navigate("c:\hoge.html")
End Sub
Private Sub WebBrowser1_DocumentCompleted(ByVal sender As System.Object, ByVal e As System.Windows.Forms.WebBrowserDocumentCompletedEventArgs) Handles WebBrowser1.DocumentCompleted
Dim hdoc As HtmlDocument = Me.WebBrowser1.Document
Dim inputs As HtmlElementCollection = hdoc.GetElementsByTagName("input")
For Each inputElement As HtmlElement In inputs
Dim type As String = inputElement.GetAttribute("type")
Dim lvi As New ListViewItem(type)
Dim nsi As New ListViewItem.ListViewSubItem(lvi, inputElement.Name)
lvi.SubItems.Add(nsi)
Dim value As String = ""
Select Case type.ToLower()
Case "text"
value = inputElement.InnerText
Case "radio", "checkbox"
' 繝√ぉ繝・け縺輔l縺ヲ縺・k縺九←縺・°縺ョ蝣エ蜷・
value = inputElement.GetAttribute("checked")
' value縺ョ蝣エ蜷・
'value = inputElement.GetAttribute("value")
End Select
Dim vsi As New ListViewItem.ListViewSubItem(lvi, value)
lvi.SubItems.Add(vsi)
Me.ListView1.Items.Add(lvi)
Next
End Sub
という感じで組めば、リストビューにリストアップできるけど。
こういうことではないのか!?
0230デフォルトの名無しさん
2009/08/04(火) 11:40:05Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Me.WebBrowser1.Navigate("c:\hoge.html")
End Sub
Private Sub WebBrowser1_DocumentCompleted(ByVal sender As System.Object, ByVal e As System.Windows.Forms.WebBrowserDocumentCompletedEventArgs) Handles WebBrowser1.DocumentCompleted
Dim hdoc As HtmlDocument = Me.WebBrowser1.Document
Dim inputs As HtmlElementCollection = hdoc.GetElementsByTagName("input")
For Each inputElement As HtmlElement In inputs
Dim type As String = inputElement.GetAttribute("type")
Dim lvi As New ListViewItem(type)
Dim nsi As New ListViewItem.ListViewSubItem(lvi, inputElement.Name)
lvi.SubItems.Add(nsi)
Dim value As String = ""
Select Case type.ToLower()
Case "text"
value = inputElement.InnerText
Case "radio", "checkbox"
' チェックされているかどうかの場合
value = inputElement.GetAttribute("checked")
' valueの値の場合
'value = inputElement.GetAttribute("value")
End Select
Dim vsi As New ListViewItem.ListViewSubItem(lvi, value)
lvi.SubItems.Add(vsi)
Me.ListView1.Items.Add(lvi)
Next
End Sub
0231デフォルトの名無しさん
2009/08/04(火) 12:52:12C#じゃなくないですか?
C#.NET開発で、自分も似たようなことで悩んでいます。
パーサーというものの使い方がいまいちわからない……
0232デフォルトの名無しさん
2009/08/04(火) 13:00:39C#できるならVB.NETもできるようにならないともったいない。
だからってわざわざVB.NETで貼るのはどうかと思うけど。
0233デフォルトの名無しさん
2009/08/04(火) 13:09:19あ、そだった、すまん。C#でのソースを再レス
private void Form1_Load(object sender, EventArgs e){
this.WebBrowser1.Navigate(@"c:\hoge.html");
}
private void WebBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
HtmlDocument hdoc = this.WebBrowser1.Document;
HtmlElementCollection inputs = hdoc.GetElementsByTagName("input");
foreach(HtmlElement inputElement in inputs)
{
string type = inputElement.GetAttribute("type");
ListViewItem lvi = new ListViewItem(type);
ListViewItem.ListViewSubItem nsi = new ListViewItem.ListViewSubItem(lvi, inputElement.Name);
lvi.SubItems.Add(nsi);
string value = "";
switch(type.ToLower())
{
case "text":
value = inputElement.InnerText;
break;
case "radio":
case "checkbox":
value = inputElement.GetAttribute("checked");
//value = inputElement.GetAttribute("value");
break;
}
ListViewItem.ListViewSubItem vsi = new ListViewItem.ListViewSubItem(lvi, value);
lvi.SubItems.Add(vsi);
this.ListView1.Items.Add(lvi);
}
}
0234デフォルトの名無しさん
2009/08/04(火) 13:18:42すまん。よく使う言語がVB.NETのほうだもんだから、
時々こうC#スレでVB.NETのソースをはっつけてしまうことがある。
0235デフォルトの名無しさん
2009/08/04(火) 13:22:320236デフォルトの名無しさん
2009/08/04(火) 13:29:42別に言い訳ではないんだが。
0237デフォルトの名無しさん
2009/08/04(火) 15:41:05ファイル名順で入れたいのですが上手くいきません。
string[] fs = System.IO.Directory.GetFiles(フォルダ指定, "*.*");
Array.Sort(fs);
フォルダ内のファイルは
temp0・temp1・temp2……temp10
です。(拡張子略)
結果は
temp0・temp1・temp10・temp2……
となります。数字が二桁を超えるとおかしくなります。
0238デフォルトの名無しさん
2009/08/04(火) 15:55:300239デフォルトの名無しさん
2009/08/04(火) 15:56:43別におかしいわけではないよ。
そもそもエクスプローラとC#(というか.net)の文字列の比較方法が異なる
どのくらい分からんのかよく分からんので、適当にぐぐった結果はってみる
ttp://dobon.net/vb/dotnet/string/stringcomparer.html
ttp://nekoaruki.com/wp/posts/programming/csharp/1159.html
0240デフォルトの名無しさん
2009/08/04(火) 16:06:41>>239
ありがとうございます。
まさにエクスプローラの表示順にしたかったのです。
リンク先で可能そうです。ありがとうございました。
0241デフォルトの名無しさん
2009/08/04(火) 16:38:40気のせいかな・・・
0242デフォルトの名無しさん
2009/08/04(火) 16:46:03レジストリに使用する比較関数の項目があるんで変更も可能なはず
ロジックは相当複雑
0243デフォルトの名無しさん
2009/08/04(火) 16:49:35intuitive sortってやつだろ。XPの目玉機能だよ
>>240
Explorerと同じにするならStrCmpLogical使うべき。
0244デフォルトの名無しさん
2009/08/04(火) 20:47:02記憶があいまいですまないのだが、確かフレーム分割されてるとだめだよな
違ったっけ?
0245デフォルトの名無しさん
2009/08/04(火) 21:32:20そんなん、frames で取ればいいだろ。
適当言うなよハゲ
0246デフォルトの名無しさん
2009/08/04(火) 22:35:34いや、フレームごとに取得は無理だろ
一括で取得なら可能だけど。
まぁ、>>218がどこまで作るのか知らないけど
0247デフォルトの名無しさん
2009/08/04(火) 22:37:41あーやっぱXPから変わったんですか。
ありがとう
0248デフォルトの名無しさん
2009/08/05(水) 01:11:01Form2は1こしか作らせない。
Form1_loadあたりで、Form2を作っておきたい。
Form2の変数をForm1でも使いたい。
どのようにすればいいんでしょうか?
0249デフォルトの名無しさん
2009/08/05(水) 01:15:480250デフォルトの名無しさん
2009/08/05(水) 01:37:38Form1を半分隠すみたいなかんじで、
ボタン押すと、ぴーって出るみたいな
できないかな?
0251デフォルトの名無しさん
2009/08/05(水) 01:45:26いや、可能だよ
foreach (HtmlWindow f in this.webBrowser1.Document.Window.Frames)
{
HtmlDocument hdoc = f.Document;
// 以下略
}
0252デフォルトの名無しさん
2009/08/05(水) 01:51:270253デフォルトの名無しさん
2009/08/05(水) 06:16:53foreach (HtmlElement element in all_Input)
{
if (element.GetAttribute("type") == "hidden")
{
name = element.GetAttribute("name");
value = element.GetAttribute("value");
}
}
0254デフォルトの名無しさん
2009/08/05(水) 12:08:120255デフォルトの名無しさん
2009/08/05(水) 18:14:54dataGridViewなど設定や扱いが面倒なのは
以前どういう風に設定したのか忘れてしまって
(項目のコピペや自動で列が追加されないようにしたりなど)
毎回一から解説サイトとかを回って調べているのが激しく無駄な気がして
こういうことにならないように、あらかじめ設定したコントロールを
追加するだけで他のプロジェクトでも簡単に使える方法はないでしょうか?
例えば、
dataGridView.SelectRetuCopy()
dataGridView.SelectRetuDelete();
など毎回同じような動作をする機能をあらかじめ盛り込んでおきたいのです
0256デフォルトの名無しさん
2009/08/05(水) 18:22:460257デフォルトの名無しさん
2009/08/05(水) 18:41:16既存のコントロールを継承した独自のコントロールクラスを定義して、
それをフォームデザイナーで使ったりは普通にできるよ。
0258デフォルトの名無しさん
2009/08/05(水) 18:53:53既定のボタンを表している影だと思うのですが、出てこなくなりました
0259デフォルトの名無しさん
2009/08/05(水) 19:18:360260デフォルトの名無しさん
2009/08/05(水) 19:46:01ありがとうございました
0261デフォルトの名無しさん
2009/08/05(水) 19:51:19テキストボックスにUSB入力してボタンクリックしたらIEで表示させることって可能ですか?
0262デフォルトの名無しさん
2009/08/05(水) 19:54:540263デフォルトの名無しさん
2009/08/05(水) 19:59:04すみません。USBでなくURLでつ…
0264デフォルトの名無しさん
2009/08/05(水) 20:04:17private void fileSystemWatcher_Created(object sender, FileSystemEventArgs e){
MessageBox.Show("created!")
}
0265デフォルトの名無しさん
2009/08/05(水) 20:04:310266デフォルトの名無しさん
2009/08/05(水) 20:09:06出来ましたらヒントかなにかを……
0267デフォルトの名無しさん
2009/08/05(水) 20:14:10グーグルの使い方ぐらい覚えた方がいいよ
http://www.google.com/search?as_q=c%23+IE+%E8%B5%B7%E5%8B%95&num=100&hl=ja&ie=UTF-8&oe=UTF-8&btnG=Google+%E6%A4%9C%E7%B4%A2&as_epq=&as_oq=&as_eq=&lr=&as_ft=i&as_filetype=&as_qdr=all&as_occt=any&as_dt=i&as_sitesearch=
0268デフォルトの名無しさん
2009/08/05(水) 20:32:11ありがとうございます。
少し甘えすぎていました。すみません。
0269255
2009/08/05(水) 20:35:04>>257
どうもありがとうございます
皆さんはこういう場合どうしているんでしょうか?
毎回form1でガリガリ書いちゃうのかな
それとも継承したコントロールクラスを作ったりするのでしょうか?
0270デフォルトの名無しさん
2009/08/05(水) 20:46:39フォーム上のテキストボックスで入力された文字列で
「フィールド」の列をあいまい検索しようとしています。
DataView dv = new DataView(datatable);
dv.RowFilter = "フィールド like '*" + テキストボックス.Text + "*'";
この時に、特殊な文字列が入っているとエラーになります
[]%\<>+|^'"
だから、Replaceメソッドを使ってあらかじめ[]でそれらの文字をくくってやろうと
しました。
Joken = Joken.Replace("[", "ESCAPETemporary");
Joken = Joken.Replace("]", "[]]");
Joken = Joken.Replace("ESCAPETemporary", "[[]");
Joken = Joken.Replace("%", "[%]");
Joken = Joken.Replace("\\", "[\\]");
Joken = Joken.Replace(">", "[>]");
Joken = Joken.Replace("<", "[<]");
Joken = Joken.Replace("+", "[+]");
Joken = Joken.Replace("|", "[|]");
Joken = Joken.Replace("^", "[^]");
Joken = Joken.Replace("'", "''");
たのですが、くくってやるとエラーは出ないのですが検索にかかりません。
これらの文字をエスケープする方法を教えて下さい。
また、エスケープするのにわざわざReplaceでこうやって置き換える以外の方法があったら教えて下さい。
0271デフォルトの名無しさん
2009/08/05(水) 21:03:17_,∩_ _,∩_ _,∩_
(_____)ゝ、 (_____) y (_____)
/ :: :: :: ヽ 〉 /-‐:: ::‐-ヽ / / :: :: :: ヽ
_./ (・ )ll(・ ) ∨ _/ 0) i! 0) ∨ _/ ( ・)i!(・ ) ゙、_
// :: :: ∈ゝ :: ::ヽ // :: ‐-‐ :: ヽ // :: ー一 :: ヽ\
. ゝ/:: :: :: :: :: ::ヽ ゝ/ :: :: :: :: :: ヽ ゝ/ :: :: :: :: :: ヽく
 ̄ ̄ | ̄ ̄ | ̄ ̄  ̄ ̄ | ̄ ̄ | ̄ ̄  ̄ ̄ | ̄ ̄ | ̄ ̄
| | | | | |
⊂! !つ シ! !つ ⊂! !つ
ジャン♪
0272デフォルトの名無しさん
2009/08/05(水) 21:12:51LIKE演算子に使う文字列で[]使ってエスケープする必要があるのは[*%だけだぞ
'もエスケープが必要だがこれは'をもう一つ重ねることでエスケープする
String.Replaceで良いんじゃね Regex.Replace使っても良いけど
0273デフォルトの名無しさん
2009/08/05(水) 21:13:120274デフォルトの名無しさん
2009/08/05(水) 21:32:58そういうのはクエリのサニタイズと呼ばれる。
普通は入力値は直接テキスト処理せず、DBライブラリ側に処理させる。
C#だとどうやるのかは知らんけど、データソースオブジェクトを使ったらクエリ書く必要すらないんじゃね?
0275270
2009/08/05(水) 22:13:59指摘されてあらためてヘルプをよく読んだら、
フィールド名に使ってたらエスケープしないといけない文字列と
データの中でエスケープしないといけない文字列は違うということがわかりました。
[*%'
についておっしゃるとおりエスケープしたらうまくいきました。
ありがとうございました。
最初に想定していたよりも文字数が減ったのでReplaceでやることにします。
0276デフォルトの名無しさん
2009/08/05(水) 22:30:34VBのFormat、FormatNumber関数に相当するメソッドを
ご存知の方おられたら教えてください。
数値を三桁カンマ区切りにしたいというのが目的です。
0277デフォルトの名無しさん
2009/08/05(水) 22:31:41string.Format()
0278デフォルトの名無しさん
2009/08/05(水) 22:38:110279デフォルトの名無しさん
2009/08/05(水) 23:37:580280デフォルトの名無しさん
2009/08/06(木) 01:34:460281デフォルトの名無しさん
2009/08/06(木) 01:40:340282デフォルトの名無しさん
2009/08/06(木) 01:43:16で?
0283デフォルトの名無しさん
2009/08/06(木) 02:07:190284デフォルトの名無しさん
2009/08/06(木) 02:11:480285デフォルトの名無しさん
2009/08/06(木) 02:12:030286デフォルトの名無しさん
2009/08/06(木) 03:06:27next
0287デフォルトの名無しさん
2009/08/06(木) 08:23:280288デフォルトの名無しさん
2009/08/06(木) 10:15:150289デフォルトの名無しさん
2009/08/06(木) 10:23:46試用版ということなので、メインの機能の回数制限をつけようと思っているのですが
残り回数をレジストリに書き込んだ場合、ユーザーに書き換えられてしまう危険性がありますよね?
これをユーザーから編集不可にする方法はありますか?
0290デフォルトの名無しさん
2009/08/06(木) 10:44:330291デフォルトの名無しさん
2009/08/06(木) 10:48:440292デフォルトの名無しさん
2009/08/06(木) 10:49:54>>291
やはりそうですか。
機能限定版、もしくは正規版の機能充実に時間を使います。
ご回答、ありがとうございました。
0293デフォルトの名無しさん
2009/08/06(木) 10:52:49完璧な方法はないかも
究極はそもそもその機能を入れてないバージョンを別に作ることだがそれだと試用できないな
0294293
2009/08/06(木) 10:54:090295デフォルトの名無しさん
2009/08/06(木) 11:36:15ネット使って認証とかのレベルでやらないと無理。
0296デフォルトの名無しさん
2009/08/06(木) 12:06:00こんなの作りたかったけど難しい。
URLって簡単には取得できないのね。
舐めてたわ
0297デフォルトの名無しさん
2009/08/06(木) 13:01:34ページ変移もNavigatingイベントで拾える。
0298デフォルトの名無しさん
2009/08/06(木) 14:18:12例えば、グーグルとかで日本語検索したページをIEで表示させるとURLに検索文字が直接はいってしまう。
あと、フレーム分割されてるようなページだとうまくURL取得出来ないです
0299デフォルトの名無しさん
2009/08/06(木) 15:32:56後者は WebBrowser.Document.Window.Frames.Item(int) でなんとかできると思う
前者は日本語でおk
0300デフォルトの名無しさん
2009/08/06(木) 15:53:230301デフォルトの名無しさん
2009/08/06(木) 16:07:410302デフォルトの名無しさん
2009/08/06(木) 16:40:12Aを閉じてBというフォームを表示させたいんですが、どうすればいいでしょうか?
Aを閉じるとアプリケーション自体終了したり、AのVisibleをfalseにしたままだと
Bを閉じたときに、Aは非表示なだけで終了はしていませんよね?
0303デフォルトの名無しさん
2009/08/06(木) 16:47:22・ApplicationContextを使ってMainFormを差し替える
・Application.Run(new B())する前にAをShowDialogで表示する
0304デフォルトの名無しさん
2009/08/06(木) 17:03:53ありがとうございます。
0305デフォルトの名無しさん
2009/08/06(木) 21:09:45datagridviewを継承した独自のコントロールを
デザイナの左にあるコンポーネントに追加する方法ありますか?
コントロールのサイズを視覚的に調整したいので・・
0306デフォルトの名無しさん
2009/08/06(木) 22:01:03なーんか言ってることが意味不明だな、と思うのはたぶん俺だけじゃないと思う。
0307デフォルトの名無しさん
2009/08/06(木) 22:13:14同じプロジェクトならビルドすればいい
違うプロジェクトなら参照に加えればいい
0308デフォルトの名無しさん
2009/08/06(木) 22:21:580309296
2009/08/06(木) 22:24:07>>299さんのコード使わずとも何とかなりました。
ただ、JavaScriptで描画している部分はどうにもならない・・・
こればっかりは仕方ない見たいですね。
学校ではJava習ってるんで、C#を自主でやろうかな〜と思ってタブブラウザもどきを作っています。
0310305
2009/08/06(木) 22:50:05ビルドすれば左のコンポーネントのところに表示されるのですか?
継承しただけだと無理だと思うんだけど
継承したクラスを作ってその後どうすればいいんでしょうか?
0311デフォルトの名無しさん
2009/08/06(木) 23:04:200312デフォルトの名無しさん
2009/08/06(木) 23:17:00VS2005 Standard でだが。
using System.Windows.Forms;
namespace MyControl {
public class MyDataGridView : DataGridView {
}
}
0313デフォルトの名無しさん
2009/08/06(木) 23:18:080314デフォルトの名無しさん
2009/08/06(木) 23:28:22外から弄り放題だからコンポーネントとしては失格だし
0315296
2009/08/07(金) 00:12:14JavaScriptか・・・
専門学校のときに似たようなの作らされたっけ
なんか、
url = e.Url.ToString();
これでurlを取得しようとしたら、なんかJavaScript:false:
こんなわけ分からん値が取得してた気がする。面倒になって他の奴に投げたがなんだったんだろう。
0316デフォルトの名無しさん
2009/08/07(金) 00:28:08はじめからInkCanvasが用意されてるけど、これと似た自前のクラスを作ることになるのかな
0318デフォルトの名無しさん
2009/08/07(金) 00:42:44wiiリモコンとバランスボードを制御するとき
どちらか片方ずつなら制御できたのですが
両方を同時に制御するにはどうすればいいですか?
0319デフォルトの名無しさん
2009/08/07(金) 01:21:190320デフォルトの名無しさん
2009/08/07(金) 08:18:32実体はなんなの?
DLL?
Formにぺこって貼り付けるやつって、実体はなんですか?
0321デフォルトの名無しさん
2009/08/07(金) 08:25:13フォームデザイナーは見た目をいじるだけ。
あくまで出来上がるのはC#のソースコード。
ソースコードに何が書かれているかをよく見てご覧。
いくつか質問してるが、ソースコードに全部書いてある。
0322デフォルトの名無しさん
2009/08/07(金) 09:35:020323デフォルトの名無しさん
2009/08/07(金) 10:24:52それくらいググりなさいよっ、初心者のくせにっ!
http://blog.shos.info/archives/2005/02/c_tips_interface_abstract_clas.html
0324デフォルトの名無しさん
2009/08/07(金) 10:37:34インターフェイスという概念は必ずしもオブジェクト指向ではない。
0325デフォルトの名無しさん
2009/08/07(金) 12:09:59そうか?
interfaceではstaticメソッドが作れないわけだから、
interfaceを使うと出来上がるものが必ずオブジェクトになると思うんだが?
0326デフォルトの名無しさん
2009/08/07(金) 12:51:05ただし他から借りてきた概念だといいたいわけさ。
APIだってインターフェイスだがWin32APIはオブジェクト指向じゃないだろ。
COMやCORBAのインターフェイスになるとオブジェクト志向の風味が漂ってくる。
いわゆる分散オブジェクト。
0327デフォルトの名無しさん
2009/08/07(金) 13:25:460328デフォルトの名無しさん
2009/08/07(金) 13:43:14抽象クラスじゃできないことをインターフェースでやる場合もあるだろ
多重継承とか
0329デフォルトの名無しさん
2009/08/07(金) 21:11:200330デフォルトの名無しさん
2009/08/07(金) 21:15:15補色っていってもいろいろ定義がありそうだけど、
一番普通のは単にRGBの1の補数でいいんじゃないの?
0331デフォルトの名無しさん
2009/08/07(金) 21:17:06なるほど。thx。
0332デフォルトの名無しさん
2009/08/07(金) 23:22:32フレームに分かれていないページなら、CSSと画像などを気にしなければ簡単に作成することが出来ました。
ただ、フレーム分割されているページにも対応したプログラムの作成方法が分からず、そもそも出来るのかと頭を抱えています
0333デフォルトの名無しさん
2009/08/07(金) 23:32:400334デフォルトの名無しさん
2009/08/07(金) 23:36:000335デフォルトの名無しさん
2009/08/08(土) 00:03:56ウィンドウがリサイズされたとき
子のコントロールがそれに合わせてリサイズしたり移動したりするには
どうすればいいでしょうか
0336デフォルトの名無しさん
2009/08/08(土) 00:06:39取り敢えずDockとかAnchorとかを使うとか
0337デフォルトの名無しさん
2009/08/08(土) 04:05:46Image img = Properties.Resources.Image1;
のように、画像リソースを取得した場合って
img.Dispose();
しないとダメだったりする?
0338デフォルトの名無しさん
2009/08/08(土) 04:42:24不要
0339デフォルトの名無しさん
2009/08/08(土) 04:46:44行った場合って何か不都合が生じたりする?
0340デフォルトの名無しさん
2009/08/08(土) 06:51:290341デフォルトの名無しさん
2009/08/08(土) 09:16:54どうやって実装するばいいのか分からず悩んでいます。
HtmlDocument doc = webBrowser1.Document ;
textBox2.Text = doc.GetElementsByTagName("html")[0].OuterHtml ;
メインページのhtmlしか取得できません。
0342デフォルトの名無しさん
2009/08/08(土) 09:20:520343デフォルトの名無しさん
2009/08/08(土) 09:30:26Buttonがクリックされた時の処理はButtonが持っているべきだと思うのですが、これがVisual C#というものの特性なのでしょうか?
0344デフォルトの名無しさん
2009/08/08(土) 09:30:300345デフォルトの名無しさん
2009/08/08(土) 09:33:00ん?Controlだろ?
0346デフォルトの名無しさん
2009/08/08(土) 09:35:06全然おかしくない。いわゆる「処理の移譲」ってやつ。
JavaをはじめほとんどのGUIライブラリはこの考え方をもとにして設計されている。
0347デフォルトの名無しさん
2009/08/08(土) 09:56:220348デフォルトの名無しさん
2009/08/08(土) 10:04:36単純に考えれば,ボタンがクリックされたらButtonがフォームの「ボタンが押された時の処理」
を行うメソッドを呼び出すのが自然だけど,それではButtonが特定のフォームに依存してしまうので
それをうまく切り離すのが「委譲」の考え方。
0349デフォルトの名無しさん
2009/08/08(土) 10:14:36マウスがクリックされたときの動作を
ココのアプリケーションが実装するのはおかしいって言ってるようなもんだぞ。
0350デフォルトの名無しさん
2009/08/08(土) 10:21:14初心者ではなさそうだけど
0351デフォルトの名無しさん
2009/08/08(土) 10:29:36「家に入る=Event」というのは実現できないわけだし、
「ドア」単体には、そもそも「家に入る」というイベントを実現することは出来ない
というわかるようでわからない説明してみる
0352デフォルトの名無しさん
2009/08/08(土) 11:02:31で欠点が多かったから委譲モデルに変更された。
C#というか.NETのイベントはまさに委譲モデル。
0353デフォルトの名無しさん
2009/08/08(土) 11:30:51>>344
各フレームの情報が見たいのではなく、あくまでしたいのはwebbrowserで表示しているページのローカル保存です。
WebページをMHT形式(.mhtファイル)で保存するには?[C#、VB]
ttp://www.atmarkit.co.jp/fdotnet/dotnettips/690createmht/createmht.html
こんなの見つけたのでもう少しがんばってみようと思います
0354デフォルトの名無しさん
2009/08/08(土) 11:36:250355デフォルトの名無しさん
2009/08/08(土) 11:51:09あぁ、何か的外れなことをしようとしてるみたいですね。私。
VBAで表計算の自動化くらいしかしたことがなく、突然webのダウンロードソフトを作ってといわれてかなりテンパっています。
少し落ち着いて、考え直していこう「と思います。
理想。
1,IEの名前をつけて保存のようにメインページは任意の名前で保存
2,フレーム分割されているようなページの場合、それぞれを保存する。
こんな感じです。2のフレームページの保存は当然それぞれのhtml名で保存しなければいけないんですが・・・
難しいですね。プログラミングって。
0356デフォルトの名無しさん
2009/08/08(土) 12:05:450357デフォルトの名無しさん
2009/08/08(土) 12:48:26なんで?
0358デフォルトの名無しさん
2009/08/08(土) 13:16:39共同風呂で他人が入っている可能性があるのに電気消す馬鹿がどこにいる
0359デフォルトの名無しさん
2009/08/08(土) 13:32:08Resourcesの画像プロパティ参照するごとに毎回新しいインスタンスが作られてるよ
だからDisposeもやっとかないとメモリが無駄に食われる可能性がある
0360デフォルトの名無しさん
2009/08/08(土) 13:44:01ResourceManager.GetObjectを使ってるようだから、それも不正解。
毎回は作られない。
長く使用されずにGCで回収されてしまった場合や
意図的にDisposeされた場合は再ロードが発生する。
0361デフォルトの名無しさん
2009/08/08(土) 13:54:10Resources.Image1 == Resources.Image1
がfalse返したり、
using (var g = Graphics.FromImage(Resources.Image1)) {
// 適当に描画
}
this.BackgroundImage = Resources.Image1
で描画がまるで無視されたりするけど?
0362デフォルトの名無しさん
2009/08/08(土) 13:59:51下は意図的にDisposeしてるんじゃないの?
0363361
2009/08/08(土) 14:00:310364363=362≠361
2009/08/08(土) 14:01:31もう寝る。
0365デフォルトの名無しさん
2009/08/08(土) 14:01:41そりゃGraphicsはDisposeしてるがそれは全く関係ないだろ
0366デフォルトの名無しさん
2009/08/08(土) 15:10:390367デフォルトの名無しさん
2009/08/08(土) 16:36:28実際に動かすと>>359なので
同一インスタンスであるという保証も同一でないという保証もないという前提にして、
フォームのロードと同時にリソースを読み込んでフォームのメンバにキャッシュする。
Disposeはしないという使い方をしている。
0368デフォルトの名無しさん
2009/08/08(土) 16:44:21>>367
まーその辺は、1MBくらいの大きめの画像をループで1000回くらい呼び出して
メモリの消費量がどうなるか眺めればよさそうですな。
0369デフォルトの名無しさん
2009/08/09(日) 01:10:05規定のイベントには定義されていないみたいです。
どうにか実行できないでしょうか?
0370デフォルトの名無しさん
2009/08/09(日) 03:35:25デスクトップにカレンダーを表示するアプリの作成ページがあったと思うのですが、
どなたかURLを覚えている人いませんか?
探したけど見つからない。
0371デフォルトの名無しさん
2009/08/09(日) 03:39:38インデントをずらせ!化す!!
0372デフォルトの名無しさん
2009/08/09(日) 07:54:35ソースの中に
[ReadOnly(true)]とか
[Category("新規カテゴリ")]
という行がありました。
上記の"[ ]"
はどういうケースに使うのですか?
0373デフォルトの名無しさん
2009/08/09(日) 07:59:24http://homepage1.nifty.com/yasunari/VB/VB2005/WebBrowserMouseDownEvent.htm
0374デフォルトの名無しさん
2009/08/09(日) 08:00:08h抜いてると思ってくれ
0375デフォルトの名無しさん
2009/08/09(日) 09:06:49VBですか
何書いてるのかサッパリです^^
0376デフォルトの名無しさん
2009/08/09(日) 09:54:47それは属性という機能。
http://ufcpp.net/study/csharp/sp_attribute.html
0377デフォルトの名無しさん
2009/08/09(日) 17:02:05WPFである条件のときだけチェックボックスを表示したいです。
Formとおなじように、.csに、
if ( ) checkBox.Hide();
else checkBox.Show();
と書いたところ、
'System.Windows.Controls.CheckBox' に 'Hide' の定義が含まれておらず、型 'System.Windows.Controls.CheckBox' の最初の引数を受け付ける拡張メソッドが見つかりませんでした。using ディレクティブまたはアセンブリ参照が不足しています。
といわれました。
CheckBox chetkBox = new CheckBox();
checkBox.Hide();
としてもだめでした。
checkBox.Visibility = Hidden;
では、
名前 'Hidden' は現在のコンテキスト内に存在しません。
checkBox.Visibility = "Hidden";
では、
型 'string' を型 'System.Windows.Visibility' に暗黙的に変換できません。
でした。
どうすればいいでしょう?
0378デフォルトの名無しさん
2009/08/09(日) 17:09:440379デフォルトの名無しさん
2009/08/09(日) 17:18:32XamlのName属性は何になってる?
0380デフォルトの名無しさん
2009/08/09(日) 17:22:24いや、何でもない。
0381デフォルトの名無しさん
2009/08/09(日) 17:32:15ありがとうございます。
できました。
0382デフォルトの名無しさん
2009/08/09(日) 18:25:08fileSystemWatcherのファイルの生成の捕捉について教えてください。
IE7.0でファイルをダウンロードして、それを契機にアクションしたいと思います。
private void fileSystemWatcher_Created(object sender, FileSystemEventArgs e){//処理}
で監視しているのですが、ダウンロードのときだと、うまく監視できません。
別のフォルダから移動してくると、監視に成功します。
IEのダウンロードの場合は、Createdでは監視できないんですか?
0383デフォルトの名無しさん
2009/08/09(日) 18:38:580384デフォルトの名無しさん
2009/08/09(日) 19:11:32見栄えのいいフォームができないじゃないか。
C#ってこの程度のもんだったんだ…。
0385デフォルトの名無しさん
2009/08/09(日) 19:13:470386デフォルトの名無しさん
2009/08/09(日) 19:18:51大丈夫、君ならJavaでもC++でも見栄えの良いフォームを作れないさ
0387デフォルトの名無しさん
2009/08/09(日) 19:30:16ありがとうございます。
それでできないのですが、なぜでしょう?
もうすこし考えてみます。
0388デフォルトの名無しさん
2009/08/09(日) 19:48:53…女子高なので聞いても誰も知りません。
0389デフォルトの名無しさん
2009/08/09(日) 20:15:01使えるユーザーが限定されてしまうことかな。
0390デフォルトの名無しさん
2009/08/09(日) 20:24:070391デフォルトの名無しさん
2009/08/09(日) 21:01:210392デフォルトの名無しさん
2009/08/09(日) 21:03:15ありがとう。
では、WPFの方がこれから主流になるのかな。
0393デフォルトの名無しさん
2009/08/09(日) 21:06:10ttp://dobon.net/vb/dotnet/form/formregion.html
ココ見ればできる
0394デフォルトの名無しさん
2009/08/09(日) 21:06:32Regionプロパティつかう
0395デフォルトの名無しさん
2009/08/09(日) 21:08:12そこは見ましたが多角形のフォームが作れないんですよ
0396デフォルトの名無しさん
2009/08/09(日) 21:14:500397デフォルトの名無しさん
2009/08/09(日) 21:18:260398デフォルトの名無しさん
2009/08/09(日) 21:26:180399デフォルトの名無しさん
2009/08/09(日) 21:28:190400デフォルトの名無しさん
2009/08/09(日) 21:32:02Point[] points ={ new Point(0, 0), new Point(100, 300), new Point(200, 400),
new Point(300, 300), new Point(200, 200)
};
System.Drawing.Drawing2D.GraphicsPath path =
new System.Drawing.Drawing2D.GraphicsPath();
path.AddPolygon(points);
this.Region = new Region(path);
こんな感じにやってみたけど
0401デフォルトの名無しさん
2009/08/09(日) 21:41:000402デフォルトの名無しさん
2009/08/09(日) 21:43:000403デフォルトの名無しさん
2009/08/09(日) 21:43:48Point[] points =
{new Point(100, 400),
new Point(300, 300),
new Point(500, 400),
new Point(400, 200),
new Point(600, 100),
new Point(400, 100),
new Point(300, 000),
new Point(200, 100),
new Point(000, 100),
new Point(200, 200)};
こんな感じ。
あと types とフォームのサイズも増やしとけよ。
0404デフォルトの名無しさん
2009/08/09(日) 21:46:470405デフォルトの名無しさん
2009/08/09(日) 21:48:05SS見せてほしいんだけどw
0406デフォルトの名無しさん
2009/08/09(日) 21:53:01typesは関係ないのでは?
0407デフォルトの名無しさん
2009/08/09(日) 22:05:49pts 配列内の対応する各点の型を指定する PathPointType 列挙体の要素の配列。
の数と、増やした点の数って一致して無くてもいいの?
0408デフォルトの名無しさん
2009/08/09(日) 22:24:43テキストボックスの高さが自由になりません。
皆さんはどう工夫してますか?
0409デフォルトの名無しさん
2009/08/09(日) 22:29:500410デフォルトの名無しさん
2009/08/09(日) 22:32:440411デフォルトの名無しさん
2009/08/09(日) 22:33:30textBox.Multiline = true;
0412デフォルトの名無しさん
2009/08/09(日) 22:46:540413デフォルトの名無しさん
2009/08/09(日) 22:51:39何に対する何の位置が中央?
0414デフォルトの名無しさん
2009/08/09(日) 22:55:240415デフォルトの名無しさん
2009/08/09(日) 22:58:26垂直方向に対するテキストの位置。
うまく言えなくてごめん。
0416デフォルトの名無しさん
2009/08/09(日) 23:02:30位置固定するならテキストボックス使う意味ないじゃん
0417デフォルトの名無しさん
2009/08/09(日) 23:06:47常に垂直位置を中央に固定しておくと言うことは行数が増減する度に
テキストボックスの垂直方向のサイズを伸縮しなければ
追加した最後の行がコントロール内に収まらないだろ
0418デフォルトの名無しさん
2009/08/09(日) 23:19:030419デフォルトの名無しさん
2009/08/09(日) 23:20:17テキストボックスの水平方向のサイズを伸縮しなければ
追加した最後の桁がコントロール内に収まらないだろ
0420デフォルトの名無しさん
2009/08/09(日) 23:25:02あれだろ、Officeの縦位置。
0421デフォルトの名無しさん
2009/08/10(月) 00:38:47そういう疑問を感じる自分に疑問を感じようよ。
目的が全然違う。
ワードやエクセルの表セルやテキストボックスは、
(最終的に印刷されることを意識した)の文字列のレイアウトを
制御するためにある。
Windows FormのTextBoxは、あくまでユーザーからの文字入力を受け付けるためのもの。
0422デフォルトの名無しさん
2009/08/10(月) 01:49:37別に、垂直方向に中央があってもいいだろ。
目的とか関係なく。
見映えを考えたらやりにくくて仕方ないんだよ。
0423デフォルトの名無しさん
2009/08/10(月) 04:18:30大量の画像の描画を高速にするにはどうしたらいい?
0424デフォルトの名無しさん
2009/08/10(月) 04:28:160425デフォルトの名無しさん
2009/08/10(月) 04:58:02なるほど。
試しにDrawImage無くしても時間変化しなかった。
他の要因だ。thx。
0426デフォルトの名無しさん
2009/08/10(月) 05:22:260427デフォルトの名無しさん
2009/08/10(月) 06:52:250428デフォルトの名無しさん
2009/08/10(月) 08:03:150429デフォルトの名無しさん
2009/08/10(月) 08:17:250430デフォルトの名無しさん
2009/08/10(月) 08:17:340431デフォルトの名無しさん
2009/08/10(月) 11:15:100432デフォルトの名無しさん
2009/08/10(月) 12:10:37ラジオボタンで統一させたいんです。
ところで、これからはWPFの時代が来そうですか?
今からVSを学ぶならばWPFでしょうか。
0433デフォルトの名無しさん
2009/08/10(月) 12:33:51その方法じゃチェックを外すことは出来ないぞ。
>>432
なんでラジオボタンで統一するんだ?
複数チェックが可能ならチェックボックスにすべきだろ。
0434デフォルトの名無しさん
2009/08/10(月) 12:42:26パネルの中にパネルを碁盤上に敷き詰めて、
1つ1つにラジオボタンを入れたらできる?
0435デフォルトの名無しさん
2009/08/10(月) 12:51:04チェックボックスの□をラジオボタンの○にするような事が簡単にできる。
WPFやるのはWinFormsを使い慣れてからでも遅くはない。その頃にはVS2010出てるだろうしね。
0436デフォルトの名無しさん
2009/08/10(月) 12:59:34AutoCheck = falseにすれば普通にできるよ。
まあ、常識があれば出来てもやらないし、やるべきでないと思うけど。
ただし、その場合当然Clickイベント拾ってコードでCheckedを制御する必要がある。
0437デフォルトの名無しさん
2009/08/10(月) 13:02:33コンテナの上に配置する)って方法もある。
まあ、これも普通はやらんよね。
0438デフォルトの名無しさん
2009/08/10(月) 17:59:17そんなのはImageをセットしたラベルやボタンを使うことをお勧めしたい。
ラジオボタンにこだわる必要が全くない。
0439デフォルトの名無しさん
2009/08/10(月) 18:32:36必要な情報は自分でMSDN読んで調べられるようでないと無理。
それに,C#に加えてGUIデザイン専用の別の言語を覚えないといけない。
0440デフォルトの名無しさん
2009/08/10(月) 19:00:48確かになー。
オレも大概初心者レベルだが、オープンソースの色々なプロジェクトのソースコードを眺めてるけど
WPFで書かれたフォームは見たことないな。(IronPython Studioのプロジェクトを除く)
WPFはSliverlightで必須だったりExpressionでデザインできたりって話は聞くけど……ううむ。
0441デフォルトの名無しさん
2009/08/10(月) 19:22:560442デフォルトの名無しさん
2009/08/10(月) 19:42:03どの本の例文にもhttp……microsoft…みたいなwebアドレスが冒頭に記載されていた。
しかし、どの本もその説明がなかった。
あのアドレスは一体何?
解説書が解説の役目を全く果たしていない。
0443デフォルトの名無しさん
2009/08/10(月) 19:46:490444デフォルトの名無しさん
2009/08/10(月) 19:49:240445デフォルトの名無しさん
2009/08/10(月) 19:58:40質問です。
あのアドレスは何を意味しているのですか?
0446デフォルトの名無しさん
2009/08/10(月) 20:01:55http://msdn.microsoft.com/ja-jp/library/ms747086(VS.80).aspx
0447デフォルトの名無しさん
2009/08/10(月) 20:26:55private void button1_Click(object sender, EventArgs e)
{
Rectangle rc = this.Bounds;
Bitmap bmp = new Bitmap(
rc.Width, rc.Height, PixelFormat.Format32bppArgb);
using (Graphics g = Graphics.FromImage(bmp))
{
g.CopyFromScreen(rc.X, rc.Y, 0, 0,
rc.Size, CopyPixelOperation.SourceCopy);
}
}
このような形で取得した画像をEXCELに貼り付け保存したいのですが、どのようなコードを書けばいいのでしょうか?
上記のサイトを参考に、スクリーンショットは取得でいるようになったのですが、EXCELとの連携がうまくいきません。
0448デフォルトの名無しさん
2009/08/10(月) 20:41:30VB6の記事だがまあ参考になるんじゃない
0449デフォルトの名無しさん
2009/08/10(月) 22:15:53this.TransparencyKey = Color.Red;
label1.BackColor = Color.Transparent;
と設定して、
label1.Imageに黒から透明のグラデーションのPING画像を設定すると、
透明の部分が赤色になります。
どうにかしてlabel1を黒から透明のグラデーションで表示できないでしょうか?
0450デフォルトの名無しさん
2009/08/10(月) 22:33:47君は自分自身でも何がやりたいのかよく分かってないのと違う?
何がいいたのかよくわからんけど。
0451デフォルトの名無しさん
2009/08/10(月) 22:39:390452デフォルトの名無しさん
2009/08/10(月) 22:46:18フォームも透明にしてるんだし透明ですよ
0453デフォルトの名無しさん
2009/08/10(月) 23:09:23意味の分からんこと言ってないでググれ。
http://blogs.wankuma.com/youryella/archive/2007/10/15/102151.aspx
0454デフォルトの名無しさん
2009/08/10(月) 23:15:03抜き色を赤に設定してるんだから、赤っぽい色は透過されないに決まってるだろ。
0455デフォルトの名無しさん
2009/08/10(月) 23:20:51だからそれが出来ないのかなと聞いたんですけど?
0456デフォルトの名無しさん
2009/08/10(月) 23:23:31真面目な話、そもそも君が何がをやりたいのかサッパリ伝わってないと思うから、
そこをきちんと分かるように説明しないと、出る答えも出ないと思うけど。
0457デフォルトの名無しさん
2009/08/10(月) 23:26:16>どうにかしてlabel1を黒から透明のグラデーションで表示できないでしょうか?
>どうにかしてlabel1を黒から透明のグラデーションで表示できないでしょうか?
>どうにかしてlabel1を黒から透明のグラデーションで表示できないでしょうか?
0458デフォルトの名無しさん
2009/08/10(月) 23:28:47TransparencyKeyはARGB完全一致してる色のみの透過
0459デフォルトの名無しさん
2009/08/10(月) 23:35:24だから黒から透明のグラデーションってどういう意味だ、って聞いてるんだがな・・・
っていうか、こっちは親切心で聞いてるのにそういう態度取るのかよ。
人間のクズだなお前さんは。
0460デフォルトの名無しさん
2009/08/10(月) 23:40:26>453 で書かれてるやりかたはお前のやり方と全然違うだろ。
ソースコード見てから話をしろ。
0461デフォルトの名無しさん
2009/08/10(月) 23:48:50こんなん
ttp://uproda.2ch-library.com/158662c61/lib158662.jpg
0462デフォルトの名無しさん
2009/08/10(月) 23:59:42ttp://uproda.2ch-library.com/158665Eu5/lib158665.jpg
0463デフォルトの名無しさん
2009/08/11(火) 00:10:230464デフォルトの名無しさん
2009/08/11(火) 00:26:31XMLもわからないのにWPFに手を出すのが間違ってる
WPFはこれまでのノウハウが通用しないし
深く理解しようとするとDirect3Dの知識が必要になったりして結構難しいんだよな
0465デフォルトの名無しさん
2009/08/11(火) 00:28:55オマエら本当に分かってレスしてるのか?w
0466デフォルトの名無しさん
2009/08/11(火) 00:30:19偉いだろ?
0467デフォルトの名無しさん
2009/08/11(火) 00:31:13ウィンドウの透明度を部分的に変える、なんてベタな方法では無理だろうね。
ググってたらこういうのがあった。
Win32APIのUpdateLayeredWindowを使うらしい。
あまりお手軽ではなさそうだ。
http://yellow.ribbon.to/~azumaya/doc_dotnet_uplayeredwnd.php
0468デフォルトの名無しさん
2009/08/11(火) 00:48:28お前が親切丁寧に教えてやれよ。気が付いたら代わりに実装してたなんて事になっても知らんけど
0469デフォルトの名無しさん
2009/08/11(火) 06:12:44http://www.google.co.jp/search?q=XML+%E5%90%8D%E5%89%8D%E7%A9%BA%E9%96%93+URI
0470デフォルトの名無しさん
2009/08/11(火) 07:57:34そ
0471デフォルトの名無しさん
2009/08/11(火) 08:03:36960×680のフォームに、
パネルを3列敷き詰めて、各パネルに社員情報、商品情報、売上情報を表示させたいと思っていますが、
情報量が多く1フォームに入りきりません。
なので、各パネルを、編集時のみ大きく表示し、その間、他の非表示パネルを縮小させることにより、常に全項目を一覧把握できるようにしたいと思っています。
これは可能でしょうか?
教えてください。
0472デフォルトの名無しさん
2009/08/11(火) 08:04:50ですが、
「非表示パネル」ではなく
「非編集パネル」のまちがいです。すみません。
0473デフォルトの名無しさん
2009/08/11(火) 08:05:43でもいろいろコードごりごり書かないとだめかな。
0474デフォルトの名無しさん
2009/08/11(火) 09:26:110475デフォルトの名無しさん
2009/08/11(火) 10:17:47一旦表示状態をBITMAPにキャプチャして、
フォーム本体は非表示にしてから
縮小したBITMAPを表示することで切り替えたらいいんじゃね?
でも一般的なUIの動きじゃないから、
自然に見えるようになるまでにかなり試行錯誤しないといけないだろうけどね。
うまくできたらこのスレで紹介してくれ。
0476デフォルトの名無しさん
2009/08/11(火) 11:02:40項目がにゅーっと広がるようなのは難しいけど
ボタンを押したときにフォームの表示変えることぐらいは可能かと。
それぞれの項目のコントロール作って
それを表示・非表示(コントロールの追加・削除)でできそうだけど。
0477デフォルトの名無しさん
2009/08/11(火) 11:25:27WPFなら簡単だけどねー
0478デフォルトの名無しさん
2009/08/11(火) 11:58:120479デフォルトの名無しさん
2009/08/11(火) 11:59:24かつ画像なしならGDI+で書いてやっても十分行けると思うけどね。
この条件を一つでも満たさないなら無謀に思える。
そんなことするより、今時LCDなんて馬鹿みたいに安いんだから
素直に画面増やした方が結局低コストで使いやすいソフトになるんじゃないのかな。
それが許されない事情があるとしても、もっと他の工夫を考えたほうがよさそうに思える。
0480デフォルトの名無しさん
2009/08/11(火) 12:25:42リストボックスに表示されている最上段のインデクスを取得したいです。
たとえばインデックスが10として10の取得方法です。
0481デフォルトの名無しさん
2009/08/11(火) 12:34:33TopIndexプロパティ辺りじゃね
048210
2009/08/11(火) 12:36:18リストボックスに表示されている最上段のインデクスを取得したいです。
(選択されていません)
たとえばインデックスが10として10の取得方法です。
0484デフォルトの名無しさん
2009/08/11(火) 12:48:01て事じゃなくて?
0485デフォルトの名無しさん
2009/08/11(火) 12:51:14じゃないの?
0486デフォルトの名無しさん
2009/08/11(火) 12:53:09listbox.Items.Count
デフォルトだと最上段のindexは0になってると思う
逆に最下段だったらlistbox.Items.Count-1
表示枠に全アイテムが収まってなくて、表示されてるなかでの最上段〜
とかだったらちょとめんどくさそう。
0487デフォルトの名無しさん
2009/08/11(火) 13:08:01オーナー描画使えばインデックスはわかるから
なんとかなりそうだけど…。
フォームに変数用意して。
0488デフォルトの名無しさん
2009/08/11(火) 13:19:440489デフォルトの名無しさん
2009/08/11(火) 13:36:01解説
初期状態では、インデックス位置 0 の項目が ListBox の表示領域の先頭に示されます。
ListBox の内容がスクロールされると、別の項目がコントロールの表示領域の先頭に示されることになります。
このプロパティを使用して、ListBox の ListBox..::.ObjectCollection 内にある、
現在コントロールの表示領域の先頭に示されている項目のインデックスを取得できます。
このプロパティを使用すると、コントロールの表示領域の先頭に当たるリスト部分に項目を配置することもできます。
0490デフォルトの名無しさん
2009/08/11(火) 15:15:170491デフォルトの名無しさん
2009/08/11(火) 20:41:25ある部分に配置されたパネルなどのコントロールのキャプチャを取得し、
別のパネルに表示させることはできますか?
0492デフォルトの名無しさん
2009/08/11(火) 21:41:03質問する前にググってるよね?
確認するよ。
質問する前に検索して調べたよね?
すぐ出てきたよ!
http://www.atmarkit.co.jp/fdotnet/dotnettips/428screencapture/screencapture.html
0493デフォルトの名無しさん
2009/08/11(火) 21:49:44491もアレだけど、それは491の要求してるものと違うでしょ。
例えばキャプチャされる側のコントロールの上に他のウィンドウがオーバーラップ
してたらどうなる?
0494デフォルトの名無しさん
2009/08/11(火) 22:10:07http://msdn.microsoft.com/ja-jp/library/system.net.networkinformation.ping(VS.80).aspx
>Ping クラスの同じインスタンスを使用して、複数の ICMP エコー要求を同時に生成することはできません。
>SendAsync の呼び出し中に Send を呼び出したり、SendAsync を前回の呼び出しがすべて完了する前に
>複数回呼び出したりすると、 InvalidOperationException が発生します。
とありますが、同時に複数実行する必要があります。
この場合、どうすればいいでしょうか?
0495デフォルトの名無しさん
2009/08/11(火) 22:15:300496デフォルトの名無しさん
2009/08/11(火) 22:25:060497デフォルトの名無しさん
2009/08/11(火) 22:53:51ヤフッていました。
ググってはいませんでした。
めんぼくないです。
0498デフォルトの名無しさん
2009/08/11(火) 22:55:15あるフォームだけをキャプチャできるのかな。
15インチでも17インチでも。
0499デフォルトの名無しさん
2009/08/11(火) 22:56:09パネルだけをキャプチャできるの…?
座標を指定すればいいのか
(-_-;)。
0500デフォルトの名無しさん
2009/08/12(水) 23:55:39ビングれ
0501デフォルトの名無しさん
2009/08/13(木) 03:29:45RenderTransformを使う以外にいい方法ありますか?
0502デフォルトの名無しさん
2009/08/13(木) 03:33:590503デフォルトの名無しさん
2009/08/14(金) 00:14:22いけないのに、取り出すときはobject型で返すためいちいちキャストして
やらないといけません。
何でこんな仕様になっているのでしょうか?
指定した型どおりに返してくれれば楽なんですが。
0504デフォルトの名無しさん
2009/08/14(金) 00:24:31とか普通に型指定で取得できるけど
0505デフォルトの名無しさん
2009/08/14(金) 00:37:00そんな方法があったのですね・・・。
ありがとうございました。
0506デフォルトの名無しさん
2009/08/14(金) 01:09:10ああ、確かに。簡単に変えられますね。
画像の拡大縮小、移動を出来るようにしました。ズームする際にクライアント領域(Canvas領域)の真ん中を
中心点に置くようにして、実際に等倍の状態ではうまく動くようになったのですが、
縮小したあと適当に移動して、ズームすると想定外の動きをします。
MainImage.cs中の
cp = new Point(cnvs.ActualWidth / 2, cnvs.ActualHeight / 2);
ip = cnvs.TranslatePoint(cp, this.Image);
で、Point型ipにおかしな値が入るのでこれが臭いのですが、いまいち原因がつかめません。
↓文章ではうまく説明できないのでソース見てください・・・
ttp://www.42ch.net/UploaderSmall/source/1250178864.zip
0507C ◆qfIRlkSVxbFr
2009/08/14(金) 08:35:53vista + C# express edition + excel2007です
参照設定で参照の追加でcom タブでmicrosoft excel5.0をみると
microsoft excel5.0 ?????????? と出てるんですけど・・・
これって一体・・・・2007以前のexcel入れれば治るのでしょうか?
XP + C# express edition + Excel2003 の環境では、オブジェクトライブラリ(半角カナ)と読めるのですが
これってVistaのバグですか?
0508デフォルトの名無しさん
2009/08/14(金) 11:02:41逆にコントロールの幅から表示できる文字数を取得する方法ありますか?
1文字づつ増やしながら、幅がコントロールの幅を超えるまでループする方法
だと遅くて使い物になりませんでした。
0509デフォルトの名無しさん
2009/08/14(金) 11:14:06つかえばいいよ
0510デフォルトの名無しさん
2009/08/14(金) 11:14:54等幅フォントなら自分で計算できる。
等幅フォントじゃないなら、文字数なんて表示する文字依存だから計算不能。
0511デフォルトの名無しさん
2009/08/14(金) 11:32:31VC#向けの代表的な関数ライブラリ?の
系統図(クラスツリー?)見ないなのが解説してあるサイトありませんか?
0512デフォルトの名無しさん
2009/08/14(金) 11:45:44どうして復号できないのかきっと間抜けな漏れに教えてください。
public byte[] ByteXor(byte[] dat, byte[] account, byte[] password)
{
int len_data = dat.Length;
int len_account = account.Length;
int len_password = password.Length;
for (int i = 0; len_data > i; i++)
{
int ap = i % len_account;
int pp = account[ap] % len_password;
dat[i] = (byte)(dat[i] ^ password[pp]);
}
return dat;
}
0513デフォルトの名無しさん
2009/08/14(金) 12:02:12どうしてそんな値を取得する必要があるんだろう。
必要だと思い込んでるだけじゃないのかな?
普通はいらないと思うけど。
0514デフォルトの名無しさん
2009/08/14(金) 13:02:46試しけど問題なく復号できたぜ
string dat = "これをみられたらわれわれはおしまいだ";
string account = "名無しさん";
string password = "秘密";
byte[] crypt = ByteXor(
Encoding.Unicode.GetBytes(dat),
Encoding.Unicode.GetBytes(account),
Encoding.Unicode.GetBytes(password)
);
string decrypt = Encoding.Unicode.GetString(ByteXor(
crypt,
Encoding.Unicode.GetBytes(account),
Encoding.Unicode.GetBytes(password)
));
MessageBox.Show(decrypt, "hoge");
0515デフォルトの名無しさん
2009/08/14(金) 13:07:35俺も問題なく複合化出来た。
あと、関数内で引数のdatを書き換えてreturnしてるけど意味あるの?
0516デフォルトの名無しさん
2009/08/14(金) 13:10:260517デフォルトの名無しさん
2009/08/14(金) 13:15:42関数を書き換えて色々と試していた関係で復号の時のアカウントとパスワードを
反対にしていたのを忘れていました。関数内に問題ないならその前だと思って
見直したら・・・本当に間抜けでした。
すいません。
引数のdatを書き換えているのは関数書き換え前の名残ですがdatの長さが
変わらないとはいうもののやはり新規にbyteを作った方が気持ち良いですよね?。
そうします。
0519デフォルトの名無しさん
2009/08/14(金) 15:25:08内でdsを使いまわしたい場合、
---
ds = new DataSet();
/* ds に値を詰め込んだり計算したりする処理 */
ds.Dispose();
ds = null;
ds = new DataSet()
/* ds に別の値を詰め込んだり計算したり */
---
と言う感じで Dispose & null で良いんでしょうか?
それとも上記の方法だとメモリー上にゴミが残ったりしますか?
0520デフォルトの名無しさん
2009/08/14(金) 15:52:33次の値をすぐに代入してるならnullをセットする意味はない。
ただDataSetはなぜかIDisposableなんだよね。なにやってるんだろ。
0521デフォルトの名無しさん
2009/08/14(金) 23:03:01publicを付けてる人と付けていない人が混在していて混乱しています
0522デフォルトの名無しさん
2009/08/14(金) 23:10:32C#はしなくていい。しないほうが推奨。
0523デフォルトの名無しさん
2009/08/14(金) 23:16:44思うので隠すのが個人的にはいいと思うが、好みな気もする。
とりあえずエントリーポイントを公開しなければならないという
制限は .NET にはない。まぁ逆にある言語があるからその感じで
public にする人もいるって話だな。
0524デフォルトの名無しさん
2009/08/14(金) 23:36:38DataGridViewになにも設定しないと、DataTableのcolumn名が
ColumnHeaderとして表示されます。
これと同様のことをRowHeaderにも行いたいのですが、例えば
最初の列をRowHeaderとするというような指定はできるのでしょうか?
0525デフォルトの名無しさん
2009/08/15(土) 01:01:530526デフォルトの名無しさん
2009/08/15(土) 01:23:49DataTableのある列です。
0527デフォルトの名無しさん
2009/08/15(土) 10:26:26ありがとうございました。
publicにはしないことにします。
0528デフォルトの名無しさん
2009/08/15(土) 10:37:070529デフォルトの名無しさん
2009/08/15(土) 10:46:110530デフォルトの名無しさん
2009/08/15(土) 11:03:370531デフォルトの名無しさん
2009/08/15(土) 12:53:54svm[Tab][Tab]
0532デフォルトの名無しさん
2009/08/15(土) 15:57:44Main はクラス内または構造体内で宣言します。Main は static にする必要があり、
public にすることはできません。
外側のクラスまたは構造体を static にする必要はありません。
MSDN Library for Visual Studio 2005
Main メソッドは、クラスまたは構造体の内部で宣言されます。これは静的である必要があります。
パブリックにはしないでください。
0533デフォルトの名無しさん
2009/08/15(土) 16:20:07�d�d
VSも便利そうだから横着しないで使ってみるよ
どうやらJavaのmainがpublic static void mainなので
それを引きずってしまっていたらしい
0534デフォルトの名無しさん
2009/08/15(土) 17:43:560535デフォルトの名無しさん
2009/08/15(土) 17:48:510536デフォルトの名無しさん
2009/08/15(土) 18:38:120537デフォルトの名無しさん
2009/08/15(土) 18:45:360538デフォルトの名無しさん
2009/08/15(土) 19:03:32結構気になる。
それとも全ての要素ごとに型指定できるものと勘違いしてただけなのか
0539デフォルトの名無しさん
2009/08/15(土) 19:29:47List<String3Entry>
みたいなのでしょ察するに
0540デフォルトの名無しさん
2009/08/15(土) 21:02:21たとえば、
// 親クラス
public virtual void test( Object^ value );
とかなっているのを、子クラスでは同名のメンバ関数で String だけを扱うように変更したいとして、
// 子クラス
public void test( String^ value );
としたとしても、パラメータが String 以外の時は親クラスの関数を呼んでしまう。それを防ごうと、
private override void test( Object^ value );
とかするとコンパイルエラーになるし、override を new にすると、親クラスの関数が呼ばれてしまう。
アクセス修飾を変更しないで上書きして機能を無効化&インテリセンスで表示しないようにするだけでも
良いのだけど、指定以外の型で呼んだときにエラーと出来ないだろうかと考えています。
よい方法はありませんか?
※親クラスの設計や継承関係を見直すべきとの考えもあるかと思いますが、制限上それはできません。
あと、インテリセンスを無効化したつもりでもなぜか表示されるし‥‥。
0541デフォルトの名無しさん
2009/08/15(土) 21:24:40まあ継承でやることじゃなかったね
0542デフォルトの名無しさん
2009/08/15(土) 21:30:54思ったけどそれ以前にお前、思うにスレ違いじゃね?
0543デフォルトの名無しさん
2009/08/15(土) 21:34:17どうしてもbase.test(Object)にアクセスできないようにしなければならないのであれば、
ポリモーフィズム的にかなり間違っている
> 子クラスでは同名のメンバ関数で String だけを扱うように変更したい
どうせ間違っているのだから、そういうことは出来ませんと答えてしまえばいい
派生クラスでメソッドがサポートされていないことを知らせる場合は、NotSupportedException
インテリセンスに表示されなくするのは、EditorBrowsable
>>542
言語が混ざってるからスレチかどうか判別しようが無いぜw
0544デフォルトの名無しさん
2009/08/15(土) 21:41:29自分で触れないコードのアクセス修飾を変えようなんて、
目指す方向が間違っているとしか言いようがないね。
ProxyパターンとかAdapterパターン的な工夫を考えるべきなんじゃないのかな。
「親クラス」のメソッドを呼び出す側のコードを書いているわけだよね?
じゃあ、その「親クラス」の型を指定している部分を、別のインターフェイスに
摩り替えてやればいいじゃないか。
0545デフォルトの名無しさん
2009/08/15(土) 21:47:010546デフォルトの名無しさん
2009/08/15(土) 21:47:570547デフォルトの名無しさん
2009/08/15(土) 22:04:08出来ればメモリコピーなしで
0548デフォルトの名無しさん
2009/08/15(土) 22:32:49int*ならfixedしてキャスト
IntPtrはGCHandleとかfixedしてキャストとか
で、何がしたいの?
0549547
2009/08/15(土) 23:00:1632bitでない画像も扱うかもしれないので基本byte配列で確保しておいて
必要なときだけintに変換できたらって思ったんです。int*だとunsafeを使う必要がありますが仕方ないか。
IntPtrへの変換はアンマネージ扱うときにもしかしたら必要になるかもしれないので。
回答ありがとうございました
0550540
2009/08/15(土) 23:10:51本来、汎用的に書かれたクラスがあって、それを特定用途向けにデチューン?させたかったのです。
言葉が不足していました。ごめんなさい。
やっぱり、オブジェクト指向の思想からは外れてますよね。
で、無理にデチューンして使用するので、「間違った」使い方をしたときの動作を保証できないので
なんとかそう言う使い方をしたときにそれとわかりやすくさせる方法がないかな‥‥と。
例外を発生させるって発想がなぜかありませんでした。
NotSupportedException を使う方法を試してみたいと思います。
EditorBrowsable って
[System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never) ] てヤツですよね。
なんでか表示されます。調べてみたら、同じアセンブリ上では表示されてしまう「仕様」?らしいですね。。。
>思ったけどそれ以前にお前、思うにスレ違いじゃね?
最近両方やるので混じってるんです。w
紛らわしくてごめんなさい。
0551デフォルトの名無しさん
2009/08/15(土) 23:31:41perl の tr/ABC/ABC/ みたいなことがしたいんですが。
0552デフォルトの名無しさん
2009/08/15(土) 23:39:440553デフォルトの名無しさん
2009/08/15(土) 23:40:490554553
2009/08/16(日) 00:07:45そもそもDOMがどういう技術なのかよく分かりません。
0555デフォルトの名無しさん
2009/08/16(日) 00:21:28ある。
C#でまともなプログラムを作りたければ、
Codeplexでいいものが無いか探す癖をつけておけ。
0556デフォルトの名無しさん
2009/08/16(日) 00:35:24Dictionary<char,char>で1文字ずつ写像
0557デフォルトの名無しさん
2009/08/16(日) 02:40:55プロジェクトに追加するにはどうすればいいですか?
Webアプリど素人です。
0558デフォルトの名無しさん
2009/08/16(日) 02:52:46まず何らかのRDBサーバーをDSN経由で扱えるように設定する。(インストールする)
何もないところから構築するならSystem.Data.SQLiteも悪い選択肢ではない。
興味がないのでまじめに調べてないが、
最近はMicrosoft SQL Serverもフリーのエディションがあると聞いたことがある。
後は普通にプロジェクトを作って参照するDBを設定するだけ。
0559557
2009/08/16(日) 03:19:21>後は普通にプロジェクトを作って参照するDBを設定するだけ。
ここを詳しく教えていただけませんか?
0560デフォルトの名無しさん
2009/08/16(日) 04:47:37ポトペタで使うんならこう、左側のツールボックスとかの上に
あるんだけど。ここで接続追加して Form とかにペタッて感じで。
他には…とりあえずプロジェクトのアイテムの追加に「データ」って
カテゴリないかな?
DB の種類はとりあえず VS 上に関していえば SQL Server 2005(
2008)Express が一番簡単ですんなりいくかな。一緒に入れたりする
ぐらいのものだし。
0561デフォルトの名無しさん
2009/08/16(日) 11:04:410562デフォルトの名無しさん
2009/08/16(日) 11:26:300563デフォルトの名無しさん
2009/08/16(日) 13:51:31express は拡張使えないから
0564デフォルトの名無しさん
2009/08/16(日) 16:23:49デバッグあり、なしで実行結果が異なるのはなぜですか?
下にソース載せておきます。
class Program
{
static void Main(string[] args)
{
for (int i = 0; i < 10; i++)
{
Test.Func();
}
}
}
class Test
{
public static Func()
{
var randobj=new Random();
Console.Writeline(randobj.Next(100));
}}
0565デフォルトの名無しさん
2009/08/16(日) 16:25:020566デフォルトの名無しさん
2009/08/16(日) 16:25:090567564
2009/08/16(日) 16:26:53デバッグなしだと全て同じ値が出力されて
デバッグありだとランダムに違う値が出力されます
0568デフォルトの名無しさん
2009/08/16(日) 16:33:47デバッグ実行は処理が遅いから次のインスタンスを作るときには
現在時刻が変わっているだけじゃないのか。
0569デフォルトの名無しさん
2009/08/16(日) 16:33:50デバッグで止めながらやったんだろ
new Random() でシード指定しない場合、時刻からとられるから
秒が変わらないうちにnewしたら同じ値になるわ
0571デフォルトの名無しさん
2009/08/16(日) 16:42:56乱数の種が毎回同じだから。
RandomインスタンスはTestクラスのメンバにでもして、
Environment.TickCountをそれのコンストラクタに指定すればいいんじゃないか。
0572デフォルトの名無しさん
2009/08/16(日) 23:53:01開発者はなぜ「Color.RED」や「Brushes.BLUE」みたいな感じに大文字にしなかったのでしょうか?
0573デフォルトの名無しさん
2009/08/16(日) 23:55:180574デフォルトの名無しさん
2009/08/16(日) 23:57:050575デフォルトの名無しさん
2009/08/17(月) 00:21:41君が定数を全て大文字にしているのなら、今すぐやめましょう。
string.Emptyやint.MaxValueを見なさい。
0576デフォルトの名無しさん
2009/08/17(月) 00:26:220577デフォルトの名無しさん
2009/08/17(月) 07:18:40ASP.NETのデバッグ時、処理時間に影響する設定などありますか?
pen4の端末だとASP.NET2.0のデバッグが異常に遅いです
ページごとに5〜15秒はかかる感じ。
1.1は問題ありません。
メモリは2Gありますので、比較端末との違いはCPUになってしまうのですが、
そんなにcore2duoとpen4でそんなに差が出るのは普通でしょうか。
0578デフォルトの名無しさん
2009/08/17(月) 07:23:040579デフォルトの名無しさん
2009/08/17(月) 10:15:08でもMath.PIは全て大文字ですよね?
0580デフォルトの名無しさん
2009/08/17(月) 10:19:17ttp://msdn.microsoft.com/ja-jp/library/cc433241(VS.71).aspx
0581デフォルトの名無しさん
2009/08/17(月) 10:22:59↓最新のやつ
ttp://msdn.microsoft.com/ja-jp/library/ms229043.aspx
1.1使ったことないから何か違いあるのかは確認してないけど
念のため訂正。
0582デフォルトの名無しさん
2009/08/17(月) 11:40:16Microsoft.Passport.RPS が無いためにビルドできません。
ドットネットパスポート辺りの認証に使うDLLだと思うのですが、
どこかでダウンロード出来るんでしょうか?
何を参照に追加したら良いのでしょうか?
0583デフォルトの名無しさん
2009/08/17(月) 13:32:30型付DataSetを渡したいのですが
---
hogeDataSet hogeDs = new hogeDataSet();
foo(ref hogeDs) // ←×
foo(ref (DataSet)hogeDs) //←×
---
となってしまいます。foo() はDataSetの構造に依存させたくないので
foo( ref hogeDataSet ds ) とは書きたくありません。
この場合どうやってhogeDsをfoo()に渡してやればいいんでしょうか?
0584582
2009/08/17(月) 13:39:02hogeDataSet hogeDs = new hogeDataSet();
のところを
DataSet hogeDs = new hogeDataSet();
になるように何とかならないのでしょうか?
0585デフォルトの名無しさん
2009/08/17(月) 13:51:58// foo関数定義
foo(DataSet ds)
{
hogeDataSet hogeDs = (hogeDataSet)ds; //hogeDataSetとして扱いたい場合はこのようにキャストして取得する
}
foo関数の呼び出し、
foo((DataSet)hogeDs);
でいけると思われ
0586デフォルトの名無しさん
2009/08/17(月) 13:54:35// foo関数定義
void foo(DataSet ds)
{
hogeDataSet hogeDs = (hogeDataSet)ds; //hogeDataSetとして扱いたい場合はこのようにキャストして取得する
}
0587デフォルトの名無しさん
2009/08/17(月) 13:56:03> foo関数の呼び出し、
> foo((DataSet)hogeDs);
キャストいらんだろー
0588デフォルトの名無しさん
2009/08/17(月) 14:07:04あ、いらんかったな。ごめん。
0589デフォルトの名無しさん
2009/08/17(月) 14:09:37BackSpaceを送る(上位へ)という事をしたいのですが、C#で実現しようと
した場合、どのようにアプローチすれば良いのでしょうか。
グローバルフックとはまた違うような気がしていますが…。
0590デフォルトの名無しさん
2009/08/17(月) 14:45:40参照型とrefの関係が分かってないのか、分かってて聞いてるのか不明だが、
分かってて聞いてるならこうするのが一番自然。
DataSet foo( DataSet ds )
戻り側は関数の戻値で返す。
0591デフォルトの名無しさん
2009/08/17(月) 14:54:57逆に言えば、refやoutを付けなければ値渡しだと思ってたので、今まで作ってきたPGに潜在的
バグがあるかも('A`
0592デフォルトの名無しさん
2009/08/17(月) 14:56:25> refやoutを付けなければ値渡し
合ってるよ
ただしそれとは別に参照型・値型という区分けがあるってだけ
0593デフォルトの名無しさん
2009/08/17(月) 20:52:32BHO とかの、Explorer 拡張かなぁ。
0594デフォルトの名無しさん
2009/08/17(月) 22:57:48こんな感じでキャストできるっけ…?
InvalidCastExceptionにならないか?
0595デフォルトの名無しさん
2009/08/18(火) 01:35:12ならない
0596デフォルトの名無しさん
2009/08/18(火) 01:47:45で、参照の参照ってなんだよって言われるとCでもやらないと正体不明なんだよな。
参照に書き込める特殊型として理解しておけば十分ですけど。
0597デフォルトの名無しさん
2009/08/18(火) 01:55:24ref outの件に限らず、参照を扱う上でその辺が理解できてないとあとあと困ることになるだろうな。
そういうのを学習するためには、Cで勉強するのが有効かな。
0598デフォルトの名無しさん
2009/08/18(火) 06:13:41参照の参照でも何でもいいさ
0599デフォルトの名無しさん
2009/08/18(火) 07:08:55Windows API Code Pack for Microsoft .NET FrameworkってVista上のC# 2008でも使えますか?><
それともVistaでも動く物を作れるというだけで開発はWindows 7上じゃないと駄目ですか?><
This library targets the Windows 7 RTM version (now available to MSDN subscribers),
though many of the features will work on the older versions of Windows operating system.
の意味が良くわかんないです><
0600デフォルトの名無しさん
2009/08/18(火) 07:24:21このライブラリは Windows 7 の製品版(今 MSDN Subscription にあるよ)を対象としてまーす。
古いバージョンの Windows では、いろいろな機能が動かないと思うよー
0601デフォルトの名無しさん
2009/08/18(火) 07:26:34このライブラリは Windows 7 の製品版(今 MSDN Subscription にあるよ)を対象としてまーす。
だけど、古いバージョンの Windows でも、いろいろな機能がたぶん動くよー
だろ。
0602デフォルトの名無しさん
2009/08/18(火) 08:18:200603デフォルトの名無しさん
2009/08/18(火) 09:03:44厳密に言えば、though以下はその前の文(主節)を修飾する従属節だ。
そして、カンマが付いているので後からの説明としての意味になる。
あと、「色々な機能」なら「the many features」となってるはずなので違う。
一方で、「the older versions of Windows operationg system」は
「Windows OSの古いバージョン」と訳すと
日本語として不自然なのでこれは例外的に前から訳すことにする。
このライブラリは、Windows 7 の製品版(略)を対象としています。
古いバージョンの Windows OS でも機能の多くは動くでしょうけども。
というのが正しい解釈。
0604デフォルトの名無しさん
2009/08/18(火) 11:06:53>>599ではないが、ありがたい。
そういう意味なのね。
まあ、いまんところWinows7マシンにしかライブラリインストールしてないけどね。
0605デフォルトの名無しさん
2009/08/18(火) 11:24:24ううーむ。DirectXのmanaged対応はMSは捨てたのかと思ってたら、Vistaで復活させたのか(今頃すぎるが)
XP対応を捨ててもいい時代が来たら、今使ってるライブラリ捨ててこっちに乗り換えてもいいなぁ。
0606デフォルトの名無しさん
2009/08/18(火) 12:26:19いや、Windows7での復活だよ。
0607デフォルトの名無しさん
2009/08/18(火) 12:30:14ありがとう><
よくわかんないけどVista+C# 2008の環境にWindows SDK 7.0のx86だけインストールしてから使ってみたら
とりあえずタスクダイアログのサンプルは動きました><
0608デフォルトの名無しさん
2009/08/18(火) 12:48:59今試してみたけど、Vista上でこのライブラリのDirectX10のサポートが普通に動いたよ。
コードが美しいなぁ。これははやるかも。
0609デフォルトの名無しさん
2009/08/18(火) 13:27:39VistaにはDX11も載るからそっちもそのうち使えるようになるね。
APICodePackはこないだ1.0になったばかり、
去年から少しずつバージョンアップしてだんだん充実いってた。
0610デフォルトの名無しさん
2009/08/18(火) 14:42:25win98seまだ使ってまして
c#って出来ますか?
開発環境とか対応してるのあったら
教えてください
0611デフォルトの名無しさん
2009/08/18(火) 14:44:24まだ半分も見てないうちに貼ってみる
ttp://dobon.net/vb/dotnet/links/win98.html
0612デフォルトの名無しさん
2009/08/18(火) 14:45:190613デフォルトの名無しさん
2009/08/18(火) 16:08:52VirtualPC環境のWin98SEで入れてみてるが、.NET1.1と.NET2.0は導入可能。
ただOSやメモリの制限その他で実用じゃない。
Hello World程度のプログラムを試す程度ならと考えるべき。
0614デフォルトの名無しさん
2009/08/18(火) 17:00:00DataSetの中に2のDataTable、dt1とdt2があって、それぞれ
dt1 { ID, NAME }
dt2 { ID, CD, BIRTHDY }
という項目を持っています。dt1とdt2はIDで紐付きますが、リレーションは作成していません。
この状態で、dt1に存在しないIDを持つDataRowをdt2から削除したいのですが、地道にクルクル
回してチェック&削除を行うしかないでしょうか?
それとも、もっと簡単にdt2からレコードを削除(あるいは削除できなくても、RowFilterやDataView
の設定で存在しないかのように振舞うでも構いません)する方法がありますでしょうか?
0615デフォルトの名無しさん
2009/08/18(火) 17:24:20DB側をSQLで更新して表示をリロードしたら解決するんじゃないのか?
0616デフォルトの名無しさん
2009/08/18(火) 17:33:210617デフォルトの名無しさん
2009/08/18(火) 18:09:540618デフォルトの名無しさん
2009/08/18(火) 18:15:190619デフォルトの名無しさん
2009/08/18(火) 18:24:44RDBとは紐付いておらず、環境は.NET Framework2.0です。Linqは使えません。
0620デフォルトの名無しさん
2009/08/18(火) 20:23:45画面を3列×2行に均等に分割してパネルを配置し、
2.
各パネルに必要な入力項目をテキストボックスに並べる。
3.
各パネルは小さくなるので、入力時に、画面中央にスムーズにスライドさせてスムーズに2倍に拡大させる。
4.
入力が終わり次のパネルに移るときにまたしぼませる。
…みたいなことをWindowsフォームアプリケーションでできますか?
0621デフォルトの名無しさん
2009/08/18(火) 21:14:51妥当なトコで
1. 六枚の表示パネルは入力不要だからグラフィックとして自力描画。
2. それとは別に入力パネルを用意して、中央に置いて非表示にしておく。
3. 表示パネルのクリックした部分の枠線の位置から、XORで長方形の枠を
消して書いて消して書いて表示パネルの位置まで動かす。
4. 表示パネルの絵柄を薄暗くして、入力パネルを再表示。
5. Enterとかで入力終了したら入力パネルは消して、表示パネル書き直し。
TABなら次の項目。
なんてどうだ?
0622デフォルトの名無しさん
2009/08/18(火) 21:57:20そういうHTML的なフレーム割りはGUIアプリではあまりやらないんだ。
実際に作ってみればわかるがあまり便利に感じないと思うよ。
情報として重要なほうをメインにしてサイズ可変に。小さくまとめられるほうは固定サイズして片側に寄せる。
これが基本。
0623デフォルトの名無しさん
2009/08/18(火) 22:02:060624デフォルトの名無しさん
2009/08/18(火) 22:09:47フラッシュなら話もわかるが。
要するにmacのドックみたいな操作感のUIにしたいんだろう。
>>471と同じ人っぽいが、Winフォームでやるのは無謀に思えるな。
0625デフォルトの名無しさん
2009/08/18(火) 22:15:310626デフォルトの名無しさん
2009/08/19(水) 00:22:56入力用の大きめのwindow1個を用意するなぁ。
小さいwindowをクリックすると、大きいwindowから入力できるようにするとか。
後、ビジネスアプリならアニメーションは絶対やめといた方がいいと思う。
ゲームのメニュー画面でも最初は反応が楽しいけど見慣れてくると飽きて、
レスポンスの方が気になるようになる。
ON/OFFで切り替えられるようにして、とか要望がきちゃうよw
0627デフォルトの名無しさん
2009/08/19(水) 00:27:17クローズしてきました
DBの 接続型 非接続型の質問です
私は、Open使うのが接続型で使わないのが非接続型と思っていたんですが違うのでしょうか?
また、アプリケーション開発者は主に下記のように接続型でアクセスかけて処理をするのでしょうか?
じゃんぬねっとさん のサイトから引用です
下記は接続型ですよね?
' SqlConnection の新しいインスタンスを生成する (接続文字列を指定)
Dim cSqlConnection As New System.Data.SqlClient.SqlConnection(stConnectionString)
' データベース接続を開く
cSqlConnection.Open()
' 接続に成功した旨を表示する
MessageBox.Show("Microsoft SQL Server に接続されました")
' データベース接続を閉じる (正しくは オブジェクトの破棄を保証する を参照)
cSqlConnection.Close()
0628デフォルトの名無しさん
2009/08/19(水) 00:43:10> 私は、Open使うのが接続型で使わないのが非接続型と思っていたんですが違うのでしょうか?
違う。DataReader が接続型、DataSet が非接続型
0629デフォルトの名無しさん
2009/08/19(水) 00:54:19ありがとうございます
・・・とゆうことは上記例文の場合
接続型とも非接続型ともいえないってことでしょうか?
0630デフォルトの名無しさん
2009/08/19(水) 03:57:13DB更新時のみ接続するのが非接続型で
DB更新時以外も接続しっぱなしなのが接続型(Access等)
DataAdapter や TableAdapter の Fill, Update などは
処理時、接続していない時は接続し、処理後に再び閉じる
というのを自動で行う事で非接続型を実現してる
ちなみに処理前に接続していた場合は、処理後も接続したままになる
これを利用して、アプリ起動時に接続→処理はこの接続を利用→アプリ終了時に閉じる
だと DataSet でも接続型アプリは作れる
connection 書換えが面倒だけど
0631デフォルトの名無しさん
2009/08/19(水) 08:03:400632デフォルトの名無しさん
2009/08/19(水) 08:08:13パディングを持つテキストボックスを作りたいと思っています。
0633デフォルトの名しさん
2009/08/19(水) 21:55:06最近、JAVAプログラムのオープンソフトでJDrafterというソフトを発見したのですが、
このソフトは、イラレ感覚で2Dグラフィックを作成し、Javaのオブジェクトとして保存でき
るため、Javaプログラムからの表示やアニメーションなどにも応用できるようなのですが、
どなたか、C#でこんなプログラムをご存知の方いないでしょうか。
もしくは、オープンソフトなので、描画周りのクラスをC#に変換して利用できないか考え
ているところですが、どなたかその方法やこれに適したjava→C#変換ツールをご存知
の方があれば、ご教授をお願いします。
0634デフォルトの名無しさん
2009/08/19(水) 21:57:20また、なぜz順序と呼ぶのですか?
0635デフォルトの名無しさん
2009/08/19(水) 21:57:53パネルを項目分Fillで用意してVisibleで切り替える他にいい方法ありませんか?
パネルの中に部品を置けないんです
0636デフォルトの名無しさん
2009/08/19(水) 22:02:02子コントロールのZオーダーなら、Controls.IndexOfとか。
z軸の順番だから。
0637デフォルトの名無しさん
2009/08/19(水) 22:25:18意味が分からん
0638デフォルトの名無しさん
2009/08/19(水) 22:41:41参考コード
public class MyTextBox : TextBox {
[DllImport("user32.dll")]
static extern IntPtr SendMessage(IntPtr hWnd, int Msg, int wParam, int[] lParam);
const int EM_SETRECTNP = 0x00B4;
int pad = 0;
public new int Padding {
get { return pad; }
set {
pad = value;
OnResize(new EventArgs());
}
}
protected override void OnResize(EventArgs e) {
base.OnResize(e);
SendMessage(Handle, EM_SETRECTNP, 0,
new int[4] { pad, pad, Width - pad * 2, Height - pad * 2 });
}
}
0639デフォルトの名無しさん
2009/08/19(水) 22:55:43まあ、どうバグってて、どう直せばいいかは宿題ね。がんがれ。
0640デフォルトの名無しさん
2009/08/19(水) 23:01:14親にドッキングした複数のパネルに部品を置く時は最前面のパネルにしか置けなくて
並び順を変えながらやるにはパネル多すぎて厳しいんです
どうすればいいですか?
0641デフォルトの名無しさん
2009/08/19(水) 23:02:26ありがとう!!
カスタムコントロールを作成するには、1アプリケーションを作るくらい大変だと聞いて途方に暮れていたんだ。
ちなみにカスタムコントロール作成の指南書は世界に存在しないのかな…。
まさにプロの世界ですね。
0642デフォルトの名無しさん
2009/08/19(水) 23:03:08お願いします!
0643デフォルトの名無しさん
2009/08/19(水) 23:03:289割の言葉の意味が分からない
(T_T)。
0644デフォルトの名無しさん
2009/08/19(水) 23:04:56そういうもんだよ。
おかしな気持ちになるが、一番背面に表示させたいものから順番に最背面にしていくんだ。
0645デフォルトの名無しさん
2009/08/19(水) 23:10:47パネルの利用方法はこれであってるんですね
ひたすら入れ替えます。ありがとうございました
0646デフォルトの名無しさん
2009/08/19(水) 23:14:48デザイン時はタブコントロールに入れておいて実行時にパネルにAddしたら?
0647デフォルトの名無しさん
2009/08/19(水) 23:19:46タブ非表示にすればいいだけだし
0648デフォルトの名無しさん
2009/08/19(水) 23:22:40・党大会で日本国旗を掲げた事がない
・日本国旗を切り裂く
・子育て支援政策に国籍制限なし
・外国人参政権賛成
・アジア共通通貨を作る
・友愛政治
by民主党
0649デフォルトの名無しさん
2009/08/19(水) 23:24:370650デフォルトの名無しさん
2009/08/20(木) 00:40:05そんな法律や政令あったっけ?
君が代も国歌じゃないって聞いたけど
0651デフォルトの名無しさん
2009/08/20(木) 00:43:58いつの人だよw
0652デフォルトの名無しさん
2009/08/20(木) 00:51:480653デフォルトの名無しさん
2009/08/20(木) 03:10:20Canvas内でImageクラスの画像を操作(拡大・縮小・回転・移動等)したい場合、
この操作に関するコードはどのクラスに置くのがいいですか?
0654デフォルトの名無しさん
2009/08/20(木) 06:42:17の説明は本当に合ってるのか?
0655デフォルトの名無しさん
2009/08/20(木) 07:15:10タブオーダーがおかしくなりました。
全コントロールのタブオーダーを早く調べる方法はありますか?
0656デフォルトの名無しさん
2009/08/20(木) 07:35:06むしろそれはXAML中にStoryboardで書く。
0657デフォルトの名無しさん
2009/08/20(木) 09:50:25control.TopMost=true;
control.TopMost=false;
のほうが早くない?(試してない)
>>655
表示-タブオーダー
0658デフォルトの名無しさん
2009/08/20(木) 10:07:50デザイン時の話じゃ寝 >644
0659デフォルトの名無しさん
2009/08/20(木) 10:12:28デザイナーなら最前面に移動のボタンがあるじゃん。
0660デフォルトの名無しさん
2009/08/20(木) 11:52:490661デフォルトの名無しさん
2009/08/20(木) 12:51:10実行時にコンストラクタでAddじゃないの?
画面増えたりUI変更したら死なない?
0662デフォルトの名無しさん
2009/08/20(木) 13:32:080663デフォルトの名無しさん
2009/08/20(木) 13:58:56ありがとう。その方向でやってみます
0664デフォルトの名無しさん
2009/08/20(木) 14:28:510665デフォルトの名無しさん
2009/08/20(木) 15:04:46他に何をいじればいいんですか?
0666デフォルトの名無しさん
2009/08/20(木) 15:11:39どんなコードをかいたんだ?
0667デフォルトの名無しさん
2009/08/20(木) 15:13:58コントロールをフォームに置いて、右上の三角を押してデータソースを選択しただけです
0668デフォルトの名無しさん
2009/08/20(木) 15:24:080669デフォルトの名無しさん
2009/08/20(木) 15:27:10テーブルの設定も行っている?
0670デフォルトの名無しさん
2009/08/20(木) 15:42:36mdbの簡単な奴を作ってみてソースに指定したんですが表示されません
項目名は表示されるんです。
右上三角のデータのプレビューを押すとズラーっと表示されるんですが
アプリ実行時には項目名だけで、データが表示されないんです。
0671デフォルトの名無しさん
2009/08/20(木) 15:43:15追加されてると思うけど、それをtry catchで挟んで捕捉できるようにしてみ。
0672デフォルトの名無しさん
2009/08/20(木) 15:58:47Form1_Load()自体が存在してませんでした
Form上でDataGridViewを置いたらForm1_LoadにTableAdapter.Fillが追加されて実行後データが出てきました
ありがとうございました。
0673デフォルトの名無しさん
2009/08/20(木) 16:05:28一方をブリングトゥフロントにして前面に出すのとでは、
どうちがうの?
0674デフォルトの名無しさん
2009/08/20(木) 16:19:27ユーザーコントロールにDockがなくて詰まりました。
基本クラスをUserControlからPanelにしたりとか考えたんですが名前空間が通りません。どうすればいいですか?
0675デフォルトの名無しさん
2009/08/20(木) 16:22:020676デフォルトの名無しさん
2009/08/20(木) 16:36:45GUIアプリとして実装するのとWeb上のサービスとして実装するのとで話がぜんぜん変わってくる。
もっと目的を詳しく説明しないと誰も答えられない。
0677デフォルトの名無しさん
2009/08/20(木) 16:38:35参照カウンタ的な形で管理するには自前で実装するしかないのでしょうか。
それとも.NETの共通ライブラリにそれをやるための仕組みが用意されていますか?
0678デフォルトの名無しさん
2009/08/20(木) 16:45:07GUIアプリです。例えば検索したいキーワードの一覧も持っていて、それを順番に検索にかけヒット数などを記録していくソフトにしたいんです。
0679デフォルトの名無しさん
2009/08/20(木) 18:14:01すいません解決しました。自分を親にDockさせるんじゃなくて親に子をDockさせる様に書いたらコンパイルできました。
0680デフォルトの名無しさん
2009/08/20(木) 18:24:20取り敢えずHTTPとHTMLの勉強
>>677
どこまで汎用でやればいいのかって話なので無いんじゃね
まあそんな大層なモンでもないだろ
0681デフォルトの名無しさん
2009/08/20(木) 19:38:00SafeHandleでラップして、破棄はGCに任せれば?
0682デフォルトの名無しさん
2009/08/20(木) 20:24:28どもです。前提が抜けてましたが、基本的に管理対象はCOMオブジェクトのインスタンスです。
0683デフォルトの名無しさん
2009/08/20(木) 20:47:38string[] textFiles = Directory.GetFiles(Path, "*.txt");
で、テキストファイル一覧を配列に入れることができます。
これにたとえば拡張子.logを追加するにはどうしたらよいですか?
0684デフォルトの名無しさん
2009/08/20(木) 20:52:25Array.Resizeして残りをArray.Copyとか
0685デフォルトの名無しさん
2009/08/20(木) 20:55:080686デフォルトの名無しさん
2009/08/20(木) 21:12:10フォーカスとか
0687デフォルトの名無しさん
2009/08/20(木) 22:16:33string [] exts = { ".txt", ".log" };
var fileNames = from filename in System.IO.Directory.GetFiles (Path)
let ext = System.IO.Path.GetExtension (filename).ToLower ()
where exts.Contains(ext)
select System.IO.Path.GetFileName (filename);
foreach (var file in fileNames){
Console.WriteLine("Filename:{0}", file);
}
0688デフォルトの名無しさん
2009/08/20(木) 23:21:20Array.Resizeをforで回して追加できました。
感謝します。
0689デフォルトの名無しさん
2009/08/20(木) 23:24:35追加する配列のLength分だけ一気に増やせば済むことだろ
0690デフォルトの名無しさん
2009/08/20(木) 23:37:130691デフォルトの名無しさん
2009/08/20(木) 23:40:34古い人間なんで、こっちが分かりやすい・・・やっぱ古いんだなぁと思わざるをえない。
string[] exts = { ".txt", ".log" };
List<string> fileNames = new List<string>();
foreach (string filename in System.IO.Directory.GetFiles(Path)) {
string ext = System.IO.Path.GetExtension(filename).ToLower();
if (exts.Contains(ext)) {
fileNames.Add(System.IO.Path.GetFileName(filename));
}
}
foreach (var file in fileNames) {
Console.WriteLine("Filename:{0}", file);
}
うーんうーん、でも近頃はXML統合機能に心惹かれてる・・・
0692デフォルトの名無しさん
2009/08/20(木) 23:57:17ぜんぜんVBはやったことないです〜。
プログラム言語に触るのはC#だけの純粋初心者です。
最初、Concatを試したんです。
でもうまくいかず、見事討ち死にして、
Array.Resizeにじっくり取り組みました。
検索したサイトに、Array.Copyが書いてなかったんです。
それを真似したもんで、forで回す泥臭い展開に。
さっきこちらに報告したときに、
Array.Copyと書いてあったのに気づいて、
ひょっとして、Array.Copyを使えば、
Lengthを追加したところに、
どばっと1回でコピーできるのだろうと気づいたのですが、
とりあえずできてしまったので、それは次回のお楽しみ。
>>690
Listはまだ使ったことないので、これもそのうちお楽しみ、
と思ったら…。
>>687
>>691
ありがとうございます。
これも参考にします。
いや〜、ここ親切ですね。
0693デフォルトの名無しさん
2009/08/21(金) 00:08:47試しました!
これすごいです。
再帰的にゲットするには、どう改変したらよいですか?
0694デフォルトの名無しさん
2009/08/21(金) 00:19:04static class ArrayEx {
public static T[] Concat<T>(params T[][] arrays) {
return arrays.SelectMany(array => array).ToArray();
}
}
>>693
Directory.GetFiles (String, String, SearchOption)
ああ、完全には自分の管理下にないディレクトリを検索してUnauthorizedAccessExceptionが出るとか言い出すのはやめてね
0695デフォルトの名無しさん
2009/08/21(金) 00:42:17この言語で作られたexeは.NET FrameworkがインストールされてるPCでないと動作しないのでしょうか?
0696デフォルトの名無しさん
2009/08/21(金) 00:48:05static class FileHelper {
public static List<string> GetFilesRecursive(string path) {
List<string> result = new List<string>();
Stack<string> stack = new Stack<string>();
stack.Push(path);
while (stack.Count > 0) {
string dir = stack.Pop();
try {
result.AddRange(Directory.GetFiles(dir));
foreach (string dn in Directory.GetDirectories(dir)) {
stack.Push(dn);
}
}
catch {
}
}
return result;
}
}
string [] exts = { ".txt", ".log" };
var fileNames = from filename in FileHelper.GetFilesRecursive (Path).
let ext = System.IO.Path.GetExtension (filename).ToLower ()
where exts.Contains(ext)
select System.IO.Path.GetFileName (filename);
foreach (var file in fileNames){
Console.WriteLine("Filename:{0}", file);
}
0697デフォルトの名無しさん
2009/08/21(金) 00:50:42うん
0698デフォルトの名無しさん
2009/08/21(金) 01:19:41勉強するなら、そんな程度の事をいちいち聞くな
0699デフォルトの名無しさん
2009/08/21(金) 01:25:06同意だがお前は>>1が読めんのか
0700デフォルトの名無しさん
2009/08/21(金) 01:26:28>>699は>>698宛て
0701デフォルトの名無しさん
2009/08/21(金) 01:27:44これおもしろい。
public delegate Func<A, R> Recursive<A, R>(Recursive<A, R> r);
public static Func<A, R> Y<A, R> (Func<Func<A, R>, Func<A, R>> f) {
Recursive<A, R> rec = r => a => f(r(r))(a);
return rec(rec);
}
var RecGetFiles = Y<string, IEnumerable<string>> (f => d => System.IO.Directory.GetFiles (d).Concat (System.IO.Directory.GetDirectories (d).SelectMany (f)));
foreach (var f in RecGetFiles(System.IO.Directory.GetCurrentDirectory())) {
Console.WriteLine(f);
}
0702デフォルトの名無しさん
2009/08/21(金) 01:47:261には正論書くなと書かれてないようだが?
0703デフォルトの名無しさん
2009/08/21(金) 01:59:19>>700
0704デフォルトの名無しさん
2009/08/21(金) 02:01:361には正論書くなと書かれてないようだが?
0705デフォルトの名無しさん
2009/08/21(金) 02:05:400706デフォルトの名無しさん
2009/08/21(金) 02:07:030707デフォルトの名無しさん
2009/08/21(金) 02:35:570708デフォルトの名無しさん
2009/08/21(金) 10:56:12複数のjpeg画像をクリックするたびに順番にスライド表示したいと思います。
配列に、
01.jpg
02.jpg……
と入れたところまではよかったのですが、くり返しかと考えて、
private void Button_Click(object sender, EventArgs e){
for (int i = 0; i < phptos.Length -1; i++) {
pictureBox.Image = Bitmap.FromFile(photos[i]);
}
}
としたら、いちどにぜんぶ表示して終わっちゃいました。
そりゃそうなんですが、こういう場合ってどうすればいいんですか?
0709デフォルトの名無しさん
2009/08/21(金) 11:04:50クリックごとに次のインデックスの画像を表示させる
あと表示し終わったImageオブジェクトはDisposeする
0710デフォルトの名無しさん
2009/08/21(金) 11:10:280711デフォルトの名無しさん
2009/08/21(金) 11:38:51できました!
int c = 0;
private void Button_Click(object sender, EventArgs e){
pictureBox.Image.Dispose();
pictureBox.Image = Bitmap.FromFile(phoho[c]);
c++;
}
ありがとう。
>>710
Enumeratorってどう使うんですか?
上のを書き換えるとしたら?
0712デフォルトの名無しさん
2009/08/21(金) 11:40:18そのまま行くと突き抜けるぞ。
0713デフォルトの名無しさん
2009/08/21(金) 11:56:570714デフォルトの名無しさん
2009/08/21(金) 13:14:14どうすればできるんでしょうか?
具体的にはMetatrader4というソフトのリアルタイムのプライスデータを取得したいです。
0715デフォルトの名無しさん
2009/08/21(金) 13:33:58MT4のAPIを使えば出来ます。
http://dotnetremoting.com/Download/Meta1011/MT4NetSetup.exe
0716デフォルトの名無しさん
2009/08/21(金) 13:39:26あと、ここもプロミシングだね。
http://www.openforexplatform.com/
0717デフォルトの名無しさん
2009/08/21(金) 13:39:26GetEnumerator()呼ぶだけじゃん
0718デフォルトの名無しさん
2009/08/21(金) 13:41:52戻るボタン追加したいときにどうする?
0719デフォルトの名無しさん
2009/08/21(金) 13:56:18ありがとうございます!
実はそれちょっとまえに見つけたのですが、お恥ずかしながら
何がなにやらさっぱりわからずどうやって使っていいものかもわからず・・・orz
もうちょっとよくそれ見てみます!
あと、今見つけたんですけどttp://gurizuri0505.halfmoon.jp/develop/csharp/processmessage
にあるようにIpcServerChannelクラスとIpcClientChannelクラスを使っても出来るんでしょうかね?
にIpcServerChannelで作ったdllをMT4のカスタムインジケータに読み込んでやって
使うことができるのかな?とか想像してるんですが、その考え方はあってますか?
ここでMT4の即レスもらえるとは思ってなかったんですが
C#+MT4で使ってらっしゃるんですか?
0720デフォルトの名無しさん
2009/08/21(金) 14:23:56使い方はここが参考になると思う。
http://forum.mql4.com/20644
趣味プログラマなので、これ自体は使った事ない。
昔、会社でこそっとトレードする用タスクバーアプリを作った事があるくらいだな。
0721デフォルトの名無しさん
2009/08/22(土) 02:16:19http://pc11.2ch.net/test/read.cgi/sec/1248541340/806
806 :名無しさん@お腹いっぱい。 [] :2009/08/13(木) 17:45:58
何だこのスレwww
このスレを見ている人はこんなスレも見ています。(ver 0.20)
女子小中学生に性欲わかないやつは異常3 [生活サロン]
小学生のこどもおっぱいをちゅーちゅーしたい [大規模MMO]
小学生のこどもおっぱいをちゅーちゅーしたい [スカパー]
小・中学校のちょっとエッチな淡い思い出 [セピア]
小学生のこどもおっぱいをちゅーちゅーしたい [U-15タレント]
【Anti Virus】Kaspersky Lab Part87【カスペルスキー】実質Part88
http://pc11.2ch.net/test/read.cgi/sec/1248628556/364
364 :名無しさん@お腹いっぱい。 [sage] :2009/08/21(金) 23:20:36
23時20分
■ おすすめ2ちゃんねる 開発中。。。 by FOX ★
このスレを見ている人はこんなスレも見ています。(ver 0.20)
女子小中学生に性欲わかないやつは異常3 [生活サロン]
小学生のこどもおっぱいをちゅーちゅーしたい [スカパー]
小・中学校のちょっとエッチな淡い思い出 [セピア]
小学生のこどもおっぱいをちゅーちゅーしたい [U-15タレント]
小学生のこどもおっぱいをちゅーちゅーしたい [大規模MMO]
0722デフォルトの名無しさん
2009/08/22(土) 02:17:01アダルトサイト PINKちゃんねるの責任者であり、2ちゃんねるの影の責任者。
2chコテハン FOX★=中尾嘉宏(46)
■2ちゃんねる幹部・中尾嘉宏(46)(FOX★)は詐欺(出資法違反)および児童買春斡旋で
逮捕されていた。
http://web.archive.org/web/20050305185414/http://jsimin.at.infoseek.co.jp/opinion/newrich.html
北海道警生活環境課と札幌・中央署は1997年5月6日、インターネットを利用し
不特定多数の人から金を集めていたとして、出資法違反(預かり金の禁止) の疑いで
札幌市厚別区もみじ台南七丁目、パソコンソフト開発販売会社社長 中尾嘉宏容疑者(当時37)
を逮捕した。
■解説
中尾嘉宏(46)は、詐欺(出資法違反)と児童買春斡旋の罪とあわせて前科2犯。
2ちゃんねるのサーバー管理者で、ピンクちゃんねる管理者でもある。
0723デフォルトの名無しさん
2009/08/22(土) 02:17:44http://internet.watch.impress.co.jp/docs/news/20090625_296612.html
露Kaspersky Labは24日、個人向けの総合セキュリティソフト
「Kaspersky Internet Security 2010(KIS2010)」とウイルス対策ソフト
「Kaspersky Anti-Virus 2010(KAV2010)」を発表した。
KIS2010とKAV2010は現在、ドイツ、フランス、スペイン、イタリアで販売されている。
米国と英国では7月に発売する予定。
日本国内の発売日は未定だが、Kaspersky製品を販売するジャストシステムによれば、
「例年通りであれば秋口に発売する」としている。
手を打たないと蕪価下がりますよw
0724デフォルトの名無しさん
2009/08/22(土) 02:33:18毎回 using System.Diagnostics; を
手作業で追加しています。
クラス追加時にデフォルトで
追加されてるようにする方法はないでしょうか?
0725デフォルトの名無しさん
2009/08/22(土) 02:44:36てか、スマートタグでは不満?
0726デフォルトの名無しさん
2009/08/22(土) 08:00:520727デフォルトの名無しさん
2009/08/22(土) 12:35:59始めたテストをキャンセルする
ことはできますか?
キャンセル方法がわからないので、 devenv.exe
を強制終了させているんですが、
もっといい方法はないかと・・・。
0728デフォルトの名無しさん
2009/08/22(土) 14:29:06なんでVS標準のテスト機構を使わないの?
0729デフォルトの名無しさん
2009/08/22(土) 16:24:330730デフォルトの名無しさん
2009/08/22(土) 17:14:28をDateTime型に変換するにはどうすればいいですか?
0731デフォルトの名無しさん
2009/08/22(土) 17:15:21「型または名前空間名 'RegularExpressions' は名前空間 'System.Text' に存在しません。アセンブリ参照が不足しています。」
とコンパイルエラーが出てしまいました。何が悪いのでしょうか。
0732デフォルトの名無しさん
2009/08/22(土) 17:18:43DateTime.TryParseExact
0733デフォルトの名無しさん
2009/08/22(土) 17:25:12で一発
0734デフォルトの名無しさん
2009/08/22(土) 17:35:47末尾のsいらん
0735デフォルトの名無しさん
2009/08/22(土) 17:41:12どちらでも同じエラーが出ます。
0736デフォルトの名無しさん
2009/08/22(土) 17:57:34どういう環境でコンパイルしたのかは知らんけど。
あと末尾のsはない方が困る
0737デフォルトの名無しさん
2009/08/22(土) 18:16:05ありがとうございました。
0738デフォルトの名無しさん
2009/08/22(土) 18:38:57if (int i in {1,2,3}) みたいに書きたいです
おねがいします
0739デフォルトの名無しさん
2009/08/22(土) 18:40:57突き抜けてます。例外…。
>>713
yeild return
ってのがあるんですか?
yield return i;
と使うらしい。
int c = 0;
private void Button_Click(object sender, EventArgs e){
pictureBox.Image.Dispose();
pictureBox.Image = Bitmap.FromFile(phoho[c]);
c++;
yield return c;
}
'void' は反復子インターフェイス型ではないため、'Button_Click(object, System.EventArgs)' の本体は反復子ブロックにできません
まあ、forじゃないからな〜。
0740デフォルトの名無しさん
2009/08/22(土) 19:07:40強いて言えばContains()メソッドだな。
だが、C#はそんな書き方をする言語じゃない。
LINQを使え。
0741デフォルトの名無しさん
2009/08/22(土) 19:25:15まだ.NET2.0な現場は多い。
0742デフォルトの名無しさん
2009/08/22(土) 19:26:110743デフォルトの名無しさん
2009/08/22(土) 19:29:030744デフォルトの名無しさん
2009/08/22(土) 19:31:28>738 は.NET のバージョンを指定してないんだから、
C#の世界で一般的に一番便利な方法を教えておけばそれでいい。
>>742
741に言ってくれ。
0745デフォルトの名無しさん
2009/08/22(土) 19:36:04Contains() そんなのあるのか!
とりあえずそれで事足りそうです
ありがとうございます
0746デフォルトの名無しさん
2009/08/23(日) 00:20:521の位から下を切り捨てるにはどうすればいいんですか?
0747デフォルトの名無しさん
2009/08/23(日) 00:43:57Floor とか Ceiling とか Truncate みてみ。
0748デフォルトの名無しさん
2009/08/23(日) 01:21:27質問が日本語でオケ過ぎるんじゃない?
小数点より上で丸めたい、って意味か?
たぶんぴったりのメソッドは用意されてない。
こんな風に自分で作るしかないんじゃないのか?
一応言っとくけど、多分厳密には正しい処理じゃないと思う。
// 小数点より上の場合は負の数を指定する。
double RoundEx(double x, int digit, MidpointRounding mode)
{
if (digit< 0)
{
int divider = (int)Math.Pow(10, -digit);
return Math.Round(Math.Round(x / divider, 0, mode) * divider, 0);
}
else
{
return Math.Round(x, digit, mode);
}
}
0749デフォルトの名無しさん
2009/08/23(日) 02:13:2710倍した後、int型にキャストし、10分の1にするというソースを発見してしまった。
0750デフォルトの名無しさん
2009/08/23(日) 02:32:16data = Math.Round(data / 10, 0) * 10;
// data = 10
0751デフォルトの名無しさん
2009/08/23(日) 02:42:470752デフォルトの名無しさん
2009/08/23(日) 02:56:540753デフォルトの名無しさん
2009/08/23(日) 04:13:43MSDNをには
>ホスト名として空の文字列が渡されると、このメソッドはローカル ホストの IPv4 アドレスを返します。
と書いてあるのに、実際にやってみるとIPHostEntry.AddressListにIPV6のアドレスが入っています。
これはなぜでしょうか?
0754デフォルトの名無しさん
2009/08/23(日) 06:45:30int a = (int)(data / 10) * 10
0755デフォルトの名無しさん
2009/08/23(日) 06:50:10スクロール地獄です。どうすればいいと思いますか?
0756デフォルトの名無しさん
2009/08/23(日) 09:43:490757デフォルトの名無しさん
2009/08/23(日) 10:14:22DataTableへ取り込めばいいと思うよ。
0758デフォルトの名無しさん
2009/08/23(日) 10:39:06ドキュメントのミスだろ
英語版の方でツッコミが入ってる
0759デフォルトの名無しさん
2009/08/23(日) 12:05:24AccesseってDataTableに取り込めるものなの?
0760デフォルトの名無しさん
2009/08/23(日) 12:11:39なんで取り込めないと思ったのかこっちが聞きたいくらいだ。
0761デフォルトの名無しさん
2009/08/23(日) 12:12:590762759≠755
2009/08/23(日) 12:20:360763デフォルトの名無しさん
2009/08/23(日) 12:28:05君の読解力のなさは人生をあきらめた方が良いレベル。
0764デフォルトの名無しさん
2009/08/23(日) 14:01:360765デフォルトの名無しさん
2009/08/23(日) 15:13:13Foolに見えたw
0766デフォルトの名無しさん
2009/08/23(日) 15:13:440767デフォルトの名無しさん
2009/08/23(日) 16:03:17ありがとうございます。
英語の方見てみます。
0768デフォルトの名無しさん
2009/08/23(日) 16:19:03test = this.OOOTableAdapter.GetData();
this.OOOTableAdapter.Fill( test );
GetDataしたんですが、データが表示されないです。どうすればいいですか?
0769デフォルトの名無しさん
2009/08/23(日) 16:25:360770デフォルトの名無しさん
2009/08/23(日) 16:28:180771デフォルトの名無しさん
2009/08/23(日) 16:33:53dataGridView.DataSource = test;
0772デフォルトの名無しさん
2009/08/23(日) 16:35:390773デフォルトの名無しさん
2009/08/23(日) 17:21:260774デフォルトの名無しさん
2009/08/23(日) 17:23:040775デフォルトの名無しさん
2009/08/23(日) 17:35:40今MeCabという形態素解析のC#ラッパー?のMeCabSharpというのを使ってみようとしているのですが、解析された結果をひとつずつとる為に
MeCab.Tagger mecab = new MeCab.Tagger();
MeCab.Node test = mecab.parseToNode("形態素解析器MeCabを使うテストです");
for (int i=1;i<=10;++i)
{
Console.WriteLine(test.surface);
test = test.next;
}
とすることで一応要素を表示することが出来たのですが、要素の数の取得の仕方が分からずループの回数の設定が出来ません(上のコードの10は試してみて決めた数です)
もしここを10以上にすると
ハンドルされていない例外: System.NullReferenceException: オブジェクト参照がオブジェクト インスタンスに設定されていません。
というエラーが出ます。
文章が変ってもすべての要素を取り出したいのですが
どのようにすればいいのでしょうか
0776デフォルトの名無しさん
2009/08/23(日) 17:40:080777デフォルトの名無しさん
2009/08/23(日) 17:41:58実際にどんな名前で存在するかは知らんよ
0778デフォルトの名無しさん
2009/08/23(日) 17:49:07って書いてあるからnullきたら終端だろ多分。
0779デフォルトの名無しさん
2009/08/23(日) 17:54:16みなさんありがとうございました
0780デフォルトの名無しさん
2009/08/23(日) 17:55:500781デフォルトの名無しさん
2009/08/23(日) 18:12:44作られたオブジェクトに何のプロパティがあるのか眺めるところから始めると思うんだが……?
0782デフォルトの名無しさん
2009/08/23(日) 18:56:53でもスクロール動作重いです
どういうことですか?
mdbから読みこんでるから遅いという流れなんじゃないんですか?
それでインスタンスに取り込んでそれをソースに指定して重いってどうなってるんですか?
0783デフォルトの名無しさん
2009/08/23(日) 19:05:340784デフォルトの名無しさん
2009/08/23(日) 19:40:13てめぇの作りが悪い
0785デフォルトの名無しさん
2009/08/23(日) 20:10:270786デフォルトの名無しさん
2009/08/23(日) 20:49:19どうしてもって言うなら、関係する箇所すべてのコードをどっかに上げてごらん。
0787デフォルトの名無しさん
2009/08/23(日) 20:57:18現在の壁紙をはがすにはどうしたらよいでしょう?
VBだと
SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, vbNullChar, SPIF_UPDATEINIFILE Or SPIF_SENDWININICHANGE)
でできるらしく、
vbNullCharは0らしいので、
n = SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, "0", SPIF_SENDWININICHANGE);
としてみたのですが、なにも起きないでいます。
どうすりゃよいですか?
現在の壁紙のパスを取得するにはどうしたらよいでしょう?
アドバイスお願いします。
0788デフォルトの名無しさん
2009/08/23(日) 21:01:29パスはSPI_GETDESKTOP〜使えよ
0789デフォルトの名無しさん
2009/08/23(日) 21:01:31これで習得したテーブルをソースにしても早くならないということは
DataGridViewの限界ってことなんでしょうか?
そうするとGetDataの意味がないのでこれで解決すると教えてくれた方アドバイスお願いします!
0790デフォルトの名無しさん
2009/08/23(日) 21:07:580791デフォルトの名無しさん
2009/08/23(日) 21:09:130792デフォルトの名無しさん
2009/08/23(日) 21:18:522学期開始が早くなってたんだな。で、宿題まだと。
こんなとこで現実逃避してないで早くやっちゃいなよ。
0793デフォルトの名無しさん
2009/08/23(日) 21:18:580794デフォルトの名無しさん
2009/08/23(日) 21:19:200795デフォルトの名無しさん
2009/08/23(日) 21:24:22仕様です。エクセルシートにコピーしてぐりぐりスクロールしてください
0796デフォルトの名無しさん
2009/08/23(日) 21:42:33知らないのにいちいち足跡残さなくていいから
0797デフォルトの名無しさん
2009/08/23(日) 21:46:440798デフォルトの名無しさん
2009/08/23(日) 22:02:14できました。ありがとうございます。
現在の壁紙のパスを取得するほうは、どうしたらよいでしょう?
0799デフォルトの名無しさん
2009/08/23(日) 22:04:170800デフォルトの名無しさん
2009/08/23(日) 22:29:16ちょっと驚いた。もちろん本格的にネットブックで開発しようとは思わないけど
ちょっと屋外でメールとかWebをチェックするついでに小さなコード試したりするには便利かなと思った。
0801デフォルトの名無しさん
2009/08/23(日) 22:35:11そういう目的で買おうかなぁって考えてたところだから、
その情報はすごく助かります。スレチだけど。。。
0802デフォルトの名無しさん
2009/08/23(日) 22:38:440803デフォルトの名無しさん
2009/08/23(日) 22:48:06n = WinAPI.SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, StringBuilder, SPI_SENDWININICHANGE);
ですか?
0804デフォルトの名無しさん
2009/08/23(日) 22:51:500805デフォルトの名無しさん
2009/08/23(日) 22:58:59'System.Text.StringBuilder' は '型' ですが、'変数' のように使用されています。
'WindowsFormsApplication1.Form1.WinAPI.SystemParametersInfo(int, int, string, int)' に最も適しているオーバーロード メソッドには無効な引数がいくつか含まれています。
引数 '3': 'System.Text.StringBuilder' から 'string' に変換できません。
0806デフォルトの名無しさん
2009/08/23(日) 23:03:37少しは自分の頭で考えてみろよ
0807デフォルトの名無しさん
2009/08/23(日) 23:03:39この辺でも読め
http://msdn.microsoft.com/ja-jp/library/aa288468%28VS.71%29.aspx
http://www.atmarkit.co.jp/fdotnet/dotnettips/024w32api/w32api.html
0808デフォルトの名無しさん
2009/08/23(日) 23:32:09System.Text.StringBuilder sb = new System.Text.StringBuilder();
for (int i = 0; i < 1000; i++)
{sb.Append("abc");}
とか。
で、第3引数になにとなにをStringBuilderにすればいいんでしょう?
0809デフォルトの名無しさん
2009/08/23(日) 23:33:510810デフォルトの名無しさん
2009/08/23(日) 23:35:310811デフォルトの名無しさん
2009/08/23(日) 23:38:20初心者なのでお手柔らかにお願いします。
0812デフォルトの名無しさん
2009/08/23(日) 23:58:300813デフォルトの名無しさん
2009/08/24(月) 00:24:010814デフォルトの名無しさん
2009/08/24(月) 00:37:320815デフォルトの名無しさん
2009/08/24(月) 02:11:08貴方が今の700倍優秀でも教えてもらえないです。
能力の問題ではないんです。姿勢の問題です。
自分で努力したというものが伝わってこないのです。
私達の目には楽をして答えを得ようとしているようにうつるのです。
貴方は聞きグセが付き始めています。
このクセがつくとプログラマーとしてあらゆるスタートが遅れます。
先輩方にウザがられるので、チームとしても支障が出ます。
このままでは貴方はダメになります。ゴミです。永遠の初心者です。
現時点で最良の選択は>>812ではないかと思います。
貴方の成長を心より応援ゴミです。大事な事なので二度言いました。
0816デフォルトの名無しさん
2009/08/24(月) 03:22:21TopでDockした方のPanelは縦の長さが固定なんですが、固定部分を余白と逆にしたいんです。
いろいろ組み合わせて試したんですがだめなんです。教えてください。
0817デフォルトの名無しさん
2009/08/24(月) 03:26:51つかAnchorの方がその場合楽な気がする
0818デフォルトの名無しさん
2009/08/24(月) 03:40:260819デフォルトの名無しさん
2009/08/24(月) 13:32:13Regex r = new Regex("hoge([0-9])");
Match m = r.Match(s);
とすればグループ値 m.Group[] が取得出来ますが、この逆のことを行うメソッドは
ありますでしょうか?つまり
"0" と "hoge([0-9])" の2つの文字列から "hoge0" を導き出しのです。
0820デフォルトの名無しさん
2009/08/24(月) 13:39:41m.Valueかな?
0821デフォルトの名無しさん
2009/08/24(月) 13:49:20this.CreateParams.ClassNameだとnullが返ってきましたorz
0822デフォルトの名無しさん
2009/08/24(月) 13:52:310823デフォルトの名無しさん
2009/08/24(月) 13:59:31おーーー!thxです!
0824デフォルトの名無しさん
2009/08/24(月) 14:32:59お前、アフォだろ?
0825デフォルトの名無しさん
2009/08/24(月) 17:39:32項目が見つからず、Ctrl + Shift + Rを押しても何も起きません。
Express Editionだと使えないのでしょうか?
0826デフォルトの名無しさん
2009/08/24(月) 21:00:40Matchの反対ならReplaceでいいかな?
0827デフォルトの名無しさん
2009/08/24(月) 21:43:440828デフォルトの名無しさん
2009/08/24(月) 21:56:17C#でゲームを作っているのですが、Playsound()を使ってBGMと効果音を同時に演奏しようとし場合、
BGMが停止してしまいます。
効果音を演奏するときにBGMが停止しないようにするにはどうすればいいんでしょうか。
0829デフォルトの名無しさん
2009/08/24(月) 22:03:520830デフォルトの名無しさん
2009/08/24(月) 22:08:120831デフォルトの名無しさん
2009/08/24(月) 22:19:10手軽なのはmciSendStringかなー
0832デフォルトの名無しさん
2009/08/24(月) 22:43:240833デフォルトの名無しさん
2009/08/24(月) 22:50:33Visual C#でプロジェクト全体を検索すると、一定時間が経つとダイアログが表示されて
中止できるように、途中で処理を中止できるようにしたいんです。処理が行われている間も
GUIが応答するようにしたいです。
0834デフォルトの名無しさん
2009/08/24(月) 22:53:570835デフォルトの名無しさん
2009/08/24(月) 22:57:540836833
2009/08/24(月) 23:05:53ありがとうございました。
OpenGL使う予定なのでスレッドが絡むとちょっとややこしそうですが、仕方ないですね
0837デフォルトの名無しさん
2009/08/24(月) 23:27:36OpenALは?
0838デフォルトの名無しさん
2009/08/25(火) 08:03:24treeが全て収縮している状態で検索をかけると、検索したいノード名のルートだけではなく、検索したいノードの同レベルにある他ノードまで展開されてしまいます。
ルートだけ表示させることはできないでしょうか。
0839デフォルトの名無しさん
2009/08/25(火) 09:21:23煽りや荒らし以外はもう一度>>1
まぁVBスレやAPIスレにいた荒らしだろうけど
0840デフォルトの名無しさん
2009/08/25(火) 09:38:01展開しなければ良いんではないだろうか
どうやって検索してるんかしらんけど
つーかTreeViewってWinFormにもWebにもWPFにもあるしなー
> ルートだけ表示させることはできないでしょうか。
ルートって普通rootのこと指すから、こういう使い方しない方が良い
0841デフォルトの名無しさん
2009/08/25(火) 10:39:220842デフォルトの名無しさん
2009/08/25(火) 10:50:450843デフォルトの名無しさん
2009/08/25(火) 10:54:48ヽ(・ω・)/ ズコー
\(.\ ノ
、ハ,,、  ̄
 ̄
0844デフォルトの名無しさん
2009/08/25(火) 11:13:10C#でインスタンス化したメソッドは抜けているのに
メモリが確保されたままっていうことはありますか?
フォルダ内の数千ファイルを読み込んで
内容をDBに登録するだけのプログラムなんですが
30分ほど放っておくとメモリがタスクマネージャ上で2Gとかになっています(起動時50MB程度)
ファイル読み込みループ内でファイルのIOクラスとデータベース登録クラスをインスタンス化しているので,
新しいファイルを読み込むたびに前回までのメモリが解放されているイメージなのですが,
この認識って間違っていますでしょうか?
0845デフォルトの名無しさん
2009/08/25(火) 11:13:45そんなこと無いと思うけど。
ttp://e-words.jp/w/E383ABE383BCE38388E38387E382A3E383ACE382AFE38388E383AA.html
0846デフォルトの名無しさん
2009/08/25(火) 11:34:18きみは何が言いたいのか?
0847デフォルトの名無しさん
2009/08/25(火) 11:37:59こいつらは誰に対していってんのか
0848デフォルトの名無しさん
2009/08/25(火) 11:46:09どうみても>>840でしょ。
>>840がいってることは正しい。
馬鹿(>>841-843)はスルーしたほうがいいよ。
0849デフォルトの名無しさん
2009/08/25(火) 11:46:41>>840の文脈から理解出来ないの?説明するつもりはない
0850デフォルトの名無しさん
2009/08/25(火) 11:49:150851デフォルトの名無しさん
2009/08/25(火) 11:51:060852デフォルトの名無しさん
2009/08/25(火) 11:59:51838が言ってるのはそりゃ「経路」だ
0853デフォルトの名無しさん
2009/08/25(火) 12:01:27>そんなこと無いと思うけど。
といっているのに、リンク先の内容は
> ルートって普通rootのこと指すから
と同じことが書かれていると思われるんだが。
0854デフォルトの名無しさん
2009/08/25(火) 12:04:20root
0855デフォルトの名無しさん
2009/08/25(火) 12:22:110856デフォルトの名無しさん
2009/08/25(火) 12:30:510857デフォルトの名無しさん
2009/08/25(火) 12:32:00C#の世界では通常メソッドはインスタンス化されない。クラスはされるけどな。
ファイルを読み込むってことは、Stream関係のオブジェクトが開放されてないんじゃないの?
アンマネージドなデータを含んでるオブジェクトは明示的にDispose()してやる必要があるよ。
もしくはusing構文を使うかだ。
0858デフォルトの名無しさん
2009/08/25(火) 15:06:04「ノードAが展開されている」というのは、簡単に言うと「ノードAの子ノードが見える状態」であって、
「ノードAが見える状態」ではない。
このことは理解してる?
因みに、理解していて>>838の質問なら>>840(前半)に帰結する。
0859デフォルトの名無しさん
2009/08/25(火) 16:37:41ストリームをCloseしてるだけでDisposeしていませんでした.
メモリ使用量は気持ち減った感じですが,
まだ上がり続けているので,もうちょっとソース見てみます
ありがとうございました
0860デフォルトの名無しさん
2009/08/25(火) 16:53:03DataTable NewTable = SrcTable.Clone();
foreach( DataRow Target in SrcTable.Select( "ColName < 1" ) )
NewTable.ImportRow( Target );
チョメチョメ = NewTable;
これをLinqはどのように書くのでしょうか?
0861デフォルトの名無しさん
2009/08/25(火) 17:37:17MFCでDLLを作ってそれをC++/CLIでラップしました
次にそれをC#やVB.netから呼び出したいのだけど文字列ですね
const char *みたいなものにSystem.Stringのデータが渡せないって怒られます
どうやって変換すればいいんでしょう?
配布するものなんで言語環境に依存しない形で呼び出せるようにしたいのですが
0862デフォルトの名無しさん
2009/08/25(火) 17:44:18よくねえよ。C++/CLIスレがあるからそっちいけ
String^で受けてmarshal_as<std::string>
0863デフォルトの名無しさん
2009/08/25(火) 17:58:19DataViewでFilterとToTable使った方が楽だと思うけど
なぜあえてLINQ?
0864デフォルトの名無しさん
2009/08/25(火) 18:47:38LINQを使う(覚える)のが目的でした。
LINQ使えばこの手の処理がかなり簡素にできるのかなと。
構造体のlistならサンプルでなんとなくわかった(ような気がする)
のですがDataTableの場合、項目名をどう書けばよいのかわか
りませんでした。
0865デフォルトの名無しさん
2009/08/25(火) 20:00:44StreamはCloseだけでも大丈夫だよ。
正確には大丈夫ではないが、今回の現象に関しては。
※もちろんusingなどを使って確実にDisposeするのが正しい。
DBアクセス用のクラスの方の、接続とかの管理(Close)は大丈夫なのか?
0866デフォルトの名無しさん
2009/08/25(火) 20:02:16Disposeとかだけの問題でもなさそうな気がするな。
0867デフォルトの名無しさん
2009/08/25(火) 20:12:57型付きかどうかで変わるけど、
var table = (from row in table.AsEnumerable()
where row.Field<int>("ColName") > 15
select row).CopyToDataTable();
ただのDataTableならこんな感じ
AllowDBNullならnullチェックが必要になるが
0868デフォルトの名無しさん
2009/08/25(火) 20:41:19レスありがとうございます
プロジェクト全体に「Stream」で検索掛けて関係ありそうなのは全部Close Disposeかけました
(StreamReaderなども)
DBに関しては
DbConnection,DbTransactionのClose Dispose
DbCommandのDispose
を徹底しました
でもまだ使用率が上がってます
現在1G使用率を上げるのに2時間かかるかんじです
(ファイルサイズがバラバラなので変化には誤差があるのでしょうが)
もうちょいでしょうか...w
0869デフォルトの名無しさん
2009/08/25(火) 21:02:09ツンデレどうもw
とりあえず文字はいけました
0870デフォルトの名無しさん
2009/08/25(火) 21:06:28んー、usingの使い方知ってる?
0871デフォルトの名無しさん
2009/08/25(火) 21:48:320872デフォルトの名無しさん
2009/08/25(火) 23:01:02別にプロファイラで見るのもいいんだけど。
0873デフォルトの名無しさん
2009/08/25(火) 23:21:10これって、linqだと簡単にできるの?
0874デフォルトの名無しさん
2009/08/25(火) 23:28:290875デフォルトの名無しさん
2009/08/25(火) 23:46:010876デフォルトの名無しさん
2009/08/26(水) 00:12:200877デフォルトの名無しさん
2009/08/26(水) 00:31:17鯖で使うのは微妙
0878デフォルトの名無しさん
2009/08/26(水) 01:02:57展開すると最適化のきかない冗長なコードになるのかな?
0879デフォルトの名無しさん
2009/08/26(水) 01:14:19デリゲート呼び出し分のコストはかかるんで、全部インライン展開した場合と比べると5%くらい遅いことはある。
まあ、あと、変なクエリを ToArray() せずに使うと毎回クエリしなおしで遅くなることもあるけど。
0880デフォルトの名無しさん
2009/08/26(水) 01:39:12一部の人はどこかのブログとかををうのみにして先入観持ってる気がする
0881デフォルトの名無しさん
2009/08/26(水) 09:48:01usingの使い方は知っていますが、接続を切るタイミングは動的にしないといけない事情がありましたので使ってません。
あとメモリリークの原因分かりました
http://support.microsoft.com/kb/418376/ja
ファイルがXMLでかつ
XSL、DTDの指定があったとき
WebBrowserで読み込んでInnerTextを拾ってくる使用でした.
プロファイラで見たときにWebBrowserのメモリがガンガン上昇していったので気付きました。
XMLDocumentで同じようなことができないか試してみます。
0882デフォルトの名無しさん
2009/08/26(水) 09:57:26| WebBrowser コントロールを利用しているアプリケーションを定期的に終了させて下さい。
うわお
>>881乙
0883デフォルトの名無しさん
2009/08/26(水) 10:18:140884デフォルトの名無しさん
2009/08/26(水) 10:53:13たぶん、紙にでもならない限りむりだろうなw。
0885844
2009/08/26(水) 10:54:27すみませんw
まさかここで引っかかってると思いもしなかったので
0886デフォルトの名無しさん
2009/08/26(水) 12:32:13>すみませんw
なんだよ最後の草はバカにしてるのか
0887デフォルトの名無しさん
2009/08/26(水) 13:01:170888デフォルトの名無しさん
2009/08/26(水) 14:01:370889デフォルトの名無しさん
2009/08/26(水) 14:02:11void FuncB() { Console.WriteLine("B"); }
void FuncC() { Console.WriteLine("C"); }
Action x;
Action y;
x += FuncA;
x += FuncB;
x += FuncC;
y = x;
x -= FuncB; // FuncAとFuncCが残る
y -= x; // FuncBだけ残るはず
y();
Bだけ表示されると思ったのですが、A, B, C全て表示されました。
x -= FuncAやx -= FuncCにした場合は、ちゃんとAだけCだけ表示されます。
なぜでしょうか?
0890デフォルトの名無しさん
2009/08/26(水) 14:34:38で、Delegate.Remove の解説はこれ。
> value の呼び出しリストが source 呼び出しリスト内の隣接している一連の要素と一致する場合は、
> source の呼び出しリスト内に value の呼び出しリストが含まれていると見なされます。
> value の呼び出しリストが source の呼び出しリスト内に複数回出現する場合は、
> 最後に出現した呼び出しリストが削除されます。
x -= FuncB すると x には FuncA, FuncC というリストが残る。
y は FuncA, FuncB, FuncC というリストだから、
「リスト内の隣接している一連の要素」に一致しなくなる。
0891デフォルトの名無しさん
2009/08/26(水) 14:47:11必要とされる理由がないので無い
0892デフォルトの名無しさん
2009/08/26(水) 15:00:03俺もそれ欲しいんだけどなあ。
Dictionaryとか参照だけさせたいときは読み取り専用ラッパで包むしかないんだろうか。
0893デフォルトの名無しさん
2009/08/26(水) 16:28:23ありがとう。参考にさせてもらいます。
思ったより長くなるんですね
0894デフォルトの名無しさん
2009/08/26(水) 17:22:34このメソッドに渡すこのインスタンスは中身が変更されるんだろうか?
って気になることあるじゃんか
サマリーに明記するしかないのかね
例外なんかはサマリーにかけるよね
0895デフォルトの名無しさん
2009/08/26(水) 17:39:420896デフォルトの名無しさん
2009/08/26(水) 17:59:290897デフォルトの名無しさん
2009/08/26(水) 18:33:510898デフォルトの名無しさん
2009/08/26(水) 18:39:25バカか
0899デフォルトの名無しさん
2009/08/26(水) 18:42:190900デフォルトの名無しさん
2009/08/26(水) 18:45:45で、こういう場合C#ではどうするの?
0901デフォルトの名無しさん
2009/08/26(水) 18:46:37学習能力衰えた脳筋はC++から出てくんなハゲ。
0902デフォルトの名無しさん
2009/08/26(水) 18:49:24例となるメソッドとクラスを提示してくれよ。
0903デフォルトの名無しさん
2009/08/26(水) 19:05:34C++のconstの概念は、実質的にそういう2つのクラスを作っているも同然だって。
まあ、IList<T>とその周辺はそういう風になっていないけどさ。
0904デフォルトの名無しさん
2009/08/26(水) 20:09:160905デフォルトの名無しさん
2009/08/26(水) 20:36:280906デフォルトの名無しさん
2009/08/26(水) 21:04:160907デフォルトの名無しさん
2009/08/26(水) 21:09:13なぜこのようにするのか全くわかりません。
継承するときのメリットとは何でしょうか?
単純にClass{Class{}}してしまうのはよくないのでしょうか?
0908デフォルトの名無しさん
2009/08/26(水) 21:14:36吐き捨てるように言えばおk
0909デフォルトの名無しさん
2009/08/26(水) 21:42:33皆さんは何を中心に使われましたか?
秀和の、技555ですか?
0910デフォルトの名無しさん
2009/08/26(水) 21:45:150911デフォルトの名無しさん
2009/08/26(水) 21:48:550912デフォルトの名無しさん
2009/08/26(水) 21:52:160913デフォルトの名無しさん
2009/08/26(水) 21:53:53どうもありがとう
何かほかの方法探してみます。
0914デフォルトの名無しさん
2009/08/26(水) 22:51:01ありきたりの答えだけど、共通の処理を手っ取り早く共通化できることだろうな。
インターフェースを実装して委譲させればいいんだけど、一々やってるのが
メンドイ場合もある。
インターフェースにメソッドが山ほどあって、かつ兄弟が山とある場合とか。
具体的にはWindows.Formsのコントロール群かなんかみたいな場合。
(Formsがやってるかという話じゃなく、ああいった感じでクラスを山ほど
作らなければならなくなったらという話)
0915デフォルトの名無しさん
2009/08/26(水) 22:54:54他の言語触った事あるなら、解説サイト見るだけでいいような気も。
C++の時は4、5冊買ったけどC#は0冊。俺の能力云々じゃなくて
言語(+開発環境)として、かなりとっつき易いと思う。
0916デフォルトの名無しさん
2009/08/26(水) 23:09:0470-536の時にスキルチェック問題集買ったのが唯一。
0917デフォルトの名無しさん
2009/08/26(水) 23:24:210918デフォルトの名無しさん
2009/08/26(水) 23:32:52まだまだ初心者の域を出ていないからだろうけど。
0919デフォルトの名無しさん
2009/08/26(水) 23:38:510920デフォルトの名無しさん
2009/08/27(木) 00:03:59洋書です。
0921デフォルトの名無しさん
2009/08/27(木) 00:44:31デルファイ+パラドックスより登録UpDATE遅いんだけど
なんで?
退化してるような
神様おしえてプリーズ
0922デフォルトの名無しさん
2009/08/27(木) 00:47:26非接続型がメインですよね?
接続型のDBと非接続混合させてプログラム組んでる人いますか?
接続型のメリットはなんでしょう?
SQL書けるところ?
0923デフォルトの名無しさん
2009/08/27(木) 00:52:54>非接続型がメイン
んなこたーない。要するにDOMとSAXの関係みたいなものだと思ってるが。
0924デフォルトの名無しさん
2009/08/27(木) 01:04:03Wroxからは山ほど出てるわけだが・・・
あのわら半紙は耐え難い
0925デフォルトの名無しさん
2009/08/27(木) 01:49:53ダメ?
なんか別スレでもコレクションの批判を見たんだが、
最近はそんな風潮になってきてんの?
このコレクション厨が!みたいな論調で具体例も何もなかったんだけど。
0926デフォルトの名無しさん
2009/08/27(木) 02:02:38まあ、人に公開するんでなければ何でもいいと思うけどな。
参考までに、>>896はコレクションのインターフェイスを使ったイイカンジのコードを紹介してくれるとありがたい。
0927デフォルトの名無しさん
2009/08/27(木) 02:16:35List<>渡したいけど勝手に追加・削除されたくない時はとりあえず
private List<int> lis = new List<int>();
public void DoAll( Action<int> func )
{
foreach (int data in lis)
{
func(data);
}
}
↑こんなの用意して、こう使ってる↓
this.DoAll( delegate( int iData )
{
// 何か処理
});
intの代わりに読み込み専用のインタフェースになる場合も。
0928デフォルトの名無しさん
2009/08/27(木) 03:28:050929デフォルトの名無しさん
2009/08/27(木) 05:07:28public class person
{
public string 人名;
public List<日詳細データ> 詳細 = new List<日詳細データ>();
}
public class 日詳細データ
{
public float 身長;
public float 体重;
public datetime 日付;
}
List<person> データ = new List<person>();
詳細を増やすにはどうすればいいのでしょうか?
0930デフォルトの名無しさん
2009/08/27(木) 08:18:56DOMとSAXふむふむ
つまり速度重視は接続型
使いやすさ重視は非接続型
・・・と言うことでしょうか?
違うかな?
0931デフォルトの名無しさん
2009/08/27(木) 08:28:43というか、ちょっと前にまったく同じ質問が出てるから。
ここの回答で気に入らないなら、自分で比較記事を探せ。
0932デフォルトの名無しさん
2009/08/27(木) 08:31:09探してみます
ありがとうございます
0933デフォルトの名無しさん
2009/08/27(木) 09:17:16クラス作成のパラメータが多い場合に補助的に使うクラスとかあるよな
そういうのが内部で書き換えられない事が外部でわかると便利ってことだろ
構造体にすりゃいいんだろうけどコピーのコストをかけたくない場合に
C++でいうconst参照渡しやconst参照返しが欲しいことはある
まあC#はC++みたいな最適化は出来ないってことであきらめるしかないのかな
0934デフォルトの名無しさん
2009/08/27(木) 12:39:56コレクション・配列の場合は、Clone・ReadOnlyのWrapper・Indexでアクセスする必要がないなら列挙子を受け取ればいい。
0935デフォルトの名無しさん
2009/08/27(木) 13:54:53配列だってIList<T>を実装してるんだから、特別に考える必要はないだろ。
> まあC#はC++みたいな最適化は出来ないってことであきらめるしかないのかな
最適化というより、契約プログラミングじゃない?
constを付けたところで、他の参照やスレッドから変更される可能性は残るんだし。
個人的には、spec#がC#と統合されれば、
C++のconstが欲しいなんて思う事はなくなるんじゃないかと期待してる。
0936デフォルトの名無しさん
2009/08/27(木) 14:38:55const参照なら両方の問題が解決できる
スレッドはまた別の話だろ
0937デフォルトの名無しさん
2009/08/27(木) 15:02:060938デフォルトの名無しさん
2009/08/27(木) 15:37:11議論も愚痴も無駄無駄
0939デフォルトの名無しさん
2009/08/27(木) 15:54:46const付け忘れる奴が出ないように、設計の段階で制限する方がいいと思うんだけどなぁ…
ReadOnlyとかにしとけば、実装時にうっかりミスで変更しちゃうような事は起きないでしょ
const付けるべき個所で付いてないとか、そもそも使ってないようなやつを一杯見てきたわけで…もう戻りたくない。
0940デフォルトの名無しさん
2009/08/27(木) 15:57:530941デフォルトの名無しさん
2009/08/27(木) 16:15:35IReadOnlyList<out T> は欲しいな。
0942デフォルトの名無しさん
2009/08/27(木) 16:26:05他人のソースをいじるときは、それに反しない範囲で帳尻を合わせることならあるが。
0943デフォルトの名無しさん
2009/08/27(木) 16:36:32C++でconst使わないとかどんなプログラム書いてんだと言いたいが
0944デフォルトの名無しさん
2009/08/27(木) 17:00:450945デフォルトの名無しさん
2009/08/27(木) 17:21:070946デフォルトの名無しさん
2009/08/27(木) 17:21:100947デフォルトの名無しさん
2009/08/27(木) 17:44:050948デフォルトの名無しさん
2009/08/27(木) 19:10:24MSDNにはプロパティで配列を返すと怒られますよと書いているのですが
実際記載されているコードを実行してもエラーも起きず配列が正常に帰ってきます。
http://msdn.microsoft.com/ja-jp/library/0fss9skc.aspx
一体どのような状況でエラーとなるのか、それともこのエラーは解消されたのかを教えてください。
コンパイルはC# 3.0,3.5の両方です
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1(){InitializeComponent();}
private void button1_Click(object sender, EventArgs e)
{
string[] s = { "test_1", "test_2" };
Book a = new Book(s);
System.Diagnostics.Debug.Print(Convert.ToString(a.Pages.GetValue(0)));
}
}
public class Book
{
private string[] _Pages;
public Book(string[] pages){_Pages = pages;}
public string[] Pages{get { return _Pages; }}
}
}
0949デフォルトの名無しさん
2009/08/27(木) 19:16:13【○】プロパティで配列を返さないでください
0950デフォルトの名無しさん
2009/08/27(木) 19:21:040951デフォルトの名無しさん
2009/08/27(木) 19:59:52LANは非接続型
スタンドアロンは非接続型、接続型どっちでもいいが正解です!
0952デフォルトの名無しさん
2009/08/27(木) 20:17:24ということは、別に警告は出さないけどお勧めしないってことですね。
MSDNの規則を見ても「書き込みからの保護の保証がない」ってだけみたいですが、一応規則にそってコレクションで返すことにします。
ありがとうございましたー。
0953デフォルトの名無しさん
2009/08/27(木) 22:51:020954デフォルトの名無しさん
2009/08/27(木) 22:55:08だからラジオボタンのAutoCheck = false。
何度も同じこと聞くなよ。
っていうか、これも前も言ったが普通はできてもやらないよそんな糞動作は。
0955デフォルトの名無しさん
2009/08/27(木) 23:16:44string[] directories = (@"c:\photo", "*", SearchOption.AllDirectories);
string photodirectories;
string emptydirectories;
foreach (string directory in directories){
if (File.Exists(directory + @"\*.jpg")) photodirectories = photodirectories + directory;
else emptydirectories = emptydirectories + directory;
}
ところが、directory + @"\*.jpg"では、jpgファイルのあるフォルダをリストできないみたいです。
ぜんぶelseになっています。
条件の設定方法をご教示ください。
0956デフォルトの名無しさん
2009/08/27(木) 23:27:15標準ライブラリ内ならDirectory.GetFiles使う
0957デフォルトの名無しさん
2009/08/27(木) 23:28:040958デフォルトの名無しさん
2009/08/28(金) 00:13:14int Number = objects.Length - 1;
ですが、
IEnumerable<string> objects
の場合、長さはどうやって取得しますか?
0959デフォルトの名無しさん
2009/08/28(金) 00:14:170960デフォルトの名無しさん
2009/08/28(金) 00:17:540961デフォルトの名無しさん
2009/08/28(金) 00:28:37LINQ使えないならforeachしながら数える。
0962デフォルトの名無しさん
2009/08/28(金) 00:44:23foreach (var object in objects){
Number++;
}
してみました。
これでOK?
0963デフォルトの名無しさん
2009/08/28(金) 00:45:40forループだと必ずO(n)
0964デフォルトの名無しさん
2009/08/28(金) 01:27:25使ったことあるなしは関係ないよ、ただのメソッドだし。
VS2005ならそれでやればいいし、
VS2008ならCount()を使えばいい。
0965デフォルトの名無しさん
2009/08/28(金) 03:00:22現在、1プロセス内でマルチスレッドを使用して処理を行うプログラムを作成しています。
各スレッドの処理結果を1つのログファイルに出力しようとしているのですが、
複数スレッドがログファイルにアクセスするため、排他手段としてFileStreamインスタンスの
作成時、FileShare.None指定で作成することにしました。
しかし、MSDNライブラリを見たところFileShare.None指定は「他プロセスからのアクセスを禁止する」
となっており、1プロセス内でのアクセスは制限されないと読み取れてしまいます。
1プロセス内でのマルチスレッドの場合、排他機能としてはFileShare.None指定は意味が無い
のでしょうか?
もし意味が無いのであれば、上記の場合のファイル排他としてはどのような方法が望ましいのでしょうか?
よろしくお願いします。
0966デフォルトの名無しさん
2009/08/28(金) 03:10:26プロセスもスレッドも関係なく後続は開けなくなる
排他のためにShare.Noneは取り回しが悪いと思うけど
0967デフォルトの名無しさん
2009/08/28(金) 03:47:26後学のために教えてほしいのですが、>>965のような場合にファイル排他をする場合、C#としてはどうするのが一般的なのでしょう?
fileShare.Noneくらいしか思いつかなかったもので…。
0968デフォルトの名無しさん
2009/08/28(金) 04:16:00というか、ファイルに排他処理入れるんじゃなくて、
出力処理をシリアル化してひとつのFileStreamオブジェクトに任せればいいんじゃね?
0969デフォルトの名無しさん
2009/08/28(金) 05:55:59ほかのアプリとの排他考えたらファイルに排他制御かけないとダメなことない?
0970デフォルトの名無しさん
2009/08/28(金) 06:11:09素直にTrace周りを使った方が
0971デフォルトの名無しさん
2009/08/28(金) 06:32:250972デフォルトの名無しさん
2009/08/28(金) 06:58:09デットロック喰らわないように、ブロックしたりして)使えば同じじゃないのかな)
どうせCPU100%使えんだろうし(てゆうか100%使ったらPCフリーズしそうだけど)
0973デフォルトの名無しさん
2009/08/28(金) 07:02:440974デフォルトの名無しさん
2009/08/28(金) 07:39:10ただ標準のインターフェイスはやや使いにくいので、アプリ全体で使いまわすstaticなラッパーを通してる。
0976デフォルトの名無しさん
2009/08/28(金) 10:27:57c#で勤怠管理システムを作成するにはどれくらいの期間が必要でしょうか。
私の能力次第だとは思いますが、
一般的にc#がモノになってプロジェクトに参画できるようになるにはどれくらいかかるのかなと…。
0977デフォルトの名無しさん
2009/08/28(金) 10:56:04EnumerableRowCollection<DataRow>っていうのは、Union出来ないんでしょうか?
下のコードで何がしたいかと言うと、既にフィルタされてるテーブル dtLog と
現在のテーブル dtでOR検索させたいと思ってます。
※dt と dtLog = DataTable、clm = ColumnName、queryは検索文字列です。
-----------------------------------------------------------------
EnumerableRowCollection<DataRow> linq =
from row in dt.AsEnumerable()
where (row.Field<string>(clm) != null) && (row.Field<string>(clm).Contains(query))
select row;
EnumerableRowCollection<DataRow> linq2 =
from rowLog in dtLog.AsEnumerable()
select rowLog;
EnumerableRowCollection<DataRow> linq3 = linq.Union(linq2);
-----------------------------------------------------------------
↓上記コードで出たエラー
---------------------------------------------------------------
型 'System.Collections.Generic.IEnumerable<System.Data.DataRow>' を
'System.Data.EnumerableRowCollection<System.Data.DataRow>' に暗黙的に変換できません。
明示的な変換が存在します。(cast が不足していないかどうかを確認してください)
----------------------------------------------------------------
LINQの型をIEnumerable<DataRow>で定義しておいて
Unionさせて最後に(EnumerableRowCollection<DataRow>)
にキャストにしてみたのですがキャスト出来ませんでした。
解決方法分かる方いましたら教えてください。
0978デフォルトの名無しさん
2009/08/28(金) 11:21:550979デフォルトの名無しさん
2009/08/28(金) 11:31:33まずはCOBOLを綺麗さっぱり忘れることから始めようか
0980デフォルトの名無しさん
2009/08/28(金) 11:46:39最終的にEnumerableRowCollection<DataRow>から
DataTableかDataViewが欲しかったのですが
varだとDataRowと推定されるみたいなのですが
変換出来るんでしょうか?
0981デフォルトの名無しさん
2009/08/28(金) 11:54:110982デフォルトの名無しさん
2009/08/28(金) 12:04:52どうもありがとうございます!
CopyToDataTableでDataTableに変換出来ました。
初心者なんでCopyToDataTableというのを知りませんでした。
ありがとうございました!
0983デフォルトの名無しさん
2009/08/28(金) 13:58:46クラスや継承、それらの必要性さえ解ればC#を憶えるのは割と簡単です。
クラス2つ作って継承させたりして、なんとなく憶えた気になるのは一週間もあれば可能かと思います。
ファイルやデータベースのアクセスも割と簡単です。欲しいと感じる処理はだいたい最初からあります。
コントロールで細かい動作を求められたりするとかなりストレスが溜まります。
小難しいUIの無い部分から参画すればいいと思います。
0984デフォルトの名無しさん
2009/08/28(金) 14:05:150985デフォルトの名無しさん
2009/08/28(金) 14:55:14本を見たら、違いが書いてはいますが、どう使い分けるかが書いていませんでした。
0986デフォルトの名無しさん
2009/08/28(金) 14:57:070987デフォルトの名無しさん
2009/08/28(金) 14:58:37http://pc12.2ch.net/test/read.cgi/tech/1251439041/
0988デフォルトの名無しさん
2009/08/28(金) 15:40:350989デフォルトの名無しさん
2009/08/28(金) 15:52:11ビルドはどういうときにやるの?
0990デフォルトの名無しさん
2009/08/28(金) 16:21:030991デフォルトの名無しさん
2009/08/28(金) 17:11:020992デフォルトの名無しさん
2009/08/28(金) 17:16:02必要に応じて使い分ける、としか言いようがないな。
0993デフォルトの名無しさん
2009/08/28(金) 17:20:26知り合いの独立SEはリビルドしかやらないと言っていました。
ただ彼も、独学でC♯を学んで独立しているので偏りがあるかもしれないです。
0994デフォルトの名無しさん
2009/08/28(金) 18:30:49C#だとソースからいきなりアセンブリ(exe, dll)を作るから
コンパイルのスピードにあまり差は出ない。
C++の場合は中間でオブジェクトファイルやコンパイル済みヘッダを
作ったりするからコンパイル時間に差が出るのだが。
0995デフォルトの名無しさん
2009/08/28(金) 18:37:17別マシンにソリューションごと持って行って
そこでビルドすると変な exe ができたことはあった。
それ以外で中間ファイルが悪さしたことはないわ。
0996デフォルトの名無しさん
2009/08/28(金) 18:38:02ビルドだと変更してない部分はコンパイルされないので、
コンパイラの警告が表示されないから
0997デフォルトの名無しさん
2009/08/28(金) 18:53:29リビルドするときもデバッグされるの?
0998デフォルトの名無しさん
2009/08/28(金) 21:14:13ちがう。「コンパイラ」の警告と996は言ってる。
0999デフォルトの名無しさん
2009/08/28(金) 22:09:571000デフォルトの名無しさん
2009/08/28(金) 22:10:3810011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。