トップページ⇒tech
1001コメント344KB

ふらっとC♯(Part5)

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさんNGNG
このスレッドは

「どんなにくだらないC#プログラミングに関する発言でも誰かが優しくレスをしてくれるスレッド」です。

ほかのスレッドでは恐ろしくて書き込めないような低レベル、もしくは質問者自身なんだか意味がよく分からない質問など、
勇気をもって書き込んでください。

少しずつC#プログラマを名乗るものが現れました。みなさん一緒に勉強しましょう。

前スレッドはこちら
http://pc2.2ch.net/test/read.cgi/tech/1059028988/l50 (Part4)
http://pc2.2ch.net/test/read.cgi/tech/1047210828/l50 (Part3)
http://pc2.2ch.net/test/read.cgi/tech/1035895873/l50 (Part2)
http://pc2.2ch.net/test/read.cgi/tech/1023766485/l50
0083デフォルトの名無しさんNGNG
超ド初心者質問でスマソです
exeファイルへの出力ってどうやったらいいのでしょうか?
0084デフォルトの名無しさんNGNG
>>83
わかりません
0085デフォルトの名無しさんNGNG
>>83
超ド初心者質問でスマソです
あなたの脳内を読み取るにはどうやったらいいのでしょうか?
0086デフォルトの名無しさんNGNG
>>83
csc /out:hoge.exe hoge.cs
ネタにマジ(ry
0087デフォルトの名無しさんNGNG
>>82
英語ページですが。
http://www.c-sharpcorner.com/FAQ/MySqlConnection.asp
要はODBC .Net Data Provider入れてMyODBC入れて云々、らしいです。
サンプルコードはASP.NETですがWinFormでも似たようなものかと思われます。
0088デフォルトの名無しさんNGNG
宜しくお願いします。
Timerのインスタンスと同期させる簡単なゲームを作っているのですが
このインスタンスを1000分の1秒単位で一時停止させるにはどうすれば良いのでしょうか?
stopさせると0.000秒に初期化されてしまいます。
pauseというメソッドは無いみたいですが不可能なのでしょうか。
0089デフォルトの名無しさん NGNG
ニュー速で質問があったんでけど答えてあげてください。

C#(WINアプリ)を勉強していますがクラスについて教えてください。
public class A
{
メソッド1
}

public class B
{
メソッド2
}
この場合、class Aは、class Bのものに対してアクセスできますよね?
これは、class Aのなかでclass Bのメソッド2が使えるということで
しょうか?
もし、使えるなら、class Aの中でオブジェクト = new class Bとして
インスタンスか化してから使うのでしょうか?


0090デフォルトの名無しさんNGNG
>>89
class B のメソッド2が Public であれば、アクセスできます。
static メソッドでなければ、インスタンス化してからでないとアクセスできません。
0091デフォルトの名無しさんNGNG
とてもどうでも良い質問なんですが
クラスと関数の使い分けが分りません

こうゆう場合はクラス(関数)にする

っていうお約束なんかあるんですか?

0092デフォルトの名無しさんNGNG
クラスライブラリプロジェクトでせっせと /// <summary> などのコメントを記述しています。
同じプロジェクト内では記述したコメントがヒントに表示されるのですが、クラスライブラリを
参照設定した他のプロジェクトではヒントにコメントが表示されません(引数の型とかはちゃんと
出ます)。コメントまではヒントに出てこない仕様なんでしょうか。その割には System.何とかの
クラスにはちゃんとコメントが出てきますよね。何が違うのか。。。
0093デフォルトの名無しさんNGNG
>91
それは経験で身に付けるしかない。
一応コツとしては
・名前が付けられるものはクラスにする
・複数あるものはクラスにする
・動作の対象となるものは、その対象自身に仕事をさせる
とかかな?
0094デフォルトの名無しさんNGNG
>>92
ソースをコンパイルするときにXMLドキュメントファイルを出力しといて、
(コマンドラインコンパイルなら/docオプション)
hoge.dllに対してhoge.xmlって名前でhoge.dllと同じディレクトリに置いてhoge.dllを参照設定。
009592NGNG
>>94
うまくいきました。ありがとう。
0096デフォルトの名無しさんNGNG
助けてほしい。何度もぐぐったりしているけど、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>
0097デフォルトの名無しさんNGNG
PictureBoxの絵の余白部分にマスクをかけて
透過させることってできますか?
0098デフォルトの名無しさんNGNG
>>97
MakeTransparent
0099デフォルトの名無しさんNGNG
>>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;
}
0100デフォルトの名無しさんNGNG
>>99
サンクスコ!foreachでperson要素の数だけループさせて、
personという変数に代入して、personのもつ
name要素の中身、birth要素のyear属性の値・・・を表示させているんですね。
Veryわかりやすい。ありがとうございました
0101デフォルトの名無しさんNGNG
早速今日、>>99氏のコードを試してみた。
ものすごく望みどおりに改造することが簡単だった。ありがとう。
なんかJavaScriptを使ったDOMと同じ感じでできたので簡単だった。
@ITとかで勉強してたけど、こんなに簡単にできるなんて、感動だった。
本当にTHANX!
0102デフォルトの名無しさんNGNG
this.Hide();を2回実行しないと消えてくれないんですけど何で?
0103デフォルトの名無しさんNGNG
今月、電話代ちょっと多すぎるんだけどなんで?
0104デフォルトの名無しさんNGNG
最近C#の人気がないと思う
0105デフォルトの名無しさんNGNG
いつに比べて?
0106デフォルトの名無しさんNGNG
Process p = new Process();
p.StartInfo.FileName = @"C:\program\katjusha.exe";
p.Start();

という感じで起動した子プロセスのウィンドウを
最小化したり、元に戻したり、隠したりするにはどうしたらいいですか?

起動前ならStartInfoで設定できると思うのですが
0107デフォルトの名無しさんNGNG
.NETは安全性重視だから、勝手に別のソフトのウィンドウを操作するのは良くなくて、
そういうことをしたいならやっちゃいけないことをやらなきゃいけなくて、
そうなると.NET以外の方法を使うことになる。
0108デフォルトの名無しさんNGNG
>>107
サンクス。となるとC++とか使うしかないんですか?

最小化しかできないソフトを通知領域に入れる(駐在させる)ためのソフトを
作ろうと思ったのですが…。
0109デフォルトの名無しさんNGNG
C#ではコマンドメッセージの代わりになに使えばいいんすか?
0110デフォルトの名無しさんNGNG
ツールバーのボタンをドラッグするとへこんだままになるのはなぜですか?
0111デフォルトの名無しさんNGNG
HTTPのプロキシサーバーを作成しようとしています。

.NETのクラスライブラリに、プロキシサーバー関係のクラスはあるでしょうか?探したところ、無さそうでした。
ない場合は、System.Net.Sockets名前空間のTcpListenerクラスを使えばいいのでしょうか?
0112デフォルトの名無しさんNGNG
>>111
System.Net.WebProxyクラス。
0113111NGNG
>>112
そのクラスは、こっちからどこかにアクセスするときに利用するプロキシを設定するクラスではないですか?
0114デフォルトの名無しさんNGNG
メモリ配列で構造体を初期化したいんだけど
C/C++で
struct_type s;
char work[256];
memcopy(&s,work,sizeof(struct_type));

みたいなことってC#でどうやってやったらいいんですかね?
0115デフォルトの名無しさんNGNG
その例は構造体の初期化じゃなくて配列の初期化だから
0116デフォルトの名無しさんNGNG
 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で表示できますか?
0117デフォルトの名無しさんNGNG
OnPaintをオーバーライドして引数のGraphics使えば望みの動作にできる
0118デフォルトの名無しさんNGNG
>117
ありがとうございます。
確かに一個のフォーム全体に画像を表示するとき、重なっていてもうまく表示できました。
でも、最終的には画像ビューワーのようにサムネイルをたくさん表示したいのです。
そのときOnPaintを何度も呼び出す方法もよくわかりません。
Graphicsで表示したときにずっと表示する方法はないのでしょうか。
できるからこそ、GraphicsのインスタンスをDrawImageするのが一般的描画方法
とされているはずなので。私の場合そもそも一瞬しか表示されません。
なぜ?



0119デフォルトの名無しさんNGNG
>>118
OnPaintは自分で呼ぶものじゃなくて(フレームワークから)呼ばれるもの。
0120デフォルトの名無しさんNGNG
C#でゲームのようなグラフィックを扱うにはどのようなコンポーネントが
必要ですか?サンプルコードもおねがいします
0121デフォルトの名無しさんNGNG
>>120
↓この辺り?
C#でDirectX9 初心者の館
http://pc5.2ch.net/test/read.cgi/tech/1069666471/
0122デフォルトの名無しさんNGNG
いま、オブジェクト指向の勉強をしようとおもって、C#でライツアウトを作っています。
Buttonクラスを25個集めてboardというクラスを作りました。
そこで思うのですが、「全ての色が消えた」というような「審判」の役割は
誰がするのですか? judgmentクラスを作ったとして、
ボタンが押されたというのはjudgmentクラスにどうやって伝えるんでしょう?
0123デフォルトの名無しさんNGNG
>>122
ひょっとしてVC#使ってない?
0124デフォルトの名無しさんNGNG
>>123
VC# 2003ですよ。

今木が付いたけど、mybutton_click見たいな関数から 毎回 審判を呼び出すものですか?
結構無駄が多いような記もしますが、それがOOと考えて良いの?
0125デフォルトの名無しさんNGNG
ビジュアルなんたらを使ってる人はビジュアルな部分は簡単にこなすけど、
そうも行かない部分はぜんぜん出来ないでいるからね。
おれも似たような経験がある。
ちなみに答えはeventとdelegateなんだけど、
ビジュアルには行かないkらMSDNみてコード書いてね。
0126デフォルトの名無しさんNGNG
ようやくC#なんですけど、
とりあえず.Net Framework 1.1 SDKを拾ってきてインスコしました。
ドキュメントも更新しました。
んだら、PlatformSDKのドキュメントと.NetSDKのドキュメントの
インデックスとコンテンツが表示されなくなってもたんです。
dexploreの仕組みがようわからんので困ったチャンなのです。
VS.Netは金なくてあかんです。
ドキュメントがみずらくてかないません。たちゅけて。
0127デフォルトの名無しさんNGNG
>>126
フィルタ?
0128デフォルトの名無しさんNGNG
listviewとimagelistを使ってサムネイル表示したいのですがうまくいきません
listView1.View=View.LargeIcon;
imageList1.ImageSize = new Size(90, 90);
imageList1.Images.Add(Bitmap.FromFile("ファイルのパス"));
listView1.LargeImageList = imageList1;

foreachでimagelistに画像を格納して、listviewにimagelistをくっつけたんですが
画像が表示されません。何か間違ってますか?
0129デフォルトの名無しさんNGNG
XMLからデータを読み込んで、DataGridに表示させたいのですが、
色々検索してもDataGridの使い方が分かりません。
[C# DataGrid]とかで検索しても、データベースサーバから読む場合ばっかりで・・・
0130デフォルトの名無しさんNGNG
>>129
GotDotNet Japan Student コラム 「XML プログラミングを始めよう」
http://www.gotdotnet.com/japan/student/column/xml/xmlprogramming7.aspx

DataSet の XML 機能
0131デフォルトの名無しさんNGNG
クリックとかのイベント時に音を鳴らしたいのですが、どうすれば?
0132デフォルトの名無しさんNGNG
>>128
偶然通りかかったので答える。
ListView にアイテムを追加して、イメージインデックスを指定しなきゃ。
あとサムネイルなら GetThumbnailImage で適当に作ってやんなきゃダメじゃん。
SDKドキュメントの"ListView.LargeImageList プロパティ "のとこのコード見てみて。
もう来ないので質問されても答えられないけど、がんばってね。
0133デフォルトの名無しさんNGNG
もう来ないとか言うな。無責任な奴は来るな。社会のごみ同然。
0134デフォルトの名無しさんNGNG
>>133
別に最後までずっと相手してあげなきゃならないというわけでもないと思うけど。
だいたい説明すればあとは自分でなんとかするでそ。
0135デフォルトの名無しさんNGNG
インテリセンスのメソッド説明をもっと早くポップアップさせるにはどこいじればよいでしょうか?
0136デフォルトの名無しさんNGNG
スマソ。C#というよりVS.NETの話でした。
0137デフォルトの名無しさんNGNG
CheckedListBoxを既にItems.Addで追加済みなんですが、この内容をコードで順番にCheck,Uncheckするにはどうでればよいでしょうか?
0138デフォルトの名無しさんNGNG
リフレッシュレートの変更はAPI使わないとだめなんでしょうか。
そもそもそんなもんを作るなって言語なんでしょうか。
意外と出来ないことが多くてびっくりしてます。
0139デフォルトの名無しさんNGNG
C#.NETで開発しています。exeからdllを呼んでいてdllもC#で作っています。
dll内にステップインで入ってデバッグしたいのですが、入れるときと入れないとき
があります。何が原因でしょうか?
dllはグローバル アセンブリ キャッシュにインストールして使っています。
0140139NGNG
dllがデバッグだったりリリースビルドだったりしてるんでないの
0141140NGNG
ちがう。>139としたかったの...orz
0142139NGNG
>>140
レスありがとうございます。今日やっと分かったのですが
exeと同じところにdllを置いたらできました。
ビルドのオプションでローカルコピーをtrueにしたりfalseに
したりしていたようです。
0143デフォルトの名無しさんNGNG
教えて下さい。
Windows.FormでGUIアプリを作っているとします。
編集メニューでコピーにCtl+Cを割り当てて、
とあるコントロールにはこのメニュークリックのイベントで
処理したいんだけど、別の(例えば普通のテキストボックス)には
デフォルトのコピー処理をさせたい。
でないとそれぞれのコントロールごとに処理を書くはめになるので。
必要ないコントロールの場合はイベントをスルーすればいいんでしょうが、
どう書けばいいんでしょうか?
0144デフォルトの名無しさんNGNG
上げ忘れてた。。
0145デフォルトの名無しさんNGNG
タイマーの使い方を教えてください。

あるボタンを押した時から、1000msごとにのこり時刻を
[10秒経過 / 残り170秒] というように表示させたいです
0146デフォルトの名無しさんNGNG
あげわすれた
0147デフォルトの名無しさんNGNG
>>145
「シンプルな時計」でやってるよ
http://homepage3.nifty.com/midori_no_bike/CS/index.html
0148デフォルトの名無しさんNGNG
>143
きれいにやるならそういうフレームワークを作る
そすると他のでも使える

どこまでやるかは時間次第
0149デフォルトの名無しさんNGNG
とりあえずVisualStudio2005のC#の言語仕様に拡張があるのかどうか知りたいのですが、
VisualStudio2005言語仕様の概要について書かれているホームページがあったら教えてもらえませんか?
0150デフォルトの名無しさんNGNG
>>149
http://lab.msdn.microsoft.com/express/
0151http:// v019240.ap.plala.or.jp.2ch.net/NGNG
guest guest 
0152デフォルトの名無しさんNGNG
Windowアプリ/Consoleアプリ兼用のアプリが作りたいんですけれど
System.Console.Write 等の入出力を起動したConsoleアプリの入出力にする方法しりませんか?
0153デフォルトの名無しさんNGNG
>>152
どういう意味か良く分からないんだが…
0154デフォルトの名無しさんNGNG
textBoxに半角数字しか入力できないようにする方法はありますか?
ImeModeをOFFにしてみたけど、これじゃ半角英数字になってしまうんです。
0155デフォルトの名無しさんNGNG
調べろ。わからなかったら自分で作れ
0156デフォルトの名無しさんNGNG
よぅ。カスども。
俺C#やったことないんだけど、質問してもいい?
みんなC#ってなにに使ってんの?
「ネイティブコード吐けるJava」みたいな認識で買おうか迷ってんだけど、
そんなノリで買ってもいいものなんですか?
0157デフォルトの名無しさんNGNG
theSpoke効果だな
0158デフォルトの名無しさんNGNG
>>156
10個は買えバカ
0159156NGNG
買うなら1個でいいよ。
やっぱASPで使ってんの?
それともクライアントアプリ?
どうなのよ。
0160デフォルトの名無しさんNGNG
それを聞いて何かが変わるのか?
0161デフォルトの名無しさんNGNG
> 「ネイティブコード吐けるJava」みたいな認識

全然違う

> やっぱASPで使ってんの?

ASP.NET か?

> それともクライアントアプリ?

どっちもだろ。
0162156NGNG
>>160
あー、「結局どーしてーのよ?」みたいななるわな。
具体的にはC/Sタイプのアプリのクライアント側を何で作るか迷ってるのよ。
仕事の合間の趣味の話だから手ごろそうなC#がいいのかなと。
どんなん作りたいかっていうと、MSメッセンジャーみたいのだと思ってくれればいいな。

>>161
全然違うんか。
今まではクライアントアプリっつーとVCかDelphiか、まぁVBとかだったわな。
VCしかできねーけど。
んでひょっこりでてきたC#はどーなのよと思ってな。
Javaでもいんだけど、インストールの説明に「J2SE1.4ランタイムが必要です」って書くのと、
「.NETFrameforkランタイムが必要です」って書くのとじゃちょっとイメージ違うしな。
0163名無しさん@そうだ選挙に行こうNGNG
terrarium1.2になりますた

http://www.terrariumgame.net/terrarium/
0164名無しさん@そうだ選挙に行こうNGNG
>>162
次期VS.NET(2005)は単体言語版(C#だけとか)で
Web(ASP.NET)機能を除いたグレードのものが格安で
出るらしいです。

趣味ならこれ使ってC#の非Webアプリを創るのが
非常に快適ではないかと思う。VCできるならなおさら
VB.NETに走る必要もないわけだし。

一つだけ問題があるとすれば、2006〜2007年予定の
次世代Windows(Longhorn)までは.NETFrameworkが
デフォのAPIじゃないことだろう。なのでフリーウェアとか
シェアウェアで早期にアプリを公開するつもりなら
これは向いていない。
0165名無しさん@そうだ選挙に行こうNGNG
C#にはウニオン型は無いの?
0166名無しさん@そうだ選挙に行こうNGNG
struct でオフセット弄る
0167名無しさん@そうだ選挙に行こうNGNG
int?ってなんか萌えるな
0168156NGNG
>>164
素敵情報サンクス。
サーバ(C++)とクライアント(Java)で作りつつ、
教えてくれた安価モデルが発売されたらクライアントをC#に移植
みたいな方向で考えてみるよ。

時期OSで.NETFrameworkが標準じゃなくなるってのは寝耳に水だけど、
さすがにバンドルされてないとは考えられないから、
あまりそっちは気にしなくていいかもな。
でもちょっと怖いから調べててみることにする。

マジサンクス!
0169デフォルトの名無しさんNGNG
> 時期OSで.NETFrameworkが標準じゃなくなるってのは寝耳に水だけど

そんなこと誰も書いてないでしょ
0170デフォルトの名無しさんNGNG
>>165
なくなっちゃったよ、せっかくintやらのビット数固定にしたんだから、
その範囲でのみでても付けてもらえると便利っていうか、Cより安全確実でよかったんだけどね。
ちょとさびしい。
頑張ってstruct使ってビットフィールド操作関数作るしかないっすね。
0171デフォルトの名無しさんNGNG
>>169
WinFXのことだろ。
0172156NGNG
defaultとstandardはこの場合同意語にならんか?
それともそーゆーことじゃないのか?
なんにせよいろいろややこしそうだな。
0173デフォルトの名無しさんNGNG
生成済みのオブジェクトの型を調べて、
それの型と同じ型で 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 を使えばできると聞いたのですが、
分りやすいサンプルがあったらよろしくお願いします。
0174デフォルトの名無しさんNGNG
>>173
object localData = a.GetType().GetConstructor().Invoke( new object [] {} );
0175デフォルトの名無しさんNGNG
>>174
有難うございます、助かりました。
0176デフォルトの名無しさんNGNG
>>175
でも、実装の仕方としては、class A, B を ICloneable にして Clone() メソッド書くのが普通な気が。
0177デフォルトの名無しさんNGNG
>>175
それでほんとに問題ないのかちゃんと確認した方がいいぞ。
0178デフォルトの名無しさんNGNG
>>176
リフレクションの使い方の取っ掛かりが欲しかったので、構わないんです。
コンストラクタ以外にもメソッドを呼び出すときに、もっと複雑なことになるし、この辺りは覚悟していましたし
いずれにしても template が実装されるまでの繋ぎなので。
0179デフォルトの名無しさんNGNG
>178
どうtemplateにからむんでしょう?個人的に興味
0180デフォルトの名無しさんNGNG
ダウンキャストを知らないだけだったりして…
0181デフォルトの名無しさんNGNG
C#の宿題スレはまだ無いみたいなのでここにて。

C#で簡易telnetを作れという問題です。通信の方法がそもそも分かりません
0182デフォルトの名無しさんNGNG
>>181
ソケット作れ
■ このスレッドは過去ログ倉庫に格納されています