03/10/04 01:02
このスレッドは
「どんなにくだらないC#プログラミングに関する発言でも誰かが優しくレスをしてくれるスレッド」です。
ほかのスレッドでは恐ろしくて書き込めないような低レベル、もしくは質問者自身なんだか意味がよく分からない質問など、
勇気をもって書き込んでください。
少しずつC#プログラマを名乗るものが現れました。みなさん一緒に勉強しましょう。
前スレッドはこちら
スレリンク(tech板)l50 (Part4)
スレリンク(tech板)l50 (Part3)
スレリンク(tech板)l50 (Part2)
スレリンク(tech板)l50
2:デフォルトの名無しさん
03/10/04 01:06
C♯相談室 Part11
スレリンク(tech板)
@IT Insider.NET
URLリンク(www.atmarkit.co.jp)
Insider.NET 会議室 ディレクトリ
URLリンク(www.atmarkit.co.jp)
宇宙仮面の C# プログラミング / C# Programming
URLリンク(ukamen.hp.infoseek.co.jp)
C#入門
URLリンク(black.sakura.ne.jp)
GotDotNet Japan 掲示板
URLリンク(www.gdncom.jp)
どっとねっとふぁん
URLリンク(homepage3.nifty.com)
初めてのC# ~ 覚え書き ~
URLリンク(homepage3.nifty.com)
どぼん!の .NET Tips
URLリンク(dobon.net)
3:デフォルトの名無しさん
03/10/04 01:18
C#Builder 1.0 Personal 日本語版 ダウンロード
URLリンク(www.borland.co.jp)
.NET Framework 1.1 製品ドキュメント
URLリンク(www.microsoft.com)
.NET のつぼ
URLリンク(hakoten.com)
C#入門
URLリンク(black.sakura.ne.jp)
Microsoft .NET入門
URLリンク(black.sakura.ne.jp)
4:デフォルトの名無しさん
03/10/04 04:35
今Microsoft Web Browserコンポーネント上に表示したWEBサイトの
テキストボックスにIDやパスワードなどを自動的に入力できるソフトを
作っていてる者です。
user32.dllのGetGUIThreadInfo関数を使って
WEBサイトのテキストボックスのキャレット(チカチカするカーソル)
の位置を取得するところまではできたのですが、その取得したキャレット位置に指定した文字
(ID、パスワードなど)を入力(ペースト)する方法が分からず困ってます。
どうすればいいのでしょうか?
5:デフォルトの名無しさん
03/10/04 10:13
>>4
方向性がおかしい。DHTML方面から攻めるといい。
6:デフォルトの名無しさん
03/10/04 13:52
C#厨もこれ見て目を覚ませ
URLリンク(movies.livedoor.com)
7:デフォルトの名無しさん
03/10/04 14:54
>6
こんなの見たらWindowsのままでいいと思うぞ
8:デフォルトの名無しさん
03/10/04 16:03
>>6
寝起き悪いなぁ。
っていうか、マルチポストうぜぇ。
9:デフォルトの名無しさん
03/10/04 16:12
>>4
タブブラウザなどでそういうのに対応したスクリプトあるから
参考にしてみたら。
たぶんGetGUIThreadInfoなんか必要ないと思う。
10:デフォルトの名無しさん
03/10/04 16:30
Rectangle型の四角形の座標内に
Point型の座標が含まれているか、
ということを調査する定石があったような気がするのですが
思い出せません。
教えてもらえませんか?
それとももしかして勘違いで自前で
座標を比較して判断するのが普通でしょうか?
よろしくお願いします。
11:デフォルトの名無しさん
03/10/04 16:35
>>10
Rectangle.Contains使えよ。
プロパティのアクセスはオーバーヘッドがかなり大きいから
自前で実装したらその定石とやらがどんなにすぐれたアルゴリズムでも速度は出ないぞ。
12:4
03/10/04 17:05
いやー釣れた釣れたw
13:デフォルトの名無しさん
03/10/04 17:58
>11
プロパティのオーバーヘッドってどういう理屈なの?
14:10
03/10/04 19:13
>>11
ばっちりそのもののようです。
ヘルプで見落としたみたいです。
やっぱりあったみたいですね。
ありがとうございます。
>>13
プロパティの値を取得しようとした時に
プロパティのget部分に書いてあるメソッド等が
呼び出されるってことじゃないでしょうか?
私の>>10の例だと対象座標と比較する為になんども
Rectangle型のXメンバやYメンバにアクセスることかな、と思います。
15:13
03/10/04 20:15
>14
そういうことか。ありがとう。
16:デフォルトの名無しさん
03/10/04 22:05
URLリンク(sourceforge.jp)
1 146 C
2 119 C++
3 90 Java
4 55 PHP
5 44 Ruby
6 32 Perl
7 24 Delphi/Kylix
8 21 Other
9 17 Assembly
10 16 Python
11 13 Objective C <--------C++に敗北して廃棄状態
12 12 C# <--------超負け組み
13 7 Unix Shell
14 5 Tcl
15 5 Lisp
16 4 Visual Basic <--------廃棄処分
17:デフォルトの名無しさん
03/10/05 03:08
Cがトップな時点で何の参考にもならんw
18:デフォルトの名無しさん
03/10/05 04:01
C#もずいぶん普及したな。
ついこの間まではコンパイラも何も無くてMSの出した言語概要読んで
( ゚∀゚)イイ!とか(;´Д`)なんじゃそりゃとか思いながら
出るのを楽しみにしてたってのに。
19:デフォルトの名無しさん
03/10/05 04:47
>>17
馬鹿ですか?
20:デフォルトの名無しさん
03/10/05 10:15
C#もあと3000年程経てばトップになるよ
21:デフォルトの名無しさん
03/10/05 12:59
( ・∀・)つ〃∩ ヘェー
22:デフォルトの名無しさん
03/10/05 21:11
webからhtmをstringとしてストリームから取得してそれをブラウザのように表示するにはIndexOfなどでタグを自分で処理するんでしょうか?
23:デフォルトの名無しさん
03/10/05 22:00
>>22
その通り
24:デフォルトの名無しさん
03/10/06 01:30
C#でフローティングウィンドウに関することが書いてあるページがあれば教えてください。
googleで探した限りではいいのがでてこなかったので・・・
25:デフォルトの名無しさん
03/10/06 11:25
IEnumeratorのMoveNextを実装するときに
if(position>array.Length)//arrayは配列、positionは配列の位置
とある本にあったのですが、
if(position>array.Length-1)
としないと例外が出ます。本が間違っているのでしょうか?
26:デフォルトの名無しさん
03/10/06 11:54
本家でやるとこうなる。VBに負けているDelphiなんて見たくなかったんだろうなぁ(w
URLリンク(sourceforge.net)
1 C (11741 projects)
2 C++ (11528 projects)
3 Java (9854 projects)
4 PHP (7446 projects)
5 Perl (4902 projects)
6 Python (2664 projects)
7 Visual Basic (1556 projects)
8 JavaScript (1378 projects)
9 Delphi/Kylix (1240 projects)
10 Unix Shell (1206 projects)
11 Assembly (1105 projects)
12 C# (1002 projects)
13 PL/SQL (833 projects)
14 Tcl (714 projects)
15 ASP (429 projects)
16 Objective C (396 projects)
17 Lisp (265 projects)
18 Ruby (257 projects)
19 Pascal (254 projects)
20 Assembly (188 projects)
21 Object Pascal (175 projects)
27:デフォルトの名無しさん
03/10/06 15:40
MS製だから当然といっちゃあ当然なんだけどな。
28:デフォルトの名無しさん
03/10/06 15:45
>>25
そんな事知るかヴォケ
29:横浜在住
03/10/06 17:26
首都圏でVisual C#の中古品を買える店教えてください。
ビジネスアプリ系を扱うお店がなかなかありません
30:デフォルトの名無しさん
03/10/08 16:14
MSDNライブラリのControlStylesの説明に
FixedHeight 自動スケールの時にコントロールの幅が固定される
ってあるんですけFixedWidthと逆でしょうか?
31:デフォルトの名無しさん
03/10/08 16:27
>>30
MSDNの誤植だろね。
VisualStudio2002のヘルプはちゃんとHeightが高さになってるし。
32:デフォルトの名無しさん
03/10/08 16:48
誤植って…。
MSはよくこんなの平気で売れますな。
33:デフォルトの名無しさん
03/10/08 16:49
10円やるから人間やめちまえーよ!
ホレ(´ー`)ノ ⌒ ⑩
↓
⑩ ワーーイ
ヽ(゚∀゚)ノ
へ ) ←>>32
>
34:デフォルトの名無しさん
03/10/08 16:54
>>32
> 誤植って…。
> MSはよくこんなの平気で売れますな。
いやオンラインの。(2003のヘルプはどうなのかな)
それにそこらの文庫本だって一冊に何カ所かは誤植があって当たり前なんだし。
35:デフォルトの名無しさん
03/10/10 23:51
>>32
ラーメンにちいさな虫が入ってたら金返せと暴れる性格ですか?
36:デフォルトの名無しさん
03/10/11 06:01
虫入ってたら恐ろしいですな
37:デフォルトの名無しさん
03/10/11 17:03
>>35
さすがに虫入ってたら怒らないとだめでしょ。
それとも無視?
38:デフォルトの名無しさん
03/10/11 23:47
俺は店内で蝿が飛んでたら帰るぞ
39:デフォルトの名無しさん
03/10/12 00:01
では食事中(序盤)に虫がダイブしてきたらどうですか?
40:デフォルトの名無しさん
03/10/12 00:09
食事に入ってきた虫を気付かずに食べるのは、
日本人は一年に3.7匹、フィンランド人は2.4匹。
URLリンク(www.mail-archive.com)
41:デフォルトの名無しさん
03/10/12 13:09
C nul
C + +
C ++
C++
C#
42:デフォルトの名無しさん
03/10/13 13:48
>>6
これまじで その会社のなんか・・・うれねーな^^;
というかそのCMに出てる社員可愛そうになってくる。。
当初MSのソフトが使えるのがうりだったじゃねーか 妥協すんなw
>>Lindows
43:デフォルトの名無しさん
03/10/13 14:11
あのくだらないことで申し訳ないんですが・・
画面にListViewがありまして
値を持っているArryList(中身がオブジェクト)をListViewにセットして
あげるという処理は Formにがつがつかかないで 別クラスで独立
させてあげたほうがベストですか?
別にビジネスロジックでもないので もしかして 別クラスに分ける
必要ないのかな?とふときになりまして。。
44:デフォルトの名無しさん
03/10/13 15:14
usingについてなのですが、
using System;←ここと,
namespace hoge
{
using System;←ここ。
//クラスなど
}
二つのusingの位置での違いはなんなのでしょうか?
45:デフォルトの名無しさん
03/10/13 15:18
using System.Windows.Forms; と
namespace System
{
using Windows.Forms; の違い
}
46:43
03/10/13 21:48
やっぱいいです
47:デフォルトの名無しさん
03/10/13 21:48
class Suuretu1{
public static void main(String []args){
double sum=0.0;
for(int n=3;n<=99999;n=n+4){
double s=1/(n-2)-(1/n);
sum=sum+s;
}
String y="式の合計は"+sum+"です";
System.out.println(y);
}
}
こんなプログラムを作ってみましたが実行すると1.0になってしまいます。
何故だろう・・・??
48:デフォルトの名無しさん
03/10/13 21:52
>>47
馬鹿?
49:デフォルトの名無しさん
03/10/13 21:55
JDBCとMySQL接続のプログラムを作ったんですが、日本語が文字化けします
MySQLは3.23.49です。
MySQL winmysqladmin.exeのmy.ini Setupタグで
[mysqld]
default-character-set=sjis
[mysql]
default-character-set=sjis
[mysql-dump]
default-character-set=sjis
と変更し 再起動し、variablesタグの文字コードも変更されています。
同じことをsjisの部分をujisでも試しました。
テーブルからは、「あ」という文字が戻ってくるはずですが、コンソール画面には
「ツ?」と表示されます。
だれか、分かる方はご返事ください。よろしくお願いします。
50:デフォルトの名無しさん
03/10/13 21:55
馬鹿だな
51:デフォルトの名無しさん
03/10/13 21:56
かなりヤバイのがいるなw
52:デフォルトの名無しさん
03/10/13 22:10
#include <stdio.h>
int main(void)
{
int num,i;
num = 0;
i = 0;
while(num<=4){
while(i<=2){
printf("numは%d:iは%dです。\n",num,i);
i++;
}
num++;
}
return 0;
}
うまく繰り返されないです。
53:デフォルトの名無しさん
03/10/13 22:10
このスレも荒らされるのか?
54:46
03/10/13 22:11
御免なさい 嘘つきました
43の質問に答えてあげてください。
55:デフォルトの名無しさん
03/10/13 22:14
>>43
ArrayList 型のプロパティをコントロールやフォームに書いて、それをget/setする。
オブジェクトをどのように表示するか(リストコントロールに登録するか)はビューの責任であって、周りからそのプロセスは隠蔽すべき。
56:デフォルトの名無しさん
03/10/13 22:44
MVCモデルをC#に置き換えてみると
V->FORM
だから FORMに表示ロジックを乗っけてしまって
いいということでいいんですね。
57:デフォルトの名無しさん
03/10/13 22:45
MVCなんてダサイ
58:デフォルトの名無しさん
03/10/13 22:53
ダサいという根拠を200文字以内で答えよ
>>57
59:デフォルトの名無しさん
03/10/13 23:22
Vectorクラスから配列に入れ替えるというコードのテストを作ってみたんですが
Vector a = new Vector();
a.add("1");
a.add("2");
a.add("3");
a.add("4");
a.add("5");
a.add("6");
String[] str= (String[])a.toArray();
for(int i =0;i< str.length;i++){
System.out.println(str[i]);
}
String[] str= (String[])a.toArray();のところで
java.lang.ClassCastException
60:デフォルトの名無しさん
03/10/14 07:55
import java.util.*;
class Ts{
static void hoge(){
HashMap hm = new HashMap();
//コンストラクタ化
hm.put("c","1");
hm.put("bc","12");
hm.put("a","3");
}
}
class T{
public static void main(String args[]){
hoge h =Ts.hoge();
System.out.println(h.get("c"));
}
}
上のソースコンパイルするとエラーになります教えてください
G:\java>javac T.java
T.java:16: シンボルを解決できません。
シンボル: クラス hoge
場所 : T の クラス
hoge h =Ts.hoge();
61:デフォルトの名無しさん
03/10/14 07:56
Cのmemcpy(),memmove()とか
WinAPIのCopyMemory(),MoveMemory()とか
src領域とdst領域がオーバーラップしているか否かで
使い分けが必要だけどさ、その違いって、内部では
どう影響してくるのでしょうか?
rep movsb
にも影響があるの?
62:デフォルトの名無しさん
03/10/14 09:01
オーバーラップ気にしなければいけなかったのはすでに15年も昔のはなしさ。。
63:デフォルトの名無しさん
03/10/14 09:58
addr 0123456
data ABCDEF 2~5 -> 3~6 copy する時
data ABBBBB になるか
data ABBCDE になるか の差
64:デフォルトの名無しさん
03/10/14 16:44
継承について分かってきたら、C#への理解が一気に深まったよ
こういうことだったんだね
65:デフォルトの名無しさん
03/10/14 17:39
デザイン時の話なのですが、フォームにリストヴューを張り、
SortingのプロパティをAscendingにすると急にヘッダーが長くなり
ヘッダーを調整しようと思っても動かなくなります。
VSのバグでしょうか?
66:デフォルトの名無しさん
03/10/14 18:44
_,. -‐、 ____r‐ 、
/´ ` \
,,―‐. r-、 _,--,、 'フ ,......., \
,―-、 .| ./''i、│ r-,,,,,,,,,,,,,,,,,,,,,,,,―ー. ゙l, `"゙゙゙゙゙ ̄^ \ r‐''~´ ,.、 ヽ'" _,..‐,'゙ヾ.´
/ \ ヽ,゙'゙_,/ .゙l、 `i、 \ _,,―ー'''/ .,r'" .| ヽ' └''´,.:‐r''ヽ,
.,,,、.,,i´ .,/^'i、 `'i、`` `--‐'''''''''''''''"'''''''''''゙ `゛ .丿 .,/ └''´> _,.-、 `'´ ∠,,,
{ "" ,/` ヽ、 `'i、 丿 .,/` .ヾヽ''´ '─'''' }
.ヽ、 丿 \ .\ ,/′ 、ヽ,,、 | ,.r、________,r 、 j
゙'ー'" ゙'i、 ‘i、.r-、 __,,,,,,,,--、 / .,/\ `'-,、 `‐'',ゞ---------──‐'´`ヽ´
ヽ .]゙l `゙゙゙゙"゙゙゙゙ ̄ ̄ `'i、 ,/ .,,/ .ヽ \ !、 ノ
゙ヽ_/ .ヽ_.,,,,--―――ー-ノ_,/゙,,/′ ゙l ," ,ゝ r‐┐ rヮ <´
` ゙‐''"` ゙'ー'" i´ }_」 │ヽ. j
ヽ、 ,人 丿 ヽ._,.ノ
`- ' `ヽ、__/
67:fushianasan
03/10/16 00:32
cってなんですか???
68:デフォルトの名無しさん
03/10/16 05:53
まんc
69:デフォルトの名無しさん
03/10/16 14:01
>>67
アルファベットの3文字目。
70:デフォルトの名無しさん
03/10/26 06:00
視力検査したことないの?
71:デフォルトの名無しさん
03/11/08 23:28
相変わらずC#厨って厨房がおおいね。
72:デフォルトの名無しさん
03/11/19 12:49
73:デフォルトの名無しさん
03/11/19 18:54
>>71
ま た お ま え か
74:デフォルトの名無しさん
03/11/30 19:25
Form上にマウスポインターが乗ってるかどうかを
保持しているプロパティって存在しないんですか?
自分で変数を作ってそこに保持するような処理をしないといけないのですか?
75:デフォルトの名無しさん
03/12/03 23:40
>>74
さっぱり忘れてるのですが
マウスの座標をPointで取得して
指定したRectangle(フォーム)の中に引数に指定した
Point(マウスの座標)が存在するか、というようなメソッドを使って
できたような。。
76:デフォルトの名無しさん
04/01/22 07:18
あげ
77:デフォルトの名無しさん
04/01/29 14:01
TreeViewで、ツリーノードが展開されているときのイメージを指定する方法って
無いんでしょうか?
ImageIndexとSelectedImageIndexだとノードを選択しているか否かの状態のみの設定で、
ツリーノード展開したまま別ノードを選択すると結局非選択時のイメージになってしまうんで…。
要はフォルダオープンとクローズのイメージを表示させて、ツリーノードの展開に合わせて
イメージを変更したいんですが、Expand系のイベントを利用して自力書き換えするしか
無いんでしょうかね?
78:デフォルトの名無しさん
04/01/29 23:07
>>77
それでいいんでね。
URLリンク(santamartadotnet.hp.infoseek.co.jp)
79:77
04/01/30 06:47
>>78
了解です。ありがとー。
80:デフォルトの名無しさん
04/02/11 08:52
なんか不安定?
81:デフォルトの名無しさん
04/02/11 13:06
今年度のバレンタイン大作戦
女性店員がレジにいるコンビニでチョコを買う
↓
わざとチョコを受け取り忘れて店を出る
↓
女性店員が走って渡しに来る「あの・・・これ・・・」
↓
ちょっぴりバレンタイン気分
82:banban
04/02/11 18:54
mysqlのデータを操作するのはどうすればいいんでしょう?
出来ればソースもらえたら嬉しいです、全然わかんないんです。
83:デフォルトの名無しさん
04/02/15 19:30
超ド初心者質問でスマソです
exeファイルへの出力ってどうやったらいいのでしょうか?
84:デフォルトの名無しさん
04/02/15 19:32
>>83
わかりません
85:デフォルトの名無しさん
04/02/16 00:07
>>83
超ド初心者質問でスマソです
あなたの脳内を読み取るにはどうやったらいいのでしょうか?
86:デフォルトの名無しさん
04/02/17 11:34
>>83
csc /out:hoge.exe hoge.cs
ネタにマジ(ry
87:デフォルトの名無しさん
04/02/17 11:49
>>82
英語ページですが。
URLリンク(www.c-sharpcorner.com)
要はODBC .Net Data Provider入れてMyODBC入れて云々、らしいです。
サンプルコードはASP.NETですがWinFormでも似たようなものかと思われます。
88:デフォルトの名無しさん
04/03/24 19:20
宜しくお願いします。
Timerのインスタンスと同期させる簡単なゲームを作っているのですが
このインスタンスを1000分の1秒単位で一時停止させるにはどうすれば良いのでしょうか?
stopさせると0.000秒に初期化されてしまいます。
pauseというメソッドは無いみたいですが不可能なのでしょうか。
89:デフォルトの名無しさん
04/03/25 01:19
ニュー速で質問があったんでけど答えてあげてください。
C#(WINアプリ)を勉強していますがクラスについて教えてください。
public class A
{
メソッド1
}
public class B
{
メソッド2
}
この場合、class Aは、class Bのものに対してアクセスできますよね?
これは、class Aのなかでclass Bのメソッド2が使えるということで
しょうか?
もし、使えるなら、class Aの中でオブジェクト = new class Bとして
インスタンスか化してから使うのでしょうか?
90:デフォルトの名無しさん
04/03/25 07:38
>>89
class B のメソッド2が Public であれば、アクセスできます。
static メソッドでなければ、インスタンス化してからでないとアクセスできません。
91:デフォルトの名無しさん
04/03/25 07:43
とてもどうでも良い質問なんですが
クラスと関数の使い分けが分りません
こうゆう場合はクラス(関数)にする
っていうお約束なんかあるんですか?
92:デフォルトの名無しさん
04/03/29 20:09
クラスライブラリプロジェクトでせっせと /// <summary> などのコメントを記述しています。
同じプロジェクト内では記述したコメントがヒントに表示されるのですが、クラスライブラリを
参照設定した他のプロジェクトではヒントにコメントが表示されません(引数の型とかはちゃんと
出ます)。コメントまではヒントに出てこない仕様なんでしょうか。その割には System.何とかの
クラスにはちゃんとコメントが出てきますよね。何が違うのか。。。
93:デフォルトの名無しさん
04/03/30 04:28
>91
それは経験で身に付けるしかない。
一応コツとしては
・名前が付けられるものはクラスにする
・複数あるものはクラスにする
・動作の対象となるものは、その対象自身に仕事をさせる
とかかな?
94:デフォルトの名無しさん
04/03/30 07:47
>>92
ソースをコンパイルするときにXMLドキュメントファイルを出力しといて、
(コマンドラインコンパイルなら/docオプション)
hoge.dllに対してhoge.xmlって名前でhoge.dllと同じディレクトリに置いてhoge.dllを参照設定。
95:92
04/03/30 11:34
>>94
うまくいきました。ありがとう。
96:デフォルトの名無しさん
04/03/30 22:00
助けてほしい。何度もぐぐったりしているけど、XML読み込みが良くわからない。
例えば、以下のXMLファイルを読み込んで、出力するコードを教えてください。
正直、解説見てもわけがわからんです。これなら手で書いたほうが早いです。
◆出力例
一人目 名前「モナ山 茂名」 生年月日「2000年 2月29日」
二人目 名前「ギコ猫 義子」 生年月日「1900年12月31日」
◆XMLファイル
<?xml version="1.0" ?>
<list>
<person>
<name>モナ山 茂名</name>
<birth year="2000" month="2" day="29" />
</person>
(略)
</list>
97:デフォルトの名無しさん
04/03/30 22:11
PictureBoxの絵の余白部分にマスクをかけて
透過させることってできますか?
98:デフォルトの名無しさん
04/03/30 22:33
>>97
MakeTransparent
99:デフォルトの名無しさん
04/03/30 22:40
>>96
string xmlName = @"C:\Documents and Settings\****\XML ファイル名";
XmlDocument xdoc = new XmlDocument();
xdoc.Load(xmlName);
XmlElement elem = xdoc.DocumentElement;
int i = 1;
foreach(XmlNode person in elem.GetElementsByTagName("person"))
{
Console.Write("{0}人目 名前「{1}」 生年月日「{2}年 {3}月{4}日」\n",
i,
person["name"].InnerText,
person["birth"].Attributes["year"].Value,
person["birth"].Attributes["month"].Value,
person["birth"].Attributes["day"].Value);
++i;
}
100:デフォルトの名無しさん
04/03/30 22:44
>>99
サンクスコ!foreachでperson要素の数だけループさせて、
personという変数に代入して、personのもつ
name要素の中身、birth要素のyear属性の値・・・を表示させているんですね。
Veryわかりやすい。ありがとうございました
101:デフォルトの名無しさん
04/03/31 17:56
早速今日、>>99氏のコードを試してみた。
ものすごく望みどおりに改造することが簡単だった。ありがとう。
なんかJavaScriptを使ったDOMと同じ感じでできたので簡単だった。
@ITとかで勉強してたけど、こんなに簡単にできるなんて、感動だった。
本当にTHANX!
102:デフォルトの名無しさん
04/04/09 14:46
this.Hide();を2回実行しないと消えてくれないんですけど何で?
103:デフォルトの名無しさん
04/04/11 16:29
今月、電話代ちょっと多すぎるんだけどなんで?
104:デフォルトの名無しさん
04/04/11 20:19
最近C#の人気がないと思う
105:デフォルトの名無しさん
04/04/12 00:18
いつに比べて?
106:デフォルトの名無しさん
04/04/18 17:27
Process p = new Process();
p.StartInfo.FileName = @"C:\program\katjusha.exe";
p.Start();
という感じで起動した子プロセスのウィンドウを
最小化したり、元に戻したり、隠したりするにはどうしたらいいですか?
起動前ならStartInfoで設定できると思うのですが
107:デフォルトの名無しさん
04/04/19 01:33
.NETは安全性重視だから、勝手に別のソフトのウィンドウを操作するのは良くなくて、
そういうことをしたいならやっちゃいけないことをやらなきゃいけなくて、
そうなると.NET以外の方法を使うことになる。
108:デフォルトの名無しさん
04/04/19 23:44
>>107
サンクス。となるとC++とか使うしかないんですか?
最小化しかできないソフトを通知領域に入れる(駐在させる)ためのソフトを
作ろうと思ったのですが…。
109:デフォルトの名無しさん
04/04/20 11:20
C#ではコマンドメッセージの代わりになに使えばいいんすか?
110:デフォルトの名無しさん
04/04/20 12:27
ツールバーのボタンをドラッグするとへこんだままになるのはなぜですか?
111:デフォルトの名無しさん
04/05/09 17:50
HTTPのプロキシサーバーを作成しようとしています。
.NETのクラスライブラリに、プロキシサーバー関係のクラスはあるでしょうか?探したところ、無さそうでした。
ない場合は、System.Net.Sockets名前空間のTcpListenerクラスを使えばいいのでしょうか?
112:デフォルトの名無しさん
04/05/09 18:01
>>111
System.Net.WebProxyクラス。
113:111
04/05/09 18:08
>>112
そのクラスは、こっちからどこかにアクセスするときに利用するプロキシを設定するクラスではないですか?
114:デフォルトの名無しさん
04/05/15 17:12
メモリ配列で構造体を初期化したいんだけど
C/C++で
struct_type s;
char work[256];
memcopy(&s,work,sizeof(struct_type));
みたいなことってC#でどうやってやったらいいんですかね?
115:デフォルトの名無しさん
04/05/18 12:18
その例は構造体の初期化じゃなくて配列の初期化だから
116:デフォルトの名無しさん
04/05/19 15:33
Bitmap bitmap=new Bitmap(ファイル名);
PictureBox p =new PictureBox();
Graphics g = p.CreateGraphics();
g.DrawImage(bitmap,new Rectangle(0,0,100,100));
g.Dispose();
という非常によくみられる方法で画像を表示したいが、一瞬画像が現れただけで
すぐに消えます。だから、普段は、p.Image=bitmap のようにプロパティで表示しています。
どーすればGraphicsで表示できますか?
117:デフォルトの名無しさん
04/05/19 16:36
OnPaintをオーバーライドして引数のGraphics使えば望みの動作にできる
118:デフォルトの名無しさん
04/05/19 19:12
>117
ありがとうございます。
確かに一個のフォーム全体に画像を表示するとき、重なっていてもうまく表示できました。
でも、最終的には画像ビューワーのようにサムネイルをたくさん表示したいのです。
そのときOnPaintを何度も呼び出す方法もよくわかりません。
Graphicsで表示したときにずっと表示する方法はないのでしょうか。
できるからこそ、GraphicsのインスタンスをDrawImageするのが一般的描画方法
とされているはずなので。私の場合そもそも一瞬しか表示されません。
なぜ?
119:デフォルトの名無しさん
04/05/19 20:21
>>118
OnPaintは自分で呼ぶものじゃなくて(フレームワークから)呼ばれるもの。
120:デフォルトの名無しさん
04/05/19 21:09
C#でゲームのようなグラフィックを扱うにはどのようなコンポーネントが
必要ですか?サンプルコードもおねがいします
121:デフォルトの名無しさん
04/05/19 22:10
>>120
↓この辺り?
C#でDirectX9 初心者の館
スレリンク(tech板)
122:デフォルトの名無しさん
04/06/03 17:52
いま、オブジェクト指向の勉強をしようとおもって、C#でライツアウトを作っています。
Buttonクラスを25個集めてboardというクラスを作りました。
そこで思うのですが、「全ての色が消えた」というような「審判」の役割は
誰がするのですか? judgmentクラスを作ったとして、
ボタンが押されたというのはjudgmentクラスにどうやって伝えるんでしょう?
123:デフォルトの名無しさん
04/06/03 20:29
>>122
ひょっとしてVC#使ってない?
124:デフォルトの名無しさん
04/06/03 21:28
>>123
VC# 2003ですよ。
今木が付いたけど、mybutton_click見たいな関数から 毎回 審判を呼び出すものですか?
結構無駄が多いような記もしますが、それがOOと考えて良いの?
125:デフォルトの名無しさん
04/06/03 22:24
ビジュアルなんたらを使ってる人はビジュアルな部分は簡単にこなすけど、
そうも行かない部分はぜんぜん出来ないでいるからね。
おれも似たような経験がある。
ちなみに答えはeventとdelegateなんだけど、
ビジュアルには行かないkらMSDNみてコード書いてね。
126:デフォルトの名無しさん
04/06/04 02:33
ようやくC#なんですけど、
とりあえず.Net Framework 1.1 SDKを拾ってきてインスコしました。
ドキュメントも更新しました。
んだら、PlatformSDKのドキュメントと.NetSDKのドキュメントの
インデックスとコンテンツが表示されなくなってもたんです。
dexploreの仕組みがようわからんので困ったチャンなのです。
VS.Netは金なくてあかんです。
ドキュメントがみずらくてかないません。たちゅけて。
127:デフォルトの名無しさん
04/06/04 02:34
>>126
フィルタ?
128:デフォルトの名無しさん
04/06/06 22:38
listviewとimagelistを使ってサムネイル表示したいのですがうまくいきません
listView1.View=View.LargeIcon;
imageList1.ImageSize = new Size(90, 90);
imageList1.Images.Add(Bitmap.FromFile("ファイルのパス"));
listView1.LargeImageList = imageList1;
foreachでimagelistに画像を格納して、listviewにimagelistをくっつけたんですが
画像が表示されません。何か間違ってますか?
129:デフォルトの名無しさん
04/06/07 21:28
XMLからデータを読み込んで、DataGridに表示させたいのですが、
色々検索してもDataGridの使い方が分かりません。
[C# DataGrid]とかで検索しても、データベースサーバから読む場合ばっかりで・・・
130:デフォルトの名無しさん
04/06/07 22:26
>>129
GotDotNet Japan Student コラム 「XML プログラミングを始めよう」
URLリンク(www.gotdotnet.com)
DataSet の XML 機能
131:デフォルトの名無しさん
04/06/08 00:06
クリックとかのイベント時に音を鳴らしたいのですが、どうすれば?
132:デフォルトの名無しさん
04/06/08 17:26
>>128
偶然通りかかったので答える。
ListView にアイテムを追加して、イメージインデックスを指定しなきゃ。
あとサムネイルなら GetThumbnailImage で適当に作ってやんなきゃダメじゃん。
SDKドキュメントの"ListView.LargeImageList プロパティ "のとこのコード見てみて。
もう来ないので質問されても答えられないけど、がんばってね。
133:デフォルトの名無しさん
04/06/10 06:01
もう来ないとか言うな。無責任な奴は来るな。社会のごみ同然。
134:デフォルトの名無しさん
04/06/10 10:33
>>133
別に最後までずっと相手してあげなきゃならないというわけでもないと思うけど。
だいたい説明すればあとは自分でなんとかするでそ。
135:デフォルトの名無しさん
04/06/10 15:38
インテリセンスのメソッド説明をもっと早くポップアップさせるにはどこいじればよいでしょうか?
136:デフォルトの名無しさん
04/06/10 16:22
スマソ。C#というよりVS.NETの話でした。
137:デフォルトの名無しさん
04/06/16 14:13
CheckedListBoxを既にItems.Addで追加済みなんですが、この内容をコードで順番にCheck,Uncheckするにはどうでればよいでしょうか?
138:デフォルトの名無しさん
04/06/17 19:15
リフレッシュレートの変更はAPI使わないとだめなんでしょうか。
そもそもそんなもんを作るなって言語なんでしょうか。
意外と出来ないことが多くてびっくりしてます。
139:デフォルトの名無しさん
04/06/18 03:03
C#.NETで開発しています。exeからdllを呼んでいてdllもC#で作っています。
dll内にステップインで入ってデバッグしたいのですが、入れるときと入れないとき
があります。何が原因でしょうか?
dllはグローバル アセンブリ キャッシュにインストールして使っています。
140:139
04/06/18 08:08
dllがデバッグだったりリリースビルドだったりしてるんでないの
141:140
04/06/18 08:09
ちがう。>139としたかったの...orz
142:139
04/06/18 21:10
>>140
レスありがとうございます。今日やっと分かったのですが
exeと同じところにdllを置いたらできました。
ビルドのオプションでローカルコピーをtrueにしたりfalseに
したりしていたようです。
143:デフォルトの名無しさん
04/06/25 06:59
教えて下さい。
Windows.FormでGUIアプリを作っているとします。
編集メニューでコピーにCtl+Cを割り当てて、
とあるコントロールにはこのメニュークリックのイベントで
処理したいんだけど、別の(例えば普通のテキストボックス)には
デフォルトのコピー処理をさせたい。
でないとそれぞれのコントロールごとに処理を書くはめになるので。
必要ないコントロールの場合はイベントをスルーすればいいんでしょうが、
どう書けばいいんでしょうか?
144:デフォルトの名無しさん
04/06/25 07:11
上げ忘れてた。。
145:デフォルトの名無しさん
04/07/02 21:47
タイマーの使い方を教えてください。
あるボタンを押した時から、1000msごとにのこり時刻を
[10秒経過 / 残り170秒] というように表示させたいです
146:デフォルトの名無しさん
04/07/02 21:50
あげわすれた
147:デフォルトの名無しさん
04/07/02 21:59
>>145
「シンプルな時計」でやってるよ
URLリンク(homepage3.nifty.com)
148:デフォルトの名無しさん
04/07/02 23:47
>143
きれいにやるならそういうフレームワークを作る
そすると他のでも使える
どこまでやるかは時間次第
149:デフォルトの名無しさん
04/07/03 09:10
とりあえずVisualStudio2005のC#の言語仕様に拡張があるのかどうか知りたいのですが、
VisualStudio2005言語仕様の概要について書かれているホームページがあったら教えてもらえませんか?
150:デフォルトの名無しさん
04/07/03 09:40
>>149
URLリンク(lab.msdn.microsoft.com)
151:http:// v019240.ap.plala.or.jp.2ch.net/
04/07/03 10:46
guest guest
152:デフォルトの名無しさん
04/07/04 15:57
Windowアプリ/Consoleアプリ兼用のアプリが作りたいんですけれど
System.Console.Write 等の入出力を起動したConsoleアプリの入出力にする方法しりませんか?
153:デフォルトの名無しさん
04/07/04 18:41
>>152
どういう意味か良く分からないんだが…
154:デフォルトの名無しさん
04/07/09 17:42
textBoxに半角数字しか入力できないようにする方法はありますか?
ImeModeをOFFにしてみたけど、これじゃ半角英数字になってしまうんです。
155:デフォルトの名無しさん
04/07/10 01:06
調べろ。わからなかったら自分で作れ
156:デフォルトの名無しさん
04/07/10 01:37
よぅ。カスども。
俺C#やったことないんだけど、質問してもいい?
みんなC#ってなにに使ってんの?
「ネイティブコード吐けるJava」みたいな認識で買おうか迷ってんだけど、
そんなノリで買ってもいいものなんですか?
157:デフォルトの名無しさん
04/07/10 01:48
theSpoke効果だな
158:デフォルトの名無しさん
04/07/10 02:52
>>156
10個は買えバカ
159:156
04/07/10 03:29
買うなら1個でいいよ。
やっぱASPで使ってんの?
それともクライアントアプリ?
どうなのよ。
160:デフォルトの名無しさん
04/07/10 09:29
それを聞いて何かが変わるのか?
161:デフォルトの名無しさん
04/07/10 10:30
> 「ネイティブコード吐けるJava」みたいな認識
全然違う
> やっぱASPで使ってんの?
ASP.NET か?
> それともクライアントアプリ?
どっちもだろ。
162:156
04/07/10 12:47
>>160
あー、「結局どーしてーのよ?」みたいななるわな。
具体的にはC/Sタイプのアプリのクライアント側を何で作るか迷ってるのよ。
仕事の合間の趣味の話だから手ごろそうなC#がいいのかなと。
どんなん作りたいかっていうと、MSメッセンジャーみたいのだと思ってくれればいいな。
>>161
全然違うんか。
今まではクライアントアプリっつーとVCかDelphiか、まぁVBとかだったわな。
VCしかできねーけど。
んでひょっこりでてきたC#はどーなのよと思ってな。
Javaでもいんだけど、インストールの説明に「J2SE1.4ランタイムが必要です」って書くのと、
「.NETFrameforkランタイムが必要です」って書くのとじゃちょっとイメージ違うしな。
163:名無しさん@そうだ選挙に行こう
04/07/11 10:34
terrarium1.2になりますた
URLリンク(www.terrariumgame.net)
164:名無しさん@そうだ選挙に行こう
04/07/11 12:50
>>162
次期VS.NET(2005)は単体言語版(C#だけとか)で
Web(ASP.NET)機能を除いたグレードのものが格安で
出るらしいです。
趣味ならこれ使ってC#の非Webアプリを創るのが
非常に快適ではないかと思う。VCできるならなおさら
VB.NETに走る必要もないわけだし。
一つだけ問題があるとすれば、2006~2007年予定の
次世代Windows(Longhorn)までは.NETFrameworkが
デフォのAPIじゃないことだろう。なのでフリーウェアとか
シェアウェアで早期にアプリを公開するつもりなら
これは向いていない。
165:名無しさん@そうだ選挙に行こう
04/07/11 13:28
C#にはウニオン型は無いの?
166:名無しさん@そうだ選挙に行こう
04/07/11 13:45
struct でオフセット弄る
167:名無しさん@そうだ選挙に行こう
04/07/11 15:14
int?ってなんか萌えるな
168:156
04/07/11 20:52
>>164
素敵情報サンクス。
サーバ(C++)とクライアント(Java)で作りつつ、
教えてくれた安価モデルが発売されたらクライアントをC#に移植
みたいな方向で考えてみるよ。
時期OSで.NETFrameworkが標準じゃなくなるってのは寝耳に水だけど、
さすがにバンドルされてないとは考えられないから、
あまりそっちは気にしなくていいかもな。
でもちょっと怖いから調べててみることにする。
マジサンクス!
169:デフォルトの名無しさん
04/07/12 10:00
> 時期OSで.NETFrameworkが標準じゃなくなるってのは寝耳に水だけど
そんなこと誰も書いてないでしょ
170:デフォルトの名無しさん
04/07/12 15:03
>>165
なくなっちゃったよ、せっかくintやらのビット数固定にしたんだから、
その範囲でのみでても付けてもらえると便利っていうか、Cより安全確実でよかったんだけどね。
ちょとさびしい。
頑張ってstruct使ってビットフィールド操作関数作るしかないっすね。
171:デフォルトの名無しさん
04/07/12 15:56
>>169
WinFXのことだろ。
172:156
04/07/12 23:10
defaultとstandardはこの場合同意語にならんか?
それともそーゆーことじゃないのか?
なんにせよいろいろややこしそうだな。
173:デフォルトの名無しさん
04/07/14 16:27
生成済みのオブジェクトの型を調べて、
それの型と同じ型で new をする方法があったら教えてください。
class ClassA() { ... }
class ClassB() { ... }
...
class MyApp
{
void test()
{
object [] list = { new ClassA() , new ClassB() } ;
foreach( object i in list )
{
sub( list[ i ] ) ;
}
}
void sub( object a )
{
「aの型=ClassA/ClassB」 localData = new 「aの型=ClassA/ClassB」() ;
...
}
}
といった事をしたいのですが、System.Reflection を使えばできると聞いたのですが、
分りやすいサンプルがあったらよろしくお願いします。
174:デフォルトの名無しさん
04/07/14 16:40
>>173
object localData = a.GetType().GetConstructor().Invoke( new object [] {} );
175:デフォルトの名無しさん
04/07/14 17:02
>>174
有難うございます、助かりました。
176:デフォルトの名無しさん
04/07/14 23:14
>>175
でも、実装の仕方としては、class A, B を ICloneable にして Clone() メソッド書くのが普通な気が。
177:デフォルトの名無しさん
04/07/14 23:28
>>175
それでほんとに問題ないのかちゃんと確認した方がいいぞ。
178:デフォルトの名無しさん
04/07/15 06:59
>>176
リフレクションの使い方の取っ掛かりが欲しかったので、構わないんです。
コンストラクタ以外にもメソッドを呼び出すときに、もっと複雑なことになるし、この辺りは覚悟していましたし
いずれにしても template が実装されるまでの繋ぎなので。
179:デフォルトの名無しさん
04/07/15 07:06
>178
どうtemplateにからむんでしょう?個人的に興味
180:デフォルトの名無しさん
04/07/15 19:08
ダウンキャストを知らないだけだったりして…
181:デフォルトの名無しさん
04/07/15 20:30
C#の宿題スレはまだ無いみたいなのでここにて。
C#で簡易telnetを作れという問題です。通信の方法がそもそも分かりません
182:デフォルトの名無しさん
04/07/15 21:02
>>181
ソケット作れ
183:デフォルトの名無しさん
04/07/15 21:10
言語依存じゃない部分が分かってないんだろ?
184:デフォルトの名無しさん
04/07/15 21:11
>>181
TCPで接続してTELNETプロトコル話せばいいだけ
URLリンク(www.google.co.jp)
185:デフォルトの名無しさん
04/07/20 13:26
IList をインターフェイスに持つオブジェクトでシリアル化する時、上手く行かなくて地団駄踏んでいます。
System.Runtime.Serialization.Formatters.Soap.SoapFormatter
で、オブジェクトをXmlにシリアライズする時は ISerializable でカスタマイズできるみたいですが、
System.Xml.Serialization.XmlSerializer
で、オブジェクトをXmlにシリアライズする時でカスタマイズできる方法は無いんでしょうか?
知っている人いますか?
IList を入れていると、XmlSerializerが頑張っちゃって自動的にシリアライズしてしまうみたいで・・・
IListが入っていても普通のクラスのように振舞わせる事はできないのでしょうか?
186:デフォルトの名無しさん
04/07/20 15:14
>>185
取りあえず簡単なIListを実装したコレクションを作ったけど普通にシリアライズ・デシリアライズできたぞ。
XmlSerializerは手軽に使えてカスタムしにくいのが特徴なので、まあいろいろ勘案して。
シリアライズ用の別クラスを作るとか。
187:デフォルトの名無しさん
04/07/20 15:23
あ~、>186の一行目はちょっと勘違いというか見当違い。無視して。
188:デフォルトの名無しさん
04/07/20 15:23
>>186
あぅ、書き損じたんですが、添え字にマイナス値を使えるようにするとアウトなんですよ。
ヘルプを見ると、this[int]インデクサプロパティーを見ているようで、Countとセットで
動作しているみたいなんです。
当然動作するわけも無いのですが、ここでIListを見て勝手に動作されるとちょっと具合が悪いので、
この機能に寝ていてもらいたいのですが、手段が見つからない・・・・
189:デフォルトの名無しさん
04/07/22 11:01
単純に足し算するだけのメソッドなんですが、
public int Add()
{
return 10+10;
}
下のように使うと、Add()の戻り値は変数aに入りますよね。
public void Test()
{
int a = Add();
}
以下の場合だと、Addの戻り値はどこへ格納されるんでしょうか?
publi void Test()
{
Add();
}
190:デフォルトの名無しさん
04/07/22 11:03
そのまま破棄されるだけだが。
191:デフォルトの名無しさん
04/07/22 12:31
C系言語の特徴で
int main()
{
10 ;
}
とやっても、文としては正しいと認識されます
と、書こうとして、C#でやったら、意味が無いって怒られました。
さすがにチェックすることにしたみたいですね。
192:デフォルトの名無しさん
04/07/27 20:11
public int hoge; //hogeは1から100をとる
上の場合、publicだから外からどんな値が来るかわかりません。
hogeに値が代入された時に、hogeが正しい値かどうかを調べるにはどうしたらいいんですか
193:デフォルトの名無しさん
04/07/27 20:16
>>192
プロパティにしてsetアクセサの中でチェックする。
つかまさにそのためにプロパティがあるんだが。
194:デフォルトの名無しさん
04/07/27 20:17
プロパティにする
195:デフォルトの名無しさん
04/07/27 20:28
set{ if(value >= 1 && value<=100) hoge = value; else throw new FormatException(); }
みたいにすればいいんですね。なるほど
196:デフォルトの名無しさん
04/07/27 20:31
どうでもいいがその例だとArgumentOutOfRangeExceptionの方が妥当だな。
197:デフォルトの名無しさん
04/07/31 15:21
>>195
public int hoge {
set {
if (1 <= value && value <= 100)
hoge = value;
else
throw new ArgumentOutOfRangeException();
}
}
ちょっと無理っぽいが、通るのか?
198:デフォルトの名無しさん
04/07/31 18:44
GDI+はGDIより遅いって本当ですか?
199:デフォルトの名無しさん
04/07/31 19:54
>>198
自分で作って確かめろ、タコ
200:デフォルトの名無しさん
04/07/31 20:58
>ちょっと無理っぽいが、通るのか?
なんで?
201:198
04/08/01 09:38
>199
GDIはBitbltで
GDI+はGraphics.DrawImageで
確かめて良いですか?
202:デフォルトの名無しさん
04/08/01 11:55
GDI+は長角まで待つべし
203:デフォルトの名無しさん
04/08/01 12:31
リフレクションを使ってラムダ式を動的に作りたいのですが、
参考になるHPや良い方法があったら教えてください。
例えば、正規分布関数のクラスが、以下のように存在していて
public class DistributionFunctions
{
public static dobule Normal( double x , double a , double v )
{
return 1.0 / Math.Sqrt( 2 * Math.PI * v ) * Math.Exp( -(x-a)*(x-a)/( 2 * v ) ) ;
}
...
}
やりたい事は、
delegate double DoubleToDoubleDelegate( double x ) ;
public class DistributionDelegates
{
static DoubleToDoubleDelegate MakeNormal( double a , double v )
{
ここに手際よく大量生産できるコード
}
}
使い方は
void hogehogeMethod()
{
DoubleToDoubleDelegate df = MakeNormal( 0.0 , 1.0 ) ;
y = df( 0.0 ) ;// ここで y = Normal( x , 0.0 , 1.0 ) が呼び出される
}
204:デフォルトの名無しさん
04/08/01 16:03
>>203
よくわからんけど、こんなこと↓がしたいの?
using System;
public class DistributionFunctions {
double a;
double v;
public DistributionFunctions(double x, double y){
a = x;
v = y;
}
public double Normal( double x )
{
return 1.0 / Math.Sqrt( 2 * Math.PI * v ) * Math.Exp( -(x-a)*(x-a)/( 2 * v ) ) ;
}
}
delegate double DoubleToDoubleDelegate( double x );
class Hoge {
static DoubleToDoubleDelegate MakeNormal( double a , double v ) {
//ここに手際よく大量生産できるコード
DistributionFunctions f = new DistributionFunctions(a, v);
return new DoubleToDoubleDelegate(f.Normal);
}
static void Main() {
DoubleToDoubleDelegate df = MakeNormal( 0.0 , 1.0 ) ;
double y = df( 0.0 ) ;// ここで y = Normal( x , 0.0 , 1.0 ) が呼び出される
Console.WriteLine("y = {0}", y);
}
}
205:204
04/08/01 16:27
public class DistributionFunctions {
の{の前に全角スペースが入ってた。。。鬱
206:デフォルトの名無しさん
04/08/01 16:28
C#でGDIをつかうすべはあるのか?APIの直たたきならGDIをつかえる?
207:デフォルトの名無しさん
04/08/01 18:33
>>204
方法は問わないんですが、そうです、そんな感じです。
そこで、関数の引数を確保するクラスを作る必要がありますよね。
関数の数が多くて、これを全部自動生成してしまいたいんです。
208:204
04/08/01 20:00
>>207
> そこで、関数の引数を確保するクラスを作る必要がありますよね。
> 関数の数が多くて、これを全部自動生成してしまいたいんです。
204の例を使っても、好きなだけ関数は作れるけど。。。↓こういうことではない?
static void Main()
{
double d1 = 1.0; // 数字は適当
double d2 = 1.0; // 数字は適当
DoubleToDoubleDelegate[,] df = new DoubleToDoubleDelegate[10,10];
for(int i=0; i < 10; i++, d1 += 0.2){
for(int j=0; j < 10; j++, d2 += 0.2){
df[i,j] = MakeNormal( d1, d2);
}
}
for(int i=0; i < 10; i++){
for(int j=0; j < 10; j++){
double y = df[i,j]( 0.0 ) ;
Console.WriteLine("y = {0}", y);
}
}
}
209:デフォルトの名無しさん
04/08/01 21:52
>>208
ども、お手数掛けてすみません。
対象となる関数は、正規分布関数のようにパラメータ二つだけとは限りませんし、
今後、多変数に対応するにあたって、このまま場当なやり方で行きますとプログラムの保守が危機的になると考え
第一段階として、現在はC#のソースコードを自動生成するプログラムを作って対応しています。
しかし、これも必ずしも良い方法とも言えず、もっと効率的にプログラムできる方法として、
色々探している内にリフレクションという物を使ってみようかと考えていました。
さっそく始めてみたのですが、これがチュートリアルの良いページがなかなか見つからなくて・・・・
ちなみに僕自身、ここに書き込む前に色々考えたのですが、
一般的なC#の構文を使った範囲内ではおそらく良い解決方法はないだろうというのが結論でした。
210:デフォルトの名無しさん
04/08/01 22:20
はじめまして、
C#でデータベースに関することを勉強しています。
ボタンを押すとアクセスに「123」というデータを追加するプログラムを書いています。
壁にぶつかりましたので、ご指導していただけませんか。
odbcDataAdapter1などの設定し、以下のボタンの内容を書きました。
odbcConnection1.Open();
odbcDataAdapter1.InsertCommand.Parameters["@ab"].Value="123";
odbcDataAdapter1.InsertCommand.ExecuteNonQuery();
odbcDataAdapter1.Fill(dataSet11);
odbcConnection1.Close();
すると
'System.IndexOutOfRangeException' のハンドルされていない例外が
system.data.dll で発生しました。
211:デフォルトの名無しさん
04/08/01 22:24
> 対象となる関数は、正規分布関数のようにパラメータ二つだけとは限りませんし、
> 今後、多変数に対応するにあたって、このまま場当なやり方で行きますとプログラムの保守が危機的になると考え
> 第一段階として、現在はC#のソースコードを自動生成するプログラムを作って対応しています。
これが結構まっとうな方法な気もしますが。。。
もしかして、パラメータが変わるだけではなく、どんな関数を作るかは
あらかじめ決まってない、ってことですか?
C++でいえば、boost::lambdaみたいなことをしたいのかなぁ?
> しかし、これも必ずしも良い方法とも言えず、もっと効率的にプログラムできる方法として、
> 色々探している内にリフレクションという物を使ってみようかと考えていました。
リフレクションで出来るかどうかはわかりませんが、一応参考に。
URLリンク(members.jcom.home.ne.jp)
URLリンク(www.microsoft.com)
212:デフォルトの名無しさん
04/08/01 23:01
>>210
ここにある例が参考になりませんかね。
URLリンク(www.microsoft.com)
213:デフォルトの名無しさん
04/08/02 08:36
普通に IDbCommand.ExecuteNonquery() はダメなの?
214:デフォルトの名無しさん
04/08/03 21:03
プログラムの構造をどうしたらいいのかが分かりません。
例えば、オセロプログラムを考えるとします。
オセロのマスの部分にButtonから継承したクラスMasuを使います。
Masuを8*8個集めた配列をBoardとします。
オセロゲーム ━ Board (集約する)━ Masu という風になっていますが、
Masuがクリックされた時に 隣のマスをひっくり返すかどうか走査するとしても、
Masuからは隣のMasuなんて分かりませんよね?
だからBoardに頼んで調べてもらいたいわけですが
どうやったらそうできるのかがわからないです。どうしたらいいのですか?
215:デフォルトの名無しさん
04/08/03 21:07
X 配列Board
O クラスBoard
でした
216:デフォルトの名無しさん
04/08/03 21:43
>>214
Masu に必要な機能は、
・そのマスの内容を保持
・画面に描画する
・クリックされたことを、Board に通知する
の3つでいいんじゃない?
ひっくり返すのは、Board でやればいい。
217:デフォルトの名無しさん
04/08/03 23:21
>>216
その三番目のboardに通知する方法が分からんですよ。
218:デフォルトの名無しさん
04/08/03 23:32
>>217
Clickイベント。
219:デフォルトの名無しさん
04/08/03 23:51
>>217
boardのメソッドの引数に自分を渡せばいい。
220:デフォルトの名無しさん
04/08/04 00:18
>214
もっと
PlayerとかTurnMasterとかJudgeとかつくれや。Masuはいらん
221:デフォルトの名無しさん
04/08/04 00:53
>>220
高度すぎ。質問者をみて答えてやれよ。
222:デフォルトの名無しさん
04/08/04 00:56
>221
書き込んだ後そう思った.すいません。
Masu作るときにボードを引数で渡してそれ使う.それかイベント
223:デフォルトの名無しさん
04/08/04 23:39
こういうのってできるかな?
void Hoge( params object [] arg )
の ref バージョンで
void Hoge( ref object arg0 , ref object arg1 , ref object arg2 ... ) ;
の様な物。
必要個数分オーバーロードするしかないかな?
224:デフォルトの名無しさん
04/08/05 00:33
コントロールのクライアント領域について質問です。
以下のような Panel を継承したクラスをつくりました。
public class PanelEx : System.Windows.Forms.Panel
{
public PanelEx() { }
protected override void OnPaint(PaintEventArgs e)
{
base.OnPaint (e);
Pen p = new Pen(Color.Black, 1);
e.Graphics.DrawRectangle(p, this.ClientRectangle);
p.Dispose();
}
}
この PanelEX クラスのインスタンスを、普通に Form1 の
コンストラクタ内で生成したところ、画面には PanelEx の
左側と上側にしか線がひかれません。
なぜでしょうか?また、どうすればちゃんと矩形が描かれますか?
225:デフォルトの名無しさん
04/08/05 00:55
>>224
はみ出て見えないので矩形を小さく、例えば幅と高さを-1にしたりする。
226:224
04/08/05 01:29
>>225
ええええー。なぜそんな仕様になってるんでしょうか?
227:デフォルトの名無しさん
04/08/05 02:00
>>226
厨避けの為。
228:デフォルトの名無しさん
04/08/05 02:03
>>226
別におかしくないよ。
URLリンク(www.microsoft.com)
229:デフォルトの名無しさん
04/08/05 10:20
>>220
ウヒャー
220さんの高度な設計だと、どんな風になるんですか?
コードをつけながら説明してほしい・・・
230:デフォルトの名無しさん
04/08/05 19:29
>>229
高度
コード
!?
231:デフォルトの名無しさん
04/08/05 22:23
超基本で悪いんだけど、
int i = Console.Read();
Console.WriteLine(i);
これでたとえば「2」を入力すると出力が「50」なんてなるんですが、なぜなのでしょうか?
232:デフォルトの名無しさん
04/08/05 22:31
>>231
コンピュータの中では、「文字」ってのは一定のルールで数字の列に変換されて扱われてます。
このルールのことをエンコーディング、数字(の列)のことを文字コードと呼んだりします。
んで、文字の "2" に対応するコードが 50 (16進数で 0x32) なわけです。
ファイルやネットワーク等での読み書きは、byte の列を使って行われるのが基本で、
.Net Framework で文字列からこのバイト列に(またはその逆に)変換するには、
Encoding クラス(のインスタンス)を用います。
233:デフォルトの名無しさん
04/08/05 22:31
P.S.
"2"という文字列から、数字の 2 に変換するには、Int32.Parse() などを使います。
234:231
04/08/05 22:36
>>232
文字コードを実数値にしないといけないんですね。
丁寧な即レスありがとうございます。
235:デフォルトの名無しさん
04/08/06 00:26
久しぶりにきたが、なんだかいいスレになってるじゃねーか!
236:デフォルトの名無しさん
04/08/06 07:42
コンソールはほとんど勉強してなかったから試してみたんだけど
char c = (char)Console.Read();
とすれば、そのまま表示できまっせ。MSDNだとintを返すことになってるから
まぎわらしいんだけどね。
237:デフォルトの名無しさん
04/08/06 07:43
こんにちは
今画像のサムネイル保存用に複数画像をまとめてひとつの
ファイルにしようとしています。
Aファイルサイズ・Aファイル・Bファイルサイズ・Bファイル・・・
みたいな感じ合成し、インデックスで呼び出そうかと思っています。
で、ふと思ったのですが、そういう複数のファイルをまとめてしまう
クラスって既にあったりするのでしょうか。
よろしければお教えください。よろしくお願いいたします。
238:デフォルトの名無しさん
04/08/06 09:33
Bitmap imageA = new Bitmap("A.bmp");
Bitmap imageB = new Bitmap("B.bmp");
Bitmap imageC = new Bitmap("C.bmp");
Bitmap bmp = new Bitmap(300, 100);
Graphics g = Graphics.FromImage(bmp);
g.DrawImage(imageA, 0, 0);
g.DrawImage(imageB, 100, 0);
g.DrawImage(imageC, 200, 0);
g.Dispose();
bmp.Save("ABC.bmp");
bmp.Dispose();
imageA.Dispose();
imageB.Dispose();
imageC.Dispose();
239:デフォルトの名無しさん
04/08/06 10:42
そうきましたか・・・
Hash的に名前で簡単にストリームを取り出せるような
仕組みが既存クラスにないかなーとか思っていたのでした。
やはり頑張って自分で実装してみます。
ありがとうございました。
240:デフォルトの名無しさん
04/08/06 11:04
参照設定でvjslib.dll(Microsoft Visual J# .NET Class Library)を追加して、java.util.zipで
241:デフォルトの名無しさん
04/08/06 11:42
!!!
なるほど!
早速やってみます。
ありがとうございました!
242:デフォルトの名無しさん
04/08/06 23:07
DirectX 9.0 SDK (Summer 2004)の日本語ドキュメントをインストールしたんだが、
VS.NET2003に反映されないのです。
なんでなんでしょう・・・そういう方他にいますか?
243:最凶VB厨房
04/08/06 23:20
まずは再起動
244:242
04/08/06 23:24
>>243
再起動もしたんですがダメでした。
245:最凶VB厨房
04/08/06 23:28
SDK本体は入れてるのよな?
まっわからんけど
246:デフォルトの名無しさん
04/08/06 23:32
>>242
フィルタか?
247:242
04/08/06 23:52
英語版ヘルプははいってるんですが・・・
フィルタもなしになってます。
本来ならVS.NET起動時に「ヘルプを反映中・・」とかでますよね?
248:242
04/08/07 01:01
連結ヘルプ コレクション マネージャで更新できました。
お騒がせしました。(・∀・)
249:デフォルトの名無しさん
04/08/07 11:42
>>242
DirectX9 SDK Summer2004の日本語ドキュメントってもう出てたの?
250:デフォルトの名無しさん
04/08/07 11:51
>>249
変な書き方しちゃいましたね。
2004入れてから日本語ドキュメント入れたら~でした。スマソ
251:デフォルトの名無しさん
04/08/07 13:25
外部プロセスに確保した領域をPtrToStructureすると例外が発生するのは何故でしょうか。どうかご教授お願いします。
using HANDLE=System.IntPtr;using LPVOID=System.IntPtr;using SIZE_T=System.UInt32;using DWORD=System.UInt32;
class CMyApp:System.Windows.Forms.Form
{
[System.Runtime.InteropServices.DllImportAttribute("kernel32")]
static extern LPVOID VirtualAllocEx(HANDLE hProcess,LPVOID lpAddress,SIZE_T dwSize,DWORD flAllocationType,DWORD flProtect);
DWORD PAGE_READWRITE=0x04;
DWORD MEM_COMMIT= 0x1000;
static void Main()
{
System.Windows.Forms.Application.Run(new CMyApp());
}
CMyApp()
{
this.Click+=new System.EventHandler(OnClick);
}
void OnClick(object sender,System.EventArgs e)
{
LPVOID 自分側の領域=VirtualAllocEx(System.Diagnostics.Process.GetCurrentProcess().Handle,(LPVOID)0,(DWORD)System.Runtime.InteropServices.Marshal.SizeOf(typeof(System.TimeSpan)),MEM_COMMIT,PAGE_READWRITE);
LPVOID 他人側の領域=new LPVOID();
foreach(System.Diagnostics.Process inc in System.Diagnostics.Process.GetProcesses())
if("Explorer"==inc.ProcessName)
他人側の領域=VirtualAllocEx(inc.Handle,(LPVOID)0,(DWORD)System.Runtime.InteropServices.Marshal.SizeOf(typeof(System.TimeSpan)),MEM_COMMIT,PAGE_READWRITE);
System.Runtime.InteropServices.Marshal.PtrToStructure(自分側の領域,typeof(System.TimeSpan));//自分側の領域では例外は発生しない
System.Windows.Forms.MessageBox.Show("次で例外発生");
System.Runtime.InteropServices.Marshal.PtrToStructure(他人側の領域,typeof(System.TimeSpan));
}
}
252:デフォルトの名無しさん
04/08/07 14:35
>>251
非Managedなプロセス空間にManagedな構造体を確保する意味がさっぱりわからないんだが。
URLリンク(dotnetjunkies.com)
とりあえず外部プロセスへのちょっかいの参照。
253:251
04/08/07 15:56
252さんアドバイスありがとうございます。
これをやりたい理由は、興味本位で出来るかどうか試したかっただけです。
とりあえず上のURLをよく読んで見ます。
254:デフォルトの名無しさん
04/08/07 18:02
おまいら、コールバックにデリゲートとインターフェースの
どっち使ってる?
JavaのGUIのリスナーみたいなケースなら、デリゲートの
方が何もしないメソッドまで記述しなくて済むし効率いいかな。
255:デフォルトの名無しさん
04/08/07 18:30
>>254
俺は Java 出身だから、ある程度一まとまりの処理をくっつけるならインターフェイス使っている
デリゲートは纏まり間が無くて、単体なら遣いやすいけど微妙
256:デフォルトの名無しさん
04/08/07 21:19
俺はデリゲート派
257:デフォルトの名無しさん
04/08/07 21:22
anonymous class は使えないが、anonymous delegate は使えるようになるので、
デリゲートにしておくのが無難なのでは。
258:デフォルトの名無しさん
04/08/07 23:45
非常に唐突な質問で申し訳ないが、C#で、というか.NET Frameworkで
各ドライブのボリュームラベルを取得するのってどうやるんだべさ?
なんかAPI叩くしかなかったら非常に鬱なので教えてエロイ人!
259:デフォルトの名無しさん
04/08/07 23:48
>>258
DriveInfo.VolumeLabel かな。
…… .NET Framework 2.0 だけど。
260:デフォルトの名無しさん
04/08/08 00:00
2.0で変更になったクラスの一覧ってないかな?
261:デフォルトの名無しさん
04/08/08 00:06
>>259
やっぱ2.0になっちまうのか・・・。
何故こんな基本的なもんが実装されてないんだと小一(ry
262:デフォルトの名無しさん
04/08/08 00:18
[DllImport("Kernel32.dll", CharSet = CharSet.Auto, SetLastError = true)]
extern static bool GetVolumeInformation(
string RootPathName,
StringBuilder VolumeNameBuffer,
int VolumeNameSize,
out uint VolumeSerialNumber,
out uint MaximumComponentLength,
out uint FileSystemFlags,
StringBuilder FileSystemNameBuffer,
int nFileSystemNameSize);
263:デフォルトの名無しさん
04/08/08 00:20
>>262
トンクスエロイ人!
やっぱこうやるか・・・。なんだかなぁ・・・
264:デフォルトの名無しさん
04/08/08 02:15
Socket.Selectで64を超えるソケットリストを渡すと範囲外エラーになるのですが、
この64という制限は何によってかかっているでしょうか。
100に変更したりとかできないでしょうか。
265:デフォルトの名無しさん
04/08/08 11:05
ボタンの配列(二次元)をクリックされた時に、何番のボタンがクリックされたかを調べるにはどうしたら良いですか?
MyButtons[,] = new Button[3,5];
のように宣言されていて、forの二重ループの中で初期化して
MyButtons[i,j].Click += new EventHandler(MyButtons_Click);
みたいにしてみましたが、MyButtons_Clickの引数には別に「MyButtonsの何番目か」は渡されません。
どうしたらいいんですか
266:デフォルトの名無しさん
04/08/08 11:11
>>265
ボタンの番号が固定のものなら、Button.Tag あたりに番号を押し込めておけば良いのでは?
267:デフォルトの名無しさん
04/08/08 11:22
自分が [2,1]だとしたら、[2,0]と[2,2]のボタンも操作したいんですよ。
なんとかなりませんかねえ
268:デフォルトの名無しさん
04/08/08 11:28
>>267
???
だからTagにint[]{2, 1}とかいれとけばいいんじゃないの?
それがまずいというのならもっとわかりやすく説明してくれないと何がなにやら。
269:デフォルトの名無しさん
04/08/08 11:34
>>268
あ、いま意味が分かりましたサンクス
270:デフォルトの名無しさん
04/08/08 12:19
>>264
普通に1000とかできるじゃん……と思ったら.NET Framework2.0だった。
1.1の制限のようだ。
271:デフォルトの名無しさん
04/08/08 12:27
>>264
OS の制限。WaitForMultipleObjects() できる最大数が64だから。
2.0 で表面的な制限は外れても、64を超えると効率は落ちる気がする。
272:デフォルトの名無しさん
04/08/08 13:46
簡単なベンチの結果、数が25以上になった辺りから緩やかに効率が落ちていった。
でも64周辺の境界は見あたらなかった。
ついでに1.0/1.1/2.0bも比較してみた。(スコアは低い方が優秀)
10でスコア 410 / 370 / 250
25でスコア 320 / 300 / 230
40でスコア 325 / 320 / 250
64でスコア 370 / 370 / 300
有意の差があるね。
1.1までとは違う機構を利用してたりするんじゃないかってくらい2.0は早い。
数が少ない時と多い時のスコアの分布とか。
273:デフォルトの名無しさん
04/08/08 13:50
DataGridで
ABC | DEF | GHI
JKL | MNO | PQR
STU | VWX | YZA
BCD | EFG | HIJ
こういう表の MNOとVWXだけ範囲指定させるみたいなことはできますか?
274:264
04/08/08 14:27
>>270-272
環境も書き忘れたのに本当にありがとうございます。
しかもWaitForMultipleObjectsとの関連、
ベンチまでしていただいてとても参考になりました。
275:デフォルトの名無しさん
04/08/09 00:29
クラスのオブジェクトをコピーしたいんだけどよくわからんです。
AObject obj1 = obj2.Clone();
ってすればいいんだろうけど、
Cloneを書くときにCのmemcpyみたいなことってできないんでしょうか?
それともいちいちフィールド一つずつ代入?
276:デフォルトの名無しさん
04/08/09 00:38
Object.MemberwiseClone()
277:275
04/08/09 15:39
>>276
さんきゅ。
それつかってICloneableを実装するのが流儀なのだな。
278:デフォルトの名無しさん
04/08/13 14:30
Point とかの Dispose できないヤツって、Dispose しなくていいの?
Point aaa = new Point(0,0);
aaa = new Point(1,1);
aaa = new Point(2,2)
とかしても大丈夫?
279:デフォルトの名無しさん
04/08/13 15:17
>>278
int a = 0;
a = 1;
a = 2;
とやることにためらいを覚える?
280:デフォルトの名無しさん
04/08/14 04:46
char *p = malloc(100);
p = malloc(100);
p = malloc(100);
とやることにはためらいを覚える。
281:275
04/08/15 15:23
Pointとかは構造体だからOKってことだよね。
正しいクラスはDisposeを持つべきってことか?
自前のやつも?
282:デフォルトの名無しさん
04/08/15 15:30
>>281
もうちょっとGCを信用しようや。
Disposeが必要なのは基本的にUnmanagedなリソースを扱うクラスのみ。
283:デフォルトの名無しさん
04/08/15 16:19
GCはいいんだけど、自分で自由に解放できないのがいまいち
なんか「ゴミをゴミ箱に捨てると清掃員の仕事が減ってリストラされるから、ゴミは道に捨てるべき」とか言ってるみたい
284:デフォルトの名無しさん
04/08/15 17:21
>>283
でも
道に捨てない -> 清掃員の仕事が減ってリストラ -> ごみを捨て忘れても綺麗にならない
だから道に捨てるんだ。
285:デフォルトの名無しさん
04/08/15 17:44
環境はVS2003です。
ツール(T)→webページのビルドコメント(B)
でドキュメントを作成したところ、「コード要素ページ operator + が不完全です。 」というエラーが取り除けなくて困っています。
だれか理由が分る人いますか?
以下問題のコードです。
/// <summary>テスト</summary>
public class Test
{
/// <summary>足し算</summary>
/// <param name="a">引数その1</param>
/// <param name="b">引数その2</param>
/// <returns>結果</returns>
public static Test operator + ( Test a , Test b ) { return null ; }
}
>>282
Unmanagedというより、IO関連とかメモリーと連携するわけにはいかないオブジェクトが実装する必要があるのでは?
OSのリソースはメモリーのようにいつでも解放できるリソースばかりではありませんから、そのようなリソースを握るオブジェクトには必然的に必要になります。
参照先がなくなった瞬間に即時開放されるタイプのクラスが定義できると、こんな面倒な事をしなくてすむんですが……
と、C++でスマートポインタを使っていると切に欲しくなる事があったりします。
286:デフォルトの名無しさん
04/08/15 20:23
Disposeしたところでメモリに対しては何も出来ないんだから意味なし。
まあ、>>285のように思う事はない事もない。
287:デフォルトの名無しさん
04/08/15 20:29
何らかのクリーンアップコードを実行したい場合なんかは、
Disposeを実装すべきである事が多い。
単に使用終了と言う意味合いだけなら、何もする必要なし。
※Dispose実装したところでする事は何もない。
メモリに関しちゃほっとけばいいってのがGCのある環境での基本。
288:デフォルトの名無しさん
04/08/15 20:30
using ステートメント(と IDisposable インタフェイス)ではどこがダメなの?
289:デフォルトの名無しさん
04/08/15 20:47
忘れる可能性があるから、強制できないから。
まあ、>>285の言うようなスマートポインタみたいな物っていっても、
結局直接参照しか扱えないため、包含するクラスは全部そのタイプにしなけりゃ
意味がなかったりして、結局大げさになりすぎてうまくいかないかな。
GCとは相性が悪いね。
290:デフォルトの名無しさん
04/08/17 19:02
MSNメッセンジャーでの「ほげほげがサインインしました」みたいなポップアップ
ダイアログを作りたいのだが,ここにいる諸氏ならばどのようにして実現するか,
意見をお聞きしたい.
291:デフォルトの名無しさん
04/08/17 19:45
出来合いのコンポーネントを使う。
292:デフォルトの名無しさん
04/08/17 20:47
>>290
他にもあるけど
窓の杜 - 【NEWS】米MS提供の.NET開発向けカスタムコントロール集「Visual Basic Power Pack」
URLリンク(www.forest.impress.co.jp)
293:290
04/08/17 21:46
>>292
激しく感謝.ありがとう.
294:デフォルトの名無しさん
04/08/18 18:19
ファイルの末尾数バイトを削除する簡単な方法ってありますか?
一度全て読み込んだ後削除して上書きしか思いつかなくて。。。
消した後、そのファイルに追加を行うので、
消したい部分のみ上書きする方法でもいいのですが。。。
295:デフォルトの名無しさん
04/08/18 18:37
簡単……ねぇ?
上書きなら難しいことでもないけど。
int b = 5;
FileStream fs = new FileStream("hoge.txt", FileMode.Open, FileAcceess.ReadWrite);
fs.Position = fs.Length - b;
StreamWriter sw = new StreamWriter(fs);
以下略
296:294
04/08/18 19:01
>>295
そっか TextWriter に、予め頭だししておいた Stream をぶち込めばよかったのか
ありがとうございますそれでいけそうです
297:デフォルトの名無しさん
04/08/19 16:55
>>295
そっか Mamko に、だしておいた Seishi をぶち込めばよかったのか
ありがとうございますそれで子供できそうです
298:デフォルトの名無しさん
04/08/19 16:57
つまらん
299:デフォルトの名無しさん
04/08/23 08:20
C#で複数のマウスイベントを検出することは可能でしょうか?
USBマウスとUSBトラックボールをつなげています。こららの移動情報を個別に取得したいと思います。
どうすれば、よいでしょうか?宜しくお願いしまう。
300:デフォルトの名無しさん
04/08/23 08:25
>>299
.NET Frameworkのライブラリじゃ不可能。
Raw Input APIを使う必要がある。
参考:URLリンク(www.hatena.ne.jp)
301:デフォルトの名無しさん
04/08/23 11:16
意外にも、DirectInput じゃ区別できないのよね。
302:デフォルトの名無しさん
04/08/25 06:19
実行ファイルに関連付けられたアイコンをプログラムの中で
使用したいのですが、いい方法はないでしょうか。
なお、今のところ、同一のアイコンファイルを
コンパイルオプションの「/win32icon」、「/resource」の双方を
使って実行ファイルに取り込んでいます。
303:デフォルトの名無しさん
04/08/25 07:12
>>302
/win32icon は API の ExtractIcon/ExtractIconEx で取り出せる。
304:デフォルトの名無しさん
04/08/26 01:30
classとstructを簡単に見分ける方法ってある?
ライブラリのやつとかいちいちマニュアル見るの面倒なんだが。
305:デフォルトの名無しさん
04/08/26 02:15
>>304
VS使ってるならnewのインテリセンスとか。
あんまりclassかstructかを見分ける必要なぞ感じたことがないしな。
306:デフォルトの名無しさん
04/08/26 11:59
ListBoxを縦に二つに分けることはできないんでしょうか。
MultiColumnではなくて、ひとつの項目を二つの列に分けて表示したいんです。
具体的に何をしたいかというと、エラーの内容と発生時刻を表示したいんですが、
発生時刻を左側に、エラーの内容を右側にわけてリストボックスに表示したいんです。
日付は必ず1行ですがエラーの内容は複数行になる可能性があるので、
文字数揃えて表示・・とかよりも縦に二つに割れたら楽だと思うんですけど、どうやってやるのかさっぱりです。
ListBoxで実現するには、あるいはほかのコントロールで実現するにはどうすればいいんでしょうか。
307:デフォルトの名無しさん
04/08/26 12:13
>>306
ちゃんと読んではいないけどGoogleのイメージ検索で引っかかったこれはどうだろう。
URLリンク(www.codeproject.com)
//私ならListViewを使うかな……?
308:デフォルトの名無しさん
04/08/26 12:18
ぶっちゃけ自分で描画したほうが早い
309:デフォルトの名無しさん
04/08/26 14:53
>>308
めんどくさくね?
310:デフォルトの名無しさん
04/08/27 00:14
面倒くさいかどうかというのは実装の早さに関して考慮することじゃないような
311:304
04/08/27 00:43
>>305
そうか。
コピーするときにcloneがいるかとか
遅くなるのかとか、結構気になるんだが
312:デフォルトの名無しさん
04/08/27 03:39
チューンナップなぞ遅さが気になってからすればいいんですよ.
早過ぎる最適化は諸悪の(少なくとも大半の悪の)根源なり -- DEK
313:デフォルトの名無しさん
04/08/27 17:15
AxWebBrowser って ToolTip くっつけられないんだっけ?
314:313
04/08/27 17:16
くだらない質問なのにあげちゃった_| ̄|○
315:デフォルトの名無しさん
04/08/27 20:34
>>305
boxing と unboxing でドツボにはまるぞ。
値型と参照型の違いは押さえておいた方が良い。
316:デフォルトの名無しさん
04/08/27 21:08
だよね。
struct を lock () して排他したつもり、とか。
317:デフォルトの名無しさん
04/08/27 23:58
心配しなくてもできねーよ。
318:デフォルトの名無しさん
04/08/28 22:43
テキストボックスで HOME や END、あまつさえ SHIFT+HOME や SHIFT+END、
CTRL+Z や CTRL+C/V/X を実現するには自分でコードを書かないといけないのでしょうか?
319:デフォルトの名無しさん
04/08/28 22:47
>>318
まず試せ。
320:デフォルトの名無しさん
04/08/28 23:16
Windows.Formにプロパティを加えたんだけど、
デザイナのプロパティウィンドウには表示されませんね。
基底クラス(Windows.Form)に加えたプロパティは
派生クラス(Windows.Form)のデザイナに反映される
みたいだけど、自分自身ならなぜだめなのかなぁ。
321:デフォルトの名無しさん
04/08/28 23:51
>>320
まったく同じレスをどこかで見たなぁ。
322:デフォルトの名無しさん
04/08/29 12:53
>>321
俺も見た記憶があるので探してみた
スレリンク(tech板:294番)
323:306
04/08/29 14:08
>>307,308
遅ればせながら・・・
ListViewでいけました。
ありがとうございました。
詳細表示なんてさっぱり思い浮かびませんでした。
324:318
04/08/29 14:41
>>319
できました…。幻覚でも見ていたのかもしれません。
でも CTRL+A ってできないんですね。
325:デフォルトの名無しさん
04/08/30 17:43
1pxの点 . を任意の座標表示するにはどうしたら良いんでしょう?
1,1 - 1,2まで幅1の線を引くと、どうも2pxくらい線が引かれちゃうし
1,1 - 1,1にすると線ができないんです。
326:デフォルトの名無しさん
04/08/30 18:05
>>325
Bitmap に SetPixel で点を描いて、Graphics.DrawImage で画面に描写。
327:デフォルトの名無しさん
04/08/30 18:13
他には、
FillRectangle(DrawRectangleは不可)で幅・高さ1の四角を描画。
Graphics.GetHwndで取得したデバイスコンテキストにWin32APIのSetPixelで描画。
……元画像のビットマップを取得できるならBitmap.SetPixelが一番手っ取り早い/速いんだけどねー。
328:デフォルトの名無しさん
04/08/30 19:13
それ俺も気になって調べたんだけど
点を描画するGraphicsクラスのメソッドはないみたいなんだよね
結局SetPixelで妥協したけど、
Graphicsオブジェクトを使って描画を行うというルールから離れるからあんまりやりたくない
329:デフォルトの名無しさん
04/08/30 19:18
……327のGetHwndはGetHdcの間違い。
//user32.dllのAPIをまとめたクラスを最近作ってるからhwndまみれでつい。
330:デフォルトの名無しさん
04/08/31 00:59
>>328
Graphics はベクタ形式を含む一般的なグラフィックを扱うクラスだから、“点”という概念がないのよね。
数学的には、点は半径が無限小の円と等価な存在で、半径0の円は画面に表示できないから。
点、というか、ピクセル単位の処理がしたければビットマップを使えと。
Graphics に元画像のビットマップを取得するメソッドがないのは、
将来的に(Avalon で)、OS 自体をベクタ画像ベースで動くものにするつもりでいるからじゃないかな。
331:デフォルトの名無しさん
04/09/05 13:36
>>330
目から鱗
332:デフォルトの名無しさん
04/09/08 21:18
URLリンク(www.atmarkit.co.jp)
の記事をみてSQL Server 2000を使ってみようと思い立ったんですが、
とりあえず URLリンク(www.microsoft.com) をインストールして
みたのですが、ヘルプをみても使い方がサッパリ分りません。
インストールするとタスクトレイにDBのアイコンがでますが、これのサービスをスタートしようとすると
エラー1069(ログオンに失敗したため、サービスを開始できませんでした)となってしまいます。
これってまず何をすればいいんでしょうか?
333:デフォルトの名無しさん
04/09/09 01:51
はじめまして。
URLリンク(mobiquitous.com)
これを使って、IEツールバーのボタンが押されたらあるページがIEに表示されるように
したいのですが、どうすればIEを操作できるのか見当がつきません。
何か関連ありそうなキーワードがあれば教えてください。よろしくお願いします。
334:デフォルトの名無しさん
04/09/09 12:55
>>333
Site もしくは Site の IServiceProvider 経由で IID_IWebBrowser もしくはIID_IWebBrowserAppを
得て Navigate すればいいんじゃない?
335:333
04/09/09 22:37
>>334
ありがとうございます。
調べてみます。
336:デフォルトの名無しさん
04/09/10 16:44:32
アプリケーションをフォームが非表示の状態で開始するにはどうやればいいか教えていただけますか?
Application.Run の前に CreateControl して Hide して、Visible を false にしてもなぜか表示されてしまいます・・・
337:デフォルトの名無しさん
04/09/10 17:01:55
>>336
URLリンク(www.microsoft.com)
個人的にはApplication.Run()でやることが多いけど。
338:デフォルトの名無しさん
04/09/10 21:30:59
>>337
これだと確かに表示はされないけれども、Load イベントも上がらないし・・・
普通の Win32 アプリでいう WS_VISIBLE でない状態でウィンドウそのものは作りたい、
というような状況なのです。CreateSuruct でも override してみるかなぁ。
339:デフォルトの名無しさん
04/09/10 21:56:22
CreateParams を override して WS_VISIBLE を落としてもダメ、
Form の Load イベントで this.Hide() しても this.Visible = false; してもダメ、
Application.Run を Form.ShowDialog にしてもダメ。
(関係ないけどRun の代わりに ShowDialog 使うと Dialog 終了後のメッセージが処理されないので
表示した NotifyIcon を Form が Close される前に消さないとゴミが残る・・・)
VisibleChanged イベントのハンドラで Hide すると何とか消えるけど、一瞬表示されるのでちらつきます。
タスクトレイにいきなり常駐するユーティリティとかどうやってみんな作ってるんだろう。
340:デフォルトの名無しさん
04/09/10 22:03:18
>>339
> タスクトレイにいきなり常駐するユーティリティとかどうやってみんな作ってるんだろう。
NotifyIconとかを管理するクラスを作り、その中のContextMenuでフォームのShow/Hideを扱う。
メッセージループはApplication.Run()でメインウィンドウを持たせずに開始する。
341:デフォルトの名無しさん
04/09/10 22:46:49
>>340
できました!ありがとうございます。
342:デフォルトの名無しさん
04/09/17 11:41:58
パフォーマンスを計るのにスレッド単位でCPUのTickTimeを取得したいのですが、
(Sleep中または別スレッドが走っている時はカウントしない)
そういうクラス知っている人いますか?
343:デフォルトの名無しさん
04/09/17 11:48:25
Type.InvokeMemberからBindingFlags.GetPropertyでプロパティを取得する時、
返り値がobject配列なのですが、どうすれば各要素にアクセス可能になるでしょうか。
単に返り値をobjectとして取得することはできたのですが、その後が分かりません・・
344:デフォルトの名無しさん
04/09/17 11:50:48
>>343
言ってる意味がよくわからない。
もうちょっと具体的に。
345:デフォルトの名無しさん
04/09/17 12:07:17
ごめんなさい、分かっちゃった。
こうしたかっただけです。
obj = type.InvokeMember("array", BindingFlags.GetProperty, null, doc, new object[] {2});
* これで二番目の要素をゲット
お騒がせしました。
346:デフォルトの名無しさん
04/09/17 14:41:43
bmp=new Bitmap(filename);
これをdisposeせずに、また
bmp=new Bitmap(filename2);
を呼び出したらメモリー減って行きますか?
それとも、同じ変数のメモリー番地に上書きされるだけですか?
347:デフォルトの名無しさん
04/09/17 14:45:31
>>346
もちろん新しいメモリが確保される。
インスタンスのサイズが違うかも知れないのに上書きしちゃまずいだろ。
348:デフォルトの名無しさん
04/09/17 14:47:10
って、参照先じゃなくて変数そのもののアドレスか?
それなら上書きされるが。
つかそんなことに頭を悩ます意味は全くないが。
あとそれとDisposeとは何の関係もない。
349:デフォルトの名無しさん
04/09/17 14:58:36
bmpの中にある画像データを替えたかっただけなんです。
>って、参照先じゃなくて変数そのもののアドレスか?
>それなら上書きされるが。
という事は、前の画像データが消えて新しい画像データに上書きされるって事ですよね?
350:デフォルトの名無しさん
04/09/17 15:08:05
> という事は、前の画像データが消えて新しい画像データに上書きされるって事ですよね?
画像データとか言わずBitmapインスタンスと言おうな、こういう場合。
まあ、そんな感じ。
細かく言うなら、「変数が示す参照先が書き変わる」。
変数が、古いインスタンスを丸めてポイして、新しいインスタンスにべったりくっつくわけだ。
//丸めてポイされたインスタンスはいずれGCが片づける。
351:346
04/09/17 15:10:47
なるほど、色々ありが㌧。
352:デフォルトの名無しさん
04/09/17 15:16:45
>>346微妙に誤解してないか?
>>350の書いてる内容は間違っちゃいないんだけど、
読み方によっては>>346が誤解してしまうように思う。
依然
>という事は、前の画像データが消えて新しい画像データに上書きされるって事ですよね?
のように言ってるからね…
まあ画像データが上書きされるってのを、プログラム上からはというか、
プログラムでの操作上はそのように見えるってだけの意味で言ってるのなら大丈夫かもしれんが…
353:デフォルトの名無しさん
04/09/17 21:16:06
>>346
上書きはされないよ。例えば、
Bitmap bmp = Bitmap(file1);
aForm.BackgroundImage = bmp;
なんてしておいて、後で
bmp = Bitmap(file2)
なんてやってもフォームの背景は変わらない。
前の画像は前の画像、新しい画像は新しい画像、お互いなんの関係もない。
354:デフォルトの名無しさん
04/09/17 21:48:51
プロパティに設定するときはインスタンスのコピーをとってるんだろうか
355:デフォルトの名無しさん
04/09/17 22:26:56
>>354
とってないよ。だから Dispose なんかしちゃだめだよ。
356:デフォルトの名無しさん
04/09/17 23:38:22
Disposeは微妙な存在。
357:デフォルトの名無しさん
04/09/18 10:40:22
>>342 の続きなんですが、スレッドがSleep等で停止したり、再開したりする時に
コールバックもしくはなんだかの形でフックを掛けることはできないか知っている人いませんか?
358:在日参政権反対
04/09/18 12:36:45
>357
単純にメソッド余分じゃ駄目なの?他のスレッドに何かさせたいんでしょうか?ならイベントとか?
359:デフォルトの名無しさん
04/09/18 13:51:36
>>358
システム側でスレッドが切り替えられたときにも引っ掛けないとパフォーマンスが計れないです。
360:在日参政権反対
04/09/18 14:13:26
パフォーマンスカウンターオブジェクトのスレッド実行時間では?
361:デフォルトの名無しさん
04/09/23 02:34:14
はじめまして。
プログラミング自体初心者なのですが、
VisualStudioC#で作ったプログラムの
テキストボックスの中でバックスペースが効きません。
これってなんとかならないものでしょうか。
362:デフォルトの名無しさん
04/09/23 02:40:37
Ctrl+H
363:デフォルトの名無しさん
04/09/23 15:42:18
前の文字を消すための代替方法を探しているのではなくて、
テキストボックスでバックスペースキーを認識する方法を探しています。
364:デフォルトの名無しさん
04/09/23 15:48:46
と言われても私の周辺では普通に有効だし。
コード上で変なことをしてるかキーボード補助系のなんかのアプリを使ってるか、果てしなく環境依存な話になるし。
そもそもTextBoxはWindowsの標準エディットコントロールをラップしてるだけだしなぁ。
365:教えてください
04/09/24 08:46:54
C#初学者です。
ナンバーズ予想ソフトをVC#で作りたいと思っています。
Winアプリで、ナンバーズとか株の最新データを取得してくるソフトが
ありますが、あれってどのような仕組みでやっているのですか?
何か参考になるサイトや書籍などあれば教えてください。
366:デフォルトの名無しさん
04/09/24 11:16:52
>>365
1.サイトからHTML(など?)をダウンロードする
2.ダウンロードしたHTML(など?)からナンバーズのデータを取得
3.取得したデータから、予想する
大雑把にこんな感じでやればいいのでは。
367:在日外国人参政権反対
04/09/24 11:32:46
ナンバー図は知らんが、株はサイトと直接ソケット接続してデータやり取りするものもあった希ガス.
368:365
04/09/24 12:59:54
>366
ということは、まずHTMLのソースを元に配列化して、データを取得するということでしょうか?
取得の仕方だけが分からないんで・・・
369:デフォルトの名無しさん
04/09/24 13:03:00
まずデータがどこにどういう状態/形式でおかれているか、によって話は全く違った方向に転がっていくだろう。
370:366
04/09/24 15:17:28
>>368
それは各自の工夫です。そんな甘いものではないはず。
まあヒントを。HTMLをダウンロードすることを前提に話すけど。
ダウンロードしたHTMLのうち、必要なデータがある場所というのはサイトの構成が変わらなければいつも同じなはず。
そういうのを、文字列の検索とか正規表現とかで探し出す。
運よく取得するサイトがXHTMLになっている場合は、System.Xml名前空間を駆使すれば楽になるかもしれない。
371:在日外国人参政権反対
04/09/24 15:55:14
>365
何がわからないのか明確にしる
ソースの場所
ソースの形式
そのソースの取得方
プログラムの書き方
全部
372:デフォルトの名無しさん
04/09/24 19:47:18
HttpWebRequest
373:デフォルトの名無しさん
04/09/25 14:06:36
ネットワークゲームを作る際に、通信に最初(ログイン)から最後(ログオフ)まで
BinaryFormatter もしくは SopaFormatter にてシリアル化したオブジェクトのみを使用する事に問題点はありますか?
374:デフォルトの名無しさん
04/09/29 00:02:22
>>373
なんか問題があったときにスニファで見てもよくわからないとかが
ありそうなので、おいらは使わない
Soapはしらないけど、効率わるいんじゃないの?
375:デフォルトの名無しさん
04/10/02 10:37:47
値型のnewってヒープを食わないんですよね?デフォルトのコンストラクタが呼ばれるだけで。
同じ変数に2回以上newした場合はどうなんでしょう。
ループの中で構造体とかを初期化したいがためにnewでクリアしようとするのは
問題ないんでしょうか?
すごく抵抗を覚えるんですが・・・
・パターン1
A a = new A();
for (int i = 0; i < 10000; i++)
{
a = new A();
// 以降Aを設定する処理
}
・パターン2
for (int i = 0; i < 10000; i++)
{
A a = new A();
// 以降Aを設定する処理
}
・パターン3
A a = new A();
for (int i = 0; i < 10000; i++)
{
// 自力で初期化
a.xx = "";
// 以降Aを設定する処理
}
パフォーマンス的には3が一番いいような気がしていますが。
構造体を再度初期化する方法ってnew以外にあるんでしょうか?
376:デフォルトの名無しさん
04/10/02 11:03:46
>>375
ボクシングされなければ、既に在る領域をコンストラクタで初期化しているだけのような気もする
……中を見てみないとどうにもいえないけど
不安ならば、パターン3の拡張として、
A に SetData みたいなメソッドを作り、そこで一気に値を変更してみればいかがか?
377:デフォルトの名無しさん
04/10/02 11:21:45
>>375
> パフォーマンス的には3が一番いいような気がしていますが。
少なくとも速度的には一番悪い。
1と2では差は無し。意味的に大した違いも無し(aの寿命だけ。実質的な動作は同じ)
> 構造体を再度初期化する方法ってnew以外にあるんでしょうか?
static readonlyなEmptyフィールドを用意するとか。
意味的にはnew()するのと変わりませんよ?
> ループの中で構造体とかを初期化したいがためにnewでクリアしようとするのは
> 問題ないんでしょうか?
> すごく抵抗を覚えるんですが・・・
そんなことよりも、初期値を指定しないで初期化する構造体の方に抵抗を覚えるな。
378:375
04/10/02 12:40:42
>>376-377
回答どーもです。
3が一番遅いというのは、newより個々のメンバをクリアする方が遅いんですか?
値型のnewの場合、内部的にmemsetみたいにクリア処理が1発走るだけなんですかね。