09/08/28 14:57:21
このスレッドは
「どんなにくだらないC#プログラミングに関する発言でも誰かが優しくレスをしてくれるスレッド」です。
ほかのスレッドでは恐ろしくて書き込めないような低レベル、もしくは質問者自身なんだか意味がよく分からない質問など、
勇気をもって書き込んでください。
内容に応じて、他スレ・他板へ行くことを勧められる、あるいは誘導される場合がありますがご了承下さい。
>>980を踏んだ人は新スレを建てて下さい。
>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。
前スレ
ふらっとC#,C♯,C#(初心者用) Part43
スレリンク(tech板)
2:デフォルトの名無しさん
09/08/28 14:58:19
-----関連スレ
C#, C♯, C#相談室 Part54
スレリンク(tech板)
WPF(XAML,XBAP,.NET3.5)GUIプログラミング Part4
スレリンク(tech板)
----参考サイト
URLリンク(www.google.co.jp)
URLリンク(msdn.microsoft.com)
URLリンク(homepage3.nifty.com)
URLリンク(www.atmarkit.co.jp)
URLリンク(dobon.net)
URLリンク(jeanne.wankuma.com)
URLリンク(www.labasp.net)
3:デフォルトの名無しさん
09/08/28 15:39:52
>>1
乙
4:デフォルトの名無しさん
09/08/28 15:51:24
tryとcatch、
どういう背景でこのような呼び方をするのですか?
エラー、ノットエラーみたいな呼び方でいいのに…。
5:デフォルトの名無しさん
09/08/28 15:55:41
データセットに溜め込まれたの内容を、CSVテキストに書き出すにはどうすればよいでしょうか。
リストボックスの内容を書き出す方法は、本に書いていましたが…。
6:デフォルトの名無しさん
09/08/28 16:10:40
>>4 おれも日本語で
監視
{
}
確保
{
{
ーがいいと思う
7:デフォルトの名無しさん
09/08/28 16:11:50
>>5
なんて本?
8:デフォルトの名無しさん
09/08/28 17:17:07
>>7
うちの、
秀和かソシム?の逆引き向けの本です。
今、歯医者にいますので、うちに着いたら正式なタイトルを書きます。
9:デフォルトの名無しさん
09/08/28 18:11:16
今から覚えるなら、C♯のWindowsフォーム、C♯のWPFアプリケーション、java、パワービルダーのどれがいいですか?
10:デフォルトの名無しさん
09/08/28 18:32:56
初心者向けの日本語情報が沢山あるWinFormsにしとけ
WPFは必要性を感じるまでやんなくていい
11:デフォルトの名無しさん
09/08/28 18:55:55
デリゲートって、一体、どういう必要性があるときに使用するの?
本屋のC♯の本を全て見たけど、どれも内容だけ書いていて、メリットや用途について書いていなかったです。
教えてください(>_<)。
12:デフォルトの名無しさん
09/08/28 19:06:37
普通知らないうちに使ってるよ。
13:デフォルトの名無しさん
09/08/28 19:13:54
デリゲートを使うと「関数を引数に取る関数」を作ることができます。
慣れないうちは意識して明示的に使うことは無いかもしれませんが,
イベントやLINQの裏方として多用されています。
14:デフォルトの名無しさん
09/08/28 19:20:50
>>13
自分でコーディングしたことないけど使ってるの?
もしかして別のクラスにコード記述がなされてるの?
15:デフォルトの名無しさん
09/08/28 19:33:56
たとえば,Form1のbutton1をダブルクリックすると,Form1.Designer.csにこんな行が作られる。
button1.Click += new EventHandler(button1_Click);
これがまさしくデリゲート。EventHandlerデリゲートのオブジェクトを作って
button1.Clickイベントに渡している。
16:デフォルトの名無しさん
09/08/28 20:08:36
>>15
ありがとうo(^-^)o。
僕たちが直にコーディングするときもあるの?
17:デフォルトの名無しさん
09/08/28 20:10:28
>>10
javaとC♯ではどちらがお勧め?
18:デフォルトの名無しさん
09/08/28 20:22:22
あーみんな死んじゃえ
19:デフォルトの名無しさん
09/08/28 20:24:56
>>16
イベントハンドラを手で登録することはよくある。
明示的な「関数を引数に取る関数」の例は,list.RemoveAll(x => x.IsHoge) みたいなのがある。
x => x.IsHoge という関数をRemoveAllの引数に渡してるわけ。これにもデリゲートが使われてる。
>>17
Windows限定なら断然C#
20:デフォルトの名無しさん
09/08/28 20:27:56
>>19
…どういうときに…意識的にデリゲートを使うのだろうか…。
おいおい分かってくるのだろうか…。
21:デフォルトの名無しさん
09/08/28 20:44:34
処理を差し替えたいときに使うんだよ
void Hoge(Action<Foo> 差し替え可能な処理) {
var foo = 共通の前処理();
差し替え可能な処理(foo);
共通の後処理(foo);
}
みたいな
22:デフォルトの名無しさん
09/08/28 20:45:57
初心者にラムダ式見せて無用に混乱させるラムダ厨
23:デフォルトの名無しさん
09/08/28 21:04:04
たとえば、客に料理を出してもてなすクラスを考える
class Host
{
public delegate Meal MakeMealDelegate();
public MakeMealDelegate MakeMeal;
void Serve(Guest guest)//客をもてなす
{
Meal meal = MakeMeal(); //料理を作る。
Cater(guest, meal); //料理を客に出す。
}
}
ここで、3つの料理法があったとする。
Meal MakeItalian(){.......}
Meal MakeFrench(){......}
Meal MakeJapanese(){......}
すると、
Host host = new Host();
host.MakeMeal = MakeFrench; //フランス料理でもてなす。
//host.MakeMeal = MakeItalian;//イタリア料理でもてなす。
//host.MakeMeal = MakeIJapanese;//日本料理でもてなす。
host.Serve(guest);
というように、delegateを使うと、どの料理方法を使って料理を
作るかをHostに対して指定できるようになる。
24:デフォルトの名無しさん
09/08/28 21:08:50
>>23
あなた素晴らしい人だよ。
一緒に仕事したい。
25:デフォルトの名無しさん
09/08/28 21:19:05
入金管理システムを作りたいと思います。
日付入力欄がたくさん必要ですが、
いろんな入力パターンに対しても受け入れたいと考えています。
例えば2009年9月1日ならば、
20090901
090901
0901
2009.09.01
2009.09.1
2009.9.01
2009.9.1
09.09.01
09.09.1
09.9.01
09.9.1
9.09.01
9.09.1
9.9.01
9.9.1
9.1
(.がスラッシュのときも同様に認識)
H210901
H21.09.01
H21.09.1
H21.9.01
H21.9.1
(.がスラッシュのときも同様に認識)
このとき、一般的にどのような仕組みが作られているのでしょうか?
26:デフォルトの名無しさん
09/08/28 21:21:47
カレンダー系のコントロールで入力させる
27:デフォルトの名無しさん
09/08/28 21:23:08
あんまりいい例じゃないと思うけどねw
少なくとも俺が>>23的なデリゲートの使い方があまり好きになれない理由の一つは、
>23の例で言えば、例えば「今どの料理を出すモードか?」を表すプロパティが
必要になったときスマートにいかないからだね。
恐らくほとんどのプログラマは認めないと思うが、
こんな場合は泥臭くてもswitchで分岐した方が結局分かりやすいように思える。
そういう必要がない純粋なディスパッチャーを記述する場合にはデリゲートで
いいと思うんだけど。
28:デフォルトの名無しさん
09/08/28 21:27:01
>>25 正規表現
29:デフォルトの名無しさん
09/08/28 21:45:31
いや、わかりやすさ、うんぬんの話ではなくて、
Hostクラスに料理に関してどれほどの自由度を与えるか、の問題だね。
イタリア料理、日本料理、フランス料理の調理能力をHostに与えたとして、
いざ、中華をださなきゃならんというときに、Hostクラスをいじくらなきゃならなくなる。
それならいっそのこと最初からdelegeteの形で外部から料理人を雇ってしまおう、
という発想だね。
30:デフォルトの名無しさん
09/08/28 22:00:00
>>29
言いたいことは分かるけど、
それならComparison<T>の使われ方みたいな例を挙げた方がよかったんじゃないのかな。
現実問題、>>23みたいな話でそれほどの柔軟性が必要性な例はあまりないと思う。
31:デフォルトの名無しさん
09/08/28 22:19:34
どっからかBuilderパターンの説明文をコピペしてきて
デリゲートに書き換えただけのような感じがする
32:デフォルトの名無しさん
09/08/28 22:43:10
>>28
正規表現って何?
33:デフォルトの名無しさん
09/08/28 22:53:57
正規表現…これは日付取得の方法として常識なんだろうか。
34:デフォルトの名無しさん
09/08/28 23:01:55
パターン化可能な文字列に対するマッチングが正規表現であって別に日付に限らないよ
35:デフォルトの名無しさん
09/08/28 23:15:46
いずれにせよ面倒くさいコーディングになるな
36:デフォルトの名無しさん
09/08/28 23:22:25
そんな所で頭使う前に、決め打ちで完成させてから考えることだな。
37:デフォルトの名無しさん
09/08/28 23:35:35
君はもう少し頭を使って日本語を書くべきじゃないかと思うんだ
38:デフォルトの名無しさん
09/08/29 00:16:32
TreeView tv = (TreeView) sender;
というコーディングの、(TreeView)は何を意味しているのですか?
39:デフォルトの名無しさん
09/08/29 00:17:42
型だよ!クラスだよ!
40:デフォルトの名無しさん
09/08/29 00:20:57
イベントだったらルートクラスにキャストされた参照を元のクラスにキャストしなおしているのでは?
41:デフォルトの名無しさん
09/08/29 00:28:52
ラムダ式って何のメリットあるん?
42:デフォルトの名無しさん
09/08/29 00:31:41
書きやすい、まぁまぁ見やすい
expression tree にできる
43:デフォルトの名無しさん
09/08/29 00:31:57
LINQ使わないならそこまで恩恵ないような
44:デフォルトの名無しさん
09/08/29 00:43:10
書くのがdelegateよりも楽。
慣れるとdelegateよりも見るのが楽。
45:デフォルトの名無しさん
09/08/29 01:07:59
private Color _BorderColor;
[Category("表示")]
[DefaultValue(typeof(Color), "Black")]
[Description("あああ")]
public Color BorderColor
{
…
というコードの中の、
[・・・]
は何を意味しているのですか?
46:デフォルトの名無しさん
09/08/29 01:11:54
属性(メタデータ)
47:デフォルトの名無しさん
09/08/29 01:17:43
>>46
属性…どういうときに使うの?
本に書いていないんです(+_+)。
48:デフォルトの名無しさん
09/08/29 01:19:49
例えば45の場合はそれらのメタデータ読み取ってVSがフォームデザインする時に使っている
49:デフォルトの名無しさん
09/08/29 01:21:05
10進数を36進数に変換し、
0~Zまでの表示にしたいと思っています。
このような場合、どのようなコーディングが適しているでしょうか。
よろしくお願いします。
50:デフォルトの名無しさん
09/08/29 01:24:44
宿題か何かか?
51:デフォルトの名無しさん
09/08/29 01:26:24
動いてるコードが適してるコーディングなんだよ馬鹿野郎。
書いてから寝言言えボケカスゴミクズ
52:デフォルトの名無しさん
09/08/29 01:27:13
落ち着けって
53:デフォルトの名無しさん
09/08/29 01:38:05
宿題は自分でやろうな
どうしても分からない所だけ聞いたらいいよ
54:デフォルトの名無しさん
09/08/29 01:40:20
宿題スレなら親切な人が1から10まで教えてくれるよ
たまに罠仕込む奴がいるが
55:デフォルトの名無しさん
09/08/29 01:48:54
>>51
ところで、あなたは開発経験どれくらいですか?
56:デフォルトの名無しさん
09/08/29 01:53:25
親クラスの親クラスがよべない糞言語はここですね
57:デフォルトの名無しさん
09/08/29 01:59:24
privateじゃない限り、ダウンキャストすれば呼べるでしょ。
頭悪いのかな
58:デフォルトの名無しさん
09/08/29 02:05:41
教科書通りに10進数を36で割って商と余りを云々ってのをやってけばいいんでない?
59:デフォルトの名無しさん
09/08/29 02:14:39
データセットのデータをテキストに書き出すことはできますか?
データグリッドビューのデータを書き出すのは本に書いていました。
60:デフォルトの名無しさん
09/08/29 02:21:19
ぐぐれ
61:デフォルトの名無しさん
09/08/29 02:27:10
static string encode32(ulong n)
{
string str = string.Empty;
char[] d = {'0', '1','2','3','4','5','6','7','8','9',
'a','b','b','d','e','f','g','h', 'i','j','k','l','m','n','o','p','q','r','s','t','u','v'};
ulong _base = 32;
do
{
str += d[n % _base];
}
while ((n /= _base) != 0);
char [] strArray = str.ToCharArray();
Array.Reverse( strArray );
return new string( strArray );
}
このサイトのCをC#に焼きなおしてみた。
URLリンク(paranoids.sakura.ne.jp)
ケチのつけどころは多々あるが、そこは適当に直してくれ。
サイトの結果を信じるならば、これであってるはず。
62:デフォルトの名無しさん
09/08/29 02:38:48
>>61
なるほど。
24進数でも36進数でも応用が効くね。
63:デフォルトの名無しさん
09/08/29 02:42:25
先が思いやられるな
64:デフォルトの名無しさん
09/08/29 02:47:22
>>63
貴殿ならどうやるか示せ。
65:デフォルトの名無しさん
09/08/29 02:51:24
わけねーだろ
66:デフォルトの名無しさん
09/08/29 03:01:59
>>65
もったいぶらないで教えてよ。
67:デフォルトの名無しさん
09/08/29 03:08:33
皆さんはVS歴どれくらいなんですかね。
私は1ヶ月ですが。
68:デフォルトの名無しさん
09/08/29 03:16:01
こいつVSスレにいた荒らしだろ
69:デフォルトの名無しさん
09/08/29 04:44:08
>>68
つやつやリキッドファンデーションでも塗っとけ。
70:デフォルトの名無しさん
09/08/29 09:39:16
Accessのファイルに複数のクライアントアプリから同時に接続できるんですか?
71:デフォルトの名無しさん
09/08/29 10:07:59
出来るけど接続多過ぎるとmdb破壊
破壊の目安はぐぐれ
72:デフォルトの名無しさん
09/08/29 11:10:46
>>49
>>58で剰余をyield returnしてLSDから順に取りだす。
得られたシーケンスをReverse, Select, ToArrayして、String.Concat
73:デフォルトの名無しさん
09/08/29 11:19:49
宿題はC風に書け
でないと先生が読めない
74:デフォルトの名無しさん
09/08/29 12:16:22
PL1とCOBOLのみの経験者です。
「オブジェクト指向」の意味を本で調べましたが、
何を読んでも、
COBOLなどの「サブルーチン」や「共通ルーチン」に、デザイン上の汎用コントロールを付け加えたもの
という意味を言っているように見えて仕方がないんです。
けどCOBOLはオブジェクト指向ではありませんし…。
オブジェクト指向言語とCOBOLとの決定的なちがいは何でしょうか?
75:デフォルトの名無しさん
09/08/29 12:33:57
何を読んだら
> COBOLなどの「サブルーチン」や「共通ルーチン」に、デザイン上の汎用コントロールを付け加えたもの
に見えてしまうんだ?
76:デフォルトの名無しさん
09/08/29 12:41:23
Panelの外観(Backgroundimage)に画像が追加されたソリューションを友人からもらいました。
しかし、そのBackgroundimageプロパティが「System.Drawing.Bitmap」という汎用的な定義になっており、
かつ、その画像のありかが分かりません。
これは、ソース一式をくれた彼が、画像をリソースに追加せずにローカルPCの画像を
Backgroundimageに表示させていたからこうなったのでしょうか。
同じような経験をお持ちの方、教えていただけないでしょうか。
77:デフォルトの名無しさん
09/08/29 12:42:56
>>75
結局オブジェクト指向は、
「共通部分をパッケージ化する」みたいな意味合いに見えるんです。
なので、サブルーチンのようなものではないかと…。
けど、それだったら昔からあるCOBOLもオブジェクト指向になってしまいますもんね
(-_-;)。
78:デフォルトの名無しさん
09/08/29 13:04:34
オブジェクト指向はゴールじゃなくて「手法」。君が言ってるのは目的の一つ。
79:デフォルトの名無しさん
09/08/29 13:05:50
オブジェクト指向というか、クラスの概念は「データとそれを触る処理をパッケージ化する」です。
なのであるデータがどう弄られているかを知りたい時、そのデータが所属するクラス内を見るだけで済みます。
オブジェクト指向言語で無い場合、スコープの範囲で調べる必要がでます。
80:デフォルトの名無しさん
09/08/29 13:13:37
>>77
まず「クラスとは何者か?」を理解する。
「オブジェクト指向とは何か」を考えるのはそれからでいい、というより、
君がノイマンみたいな天才でもない限り、いきなり抽象論から理解しようとするのは
無理がある。
81:デフォルトの名無しさん
09/08/29 13:26:08
オブジェクト指向は経験的な手法を整理したものだから触ってりゃそのうちわかる
>>76
それ実行したら画像は表示されるの?
82:デフォルトの名無しさん
09/08/29 13:31:10
>>81
もらった状態でデバッグすると画像は表示されますが、一度、画像「なし」にしたり、他の画像に変えてしまうと、元にもどらなくなってしまうんです。
83:デフォルトの名無しさん
09/08/29 13:34:14
VS のバージョンにもよるかも知れないが…resx ファイルの
中にバイナリが Base64 あたりで入ってるかと。
84:デフォルトの名無しさん
09/08/29 13:38:41
COBOLみたいにデータを処理する手続きの集まりでプログラムを作るんじゃなくて、
クラスというかオブジェクトが何かをするという、そのオブジェクトの組み合わせでプログラムが動くイメージ。
でもこんな書き方で誤解なく意図が伝わるのは元々ちゃんと理解出来てるやつだけなので意味なし。
85:デフォルトの名無しさん
09/08/29 13:59:59
>>83
ありがとうございます。
resxファイルの中に、3つのGIFファイルがありました。
これら全てをリソースにインポートしてみましたが、
どのファイルを指定しても、元には戻りません…。
86:デフォルトの名無しさん
09/08/29 14:11:33
>>85
何がしたくて何を困ってるのかいまいちよく理解できないが、
とありあえず(手を入れる前の)元のコードのInitializeComponent()の
中のコードはちゃんと見た上で言ってるの?
87:デフォルトの名無しさん
09/08/29 14:26:26
>>86
元のコードのInitializeComponent()を見ても、
どの画像を引用しているかが記述されていません。
リソースファイルではなく、画像が埋め込まれている…のかもしれませんが、
その埋め込まれている画像をリソースファイルに格納し、他のコントロールでも活用したいんです。
88:デフォルトの名無しさん
09/08/29 14:42:44
コードで指示されてない画像が本当に表示されているのなら、
質問はプログラム板じゃなくてオカルト板ですべき。
89:デフォルトの名無しさん
09/08/29 15:05:00
>>88
うむ。
存在しない画像を読み込むわけがない。
組み込み画像とリソースファイルの区別は俺も全く理解できていないが。
というか難しい。
90:デフォルトの名無しさん
09/08/29 15:09:54
複数のユーザーコントロールを作ったんですが、お互いのコントロールクラスの中で使っているインスタンスを使用してそのクラスの関数までを他のユーザーコントロールから実行するにはどうすればいいんですか?
GetMainForm().funk();
のようなことがしたいんです
どうやって親のメインフォームでインスタンスを作ってある複数のユーザーコントロールにアクセスすればいいんですか?
91:デフォルトの名無しさん
09/08/29 15:11:41
class UC1{
funk(){
GetMainForm().UC2.funk();
}
}
間違えましたやりたいのはこれです。
92:デフォルトの名無しさん
09/08/29 15:20:06
それやっちゃうとユーザーコントロールに分けた意味が無くなるんだよね
ユーザーコントロールのコンストラクタに親のインスタンスを渡したりすればできるけど,
基本的にはそういうことをしなくていいように作るべき
93:デフォルトの名無しさん
09/08/29 16:02:50
>>91
どうして、「しなくていいように作るべき」なのかを説明しといたほうがいい。
>>90
ユーザコントロールから他のコントロールの処理を呼び出すというのは、その
コントロールが「閉じていない」という証拠。他のコントロールの仕様を変えた
ときにこっちのコントロールまで影響が出る。
くわしくは「オープンクローズドの原則」という用語をググってくれ。
んで、ダメダメな設計の見本のようなものだから、そもそも設計から見直せ
と言われているわけだ。俺も見直せと、そう思う。
94:デフォルトの名無しさん
09/08/29 16:03:21
基本的には、じゃなくて絶対にそうだよw
>>90はプログラミングのセンスなさ過ぎる。
95:デフォルトの名無しさん
09/08/29 16:08:27
なんかオープンクローズドの原則ともちょっと違うか。
まあ、設計の見直しが必要ということには変わりない。
96:デフォルトの名無しさん
09/08/29 16:12:31
皆、最初は通る道じゃないか。
どこが悪いかだけ書けばいいのであって人格攻撃は問題だと思う。
97:デフォルトの名無しさん
09/08/29 16:26:41
>>96
それはない。
もちろん最初からダメな理由に言葉を与えることまではできないと思うが、
それなりに適性がある人間なら、グラフでいう枝がなるべく少なくなるような
コードを書いた方が理解しやすいことは最初から直感的にわかる。
98:デフォルトの名無しさん
09/08/29 17:28:00
最初からは分からないだろ普通。
例えばボタンコントロール。
押された時他のクラスのメソッドを呼び出したい
と思っても何の不思議もない。
もちろん直接参照はできないからイベントを使うというように
閉じたままで実現する手法があるわけだが、
ボタンを押したときに他のクラスの処理が呼ばれるという
事実そのものに問題があるわけではない。
そりゃ元質問者がそういったところを理解できるようになるかは分からんが、
今の段階じゃ単に望ましい実現手法や考え方を知らないだけかもしれない。
.NETでのプログラミング歴がそれなりにあったうえでこの質問だと
ちょっと怪しいけどな。
99:デフォルトの名無しさん
09/08/29 17:35:04
まあVBだと Form1.textBox1.Text = "ABC" みたいなとんでもないコードの方が普通なわけだが
100:デフォルトの名無しさん
09/08/29 18:19:46
パネルを9枚、ドックで敷き詰めているんだ。
けど、ある一つを最背面にしたら、めちゃくちゃになった。
これってzオーダーって言うんだよね。
皆さんはどうやって直してますか?
101:デフォルトの名無しさん
09/08/29 18:40:14
>>99
このコーディングのどこがだめなのですか?
短大卒の1年目です。
102:デフォルトの名無しさん
09/08/29 18:56:31
名前の ~1 のとこじゃね?
意味ある名前つけるのがお作法だけど、
IDE の生成した名前のまま変えてないっていう。
103:デフォルトの名無しさん
09/08/29 18:59:03
なんだ、てっきりVBってインスタンス無しで記述できるのかと思ってたわw
104:デフォルトの名無しさん
09/08/29 19:00:03
YouTubeから指定した動画を avi or mpg 形式でダウンロードするにはどうすればよいですか?
105:デフォルトの名無しさん
09/08/29 19:00:22
VBにはデフォルトインスタンスという機能があって,どこでもForm1のインスタンスにアクセスできる。
テキストボックスを直接外から触ってるのも問題。カプセル化が全くできていない。
106:デフォルトの名無しさん
09/08/29 19:37:34
>>105
もっと分かりやすく説明してちょうだい!!
107:デフォルトの名無しさん
09/08/29 19:38:58
前に、デリケートに関する質問があったが、
結局デリケートは、サブルーチンを呼ぶサブルーチンを呼ぶサブルーチンを1オブジェクトのように見立てるようなもの?
108:デフォルトの名無しさん
09/08/29 19:51:13
デリケートに好きして
109:デフォルトの名無しさん
09/08/29 19:54:54
>結局デリケートは、サブルーチンを呼ぶサブルーチンを呼ぶサブルーチンを1オブジェクトのように見立てるようなもの?
バグってる
110:デフォルトの名無しさん
09/08/29 20:05:35
俺は後輩に毎日、栄養ドリンクを買いに行かせている。
・下痢気味のとき…ドラッグストアでアセロラエキス入りドリンク
・睡眠不足のとき…ローソンでユンケル1,000円クラス
・セサミンを飲んだあとのとき…ローソンでチオビタ
こういう場合に、
「栄養ドリンクをどこかに買いに行かせる」
というデリゲートを組めば、有益ということか?
で、パラメータとして、
睡眠不足とか下痢気味とかセサミンとかを与えるという感じ?
111:デフォルトの名無しさん
09/08/29 20:11:36
罹患してる
112:デフォルトの名無しさん
09/08/29 20:14:20
俺って病気持ち????????
113:デフォルトの名無しさん
09/08/29 20:38:22
セサミンを飲んだあとのとき…ローソンでチオビタ
これってどういうこと?
セサミンって危険なの??
>>92
自分で渡さないとたどれないんですね。メインフォームでUC1とUC2のインスタンスが作ってあるんで
メインフォームさえ取得できればと思ったんですが、それでもだめですか?そういう命令はありませんか?
この場合ユーザーコントロールの中の使いたいインスタンスはメインフォームに持って行ったとしても分離できてないのは変わらないと思うんですが、
もう一歩どうすればいいんですか
ただ単にコードを重複させたくないので他のUCのコードを使いまわしたいがために呼ぶんですが
114:デフォルトの名無しさん
09/08/29 20:40:56
UCGO
115:デフォルトの名無しさん
09/08/29 21:01:54
わかりません
Class MainForm{
UC UCinst;
MainForm(){
UCinst = this;
}
}
Class UC{
MainForm mfinst;
UC(){
mfinst = new MainForm();
}
}
全然インテリセンスが通りません。連絡し合いたいですお願いします。
116:デフォルトの名無しさん
09/08/29 21:12:10
連絡し合いたいw
おのろけでしょうか
117:デフォルトの名無しさん
09/08/29 21:15:34
俺はノンケだって構わないで食っちまう人間なんだぜ。
118:デフォルトの名無しさん
09/08/29 21:15:53
MainForm で UCinst = this って、アンタ UC じゃないだろ。
意味はサッパリ分からないけど、もしかしてこうしたいのか?
public class MainForm {
UC UCinst;
public MainForm() { UCinst = new UC(this); }
}
class UC {
MainForm mfinst;
public UC(MainForm parent) { mfinst = parent; }
}
119:デフォルトの名無しさん
09/08/29 21:19:38
UCinst = this;
ってエラーになるだろ?
120:デフォルトの名無しさん
09/08/29 21:26:42
>>108
マミ乙
121:デフォルトの名無しさん
09/08/29 21:31:44
ありがとうございます!
インテリセンスが通りました。後少しなんです。
UCに張り付けてあるテキストボックスをpublicにしてもUC.textbox
が通りません最後にこれだけお願いします
UC.Controls.でもテキストボックスがインテリに出てきません
122:デフォルトの名無しさん
09/08/29 21:36:16
あかん、デリゲートの意味がさっぱりわからへん。
c#をやりはじめてもう1か月経つのに。
123:デフォルトの名無しさん
09/08/29 21:38:06
あきらメロン
124:デフォルトの名無しさん
09/08/29 21:39:49
関数ポインタちゃうんけ?
125:デフォルトの名無しさん
09/08/29 21:47:55
WebExceptionのプロパティにResponseってあるけどこれも明示的にCloseせなならんの?
MSDNのWebExceptionのサンプルはスルーしてる
URLリンク(msdn.microsoft.com)
Response.Close()には使い終わったら閉じろカスと書いてある
URLリンク(msdn.microsoft.com)
126:デフォルトの名無しさん
09/08/29 21:51:20
>>121
インテリセンスが通らないじゃなくって、
ちゃんと実現方法を考え、理解した上でやった方が良いと思う。
じゃないと、会社入ってからロクな仕事まわって来ないぞ。
127:デフォルトの名無しさん
09/08/29 22:13:58
WROXを買ったけど、読むのが大変だわこりゃ。
128:デフォルトの名無しさん
09/08/29 22:44:44
>>125
ちらりと見た感じmyHttpWebResponseと同じ参照を返してるだけなんじゃないのかな。
HttpWebResponse myHttpWebResponse = (HttpWebResponse) myHttpWebRequest.GetResponse();
それならCloseはmyHttpWebResponseに対してすれば足りる。
例外処理だからGCに任せてるのだと思うけど、例外時の後片付けもしたいなら
finallyでmyHttpWebResponse.Close();を実行すべきなのだろう。
129:デフォルトの名無しさん
09/08/29 22:53:21
>>128
GetResponseで例外が出たらmyHttpWebResponseに値格納できないぜ
130:デフォルトの名無しさん
09/08/29 23:17:35
それはtrycatchの外に出してnullでも入れとけばいいだろ
131:デフォルトの名無しさん
09/08/30 00:30:49
プロジェクトA(継承元のコントロールを収納)に、ユーザーコントロールを作成し、
プロジェクトB(メインフォームを収納)でプロジェクトAのフォームを継承したフォームを作成しました。
プロジェクトA内に作成したユーザーコントロールは、
今まではプロジェクトを追加したただけで、デザイン画面の左側にユーザーコントロールのアイコンが表示されていたのですが、
新しいプロジェクトを追加しても表示されなくなりました。
参照設定は常にプロジェクトAを参照するようにしています。
なぜ、ユーザーコントロールが他プロジェクトでも使用できるようにならなくなったのでしょうか。
すみませんがよろしくお願いします。
132:デフォルトの名無しさん
09/08/30 01:16:49
ツールボックスのバグじゃなかった?
リセットすれば直ったような気がしたけど。
若しくは手動で追加してやるか
133:デフォルトの名無しさん
09/08/30 01:20:16
DataTable と入出力先の XML ファイルについておしえてください。
通常、DataSet と併用して XML ファイルに複数レコードのデータを出力すると以下のようになります。
<NewDataSet>
<Table01>
<Item01>...</Item01>
</Table01>
<Table01>
<Item01>...</Item01>
</Table01>
</NewDataSet>
これをたとえば以下のようなファイルから、上記のようなファイルから読み取ったときと同様に
DataTable に入力させることは可能でしょうか。
<NewDataSet>
<Item01>...</Item01>
<Item01>...</Item01>
</NewDataSet>
もともと下のようなファイルを一部に使用していたらしいのですが、プログラムを修正する際に
他のファイル(上の例)と同じように扱えるようにしたいと考えています。
すでに上のような書式に書き換えることは了解させたのですが、あまり変更を入れたくないようなので
可能なら下のようなファイルをそのまま上のような場合と同様に扱えないかと思っています。
ご教示いただけないでしょうか。よろしくお願いします。
134:133
09/08/30 01:22:23
あ‥‥ごめんなさい。下のファイルの書式を間違えていました。
間違い
<NewDataSet>
<Item01>...</Item01>
<Item01>...</Item01>
</NewDataSet>
正しい
<NewDataSet>
<Table01>
<Item01>...</Item01>
<Item01>...</Item01>
</Table01>
</NewDataSet>
135:デフォルトの名無しさん
09/08/30 01:46:43
>>132
ありがとうございます。
今まで2アプリケーションを作成しましたが、
一方のアプリケーションは、
ソリューション内に新規でプロジェクトをどれだけ追加しても、
追加直後に開くform1デザイナの右側ツールボックスに、
作成済みのユーザーコントロールが歯車アイコンで表示されるのですが、
もう1つのアプリケーションの方では、
ユーザーコントロールを作成したプロジェクト内のformをデザイナで開いたときにのみ
ユーザーコントロールがツールボックスに表示されるものの、
新規でプロジェクトを追加した直後のデザイナには
ユーザーコントロールが表示されません。
自分が関わっていながらこの差異に気付きませんでした。
どこの設定によって、ユーザーコントロールの自動表示がなされるのでしょうか。
136:デフォルトの名無しさん
09/08/30 02:18:45
だから(表示されなかったりすることがあるのは)バグじゃなかったのかな、
と言ってるんだけど・・・
137:デフォルトの名無しさん
09/08/30 02:39:45
>>136
できたりできなかったりするわけですね…。
会社で作ったときはできて、自宅でやったらできませんでした。
2008を買ったばかりだったのに…
(>_<)。
ありがとうございます。
138:名無しさん@そうだ選挙に行こう
09/08/30 06:26:54
テキストボックスにキーボードからではなくコードでエンターキーを入力するにはどうかけばいいですか?
139:名無しさん@そうだ選挙に行こう
09/08/30 08:36:25
SendKey
140:名無しさん@そうだ選挙に行こう
09/08/30 10:29:29
>>133-134
なんかの間違いとしか思えない。
<NewDataSet>
<Table01>
<Item01>...</Item01>
</Table01>
<Table01>
<Item01>...</Item01>
</Table01>
</NewDataSet>
だったはずだと思う・・・その<Item01>項目がどのDataRowに含まれているのか
特定できないから。それとも自力で順に読み込んでRowにまとめていたのか?
そして今回、どうやってTable01テーブルのDataRowにマッピングするつもりなのか?
全くTable01というノードが無くなっちゃってるよな。
こんなトコに聞きにくるということは、そこも分からないで省略したいとか言っている
としか見えない。分かってるなら、そのように読み込み処理を書くから。
>すでに上のような書式に書き換えることは了解させたのですが
無茶苦茶に嫌な予感が・・・がんばってな。南無南無
悪いことは言わないから、吐いた唾飲んで元通りにしとくほうがいいと思う。
141:名無しさん@そうだ選挙に行こう
09/08/30 10:36:35
あ、読み間違えていた。すまん、はやとちった。
自力で順に読み込んでRowにまとめるしか無いだろうね。XSLTでも無理くさい。
元のコードから、そのノード解析処理をコピってくるとか?
142:名無しさん@そうだ選挙に行こう
09/08/30 11:25:53
ただ、カラムが Item01 だけだったら、なんとかなると思い至った。
<?xml version='1.0' standalone='yes'?>
<xsl:stylesheet version='1.0' xmlns:xsl='URLリンク(www.w3.org)'>
<xsl:template match='/'><xsl:apply-templates/></xsl:template>
<xsl:template match='NewDataSet'><NewDataSet><xsl:apply-templates/></NewDataSet></xsl:template>
<xsl:template match='Table01'><xsl:apply-templates/></xsl:template>
<xsl:template match='Item01'><Table01><Item01><xsl:value-of select='.'/></Item01></Table01></xsl:template>
</xsl:stylesheet>
を使ってXSLTに食わせればいい。
(参考コード)
XslCompiledTransform xsltf = new XslCompiledTransform();
xsltf.Load(new XmlTextReader(new StringReader(xslt)));
XmlDocument doc = new XmlDocument();
doc.LoadXml(xml);
StringWriter sw = new StringWriter();
xsltf.Transform(doc, null, sw);
DataSet dataSet1 = new DataSet();
dataSet1.ReadXml(new StringReader(sw.ToString()));
143:名無しさん@そうだ選挙に行こう
09/08/30 12:09:35
>>142
ありがとうございます。(上ふたつも同じ人だよね?)
いまのコードは >>141 に書かれているように自分で解析しているようです。
正直、いまはちゃんとは理解できていないですけど、参考にしてお勉強させていただきます。
>>138
ついで。
TextBox1.Text = "123\r\n456";
詳しくは C# テキストボックス 改行 でぐぐれ。
144:名無しさん@そうだ選挙に行こう
09/08/30 13:18:32
DataTableをソースにしたグリッドビューの中で文字列検索した後ヒットしたレコードの他のフィールドの値を取り出すにはどう書けばいいですか?
クエリを調べても出来そうにないんですが、エクセルシートみないな操作はできないんですか?
145:名無しさん@そうだ選挙に行こう
09/08/30 13:21:42
ずいぶん口調変わるんだなw
146:名無しさん@そうだ選挙に行こう
09/08/30 13:22:50
素直にエクセル使ってろと
147:名無しさん@そうだ選挙に行こう
09/08/30 13:36:43
おねがいします。レコードが800万件あるんです。助けてください。
148:名無しさん@そうだ選挙に行こう
09/08/30 13:49:02
プログラムからブラウザ上のボタンとかを操作するプログラムを作っているのですが、
そのページ上に、通常のHTMLで作成されたtype=button では無く、
Flashで作成されたボタンがあった場合、
プログラムからそれをクリックする事は出来ますか?
149:名無しさん@そうだ選挙に行こう
09/08/30 13:50:10
>>147
Access+VBAで今回はしのげ
150:名無しさん@そうだ選挙に行こう
09/08/30 13:50:36
業務なら然るべき所に有償で依頼してくれたまえ
151:名無しさん@そうだ選挙に行こう
09/08/30 13:53:52
ヒットしたなら、行番号は取れてるんだろ?
行と列を指定すれば、フィールドの値は取れる。
つーか、グリッド上でやるのはパフォーマンス悪すぎだろ。
152:名無しさん@そうだ選挙に行こう
09/08/30 13:54:13
>>148
無理。
153:名無しさん@そうだ選挙に行こう
09/08/30 14:00:41
DataGridViewはリフレクション使いまくりでクソ遅いからなあ
154:名無しさん@そうだ選挙に行こう
09/08/30 14:04:58
>>145
ん? >>143 宛なら、そりゃ、教えていただいたときとその反対の時の口調が同じなわけないだろ。w
>>144 まで含めているなら、それは別人だ。
155:名無しさん@そうだ選挙に行こう
09/08/30 14:06:55
>>153
自分で試しもみないでなんだけど、DataGridView で実用になるのってレコード数何件くらいまでかな?
156:名無しさん@そうだ選挙に行こう
09/08/30 14:08:50
検索するたびにデータベースにアクセルするのはパフォーマンスが悪いと思ってDataTableに取り込んだ状態でその中で検索をかけたいんですがこれって
グリッドビュー通してることになるんですよね。
>>151
ヒットしてません。アダプターでクエリするとカレントレコードの位置をグリッドビューからみて行番号はとれるんですがこれはDataTable内でのカレント操作はできないんですか?
157:名無しさん@そうだ選挙に行こう
09/08/30 14:14:07
DataGridViewって件数が増えると極端にパフォーマンスが落ちね?
一度二次元配列に代入してから素直に検索掛けた方がいいよ
158:名無しさん@そうだ選挙に行こう
09/08/30 14:14:37
>>156
> DataTableに取り込んだ状態でその中で検索をかけたいんですがこれってグリッドビュー通してることに
ならない。
データとUIは別物。
つかグリッドビューってことはASP.NETでいいんだな?
> アダプターでクエリすると
アダプタってTableAdapterとかDataAdapterか?
なら凄い勢いでDBにクエリを投げてるじゃないか
159:名無しさん@そうだ選挙に行こう
09/08/30 14:16:45
>>152
マジっすか。。。残念。Flashウザイ
160:名無しさん@そうだ選挙に行こう
09/08/30 14:18:46
いちいち口調を変えるなんて、頭悪そうだなぁ、って思っただけだよ。
161:名無しさん@そうだ選挙に行こう
09/08/30 14:19:48
データグリッドはあくまで表示用なんだから、800万件も入れるのは正気の沙汰じゃない。
162:159
09/08/30 14:28:04
Windowsアプリからブラウザ上のファイル選択(参照)ボタンをクリックし、
クリックをしてファイル選択ダイアログが立ち上がった後に
スグに別の処理を行いたいんですけど、その起動したダイアログを
閉じない限り次の処理を行う事が出来ず困っています。
何か良い方法はありませんか?
163:名無しさん@そうだ選挙に行こう
09/08/30 14:37:24
マルチスレッドにしないと無理じゃない?
164:名無しさん@そうだ選挙に行こう
09/08/30 14:39:16
>>162
なんとなくだけど、HTML を操作するんじゃなくて、HTTP 通信に手を出した
方がいい気がしないでもない。
165:名無しさん@そうだ選挙に行こう
09/08/30 14:44:07
>>162
基本的には別スレッド起動だけど、
単に「立ち上がったその瞬間」軽い処理ができればよいのなら
Application.EnterThreadModalイベントが使える。
あと、モーダルダイアログ表示中でもタイマーのtickイベントは発生する。
166:名無しさん@そうだ選挙に行こう
09/08/30 14:51:31
>>162
同じ質問をあちこちに書くと嫌われるよ。
どーせ見てる人は被ってるんだし。
167:名無しさん@そうだ選挙に行こう
09/08/30 14:57:33
関係ないけど、dobonさんのところの掲示板のところの
マルチポスト監視員はちょっと気持ちが悪いなw
マルチポストする奴もたいがいロクな奴じゃないとは俺も思うが、
あれはマリチポストしてる奴よりよほど精神的に異常な奴に思える。
168:名無しさん@そうだ選挙に行こう
09/08/30 15:05:34
>>163
マルチスレッドとして実行させる為に
Dim str As String = "あいうえお"
Dim t As New System.Threading.Thread( _
New System.Threading.ThreadStart(AddressOf TestMethod(str)) _
)
t.Start()
Private Sub TestMethod(Dim str As String)
Debug.WriteLine("テスト" & str)
End Sub
と記述してみたところエラーが出てしまいます。
マルチスレッドで引数を受取る形で宣言されたメソッドを実行する事は出来ないのでしょうか?
(あっ、C#スレだった・・・ごめんなさい。マルチスレッドが解決したら落ちます。)
169:名無しさん@そうだ選挙に行こう
09/08/30 15:08:08
>>164
それはちょっと難易度があがりそうなので見送ります。
>>165
そんなイベントもあったのですね。知りませんでした。
とりあえずマルチスレッドにすればやりたい事が実現できそうなので今回は
こちらの方法で対処しようと思います。
それにしても今更だけど、プログラムって本当に面白いね^^;
面倒な作業を何でも自動化で来ちゃうところがナイスです。
>>166
ですね。気をつけます。
>>167
多分暇してる人だと思います。
170:名無しさん@そうだ選挙に行こう
09/08/30 15:11:55
>>168
ParameterizedThreadStart
171:163
09/08/30 15:15:14
ここまできたらMSDN見た方が早くない?
URLリンク(msdn.microsoft.com)(VS.80).aspx
172:名無しさん@そうだ選挙に行こう
09/08/30 16:40:56
PanelとPanelとの間に境界線を引きたいと思っています。
BorderLineだと四辺全てに引かれてしまうので、
.NET3.5より新しく加わった、lineshapeを使おうと思いました。
けど、接戦を引いたパネル上に別のパネルを置いてしまうと、見えなくなってしまいます。
何かいい方法はないでしょうか。
173:名無しさん@そうだ選挙に行こう
09/08/30 16:54:59
>>172
あのコントロール、メニューストリップなどの上に描けないんだよね。
まだまだ不便だよ。
174:名無しさん@そうだ選挙に行こう
09/08/30 17:19:21
SplitContainerじゃだめなん?
TableLayoutでもいけそうだけど
175:名無しさん@そうだ選挙に行こう
09/08/30 18:38:51
2つのpanelが接する辺だけに境界線を引きたいんです。
他の3辺はNONEでいきたいのですが、継承するしかないでしょうか。
Lineshapeが登場して喜んでいたのですが(+_+)。
176:名無しさん@そうだ選挙に行こう
09/08/30 18:53:03
OnPaint で直接描いちゃえば?
177:名無しさん@そうだ選挙に行こう
09/08/30 18:54:40
手っ取り早く見た目をなんとかするだけなら、細長いボタンを重ねるという手もある
ドラッグイベントを自前で実装するのもそれほど大変じゃないはず
178:名無しさん@そうだ選挙に行こう
09/08/30 19:58:51
>>175
>>175で言ってることと>>172は矛盾してない?
175の通りならLineShapeで何も問題ないように思えるが・・・
まあ、事ほど左様に言ってることがいまいち理解できないところがあるんで
トンチンカンなアドバイスかもしれんが、
■ A案
パネルCの中に、それを左右に(あるいは上下に)分割するような形で
パネルAとBを入れる。AとBの間には1~2ドット分隙間をあけ、パネルCのBackColorを
境界線として利用する。
■ B案
2つのパネルのうちの片方パネルの、相手と接している辺にラベルをDockさせる。
179:名無しさん@そうだ選挙に行こう
09/08/30 19:58:54
LineShapeはあくまでVB向けのおまけだから…
180:デフォルトの名無しさん
09/08/30 21:45:35
>>178
俺も>>172の意味が分からん
自分でLineShapeの上に別のコントロールを置いて隠しているだけじゃないのか
こういう構成で
- Form1
- panel1
- panel2
- panel3
- lineShape1
panel2とpanel3のサイズが同じとかアホなことしているのではと疑いたくなる
181:デフォルトの名無しさん
09/08/30 22:36:08
エスパー多いなw
>>172,175意味不明すぎるw
182:デフォルトの名無しさん
09/08/30 23:05:02
馬鹿は黙ってろ
183:デフォルトの名無しさん
09/08/30 23:07:23
>>182
馬鹿は黙ってろ
184:デフォルトの名無しさん
09/08/30 23:16:52
くやしそうwww
185:デフォルトの名無しさん
09/08/31 00:43:31
<asp:GridView ID="gridWord" runat="server" AutoGenerateColumns="False" >
<Columns>
<asp:BoundField HeaderText="ワードカテゴリ" DataField="Category" />
<asp:CheckBoxField DataField="Check" />
<asp:BoundField DataField="SynonymWord" HeaderText="チェックワード" />
</Columns>
</asp:GridView>
こういうグリッドビューに対して
これに対応したDataTableを作成し,データバインドしました.
2つ目に挿入されているCheckBoxFieldにはDataTableにBoolean型の列を割り当てました.
実行してみるとチェックボックスがフォームアプリケーションでいうEnebled = False 状態で
チェックを変更することができません.
GridViewのTableCellに対してEnebuled = Trueしたり
DataTableとGridViewCollumのCheckBoxField ReadOnlyをFalseにしたりしましたが
グレーアウトのままです
どうすればよろしいでしょうか
186:デフォルトの名無しさん
09/08/31 19:06:30
YUI/again(single)
CAN'T BUY MY LOVE(3rd album)
YUI/FROM ME TO YOU(album)
YUI/I LOVED YESTERDAY(album)
LOVE&TRUTH(album)
YUI/Namidairo(single)
から、
again
CAN'T BUY MY LOVE
FROM ME TO YOU
I LOVED YESTERDAY
LOVE&TRUTH
Namidairo
を取得するのに、正規表現をどう書いたらいい?
string title = "artist/(?<title>.*?).*?\((?<albumname>.*?)\)";
と書いてみたんだけど、なんか違ってるっぽい。
教えてください。
187:デフォルトの名無しさん
09/08/31 19:10:45
>>186
何から何まで間違っている。
188:デフォルトの名無しさん
09/08/31 19:22:55
不覚にもワロタ
189:デフォルトの名無しさん
09/08/31 19:28:58
VBで書こうがC#で書こうが.基本的に実行速度って変わらないんですか?
190:デフォルトの名無しさん
09/08/31 19:50:15
>>186
どんだけ妄想を働かしてるんだよ。1回マニュアルを読んだほうが良い。
191:デフォルトの名無しさん
09/08/31 20:03:22
string title = "(?<artist>.*?)/(?<title>.*?).*?(?\(<albumname>.*?\))";
ならOK?
192:デフォルトの名無しさん
09/08/31 20:04:52
>>191
正規表現を1から勉強してこい
193:デフォルトの名無しさん
09/08/31 20:13:41
一番ポピュラーで使いやすくて軽いHTMLパーサーを教えてください
194:デフォルトの名無しさん
09/08/31 20:15:42
mshtmlでいいやん
195:デフォルトの名無しさん
09/08/31 20:42:04
>>189
或る統計 data より…
Spec and more 250MHz 400MHz Total
R10000 Pentium Ⅱ Source lines
C : 0.3秒 : 0.30秒 : 150行
C++/STL/deque : 2.6秒 : 11.2秒 : 70行
C++/STL/list : 1.7秒 : 1.5秒 : 70行
C# VB は在りませんが 統計上では 詠み込み行が多く為り 速度も変わる様です
196:デフォルトの名無しさん
09/08/31 20:46:54
>>191
ヒント。その正規表現は '/' が文字列中に無いとマッチしないよね。
197:デフォルトの名無しさん
09/08/31 20:49:28
失礼…
Spec and more 250MHz 400MHz Total
R10000 Pentium Ⅱ Source lines
C : 0.36秒 : 0.30秒 : 150行
C++/STL/deque : 2.6秒 : 11.2秒 : 70行
C++/STL/list : 1.7秒 : 1.5秒 : 70行
でした…
198:デフォルトの名無しさん
09/08/31 20:53:10
>>197
なんでVBとC#の比較しないの?意味分かんない。
199:デフォルトの名無しさん
09/08/31 21:02:56
変ですね… ズレます…
Spec and more 250MHz 400MHz Total
R10000 Pentium Ⅱ Source lines
C : 0.36秒 : 0.30秒 : 150行
C++/STL/deque : 2.6秒 : 11.2秒 : 70行
C++/STL/list : 1.7秒 : 1.5秒 : 70行
200:デフォルトの名無しさん
09/08/31 21:03:42
荒らしか。
201:デフォルトの名無しさん
09/08/31 21:04:12
>>199
全角でやれ、そして専ブラのリンク先で見る分には大丈夫だw
最後に、意味ないからこれ以上張るな。
202:デフォルトの名無しさん
09/08/31 21:29:19
150行が何意味するのかわからんし。
処理データ数ならせめて100行、10000行、1000000行の性能比較くらいしない
と、ただのゴミ。データ量によって性能の特性が変わることはよくあるから。
203:デフォルトの名無しさん
09/08/31 21:32:06
ソースコードの行数じゃないの? 「読み込み行」とか言ってるのはワケワカだけど。
204:デフォルトの名無しさん
09/08/31 21:37:20
>>191
まずはその変数をtitleじゃなくてpatternにしないか
気持ち悪い
俺も>>199のデータがどう>>189に関係有るのか分からないけど、
>>189は「基本的に」って書いてあるから答えとしては、「ほぼ変わらない」でFAでしょ。
ほぼ同じ中間コードが同一のCLRで走るんだし。
細かく見れば言語固有の実装があったりとかで、違ったりするかもしれないけどそこまでは知らにゃい。
というか、どちらにしようか迷ってる段階であの質問なんだとしたら、処理速度で選ぶのは間違ってると思います。
あ・・・でもVB.netってunsafeコード書けないんでしたっけ。
205:デフォルトの名無しさん
09/08/31 21:43:50
最近、スレで見たけどさ。
ラインシェイプは、パネルの境界線としては大して役に立たないのかよ。
Sp1は大した機能がないのか世。
206:デフォルトの名無しさん
09/08/31 21:46:10
馬鹿が自分じゃなくてハサミの方を馬鹿だと思い込むの巻、か
207:デフォルトの名無しさん
09/08/31 21:46:42
WinFormsはもう放置モードに入りましたから
208:デフォルトの名無しさん
09/08/31 21:47:08
1.0 の頃は、なんと VB の方が速かったという話。
コンパイラの出来がよかったんだって。
今となってはそんなこともないんだろうけどね。
209:デフォルトの名無しさん
09/08/31 22:08:06
VBは結構ヘルパー関数呼び出しが入るから普通に書いても若干遅くなることはある
想定されてるVBの用途を考えればほとんど無意味なコストなんだろうけど
210:デフォルトの名無しさん
09/08/31 23:19:03
this.FormBorderStyle = FormBorderStyle.None ;
でウィンドウを枠を表示しないようにすると、ウィンドウ内をダブルクリックしてウィンドウが最大化します。
これを抑止するにはどうしたらよいですか?
211:デフォルトの名無しさん
09/08/31 23:26:31
string title = "(?<artist>.*?)/*(?<albumtitle>.*?).*?(?\(<albumcategory>.*?\))";
ならOK?
212:デフォルトの名無しさん
09/08/31 23:28:26
>>210
それだけなら最大化なんかしないはずだが
WndProcオーバーライドしてなんかやってないか
213:デフォルトの名無しさん
09/08/31 23:28:56
>>211
スレ違い
214:デフォルトの名無しさん
09/08/31 23:31:47
>>212
フレームなしのウィンドウを移動可能にするので、
protected override void WndProc(ref Message m){
base.WndProc(ref m) ;
if ((m.Msg == 0x84) &&
(m.Result == (IntPtr)1))
{m.Result = (IntPtr)2 ;}
}
というのを入れてます。
これがだめなんですか?
といっても、フレームなしのウィンドウを移動するには、
これが必要だし…。
215:デフォルトの名無しさん
09/08/31 23:31:49
>>211
PHPとXMLと正規表現混ざってるんじゃね?
本気で解答得たいという姿勢を感じられん。
216:デフォルトの名無しさん
09/08/31 23:37:31
>>214
そういうのはOnMouseDownとOnMouseMoveでやるんじゃないの普通・・・
217:デフォルトの名無しさん
09/08/31 23:43:10
…。←うざい
218:デフォルトの名無しさん
09/08/31 23:45:12
・・・←もっとうざい
219:デフォルトの名無しさん
09/08/31 23:49:38
>>214
他でもいろいろやってそうだね。
問題の切り分けを自分で出来るようにならないと、
情報を小出しするとかいろいろ文句をつけられるぞっと。
220:デフォルトの名無しさん
09/08/31 23:51:19
>>214
WM_NCHITTESTでHTCAPTION返すようにするなら、
WM_SYSCOMMANDでWParamにSC_MAXIMIZEが含まれるときにIntPtr.Zeroを返すようにする処理を追加しないと
221:デフォルトの名無しさん
09/08/31 23:57:39
なんか落ちた犬を叩くようだが、
>>214って典型的な「何でもMSのバグのせいにするタイプ」だね。
こんなの普通の神経してれば、人に質問する前にコード何も書かない素のフォームで
試して自分の仮説が本当に正しいのか実証するだろう。
俺には理解できん。真面目に精神病の一種か何かじゃないのこういう人。
222:デフォルトの名無しさん
09/09/01 00:01:52
↑いつもの人乙
223:デフォルトの名無しさん
09/09/01 00:49:46
>>216の案で書いてみた
private Point _p;
protected override void OnMouseDown(MouseEventArgs e)
{
base.OnMouseDown(e);
if (e.Button == MouseButtons.Left)
_p = e.Location;
}
protected override void OnMouseMove(MouseEventArgs e)
{
base.OnMouseMove(e);
if (e.Button == MouseButtons.Left)
Location = new Point(Location.X + (e.Location.X - _p.X), Location.Y + (e.Location.Y - _p.Y));
}
224:デフォルトの名無しさん
09/09/01 02:45:27
>>223
これって、イベントハンドラはどう割り当てるのですか?
225:デフォルトの名無しさん
09/09/01 03:03:32
お前には無理だから忘れろ。
226:デフォルトの名無しさん
09/09/01 06:04:01
イベントっていうのは勝手に起こるんじゃなくて
イベントを定義しているクラスがイベントハンドラを実行するんだよ。
そのイベントハンドラを実行するメソッドを普通On[イベント名]メソッドで定義するのが作法。
public event EventHandler SomeEvent; //イベント定義 呼び出し側からハンドラを追加する。
protected void OnSomeEvent(EventArgs e)
{
if(SomeEvent != null) //ハンドラが追加されているかをチェック
}
227:デフォルトの名無しさん
09/09/01 06:07:28
途中で勝手に書き込まれてしまった・・・
public event EventHandler SomeEvent; //イベント定義 呼び出し側からハンドラを追加する。
protected virtual void OnSomeEvent(EventArgs e)
{
if(SomeEvent != null) //ハンドラが追加されているかをチェック
SomeEvent(this, e);
}
なので 同一クラスおよび、サブクラスでは イベントハンドラを追加しなくても
Onメソッドをオーバーライドすればイベントハンドラを追加したのと同じことができる。
ただしスレッドは同一になるのでマルチスレッドデリゲートしたければ
イベントハンドラ追加するかな。
228:227
09/09/01 06:14:05
訂正:同一クラスではオーバーライドできないので
Onメソッド内部に処理をかけばいいのだが、
そんなのは邪道なので
Onメソッドを実行せずに直接やりたい処理をやらせる。
イベントを起こしたいのならOnメソッドも実行する。
229:デフォルトの名無しさん
09/09/01 11:07:09
internalインターフェイスにinternalメンバを定義したいんだけどコンパイルエラーになる
publicにしたくないメンバだけ明示的実装するしかないの?
230:デフォルトの名無しさん
09/09/01 11:15:27
インターフェイスがインターナルならメンバをインターナルにする必要ないと思うんだが。
いずれにせよインターフェイスにはパブリックなメンバしか定義できないよ。
231:229
09/09/01 11:24:23
そのinternalインターフェイスを実装するときに,
internalとしてそのメンバを実装するとコンパイルエラーになってしまう
publicメンバとして実装したら通るけどアセンブリ外から見えてしまう
明示的実装すれば実質internalになるけど,呼び出すときにいちいちインターフェイスにキャストするのが面倒
232:デフォルトの名無しさん
09/09/01 11:58:22
明示的実装はいまいち融通が利かんからねぇ
まあこれぐらいで 多分どっかで最適化されて実行コストのロスはなくなるだろ
internal interface ITest {
void Test();
}
public class Test : ITest {
void ITest.Test() { }
internal void Test() {
((ITest)this).Test();
}
}
233:デフォルトの名無しさん
09/09/01 14:39:02
逆の方が良くない?
これなら実装をvirtualやabstractにもできるし。
internal interface ITest {
void Test();
}
public class Test : ITest {
void ITest.Test() {
Test();
}
internal void Test() { }
}
234:デフォルトの名無しさん
09/09/01 15:13:49
string s;
double d;
s="this is ";
s= s + d.ToString;
これだと 演算子 '+' を 'string' と 'メソッド グループ' 型のオペランドに適用することはできません。
って怒られるんだけど、こういうときはどうしたらいいですか?
StringBuilder使うのがいいですか?
235:デフォルトの名無しさん
09/09/01 15:14:59
あ、
d="1234";
が抜けてました
236:デフォルトの名無しさん
09/09/01 15:15:07
メソッド呼び出しには括弧つけろ
237:デフォルトの名無しさん
09/09/01 15:15:23
>d.ToString
ToStringなんてプロパティねーよ
メソッドならあるよ
238:デフォルトの名無しさん
09/09/01 15:18:25
は!そういうことですか!ありがとう
239:デフォルトの名無しさん
09/09/01 16:25:56
実は.ToStringは不要
240:デフォルトの名無しさん
09/09/01 16:39:33
定数に関する質問なんですが。
よくコレクション定数をプロパティで作ることがあるですが、
その定数が配列などのときにいちいちGet{for{list.Add(***):}}でループしながら定数を組んでいるためその変数を呼ぶごとにほんの少し時間をとります。
タイムカウントをとるとほんと微々たるものですが、私にとってはあまり気分のいいものではありません。
Getで指定する理由は、その定数には数十個とそれなりに大きなもので
バージョンを上げるごとに変わることが予想されるためで、変更し易いようにということでこのようにしています。
一度アプリケーションが起動するときに一気にロードしてreadonlyにしていたこともあるのですが、個人的に気持ちいいものではありませんでした。
皆さんはこのような状況のとき、どのような対策を行っているのでしょうか?
241:デフォルトの名無しさん
09/09/01 16:41:31
気にしないように日々訓練しています
242:デフォルトの名無しさん
09/09/01 16:41:41
お前の気分なんてどうでもいいんだよ
243:デフォルトの名無しさん
09/09/01 16:53:51
int? myProperty;
int MyProperty {
get {
if (myProperty == null) { /*値を計算してmyPropertyに代入*/ }
return myProperty;
}
}
こうやって最初に呼び出された時だけ計算するとか
244:デフォルトの名無しさん
09/09/01 17:03:27
クラスにアクセスするまで静的コンストラクタは起動されないので
staticフィールドで済ませる事が多いな。
メモリを圧迫するような大きなデータだと、
プロパティアクセス時に生成してキャッシュしておくけど。
245:デフォルトの名無しさん
09/09/01 17:21:58
ところでコレクションや配列にreadonlyは無意味だぞ
246:デフォルトの名無しさん
09/09/01 17:22:41
>>243,244
やっぱり一発で書ける方法はないんですね・・・
変数生成やプロパティ呼び出しのときにconstが使えて、呼び出し後は変数として使えるなんて出来れば幸せになれるのですが、orz
人の意見を聞けてよかったです。
ありがとうございました。m(_ _)m
247:デフォルトの名無しさん
09/09/01 17:32:49
>>245
コンストラクタでの変更は故意にやらない限り弄られることはないかなっという
軽い気持ちで行っていますw
248:デフォルトの名無しさん
09/09/01 17:51:19
static readonly ReadOnlyCollection<Hoge>
とか書くかな
249:デフォルトの名無しさん
09/09/01 21:05:45
キャッシュせずにgetで毎回コレクションや配列を作るのは禁止(MSDNにも明記されている)
for (int i = 0; i < hoge.ConstValues.Length; i++) { x = hoge.ConstValues[i]; }
とかされると死ぬから
250:デフォルトの名無しさん
09/09/01 22:42:52
datatableの内容を印刷するにはどうやったらできますか?
意外と難しい一般的なやりかたじゃないんですかねー?
251:デフォルトの名無しさん
09/09/01 22:54:26
DataTableの質問してるやつ死ねよ
252:デフォルトの名無しさん
09/09/01 23:00:21
やはり難しいのでしょうか?
253:デフォルトの名無しさん
09/09/01 23:04:22
お前には難しすぎる
諦めろ
254:デフォルトの名無しさん
09/09/01 23:07:16
標準では簡単なやり方はないな
自前で頑張って描画して印刷するしかない
255:デフォルトの名無しさん
09/09/01 23:11:16
サードパーティのライブラリ買うか,データだけCSVかなんかで吐いてExcelで印刷したら
256:デフォルトの名無しさん
09/09/01 23:11:40
仕事だか何だか知らんが毎回聞きに来るなよ
ボランティアでも飽きるわ
257:デフォルトの名無しさん
09/09/01 23:18:14
な なるほど難しいですか
皆さんどうしたんですか
カルシュウム足りてませんよ
>>253 あい
>>254-255 そうですよねググッテQ&A読んでたら最終的にそういった結論でした
>>256 このスレの意義がなくなるでわないか!国民よ!!
258:デフォルトの名無しさん
09/09/01 23:20:09
WPF使えばわりと簡単に印刷できるよ
君には簡単じゃないだろうけど
259:デフォルトの名無しさん
09/09/01 23:27:41
ごめんごめんもう少し調べてみる
ちょっと安易すぎた
>>258
ありがとう
興味あるけどWPFはもっと腕をあげてからだな
ありがとうね
260:デフォルトの名無しさん
09/09/01 23:29:28
treeViewで指定したnodeを選択できますか?
aspだと
TreeNode.Selected = True
TreeNode.Select()
ようなのですが・・・・
261:デフォルトの名無しさん
09/09/01 23:32:01
ソースかけ
262:デフォルトの名無しさん
09/09/01 23:34:08
TreeViewの方にプロパティがある
263:デフォルトの名無しさん
09/09/01 23:55:38
TreeViewの方にありました!ありがとうございます。
264:259
09/09/02 00:10:03
意外と簡単に出来ました
datatbsuu.Rows[r]["hoe01"].ToString().PadRight(10)
すいません
マジググって分からなかったんで安易に聞いてしまいました
すまぬ
265:デフォルトの名無しさん
09/09/02 00:11:57
それが印刷・・・?
まあ解決したなら別にいいけど。
266:デフォルトの名無しさん
09/09/02 09:36:34
例えばピクチャーボックスに機能を追加したいだけの時、ユーザーコントロールだとピクチャーボックスの機能を
すべて受け渡してやらないといけないんですが、単にピクチャーボックスの派生型から必要な機能だけを追加しても
いいでしょうか?
なにか不具合はありませんか?
できればオリジナルのピクチャーボックス同様デザイナでも利用したいのですがツールボックスに登録して
デザイナでレイアウトできますか?
267:デフォルトの名無しさん
09/09/02 09:54:19
別に問題はない
268:デフォルトの名無しさん
09/09/02 20:42:15
機能を追加するならユーザーコントロールにした方が分かりやすそう
269:デフォルトの名無しさん
09/09/02 20:54:36
そんなわけないでしょ。
ツラが変らないならカスタムコントロール(既存のコントロールからの派生)でいいし、
その方がずっとわかりやすい。
ユーザーコントロールってのは、当たり前だが複合コントロールを作るためのものだよ。
270:デフォルトの名無しさん
09/09/02 20:57:46
ピクチャボックスくらいならユーザーコントロールから派生してプロパティを橋渡ししてる暇があったら
Controlから直接派生して自作できそうだ
271:デフォルトの名無しさん
09/09/02 21:19:19
機能を追加するコンポーネント作るってのもあり
272:デフォルトの名無しさん
09/09/02 21:30:17
起動が遅すぎます
何とかして下さい
273:デフォルトの名無しさん
09/09/02 21:44:31
新しいマシン買えよ。
274:デフォルトの名無しさん
09/09/02 22:03:53
アドビのソフトみたいにスタートアップにこっそり仕込んでおけばいいんだよ。
やりすぎるとOSそのものの起動が激遅になるけどねw
275:デフォルトの名無しさん
09/09/03 12:06:16
ジュネリックコレクション型のcontainがうまくいかなくて困っています
配列へコピーしてもダメで困っているのですがどうしたらいいのでしょうか?
public class Location{
public int x, y, z;
public void data(Location position){
this.x = position.x;
this.y = position.y;
this.z = position.z;
}
public void data(int x, int y, int z){
this.x = x;
this.y = y;
this.z = z;
}
}
static void Main(string[] args){
Location pos1 = new Location();
Location pos2 = new Location();
List<Location> FilePosList = new List<Location>();
pos1.x = 5;
pos1.y = 10;
pos1.z = 20;
pos2.x = 5;
pos2.y = 10;
pos2.z = 20;
FilePosList.Add(pos2);
if (FilePosList.Contains(pos1)) {
Console.WriteLine("値が一致しました");
}
}
276:デフォルトの名無しさん
09/09/03 12:07:16
>>275 すいません 現象は Containsが一致しないことです
277:デフォルトの名無しさん
09/09/03 12:16:03
>>276
pos1 == pos2が成立するようにする
具体的にはEqualsのオーバーライド
278:デフォルトの名無しさん
09/09/03 12:21:19
EqualsやGetHashCodeを実装するのはもちろんだけど,
そういうデータは変更可能なクラスであってはいけない。
あとからメンバの値を変更できないような設計にするか,
クラスではなく構造体にしないと整合性が保たれない。
279:デフォルトの名無しさん
09/09/03 12:32:03
>>276 文字通り Equalsのオーバーライドで求めているものができました
ありがとうございます。
>>278 アドバイスありがとうございます
280:デフォルトの名無しさん
09/09/03 12:47:43
List<T>.Containsの解説にEqualityComparer.Default使うって書いてあるんだから読めよな
しかしこれもダックタイピングなのか
281:デフォルトの名無しさん
09/09/03 13:05:19
EqualityComparer<T>.Defaultは通常はObject.Equalsの結果を返すだけ。
だからオーバーライドしてあればそっちが呼ばれる。ダックタイピングではない。
EqualityComparer<T>.Defaultは面白いプロパティで,TがIEqualityComparer<T>を実装してたら
Object.EqualsじゃなくてIEqualityComparer<T>.Equalsを使う実装に代わったりする。
282:デフォルトの名無しさん
09/09/03 13:12:41
面白いというよりトリッキーだな
IEquatable<T>なら理解できるが
283:デフォルトの名無しさん
09/09/03 13:13:20
ContainsじゃなくてExistsを使うというのも一案
284:281
09/09/03 13:14:35
>>282
間違えた
IEquatable<T>で正解
285:デフォルトの名無しさん
09/09/03 14:03:53
そういえばMSDNでコレクションクラスにIがつくものはプロパティとなっていて
つかないものはクラスとなるけど、サンプルはその記述だけで他が一緒。
これはどういう使い分けをしたらいいの?
286:デフォルトの名無しさん
09/09/03 14:20:52
先頭にIが付くのはインターフェイスといいます。
わからないうちはクラスだけ使ってれば問題ありません。
非常に重要な概念ですがとてもこんなところで説明しきれるようなものではないので
ちゃんと基礎から自分で勉強した方がいいです。
287:デフォルトの名無しさん
09/09/03 14:26:57
フェルマーおつ
288:デフォルトの名無しさん
09/09/03 14:31:07
インターフェイスという言葉も知らない奴に何を教えるんだよ
オブジェクト指向や多態性について10レスくらい使って書けばいいの?
289:デフォルトの名無しさん
09/09/03 15:06:48
下記のようにlistという配列に追加してDataRowを追加しています。
list.Add(DataRow.ItemArray);
それで、テンプレート側でlistの表示を行いたいのですが、
やり方がいまいちわかりません。
foreach等でまわすのはわかるのですが、どうやってまわすのですか?
290:デフォルトの名無しさん
09/09/03 15:12:52
以下をオブジェクト指向に則って書き換えるとするとどのようなコードになるますか?
class MyClass{
public int methodA (int i)
{
return i + 1;
}
public int methodB (int i)
{
return i - 1;
}
}
class ClassB{
public int methodA (int i)
{
return i * 2;
}
public int methodB (int i)
{
return i / 2;
}
}
291:デフォルトの名無しさん
09/09/03 15:17:02
クラス分ける意味ないと思う
292:デフォルトの名無しさん
09/09/03 15:17:24
そんなんにオブジェクト指向もなにもない
293:デフォルトの名無しさん
09/09/03 15:29:28
インタフェースを使って、
interface IStrategy {
int methodA(int i);
int methodB(int i);
}
class ClassA : IStrategy {
...
}
class ClassB : IStrategy {
...
}
GetStrategy() は、ClassAかClassBのどちらかのインスタンスを返すメソッドとして
どこか別のところで、
IStrategy strategy = GetStrategy();
int bar = strategy.methodA(foo);
294:デフォルトの名無しさん
09/09/03 15:30:24
>>292
そうですよね。
昨日行った面接でホワイトボードにこれ出されて、
オブジェクト指向で書き換えるように言われたのですが。。。
上手く回答する事ができず、取りあえずinterfaceをくっ付けてみたのですが、
後学の為に、どうか書けば良かったのか知りたかったのです。
分かる方居ればご教授頂けると嬉しいです。
295:デフォルトの名無しさん
09/09/03 15:33:01
酷い面接だなw
OOP脳っぽいw
296:293
09/09/03 15:33:44
>>294
オブジェクト指向は関係なくて、Strategyパターンを知っているかが求められていたのでは?
297:デフォルトの名無しさん
09/09/03 15:34:18
>>293
ありがとうございます。ストラテジーパターンですね。
やはり、デザインパターンで回答するのがスマートでしたか。
イメージはありましたが、名前が出てきませんでした。
298:デフォルトの名無しさん
09/09/03 15:36:58
>>294
その可能性はありますね。ストラテジーパターンは知ってはいたのですが、
面接官の前でテンパってしまってInterfaceくっ付けるだけで、
その後の説明ではアワアワなってしまいました。
299:デフォルトの名無しさん
09/09/03 15:41:48
面接頑張ったね☆
300:デフォルトの名無しさん
09/09/03 15:59:22
>>291-299
ありがとうございました。
301:デフォルトの名無しさん
09/09/03 18:12:02
質問です。
TabPageとそれに格納されているコントロールを複製して、
同じ挙動・レイアウトのTabPageを作成したいのですが、
どのような方法がありますか?
302:デフォルトの名無しさん
09/09/03 18:37:47
山田 優 A
山本 一太 B
山田 太郎 C
テキストボックスで名前とアルファベットの間にタブを入れると
上のようになるんですが、メモ帳やテキストエディタにコピペすると
きちんと等長になります
テキストボックスコントロールでタブを等長にするにはどうすればいいですか?
303:302
09/09/03 18:42:29
自己解。
フォントが非等長でした。
すんまそん。
304:デフォルトの名無しさん
09/09/03 19:53:15
等幅と言ってくれ寒気がする
305:デフォルトの名無しさん
09/09/03 20:02:56
プロポーショナル・非プロポーショナルという方が実際的な気がする
306:デフォルトの名無しさん
09/09/03 21:24:47
ああ、そうでしたね・・・
細かいこと気にするなよ兄弟
307:デフォルトの名無しさん
09/09/03 22:04:11
>>301
やりたいことがよくわかんないんだけど。
ユーザコントロールにその「タブに格納されているコントロール」群を貼り付けて、
そのユーザコントロールをあちこちのタブページに貼り付けるんじゃダメなの?
308:デフォルトの名無しさん
09/09/03 22:45:25
質問です。
サブスレッドにてメインスレッドのListvViewコントロールから取得したListViewItem似たいし
処理を施してからメインスレッドのListViewに返したいと思っています。
Invokeする際にIndexを取得しておく方法を考えていますが、Itemを返すときに取得した位置に
間違いなく返す方法があれば教えてください。
309:デフォルトの名無しさん
09/09/03 22:48:55
仮想リストビュー便利よね
310:デフォルトの名無しさん
09/09/03 22:48:55
C#からネットの切断を行うことはできますか?
コントロールパネルのネットワーク接続から「無効にする」を選択した状態を再現したいです。
アンセーフなものでも構わないのでご教授いただけませんか
311:デフォルトの名無しさん
09/09/03 22:54:09
>>308
それ日本語かよ。
312:デフォルトの名無しさん
09/09/03 23:28:50
>>310
ネットワークデバイス(ドライバ)を無効化すれば?
>>308
落ち着け
313:301
09/09/03 23:35:03
>>307
それでやりたいことはできそうです。
ありがとうございました。
314:デフォルトの名無しさん
09/09/03 23:42:15
マザーボードの種類がLGA1366よりLGA1156が圧倒的な速さで出回っているのは
これからのCPUの割合がそうなっちゃうからなのか?
メモコンとかで劣るのに。
まじで?
315:314
09/09/03 23:43:48
Janeのタブが悪戯しました。
代わりに誤爆したことを謝ります。
m(´。。)mペコリー
316:デフォルトの名無しさん
09/09/03 23:45:16
おちゃめさんなJaneだなぁ
317:デフォルトの名無しさん
09/09/04 00:16:01
俺もJaneちゃんにいたずらされたいです。
誰かコーディングしてください!
318:308
09/09/04 00:21:06
すいません。やりたいことは
delegate GetItemDelegate();
delegate SetItemDelegate();
private void Button1_Click(sender, e)
{
Thread t = new Thread(new ThreadStart(Send));
t.Start();
}
private void Send()
{
Invoke(new GetItemDelegate(GetItem)); ←これを
~処理~
Invoke(new SetItemDelegate(SetItem)); ←もとの位置に戻したいが上手い方法がわからない
}
private ListViewItem GetItem(){~処理~}
private void SetItem(ListViewItem lvi){~処理~}
319:デフォルトの名無しさん
09/09/04 00:40:46
ListView.Itemsに含まれてるListViewItemは別スレッドで操作できないから
一旦ListView.Itemsから削除することになるけど
適当にListViewItemと元のIndexを持ったクラスでもやりとりすれば良いんじゃね
仮想リストビュー使った方が良いと思うけどね
つか元の位置に戻したいとかよく分からん GetItemの返値捨ててるし
320:デフォルトの名無しさん
09/09/04 00:46:30
やはり>>318の言いたいことはさっぱり理解できんね。
恐らく本人も自分が何をしたのか、よく理解できてないんだろう。
いずれにせよ、自分を考えを整理できない人間が、かつ説明能力も欠如してると
最強の「日本語でおk」なフィーリング溢れる文章が出来上がる、と。
321:デフォルトの名無しさん
09/09/04 00:52:08
>>312
ありがとうございます。
devconというものを使えばできそうなのはわかったのですが
再配布禁止なようなので、できればAPIなどで実現したいです。
ドライバの無効化はどのように実現するものなのですか?
322:318
09/09/04 01:04:09
>>319
なんも見ないでおおざっぱに書いただけなので細かい部分は勘弁してください
仮想モード調べてみたけどソートとかめんどくさそうで・・・
323:デフォルトの名無しさん
09/09/04 01:07:01
別スレッドで処理せにゃならんほど大量のListViewItemねぇ
324:312
09/09/04 01:08:13
>>321
私は組込屋ではないので、ドライバの知識はないです
ドライバなんで、もしかしたらWindowsAPIやDLLの知識が要るかもしれないです
参考になるかはわかりませんが
URLリンク(okwave.jp)
325:318
09/09/04 01:25:10
>>319
今ListViewに実装してるソータークラスを改良したらなんとか行けそうな気がしてきたんで
仮想モードを使う方法とインデックス保持専用クラスをやりとりする方法を両方検討してみます
ありがとうございました。
326:314
09/09/04 01:37:44
>>325
気になって調べてみた。
こういったネットワークとかは経験上コマンドラインでなんとかなると思って調べてみると色々でてきた。
自分も試したことないから何とも言えないけど、コマンド関係を調べて見てはどうでしょうか、
URLリンク(kgo.dtiblog.com)
327:デフォルトの名無しさん
09/09/04 01:39:01
>>326
Janeのコテハン記憶にやられた。
かまって欲しいのか、そうなのか。
328:デフォルトの名無しさん
09/09/04 01:42:48
Win32_NetworkAdapter の Disable() メソッドでいいだろ。
329:デフォルトの名無しさん
09/09/04 10:13:37
マルチスレッドについてです
どぼんさんところのサンプルを改造しててコンパイルエラーがでました
キーワード"base"は静的メソッドでは使用できません。
BeginInvoke・EndInvokeを使ってメインスレッドで処理しなければいけない
ような気がするんですがどう書いていいかわかりません。
よろしくお願いします。
次でコードを載せます。
330:デフォルトの名無しさん
09/09/04 10:15:05
public partial class RequestTextBox : TextBox
{
public GMapStaticParameters GSParam = new GMapStaticParameters();
//受信したデータを入れておくMemoryStream
private static System.IO.MemoryStream requestData;
//受信したデータを入れるバッファ
private static byte[] bufferData;
//html.Textの取得
public static void GetMap()
{
//HttpWebRequestの作成
System.Net.HttpWebRequest webreq =
(System.Net.HttpWebRequest)
System.Net.WebRequest.Create("URLリンク(www.hogehoge.com)");
//非同期要求を開始
//状態オブジェクトとしてHttpWebRequestをわたす
IAsyncResult r =
(IAsyncResult)webreq.BeginGetResponse(
new AsyncCallback(ResponseCallback), webreq);
}
331:デフォルトの名無しさん
09/09/04 10:16:25
//非同期要求が終了した時に呼び出されるコールバックメソッド
private static void ResponseCallback(IAsyncResult ar)
{
//状態オブジェクトとしてわたされたHttpWebRequestを取得
System.Net.HttpWebRequest webreq =
(System.Net.HttpWebRequest) ar.AsyncState;
//非同期要求を終了
System.Net.HttpWebResponse webres =
(System.Net.HttpWebResponse) webreq.EndGetResponse(ar);
//ストリームを取得
System.IO.Stream st = webres.GetResponseStream();
//データを読み込むための準備をする
requestData = new System.IO.MemoryStream();
bufferData = new byte[1024];
//非同期でデータの読み込みを開始
//状態オブジェクトとしてStreamをわたす
IAsyncResult r = (IAsyncResult) st.BeginRead(
bufferData, 0, bufferData.Length,
new AsyncCallback(ReadCallback), st);
}
332:デフォルトの名無しさん
09/09/04 10:17:28
//非同期読み込み完了時に呼び出されるコールバックメソッド
private static void ReadCallback(IAsyncResult ar)
{
//状態オブジェクトとしてわたされたStreamを取得
System.IO.Stream st = (System.IO.Stream)ar.AsyncState;
//データを読み込む
int readSize = st.EndRead(ar);
if (readSize > 0)
{
//データが読み込めた時
//読み込んだデータをMemoryStreamに保存する
requestData.Write(bufferData, 0, readSize);
//再び非同期でデータを読み込む
IAsyncResult r = (IAsyncResult)st.BeginRead(
bufferData, 0, bufferData.Length,
new AsyncCallback(ReadCallback), st);
}
else
{
//データの読み込みが終了した時
//データをデコードして表示する
System.Text.Encoding enc =
System.Text.Encoding.GetEncoding(51932);
base.Text = enc.GetString(requestData.ToArray());
base.Refresh;
//閉じる
st.Close();
requestData.Close();
}
}
}
インデントは全角スペースです
333:デフォルトの名無しさん
09/09/04 10:21:26
よく読んでないけどとりあえずstaticは論外
334:デフォルトの名無しさん
09/09/04 10:31:50
ありがとうございます
staticを外すと
静的でないフィールド、メソッド、またはプロパティ 'ResponseCallback(System.IAsyncResult)' で、オブジェクト参照が必要です。
と言われますた。
335:デフォルトの名無しさん
09/09/04 10:40:10
そう良かったね。
336:デフォルトの名無しさん
09/09/04 10:46:13
ざまぁね~な
337:デフォルトの名無しさん
09/09/04 11:40:15
まだstatic残してるだろ
338:デフォルトの名無しさん
09/09/04 11:47:44
解答する気もないのに煽る糞がまた増えてきたな
339:デフォルトの名無しさん
09/09/04 11:52:13
自己紹介お疲れ様です。
340:デフォルトの名無しさん
09/09/04 11:55:46
>>337
天才!
無事コンパイルは通りました。ありがとうございました。
ただ、これをこまま実装した場合、メソッド呼び出しが連続したときなどの対処を考える必要があると思うのですが
連続した場合は動いているスレッドを破毀したい場合どのように改良していくべきでしょうか?
ロードマップだけでもお示しください。何とぞ。
341:デフォルトの名無しさん
09/09/04 12:12:15
ReadCallbackは非同期で呼び出されるんじゃないの?
その中でコントロールを触るにはControl.Invokeが必要
342:310
09/09/04 12:28:30
>>324,>>328
ありがとうございます。
いろいろ調べてみたのですが
とりあえずローカルエリア接続から排除するだけでも私のやりたいことを叶えられそうなので
「NetUseDel」を使ってみようと思いました。
しかし、NetUseDelはネットワークドライブからの接続解除について書かれたものが多く
どうやってローカルエリア接続を解除するのかわかりませんでした。
UseNameには「ローカル エリア接続」、「物理アドレス」、「ネットワークカード名」を試してみました。
もはやこちらでお願いするのもどうかと思うのですがご教授いただけないでしょうか
343:デフォルトの名無しさん
09/09/04 12:56:15
>>341
非同期です。Control.Invokeですね。
たぶん実行時エラーが出るとは思ってました。
344:デフォルトの名無しさん
09/09/04 14:50:44
>>341
とりあえず動作確認まで完了できました
ありがとうございました
345:デフォルトの名無しさん
09/09/04 21:11:17
>>342
無理。
346:デフォルトの名無しさん
09/09/04 22:35:46
>>329でございます。
動作確認が取れたところでちょっとハードに重複してスレッドを呼び出してみました。
そうすると、閉じたストリームに書き込もうとしてるぞエラーが出ました。
場当たり的にあちこちlockを使ってみましたがダメでした。
イベントハンドラがメソッドAを呼び出す。
メソッドAがメソッドBをマルチスレッドで呼び出す。
メソッドBはメソッドCをマルチスレッドで呼び出す。
メソッドCは自分の仕事が完了したかどうかチェックしてまだならメソッドCを呼び出す。
完了していたらControl.Invokeを呼び出す。
イベントはスレッド完了を待たずにどんどん発生します。
メソッドBを呼び出された順番で1つづつ実行したいのですが、BeginInvokeでいいでしょうか?
ヒントをひとつよろしくお願いします。
347:デフォルトの名無しさん
09/09/04 22:56:53
EndGetResponseでReponse取得した後はわざわざBeginReadとかする必要は普通ない
> イベントはスレッド完了を待たずにどんどん発生します。
> メソッドBを呼び出された順番で1つづつ実行したいのですが
メソッドBが呼び出された順番でいいのか? メソッドAが呼び出された順番じゃなくて
なんにせよスレッドに順番なんて保証は皆無なので
メソッドBが呼び出された順をキューとかリストとかに保存して
Invokeを呼び出す時に並べてやる必要がある
その辺をマルチスレッドから扱うにはlockとかが必要
あとControl.BeginInvokeじゃ呼び出されるメソッドの順番は保証がない
348:デフォルトの名無しさん
09/09/04 23:54:14
GraphicsのDrawString等を使用してフォントサイズをピクセル単位で指定して描画することはできるでしょうか?
たとえばサイズを20pxとして描画した場合に全角なら幅20px、高さ20px、半角なら幅10px、高さ20pxとなるような
349:デフォルトの名無しさん
09/09/05 00:04:53
>>347
ありがとうございます。以前はリストを保存してタイマーでスレッドをチェックしてスレッドが走ってなかったらリストをひとつ消化
という仕組みにしてましたが、今回はイベントがタイマーより早く発生しそうでどうするか迷ってました。
かなり操作を早くしないとこのエラーはでないし、そこまで操作が早くなるとキューやリストを消化できない弊害がでそうなので
ストリームの状態を確認してエラーが出たら保存作業をスキップさせるように変更します。
経験に基づいた判断はサンプルコードでは得られないものですね。
ありがとうございました。
350:デフォルトの名無しさん
09/09/05 00:08:18
>>348
ペゾルドの本でもじっくり読んでみたら。
偉そうに言ってる俺は拾い読みしかしてないけどw
URLリンク(msdn.microsoft.com)
351:デフォルトの名無しさん
09/09/05 05:33:46
ラジオボタンで、個人と法人のいずれかを選択させ、
個人の場合は、個人の姓名などの情報、
法人の場合は、会社名や代表者などの情報を入れてもらうように
パネルを切り替えています。
しかし、どちらが前面にあっても、タブオーダーは背面のコントロールにまで飛んでいるようです。
これを、背面に隠れている側のパネルのコントロールにタブが飛ばないようにするには
どうする方法が効率的でしょうか。
イベント発生ごとに、各コントロールのタブストップのTRUE FALSE を
1つずつ記述するしか方法はないでしょうか。
よろしくお願いします。
352:デフォルトの名無しさん
09/09/05 05:58:41
個人の場合のパネルも法人の場合のパネルもフォームに貼り付けられてるのか?
選択された方のパネルだけ貼り付ければもう片方にフォーカスが移るはずがないんだが。
353:デフォルトの名無しさん
09/09/05 06:00:00
背面に隠したパネルのVisibleかEnabledをfalseにすればいい
354:デフォルトの名無しさん
09/09/05 06:02:20
隠れている側のPanel.Enabledをfalseにすればいい気もするけど試さずに書き込み。
355:デフォルトの名無しさん
09/09/05 09:50:40
初歩的な質問ですみません
ふだんVBでコーディングしているんですが、今回C#を書いています
そしたら、インテリセンスが不親切です
メソッドを選択しても()がつかない
メソッドの引数候補の情報が出ない
文法エラーが出て修正してもアンダーラインが消えない
こういうものですか?C#って
356:デフォルトの名無しさん
09/09/05 09:58:03
それはC#じゃなくてVSが糞って言いたいんじゃないの?
引数候補の情報や文法エラーは正しく書いていないだけだし。
357:デフォルトの名無しさん
09/09/05 09:59:11
>メソッドを選択しても()がつかない
これは本当に好みの問題。嫌いな人もいる。
>メソッドの引数候補の情報が出ない
出る。
>文法エラーが出て修正してもアンダーラインが消えない
消える。
358:デフォルトの名無しさん
09/09/05 10:02:13
インテリセンスでメソッドを決定するときには,
目的のメソッドが選択された時点でいきなり ( を入力するのがおすすめ。
359:デフォルトの名無しさん
09/09/05 10:05:45
>>351
氏の質問を見て、私も質問をさせていただきたいのですが…。
私は縦横にパネルを6枚ほど敷き詰めて、
それぞれに、約10ずつのコントロールを置いており、
タブオーダーを約50まで設定していますが、
間に項目が追加になりそうなんです。
その場合、追加したコントロール以降のタブオーダーを全てプロパティ画面で手で直さなくてはならないのでしょうか。
表示⇒タブオーダーの画面だと、コントロールが密集しているのでうまくクリックできない状態です。
よろしくお願いします。
360:デフォルトの名無しさん
09/09/05 10:10:00
VBが自動的にブロックや括弧を閉じてくれるのって,VBはEnd Ifとか綴りが多くて面倒だからなんだよね
C系の言語の場合はあまり変わらないので不要。ちゃんとリアルタイムにエラーが表示されるから閉じ忘れも起こらない。
>>359
もうデザイナ使わずにコードでコントロールを作るようにしたら?
361:デフォルトの名無しさん
09/09/05 10:15:51
はい。
362:デフォルトの名無しさん
09/09/05 10:26:02
>>356
いやーそういうつもりはないんですが
>>357
なるほど 好き嫌いや慣れの部分はしかたないですね
>>メソッドの引数候補の情報が出ない
>出る。
>>文法エラーが出て修正してもアンダーラインが消えない
>消える。
もうちょっと悩んでみます・・・
>>358
なるほど!そうさせていただきます
>>360
なるほど・・・
文法エラーが消えないのはなぜなんでしょうかねえ
インストールの時の言語選択が原因ですかね?
363:デフォルトの名無しさん
09/09/05 12:01:05
はっきり言ってVBの方がIDEの補助弱いぜ。
使ってりゃあれって思うこと多い。
リファクタ機能も使えないし、
ツールチップ表示でフルクラス名出ないし、
自作ライブラリのコメント出ないし、
型が色分け表示されないし、
オーバーライドしたいときにoverrideって打って対象メソッド選択とか出来ないし、
こんな感じでイライラする。
364:デフォルトの名無しさん
09/09/05 12:02:52
あと、構文補完も弱かった気がする。
365:デフォルトの名無しさん
09/09/05 12:30:14
>>363
本当にVB(2005以降)の使ったことある?
嘘はいかんと思うよ。
まあVBのIDEの方が遅れてる面が大きいのは事実だが、
リアルタイムのエラー警告だけはVBの方が精度が高いね。
C#みたいにビルドして初めて警告が発せられる・・・ってことがVBにはない。
あと個人的にはメソッドの区切り線の表示機能もC#にあってもいいと思う。
366:デフォルトの名無しさん
09/09/05 12:34:03
で、どれが嘘?
367:デフォルトの名無しさん
09/09/05 12:52:42
VBのコードスニペットだけは使いにくすぎる
なんでC#と同じようにしないんだろう
368:デフォルトの名無しさん
09/09/05 12:52:54
リファクタリング機能があるのならStandard以上のグレードのVSを
持ってるんだろうから試せばわかると思うよ。
369:デフォルトの名無しさん
09/09/05 13:06:33
>>365
>ビルドして初めて
ん?うちのVS2005stdのC#は入力すると即座にエラー一覧に出るんだが。
何か設定か、CPUの能力から自動判断とかじゃないか?
370:デフォルトの名無しさん
09/09/05 13:15:37
staticクラスに宣言されたインスタンスメンバとか
internalクラスをpublicクラスのpublicメンバで公開するとか
そういうのはビルド時までエラーが出ない
371:デフォルトの名無しさん
09/09/05 13:28:18
おお、確かに。文法的に判断もできそうなのに。
public inner a() {
return new inner();
}
static class inner {
int a;
public inner() { }
}
372:デフォルトの名無しさん
09/09/05 14:11:02
メインパネルの中にパネルA、B、Cの3枚を横に並べました。
A、B、Cの横幅を足すと、フォームに収まりきらないので、
メインパネルにはオートスクロールを設定しました。
しかし、ユーザーから、A、B、Cのパネルの内容を一度に閲覧したいという要望がありました。
このとき、
A、B、Cの各パネルのキャプチャーを取得し、各々をやや縮小して別のフォームに横並びに貼り付けて、画面に一覧表示させることは可能でしょうか。
よろしくお願いいたします。
373:デフォルトの名無しさん
09/09/05 14:14:02
はい
374:デフォルトの名無しさん
09/09/05 14:26:14
ものすごく初歩的な質問で申し訳ないんですが
仮にFormを画面左上に移動する関数MoveForm()を作ったとして
あとで、移動先を自由に決めたい、MoveForm(int x, int y)みたいなのが欲しいなーって思ったとします
それでこのとき、引数無しのMoveFormと有りのMoveFormの差は、移動先が決め打ちかどうかの違いしかなかったとします
こういう時は、どういう風に書けばいいのですか?
例えば、MoveForm(int x, int y)という風にオーバーロード?して、その中に引数無しの時との「違い」だけを書くということことがしたいです。
375:デフォルトの名無しさん
09/09/05 14:31:26
void MoveForm()
{
MoveForm(0,0);
}
void MoveForm(int x, int y)
{
//移動処理
}
376:デフォルトの名無しさん
09/09/05 14:39:51
>>373
どうすればできるのでしょうか…。
何かヒントを…。
377:デフォルトの名無しさん
09/09/05 14:41:45
>>361
>>373
あなた、何か怒っているのか?
378:デフォルトの名無しさん
09/09/05 14:46:31
>>377
質問に答えているだけだろ。大人げないとは思うがw
質問する方も素直に、判らないのでどうすればいいか教えて下さいって書けよ。
379:デフォルトの名無しさん
09/09/05 14:48:51
たぶん怒ってはない。
質問に「リテラルに」答えてるだけだと思うよ。
それは>>373がただ意地悪な人間なだけかのか、それとも他のになにか原因もあるのかは
よく考えたほうがいいと思うな。
380:デフォルトの名無しさん
09/09/05 14:50:42
>>375
なるほどー!
引数無しの方をなんというか「オリジナル」みたいに考えていたので
これにどう「付け足すか」っていう風にしか考えることができてなかったです
続けて質問して申し訳ないんですが
オーバーロードの使い方ってどんな風に使うんですか?
OnPaintとかをオーバーロードしてるのは本にあったのですが
自分で作るときにうまく当てはめることができないです。
381:デフォルトの名無しさん
09/09/05 14:51:37
>>373
教えていただけないでしょうか。
dobonさんのページにキャプチャー機能があるとは書いていましたが、縮小拡大が分かりません。
382:デフォルトの名無しさん
09/09/05 14:52:22
オーバーロード?
オーバライドじゃなくて?