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

ふらっとC♯, C#(初心者用) Part13

レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん2007/02/06(火) 20:35:29
このスレッドは
「どんなにくだらないC#プログラミングに関する発言でも誰かが優しくレスをしてくれるスレッド」です。
ほかのスレッドでは恐ろしくて書き込めないような低レベル、もしくは質問者自身なんだか意味がよく分からない質問など、
勇気をもって書き込んでください。
内容に応じて、他スレ・他板へ行くことを勧められる、あるいは誘導される場合がありますがご了承下さい。
0002デフォルトの名無しさん2007/02/06(火) 20:36:29
前スレ
ふらっとC♯, C#(初心者用) Part12
http://pc10.2ch.net/test/read.cgi/tech/1168271508/

関連スレ
C♯, C#相談室 Part37
http://pc10.2ch.net/test/read.cgi/tech/1169110545/
0003デフォルトの名無しさん2007/02/06(火) 20:37:01
Visual C# Express Edition (無料)ダウンロード
http://www.microsoft.com/japan/msdn/vstudio/express/vcsharp/

.NET Framework SDK (2.0)
http://msdn2.microsoft.com/ja-jp/library/ms310244.aspx

MSDN Visual C# Express Edition フォーラム
http://forums.microsoft.com/msdn-ja/ShowForum.aspx?ForumID=187&SiteID=7
Visual Studio ユーザーグループ
http://vsug.jp/

@IT Insider.NET
http://www.atmarkit.co.jp/fdotnet/index.html
Insider.NET 会議室 ディレクトリ
http://www.atmarkit.co.jp/fdotnet/index/bbs/index.html

宇宙仮面の C# プログラミング / C# Programming
http://ukamen.hp.infoseek.co.jp/
WisdomSoft C#入門
http://wisdom.sakura.ne.jp/programming/cs/index.html
WisdomSoft Microsoft .NET入門
http://black.sakura.ne.jp/~third/system/msnet/msnet.html
どっとねっとふぁん
http://dotnetfan.org/
緑のバイク 初めてのC# 〜 覚え書き 〜
http://homepage3.nifty.com/midori_no_bike/CS/
どぼん!の .NET Tips
http://dobon.net/vb/dotnet/
.NET のつぼ
http://park16.wakwak.com/~mimi/dotnet/top.html
0004デフォルトの名無しさん2007/02/06(火) 20:37:57
Borland C#Builder2006
http://www.borland.com/jp/products/csharpbuilder/index.html

Turbo C#
http://www.turboexplorer.com/csharp

.NET Framework 1.1 製品ドキュメント
http://www.microsoft.com/japan/msdn/library/ja/netstart/html/sdkstart.asp

---

MSDNライブラリ 2006年6月版
http://www.microsoft.com/downloads/details.aspx?FamilyID=373930cb-a3d7-4ea5-b421-dd6818dc7c41&DisplayLang=ja

MSDNをローカルで見れる。
0005デフォルトの名無しさん2007/02/06(火) 20:41:01
11 名前:デフォルトの名無しさん[sage] 投稿日:2007/01/18(木) 19:19:37
質問するときに
〜したいのですが、上手くいきません。
〜したときにエラーが出ます。

という書き方はイクナイ。
何も書いてないのと同じ☆

〜したいのですが、〜で〜が失敗します。
〜したときに〜エラーが出ます。

隠さずくわしくかきましょう
0006デフォルトの名無しさん2007/02/06(火) 20:42:26
>>1乙
0007デフォルトの名無しさん2007/02/06(火) 20:43:59
>>1-4乙
0008デフォルトの名無しさん2007/02/06(火) 20:48:07
取り合えず前スレの問題は全て解決したのか?
そんなわけない。
0009デフォルトの名無しさん2007/02/06(火) 20:52:09
900以降みてみたが、一応どれも終わってるみたいだ
0010デフォルトの名無しさん2007/02/06(火) 20:54:11
終わってない人は再掲したほうがいいかも
0011デフォルトの名無しさん2007/02/06(火) 21:02:55
おわってねぇーw

>982
単なる書き換えわすれだよ。
確かにねたぽいけど、ちゃんと理由があるのであんまりつっつかないでくれ。

>979
えーと、単純なクラスのバインディングなら出来てるっていうのを書き忘れた。

問題は IEnumerable を実装してるクラスの場合で、単純なクラスの場合と同じに
書いてもリストオブジェクト自体のプロパティのバインディングが出来ないです。
0012デフォルトの名無しさん2007/02/06(火) 21:05:22
再掲?
がちょーんって言ってた人?
001311=前スレ9722007/02/06(火) 21:06:10
おれ、りろーど汁。

えーと質問です。
class hoge {}
class hogelist : List<hoge> {
 public String Value { get() { return ""; } }
}

private readonly hogelist hogelist = new hogelist();

public form1(.......) // こんすとらくた
{
 InitializeComponent();
 textBox1.DataBinding.Add("Text", hogelist, "Value"); // 質問修正
}

というコードを書いて、外部のフォームからこのフォームを表示させようとすると

form1->Show(); // ここで例外。

ArgumentExceptionはハンドルされませんでした。
DataSource のプロパティまたは列Valueにバインドできません。
パラメータ名:dataMember

と言われて、データバインディングに失敗します。
Show() のところから、ステップ実行すると IEnumerable.GetEnumerator() が呼ばれて
いて、これは素直に通過するのだけど通過した後の外部コードの中で例外が発生します。

どうすればデータバインディングできるのでしょうか?
0014デフォルトの名無しさん2007/02/06(火) 21:08:36
アロー演算子
0015デフォルトの名無しさん2007/02/06(火) 21:14:53
974 名前:デフォルトの名無しさん[sage] 投稿日:2007/02/06(火) 19:38:03
>form1->Show()
ネタですね…
0016デフォルトの名無しさん2007/02/06(火) 21:17:55
>IList を実装し、オブジェクトのインデックス付きコレクションを作成する任意のクラス。
>このコレクションは、Binding を作成する前に作成され、その中にオブジェクトが
>格納されていることが必要です。リスト内のオブジェクトの型は、
>すべて同じである必要があります。それ以外の場合は、例外がスローされます。
0017デフォルトの名無しさん2007/02/06(火) 21:19:10
tigaudro
001811=前スレ9722007/02/06(火) 21:19:16
おぉ。form1.Show() に読み替えてください。

まぁ別フォームのコードは C++/CLI だから、
元のソースそのまんまではあるわけだけど。

よくきがつくなー。
0019デフォルトの名無しさん2007/02/06(火) 21:30:11
まだおかしい
get()…
0020デフォルトの名無しさん2007/02/06(火) 21:34:43
DataBinding
0021デフォルトの名無しさん2007/02/06(火) 22:03:37
>>13
DataBindingsにIEnumerableでないオブジェクトが使えるのがオマケみたいなものだから、
仕様だと思ってあきらめよう。

これだと通る。
class hoge { public String Value { get() { return ""; } } 
class hogelist : List<hoge> { } 
002211=前スレ9722007/02/06(火) 22:09:31
了解。ありがとう。


#くだすれ.NET Frameworkってスレありません?
0023デフォルトの名無しさん2007/02/06(火) 22:26:32
本来は.NET Framework関係の話題はVB.NETやC#もなく統合スレでやるべきなんだろうけどな
C#覚えればいいのに。C++/CLIが使えるなら簡単でしょ?
転がってる情報はほとんどVB.NETとC#だし
0024デフォルトの名無しさん2007/02/06(火) 22:30:53
>>21
何でこれが通るんだろうね?
0025デフォルトの名無しさん2007/02/06(火) 22:34:12
++厨もこっちくんのか・・・
絶対++なら出来るだのなんだの文句ばっかりだろうな・・・
0026242007/02/06(火) 22:35:59
理解した。
プロパティ名""にすると、ToString()が帰ってくるらしい。
textBox1.DataBindings.Add("Text", hogelist, "");
これで帰ってきたもの見ると、
WindowsApplication1.hoge となっていた。
hogelistはデータセットでhogeが行扱いみたいだな。
0027デフォルトの名無しさん2007/02/06(火) 22:39:41
両方出来るけど、一つのソリューションの中にC++/CLIとC#のプロジェクトが
混じってると、ソース書くときもまじるんだよね。
0028デフォルトの名無しさん2007/02/06(火) 22:43:23
.NETスレあったろ
0029242007/02/06(火) 22:50:16
こういうの作って楽しんだ…
private void button2_Click(object sender, EventArgs e)
{
textBox1.DataBindings["Text"].BindingManagerBase.Position++;
}

public hoge(string st){
innerString=st;
}
0030前スレの9732007/02/07(水) 01:13:51
シングルスレッドでも、多重で関数が起動される件

原因はUnLha32.dllの中でメッセージループをまわるようにしているようです。
スイッチ指定で回さないようにしたら、ちゃんと予定した動作をしました。

ふう〜
0031デフォルトの名無しさん2007/02/07(水) 03:44:56
http://pc10.2ch.net/test/read.cgi/tech/1160209713/
くだすれ.NET(超初心者向け)

さびれてんな・・・。
0032デフォルトの名無しさん2007/02/07(水) 06:20:22
なんでTIMER.TICKイベントのなかで
MessageBox.Showをやるとその後のコードが
実行されないんでしょうか?
0033デフォルトの名無しさん2007/02/07(水) 07:13:43
>>32
TIMER.TICK なんて無いと釣られてみる

それはさておき、MessageBox はモーダルウィンドウなので。
嫌なら自分でフォーム書くとか。
0034デフォルトの名無しさん2007/02/07(水) 08:14:36
Windows フォームのタイマ コンポーネントはシングルスレッドで、精度の上限は 55 ミリ秒
になります。より精度の高いマルチスレッド タイマが必要な場合は、System.Timers 名前
空間の Timer クラスを使用してください。

ms-help://MS.VSCC.v80/MS.MSDN.v80/MS.NETDEVFX.v20.ja/CPref17/html/T_System_Windows_Forms_Timer.htm
0035デフォルトの名無しさん2007/02/07(水) 08:49:56
>>33
なんでモーダルウィンドウだとそうなるんですか?
0036デフォルトの名無しさん2007/02/07(水) 09:06:59
なんでって用途を考えろよ
0037デフォルトの名無しさん2007/02/07(水) 09:13:59
わかんねーから聞いてるんですけど
質問スレで「考えろ」って回答はありえないんですけど
0038デフォルトの名無しさん2007/02/07(水) 09:20:41
典型的なゆとりだな。
0039デフォルトの名無しさん2007/02/07(水) 09:22:58
>>37
>>34嫁
0040デフォルトの名無しさん2007/02/07(水) 09:55:45
わかり易く説明してくれよ
初心者なんだからさ
マルチスレッドとか意味わかんね

ツールボックスにあるTIMERじゃだめなわけ?
0041デフォルトの名無しさん2007/02/07(水) 10:06:18
>>37
はい次
0042ぴゅあ2007/02/07(水) 10:07:46
>>40
JNI使わないと無理ですよ
0043デフォルトの名無しさん2007/02/07(水) 10:54:58
スレッドと使うかタイマを使うかは用途によるな
軽いくて止まらない処理ならタイマー使えば良いし
タイマーの誤差範囲より長い時間で正確な時間取りたいのなら
タイマーの中で更に正確な時間読み出して使えば良い

ただ、良く分からないで初心者がいきなりガンダムを操縦するのは無理だな
0044デフォルトの名無しさん2007/02/07(水) 11:26:25
>>42
なんだって?

>>43
そういうことじゃなくて
messageshowやるとその後のコードが実行されないってことを
言ってるわけ
0045デフォルトの名無しさん2007/02/07(水) 11:30:22
>>44
OKボタンをクリックすれば続きが実行されるよo(^−^)o
0046デフォルトの名無しさん2007/02/07(水) 11:36:58
>>44

>>43
の言ってる事の意味を理解してない・・・・
0047デフォルトの名無しさん2007/02/07(水) 11:47:56
>軽いくて”止まらない”

つまり止まるって事は、何らかの関数を呼んだら
あるイベントが発生するまで待ち状態になり、その関数から返って来ない事を指す
そんなもんはタイマーじゃ使っちゃいけないって事
0048デフォルトの名無しさん2007/02/07(水) 13:22:59
Listview(Detail表示)で選択された行の情報を何らかの形で取得したいのですが、
一般的にはどのように行うものなのでしょうか?
0049デフォルトの名無しさん2007/02/07(水) 13:35:30
何を求めているのかよくわかんない。

foreach( ListViewItem item in listView1.SelectedItems )
{
 ...
}
0050デフォルトの名無しさん2007/02/07(水) 13:37:55
1 ぬるぽ A
2 ぬるぽ B
3 ぬるぽ C

こんな感じに並んでいて、2の行がダブルクリックされた際に
「2」でも「ぬるぽ」でも「B」でもいいのでこのクリックされた行に関する情報を得たいです。
0051デフォルトの名無しさん2007/02/07(水) 13:54:57
private void listView1_ItemActivate( object sender, EventArgs e )
{
    if( this.listView1.SelectedItems.Count > 0 )
    {
        ListViewItem item = this.listView1.SelectedItems[0];

        string str = "";
        for( int i = 0; i < item.SubItems.Count; i++ )
        {
            str += item.SubItems[i].Text + ", ";
        }
        MessageBox.Show( str );
    }
}
0052デフォルトの名無しさん2007/02/07(水) 13:58:54
>>51
うまくいきました。
お手数おかけしました。
どうもありがとうございます。
0053デフォルトの名無しさん2007/02/07(水) 15:55:37
BinaryReaderでfloat値をバイナリファイルから取り出す場合、どうすればいいの?
標準でReadFloatが入ってないのも不思議だが・・・
0054デフォルトの名無しさん2007/02/07(水) 16:12:49
ReadSingleてないの?
0055デフォルトの名無しさん2007/02/07(水) 16:20:50
>>54
�d
それでいけました。
ReadFloatって名前じゃなかったのね。
0056デフォルトの名無しさん2007/02/07(水) 19:41:47
テキストファイルを途中から読み込む方法教えてください。
○○行目から読み込む、
又は
○○の文字列の後から読み込むなど。
よろしくお願いします
0057デフォルトの名無しさん2007/02/07(水) 19:49:59
ない。
考えれば分かると思うが…
普通に読み込んでいらない行を捨てていくだけ。
0058デフォルトの名無しさん2007/02/07(水) 20:28:55
>>57
そんなわけねーだろwカス

>>56
できるよ
0059デフォルトの名無しさん2007/02/07(水) 20:32:30
ないんですか・・・
IndexOfで指定の文字列検索して、そのあとから読む
って出来るかと思ったのですが。。
すみません、超初心者の発想でした

行削除でやってみます。
0060デフォルトの名無しさん2007/02/07(水) 20:33:54
>>59
教えてください!
0061デフォルトの名無しさん2007/02/07(水) 20:35:27
検索するにしても一旦読みこんどかないといけないわけで
0062デフォルトの名無しさん2007/02/07(水) 20:39:30
>>61
一旦ReadToEndで読み込んで、IndexOfで文字列検索して・・・

の後どうすれば?
0063デフォルトの名無しさん2007/02/07(水) 20:46:49
その後何がしたいかによる
ReadLineで一行ずつチェックしていったほうがいい気はする
0064デフォルトの名無しさん2007/02/07(水) 20:59:15
>>63
テキストファイルの中身は(int,int,string)のデータが
1行につき1つずつ入ってます。

そのテキストファイルを一行ずつ読み込んで、
構造体配列に格納していきたいんですけど、
最初の7行はいらないんです。8行目から処理したいんですが。
0065デフォルトの名無しさん2007/02/07(水) 21:00:25
ReadLine で読み捨てが一番楽だろ
0066デフォルトの名無しさん2007/02/07(水) 21:26:37
>>65
ありがとうございます!
0067デフォルトの名無しさん2007/02/07(水) 21:41:51
ここって答えてる奴も初心者なんだな
textreaderも知らないのかよ・・・
読み込むポインタを指定すれば途中から読み込める
0068デフォルトの名無しさん2007/02/07(水) 21:44:44
で、そのポインタをどうやって見つけるんだい
0069デフォルトの名無しさん2007/02/07(水) 21:47:02
>>67
TextReaderはそのポインタとやらを進める方法は読み捨てしかないんだが
0070デフォルトの名無しさん2007/02/07(水) 21:50:09
>>67
煽ってるやつも初心者だから救いようがない
0071デフォルトの名無しさん2007/02/07(水) 22:20:36
逃げちゃった?
0072デフォルトの名無しさん2007/02/07(水) 23:51:04
まぁ恥をかくのも勉強
恥かかないように一生懸命調べなされ
0073デフォルトの名無しさん2007/02/08(木) 00:27:08
どれに言ってるのやら
0074デフォルトの名無しさん2007/02/08(木) 01:11:47
midi音源を用いてキーで入力された音を出したいのですが・・・・
資料がなくて困っています・・・・
winmm.dllを用いたソースを入手したのですが、
如何せん「仕様書」のようなものがないもので・・・・
0075デフォルトの名無しさん2007/02/08(木) 01:16:46
「仕様書」ってどういう意味?

APIの使い方ならMSDNに載ってるけど
http://msdn2.microsoft.com/ja-jp/library/ms712038(en-us).aspx
0076デフォルトの名無しさん2007/02/08(木) 01:25:05
>>75
あーあるんですねー
英語だからって敬遠して探してませんでした。
読んでみます。どうもです。
0077デフォルトの名無しさん2007/02/08(木) 02:05:28
>>75読んでみたのですが、
ttp://cvs.sourceforge.jp/cgi-bin/viewcvs.cgi/packetbell/packetbell-win-0.1/src/Midi.cs
このソースを使う上で役に立つのでしょうか??
0078デフォルトの名無しさん2007/02/08(木) 02:08:25
まんまじゃん
0079デフォルトの名無しさん2007/02/08(木) 02:13:38
>>77
ちょっと定義がいい加減だなあ。動くんだろうけど
0080デフォルトの名無しさん2007/02/08(木) 02:15:32
>>77のソースだけで音出るんでしょうか?
Openしていろんなメソッドに変数渡してみてるんですが・・・・・
0081デフォルトの名無しさん2007/02/08(木) 02:17:38
要はキー入力で指定されたものに対応するドラムの音だけ出したいんですが
0082デフォルトの名無しさん2007/02/08(木) 02:17:47
見た感じだと音でると思うんだが、試してないの?
0083デフォルトの名無しさん2007/02/08(木) 02:33:19
Formロード時にClose、offがつくもの以外のもの呼んでみてもならないみたいでした
渡した値が悪いのかな??
0084デフォルトの名無しさん2007/02/08(木) 02:34:18
もしかして馬鹿?
0085デフォルトの名無しさん2007/02/08(木) 02:46:23
戻り値見ればどこでどんなエラーがでてるか分かるんじゃない?
0086デフォルトの名無しさん2007/02/08(木) 13:04:36
BackgroundWorkerについての質問です。

RunWorkerCompleted イベントはUIスレッドで実行されるみたいですが、
そっちのUIスレッドで何かのメソッドが実行中の場合ってどうなるんでしょうか。
実行中のメソッドが終了してからRunWorkerCompleted が実行されるんでしょうか。

またRunWorkerCompleted イベントの時点でフォームが閉じていた場合の
常套処理ってありますか?
form.IsHandleCreatedをみるだけでいいんでしょうか。
0087デフォルトの名無しさん2007/02/08(木) 13:48:54
ひとつのスレッドが同時にできる処理の数はどうがんばってもひとつだけです。

Worker が生きてるときは Closing でキャンセルして、終了待機状態に。
Completed イベントで終了待機中なら閉じると処理してやる。
0088862007/02/08(木) 14:41:05
自己解決しますた。
0089デフォルトの名無しさん2007/02/08(木) 14:48:50
>>88
(´・ω・`)

>>87
ありがとうございます。
するとRunWorkerCompleted イベント中の処理って
やっぱりUIスレッドがビジーの間は待たされるということですか
メッセージキューみたいなイメージでいいんですかね?
0090デフォルトの名無しさん 2007/02/08(木) 19:10:55
すいませんが教えてください。
最近C#を勉強しだしたんですが、継承もとのオブジェクトが継承先のオブジェクトに代入をなぜ出来る
のかが、わかりません。継承したクラスが継承したクラスの情報を持っているのはわかるんですが
継承されたクラスは継承したクラスの情報は持ってない、というか分からないと思うんですが。
以下のソースはいったい内部でどういう処理がおこなわれているんでしょうか、すいませんが教えてください。
using System;
public class TestClass1
{public virtual void show(){Console.WriteLine("TestClass1");}}
public class TestClass2 : TestClass1
{ public override void show(){Console.WriteLine("TestClass2");}}
class virtualmethodtest
{public static void Main(){
TestClass2 mc2 = new TestClass2();
TestClass1 mc1 = new TestClass1();
TestClass1 mct;
mct = mc1;
mct.show();
mct = mc2;//ここが分からないです。
mct.show();
}}
0091デフォルトの名無しさん2007/02/08(木) 19:36:33
小さいもの?に大きいものが入ってるイメージがあるかもしれないが
実際はそんなものじゃないのです。
代入してもベースのオブジェクトのメモリに押し込まれるわけでありません。
拡張した部分が削られるわけではないのです。

Cやってたらわかるかも知れないけどmc1とかはポインタみたいなものです。
どこにオブジェクトの本体があるか指しているだけ。
だからサイズは気にする必要なし。

どちらかというと逆の大きいものに小さいもの入れるほうが問題がある。
なぜかというと拡張した部分に該当する箇所が無くデータが不足するものが
出る場合があるからから。
0092デフォルトの名無しさん2007/02/08(木) 19:40:19
概念的にはベースクラスのほうが「大きい入れ物」だよ
「田中さん」を「人間」として扱うのと一緒
0093デフォルトの名無しさん2007/02/08(木) 19:46:06
概念上はその通りかもしれないが。
オブジェクトのサイズから言うとベースのほうが大体小さい。
0094デフォルトの名無しさん2007/02/08(木) 21:16:49
クロマニヨン人は我々現代人よりチンコがでかいってことだな
0095デフォルトの名無しさん2007/02/08(木) 21:52:42
ここで生物学の時間です。

クロマニヨン人を我々人類の祖先と考えている人が多数おられますが、
そんな人たちは、高校で生物の授業をまともに受けてない人たちだと思います。

クロマニヨン人も北京原人もアウストラロピテクスもホモハビリスも
我々人類と血縁関係は「ありません」。というのが通説です。

生物進化の過程でさまざまな人類のパターンが地上に現れました。
クロマニヨン人と同時代に我々人類の祖先が既に存在していたと思われる
証拠が微々たるものではありますが北から西にかけてヨーロッパの各地で
見つかっております。決してクロマニヨン人から人類の祖先が誕生した
わけではありません。それぞれの時代の代表的な化石人類はすべて、
衰退して別の化石人類にバトンタッチをするわけですが、その時代と時代の境目が
「ミッシングリング」(見つからない世代のつながり)になっており、現在でも
よく分かっておりません。ただいえることは、ある世代にABCと三種の人類の
パターンが誕生して繁栄したのはAであったとすると、次の世代ではDEFの
パターンが現れ、それらはBCの子孫である可能性が高く、Aは子孫を残さなかった。
と考えられており、クロマニヨン人をはじめ著名な化石人類は全て子孫を残さず、
同世代の名も無き種が子孫を残し、それが我々の祖先であると考えられております。
0096デフォルトの名無しさん2007/02/08(木) 22:24:43
通説ではアトランティス人が猿から人類を作り出したわけだが。
0097デフォルトの名無しさん2007/02/08(木) 23:21:41
いやだから概念上はってわざわざいったんだろ。
0098デフォルトの名無しさん2007/02/08(木) 23:22:27
高校じゃ物理と化学しかとってなかったんで
0099デフォルトの名無しさん2007/02/09(金) 01:07:54
>>95
それ古い情報だよw

今はDNA解析も済んで、人間のルーツは解明してる
ネアンデルも北京原人も人間の直結の先祖じゃない

ばーか^^
0100デフォルトの名無しさん2007/02/09(金) 01:50:59
人間の直結の先祖は俺

  生 物 の 時 間 終 了
0101デフォルトの名無しさん 2007/02/09(金) 02:57:51
>>100
おまえ何歳なんだよ
0102デフォルトの名無しさん2007/02/09(金) 09:13:19
http://homepage3.nifty.com/midori_no_bike/CS/form.html#022

Form1.Designer.csというファイル名で保存


// Form を表示する
public class Form1
{
Form2 form2 = new Form2() ;
form2.Show() ;
}
public class Form2
{
/* Form1 と並行操作できる処理 */
}



しかし2エラー

エラー1名前空間にフィールドやメソッドのようなメンバを直接含めることはできません。C:\Documents and Settings\ta\My Documents\Visual Studio 2005\Projects\Project1\Project1\Form1.Designer.cs31Project1
エラー2クラス、デリゲート、列挙型、インターフェイス または構造体が必要です。C:\Documents and Settings\ta\My Documents\Visual Studio 2005\Projects\Project1\Project1\Form1.Designer.cs315Project1
0103デフォルトの名無しさん2007/02/09(金) 09:31:06
using System;
using System.Drawing;
using System.Windows.Forms;

class Program
{
public static void Main()
{
Form f = new Form();
f.Width = 200;
f.Height = 200;
f.Text = "サンプルプログラム";
Application.Run(f);
}
}



調べた、こうやれば表示できるた
上のサイトはいったい何だったんだ
0104デフォルトの名無しさん2007/02/09(金) 09:45:51
ヒント:略記
01051032007/02/09(金) 09:47:20
ヒントじゃなくて答え教えろカス
0106デフォルトの名無しさん2007/02/09(金) 10:05:03
>>102は既存のフォームから別フォームを開くコードを
かなり省略して書いてある。
分かる人にはこんなサンプル必要ないし、
分からない人にはこれだけでは分からないからまったく意味のないサンプルコード。

答え:VisualC# ExpressEditionをインストールしろ

0107デフォルトの名無しさん2007/02/09(金) 10:08:39
C♪

どうせならこういう名前にすればよかったのにな
なんかかわいいじゃん
0108デフォルトの名無しさん2007/02/09(金) 10:10:25
C(#^ω^)
0109デフォルトの名無しさん2007/02/09(金) 10:11:10
C(#^_^#)b
0110デフォルトの名無しさん2007/02/09(金) 10:18:54
初心者とか書いてあるHPは、省略はするべきじゃないな。
初心者には、そのままコピペが多いし
0111デフォルトの名無しさん2007/02/09(金) 13:44:52
  ∧∧
C(#゚Д゚)
  ⊂  つ
  〜  |
   し`J
0112デフォルトの名無しさん2007/02/09(金) 13:46:41
C(# ゚д゚)
0113デフォルトの名無しさん2007/02/09(金) 15:32:33
>>102
これひどいな
コメントが紛らわしいからこういう構文があるのかと思っちゃう
0114デフォルトの名無しさん2007/02/09(金) 16:56:40
インターフェースでプロパティが定義されてるのってあまり見ないけどなんで?
0115デフォルトの名無しさん2007/02/09(金) 17:00:00
馬鹿おっしゃい

ICollection.Count
IDictionary.Keys
IList.IsReadOnly
0116デフォルトの名無しさん2007/02/09(金) 20:53:59
すんません
tabcontrolのtabpageをアクティブにするのって
Focus()で出来ないんですか?
おしえてくだだい
01171162007/02/09(金) 20:55:09
すみません。自己解決しますた。
0118デフォルトの名無しさん2007/02/09(金) 20:55:40
試してみてできなかったんならできないんだろう。

TabControl.SelectedIndex/TabControl.SelectedTabでもつかっとけ
0119デフォルトの名無しさん2007/02/09(金) 20:56:03
>>117
偽者乙
0120デフォルトの名無しさん2007/02/09(金) 20:57:57
>>118
ありがとうございます。
VSで予測候補だしてくれますよね。
あれって全てでるんですか?(使用可な状態なら)
0121デフォルトの名無しさん2007/02/09(金) 21:03:01
>>120
インテリセンスのことか?
普通に使う範囲では全部出ると思うよ。
0122デフォルトの名無しさん2007/02/09(金) 21:06:32
>>121
TabControl.SelectedIndex/TabControl.SelectedTab
こんなの無かったとおもうんですけど・・
0123デフォルトの名無しさん2007/02/09(金) 21:08:02
なにか動作させたいときってあのピンクの消しゴムみたいなのが
すっ飛んでるアイコンのコードを選ぶんですよね?
0124デフォルトの名無しさん2007/02/09(金) 21:09:28
>>123
それはメソッド
>>118はプロパティ
0125デフォルトの名無しさん2007/02/09(金) 21:12:01
>>124
ありがとうございます
0126デフォルトの名無しさん2007/02/09(金) 21:12:40
このスレって優しい人が多いですね
0127デフォルトの名無しさん2007/02/09(金) 21:16:26
まぁなw
0128デフォルトの名無しさん2007/02/09(金) 21:23:58
Ctrl+スペースな?
0129デフォルトの名無しさん2007/02/09(金) 21:50:36
MD5CryptoServiceProviderクラスのComputHashメソッドでFileStreamのハッシュ値を計算中に進行状況を取得する方法を教えてください
0130デフォルトの名無しさん2007/02/09(金) 21:57:00
普通に考えたらなさそうだけど…
0131デフォルトの名無しさん2007/02/09(金) 21:57:01
無理。
0132デフォルトの名無しさん2007/02/09(金) 21:59:30
>>129
ファイルを一旦byte配列に4kBずつ読んで、
TransformBlock(とTransformFinalBlock)に流し込むやりかたはどう?
0133デフォルトの名無しさん2007/02/09(金) 22:00:36
そうですか…

別のクラスで出来そうなの探してみます
0134デフォルトの名無しさん2007/02/09(金) 22:04:07
>>132
その方法を試してみます
連レスすみません
0135デフォルトの名無しさん2007/02/09(金) 22:05:25
なんか本末転倒な予感
0136デフォルトの名無しさん2007/02/10(土) 15:23:40
.NETのつぼ閉鎖したの?
0137デフォルトの名無しさん2007/02/10(土) 18:07:34
ユーザーがメニューやキーボード操作をカスタマイズできる機能を
つけようと思うのですが、Delphi や C++Builder でいう、
TAction のようなクラスはないんでしょうか?
0138デフォルトの名無しさん2007/02/10(土) 20:33:32
FORTRANのくだすれって親切だよな。
たまに放置もあるけど。
0139デフォルトの名無しさん2007/02/10(土) 21:57:33
>>137
単にDictionary<ToolStripItem>に入れといてShortcutKeysプロパティをいじるのではダメなの?
0140デフォルトの名無しさん2007/02/11(日) 13:31:39
>>138
ここは「C#」のスレそして「くだすれ」では無い
寂しがり屋さんは馴れ合い系に逝って下さい
0141デフォルトの名無しさん2007/02/11(日) 15:53:29
C#とC++の違いを述べよ
0142デフォルトの名無しさん2007/02/11(日) 16:03:17
まったくの別物
0143デフォルトの名無しさん2007/02/11(日) 16:18:32
MS的には一応
C# : C++
ということにしたいらしい
0144デフォルトの名無しさん2007/02/11(日) 18:05:31

public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
  }

private void 終了menu(object sender, EventArgs e)
{
this.Close();
}
}


終了menuのイベント追加したんだが
コピー、切り取り、貼り付けなどなど、
項目が増えるとソースが見づらくなると思うのだがスッキリする方法はないのだろうか?
0145デフォルトの名無しさん2007/02/11(日) 18:08:13
Form1.Menu.csとかに分割していくのは?
0146デフォルトの名無しさん2007/02/11(日) 18:11:44
>>145
VC#ってpartialに対応して無いでしょ?
デザインから飛べなくなるよ?
0147デフォルトの名無しさん2007/02/11(日) 18:21:50
>>146
それがさ。ちょっとした裏技があって、csprojを弄って

<Compile Include="Form1.Menu.cs">
 <DependentUpon>Form1.cs</DependentUpon>
</Compile>

としておくと、デザイナがちゃんと補足してくれるんだよ
0148デフォルトの名無しさん2007/02/11(日) 18:23:21
>>147
うはw知らんかった。
マジでありがとう
0149デフォルトの名無しさん2007/02/11(日) 18:52:13
byte[] a = new byte[100];
とかしたとき、aは0で初期化されてたりする?
0150デフォルトの名無しさん2007/02/11(日) 19:01:33
default(byte) 即ち 0 で初期化される。
0151デフォルトの名無しさん2007/02/11(日) 19:44:18
>>147
俺も前それやりたかったけどわからなかった。
いい事聞いた。ありがとう。
0152デフォルトの名無しさん2007/02/11(日) 19:47:05
ぶっちゃけ #region でいいとおもうんだけど
0153デフォルトの名無しさん2007/02/11(日) 20:01:19
>>152
それじゃコミット時にチェックするのめんどくさくね?
0154デフォルトの名無しさん2007/02/11(日) 20:13:50
>>152
MSクオリティっていうかユーザの意思と関係なく
なんかの拍子に勝手に開いたりするからいまひとつ使いづらいよな。
0155デフォルトの名無しさん2007/02/11(日) 20:51:31
C#のインタプリタってある?
0156デフォルトの名無しさん2007/02/11(日) 20:57:07
イミディエイトウィンドウでいいんじゃね
0157デフォルトの名無しさん2007/02/11(日) 21:00:51
MSが辞めるって言ったら終わる言語?
それとも、Cとかみたいな感じ?
0158デフォルトの名無しさん2007/02/11(日) 21:03:09
>>157
今M$が.NET辞めるって言ったら終わるんじゃね?w
0159デフォルトの名無しさん2007/02/11(日) 21:03:57
一応は標準化されてるし、互換処理系も存在するが、
MSがやめるって言えば存在価値がなくなるな。
0160デフォルトの名無しさん2007/02/11(日) 21:10:47
テキストフォームに漢字やひらがなを入力したとき、自動的にそのローマ字読みが別のフォームに格納されるようなあれ、どうやんのかな。

Cシャープ→csya-pu
のような感じで。
0161デフォルトの名無しさん2007/02/11(日) 21:26:43
っ ImmGetConversionList
っ KAKASI, ChaSen
0162デフォルトの名無しさん2007/02/11(日) 21:29:15
しゃ は sha なのか sya なのか
0163デフォルトの名無しさん2007/02/11(日) 21:33:23
KeyUpを捕まえとくとか?
0164デフォルトの名無しさん2007/02/11(日) 21:39:43
>>137>>144
Actionクラスくらい自作しれ
0165デフォルトの名無しさん2007/02/11(日) 21:41:18
親指シフト使いの俺も忘れないでください
01661602007/02/11(日) 21:44:27
うーむ・・基本的には正しい変換とか気にせずに拾ってほしいからやっぱKeyUpなのかねぇ・・
BackSpaceとかDeleteとかどうすんだろ
0167デフォルトの名無しさん2007/02/11(日) 21:46:01
車売るならKeyUp…
0168デフォルトの名無しさん2007/02/11(日) 21:51:19
>>160
基本はimm32を叩く。
キー入力とるのは、クリップボードや範囲選択DELをうまく扱えないのであまり美味しくない。
0169デフォルトの名無しさん2007/02/11(日) 21:56:08
かな使いの俺も忘れないでください
0170デフォルトの名無しさん2007/02/11(日) 22:05:25
VistaならTSFを使うことになるんだろうな
01711602007/02/11(日) 22:08:04
>>168
やっぱそうかね。
キー入力も妖しいな。
0172デフォルトの名無しさん2007/02/11(日) 22:14:25
妖しい
0173デフォルトの名無しさん2007/02/11(日) 22:35:47
vistaでの互換性が妖しい

http://forums.microsoft.com/TechNet-JA/ShowPost.aspx?PostID=766696&SiteID=36
0174デフォルトの名無しさん2007/02/11(日) 22:48:58
ついでに見つけた使えるのか?

ttp://forums.microsoft.com/MSDN-JA/ShowPost.aspx?PostID=456214&SiteID=7
0175デフォルトの名無しさん2007/02/11(日) 23:32:55
>>164
サンプル
0176デフォルトの名無しさん2007/02/12(月) 00:51:44
自分で探して
http://www.codeproject.com/

http://www.codeproject.com/csharp/actionlistprovider.asp
http://www.codeproject.com/cs/miscctrl/CradsActions.asp
 :
0177デフォルトの名無しさん2007/02/12(月) 12:56:52
stringからStreamを作成する方法を教えてください
0178デフォルトの名無しさん2007/02/12(月) 13:07:07
string のバイナリ化ってこと?
System.Text.Encoding に GetByte とかがあったと思う。
0179デフォルトの名無しさん2007/02/12(月) 13:15:02
StringStream なんてのは無いな
Encoding.GetBytes で MemoryStream に書き込むのが基本か
0180デフォルトの名無しさん2007/02/12(月) 13:17:26
StringBuilder とか StringReader / StringWriter とかで代用できる用途かも知れない
0181デフォルトの名無しさん2007/02/12(月) 13:22:04
Stringとstringの違いを述べよ
0182デフォルトの名無しさん2007/02/12(月) 13:30:13
ツマンネ
0183デフォルトの名無しさん2007/02/12(月) 14:33:50
>>181
それからして分かんないんだけど・・・
分かりやすく解説したドキュメントってある?
0184デフォルトの名無しさん2007/02/12(月) 14:36:14
>>183
http://msdn2.microsoft.com/ja-jp/library/s1ax56ch(VS.80).aspx
http://msdn2.microsoft.com/ja-jp/library/ya5y69ds(VS.80).aspx

このあたりか?
0185デフォルトの名無しさん2007/02/12(月) 14:42:15
#質問

データアダプタでUpdateメソッドを使用したいのですが、
インサート、アップデート、デリート事に、
データアダプタをインスタンス化しなければいけないのでしょうか?
0186デフォルトの名無しさん2007/02/12(月) 15:23:47
??
0187デフォルトの名無しさん2007/02/13(火) 10:06:48
using System;
using System.IO;
using System.CodeDom;
using System.CodeDom.Compiler;

public class test {
static void Main(string[] arg) {
CodeDomProvider cdp = new Microsoft.CSharp.CSharpCodeProvider();
CodeCompileUnit ccu = cdp.Parse(new StringReader(arg[0]));
}
}
これが

ハンドルされていない例外: System.NotImplementedException: CodeDomProvider はこのメソッドをサポートしません。
場所 System.CodeDom.Compiler.CodeDomProvider.CreateParserHelper()
場所 System.CodeDom.Compiler.CodeDomProvider.Parse(TextReader codeStream)
場所 test.Main(String[] arg)

こういうエラーになるんですが、「このメソッド」とは一体なんのことなんでしょうか?
0188デフォルトの名無しさん2007/02/13(火) 10:41:17
>>187
static
0189デフォルトの名無しさん2007/02/13(火) 10:54:31
>>188
ん、どういう意味ですか?
0190デフォルトの名無しさん2007/02/13(火) 11:04:54
>>187
CSharpCodeProvider.Parseは実装されてないよ
0191デフォルトの名無しさん2007/02/13(火) 11:10:11
>>190
え、そうなんですか?ドキュメントにはちゃんと
2.0から追加されましたと書いてあるんですが・・・
0192デフォルトの名無しさん2007/02/13(火) 11:34:21
>>191
メソッドが追加されただけ。
0193デフォルトの名無しさん2007/02/13(火) 11:37:59
>>185
同じUPDATE, INSERT, DELETEを何度も発行するという話なら
privateのインスタンスを最初に1回作ればokです。
そのインスタンスに全ほにゃららCommandプロパティを
設定しておきます。

普通SELECTとUPDATE, INSERT, DELETEは一組だと思うので
その組ごとにデータアダプタを作ります。
0194デフォルトの名無しさん2007/02/13(火) 14:43:30
<?xml version="1.0"?>
<Database>
  <Table>
    <ID>1</ID>
    <Week>
      <Sunday>false</Sunday>
      <Monday>true</Monday>
    </Week>
  </Table>
</Database>

↑のようなXMLファイルをDataSetのReadXmlで読み込んだ場合、
WeekのSundayのデータを取得するにはどうしたらいいんでしょうか?
01951942007/02/13(火) 14:58:49
自己解決。GetChildRowsで取得できました。
0196デフォルトの名無しさん2007/02/13(火) 21:45:55
キーが押されたらwinmm.dllを用いて対応するwaveを再生する

というプログラムをVS2005で書いているのですが、
いちいちファイルを開いて再生していると時間のロスが心配でメモリに読み込む仕様にしてみました。
Form1_Loadで、用意されたファイルをbyte[] subbufに読み込んで、ファイル数分回しながらbyte[][] bufにぶち込んでみました。

イベントを用いて押されたキーの入力を待ち
入力があった場合byte[][] bufを呼び出したいのですが
どのような設計にすればいいのでしょうか?
0197デフォルトの名無しさん2007/02/13(火) 21:49:50
適当にフォームのインスタンスメンバにでもしとけばいいんでねえの?
0198デフォルトの名無しさん2007/02/13(火) 21:53:51
どうでもいいがメソッド内で完結しないような API 呼び出しする時は
byte[] を GCHandleType.Pinned でピン留めしとかんとまずいぞ
0199デフォルトの名無しさん2007/02/13(火) 22:57:18
なんでもいいから教えろ
0200デフォルトの名無しさん2007/02/13(火) 23:30:59
何が知りたいのかわかんね
0201デフォルトの名無しさん2007/02/13(火) 23:33:30
というかなんでSoundPlayer使わないんだろ…1.1?
0202デフォルトの名無しさん2007/02/14(水) 04:54:55
おはようございます
馬鹿な質問いいですか?

参照設定しているDLLファイルがあるのですが
今はEXEと同じフォルダに置いて実行させています
これをEXEの中に取り込んで単独実行化させることは可能でしょうか?

おねがいします
0203デフォルトの名無しさん2007/02/14(水) 07:34:10
ilmerge
0204デフォルトの名無しさん2007/02/14(水) 10:24:17
usingとか正直飽きた
0205デフォルトの名無しさん2007/02/14(水) 11:32:24
PassiveモードにできるFTPツールを作成し、
FTPサーバーにつなげてテストしてみました。

ログインはできた(USERなどのコマンドは受け付けた)のですが、
ログイン後、"PASV"コマンドを実行したら例外エラーになってしまいます。
どうやらコマンドを受け付けないようです。
FFFTPを使って、そのFTPサーバーは"PASV"を受け付けるかやってみましたが、
何の問題もなく受け付けました。

コード上でも"PASV"をコマンドすれば何の問題もなく"227"のコードが
返ってくると思ったのですが・・・
PASVを受け付けさせるためにはもう一つ何か処理を加えないといけないの
でしょうか?
0206デフォルトの名無しさん2007/02/14(水) 11:40:53
例外エラーってなに
0207デフォルトの名無しさん2007/02/14(水) 11:47:18
初心者ってなんで難しい事したがるんだろう
他に方法いくらでもあるのに・・・
02082052007/02/14(水) 11:54:43
"PASV"はTry-CatchでCatch(Exception)に引っかかってしまいます。
"PASV"はStreamWriter型のWriteLine()とFlush()を
使ってコマンド実行しようとしています。この方法で
ログインまではできたので、"PASV"も大丈夫だと思ったのですが・・・


実現したいことは2つのFTPサーバーにつなげて、一方に"PASV"、
もう一方に"PORT"でつなげて、PASVからPORTへファイルを転送
したいと思っています。
0209デフォルトの名無しさん2007/02/14(水) 12:04:21
>>208
サーバが受け付けてくれないんじゃなくて、プログラムが落ちてるんだと思うけど。
その catch した Exception の中を見れば何が起ってるのかわかるべ。
0210デフォルトの名無しさん2007/02/14(水) 12:34:03
>208
むかし、カップラーメン買ってきてって頼まれて、
カップヌードル買っていったら、これ嫌いなんだよ!と怒られたのを思い出した。

カップラーメンだけじゃわからんっての。
02112052007/02/14(水) 13:16:57
209,210さん
ありがとうございます。
ログインした後、以下の関数によりPASVモードにしようとしています。

public int Pasv_Ftp(){
protected StreamWriter clientWriter = null;
protected StreamReader clientReader = null;
try{
clientWriter.WriteLine("PASV");
clientWriter.Flush();
string str = clientReader.ReadLine();
if (!str.StartsWith("227")){
return 0;}
return 1;
}
catch (Exception){return 2;}
}
0212デフォルトの名無しさん2007/02/14(水) 13:22:52
>>211
だから〜

> catch (Exception){return 2;}
> }

↑ここで catch してる Exception の中身を調べろって言ってんの。
02132052007/02/14(水) 13:32:49
212さん
ありがとうございます。早速調べてみます。
0214デフォルトの名無しさん2007/02/14(水) 15:03:44
なんで try してんのに catch の中で何もしないの?
そんなんだったら try する意味ないじゃん。
0215デフォルトの名無しさん2007/02/14(水) 16:24:32
家庭教師の
0216デフォルトの名無しさん2007/02/14(水) 16:34:29
try {
0217デフォルトの名無しさん2007/02/14(水) 16:34:52
おぱんちゅ見たいお^^;;;
クンクン匂い嗅ぎたいお
0218デフォルトの名無しさん2007/02/14(水) 16:35:33
}
0219デフォルトの名無しさん2007/02/14(水) 16:41:12
catch(Exception ex){
0220デフォルトの名無しさん2007/02/14(水) 16:42:32
お・・お・・おっぱいならいい?
だ、、だ、ダメかな?
おっぱいモミモミしたいお^^;;;
0221デフォルトの名無しさん2007/02/14(水) 16:43:42
GOTO *216
0222デフォルトの名無しさん2007/02/14(水) 16:47:52
つまんねえよオッサン
0223デフォルトの名無しさん2007/02/14(水) 17:28:02
} finally {
0224デフォルトの名無しさん2007/02/14(水) 17:39:23
throw new Exception(); }
0225デフォルトの名無しさん2007/02/14(水) 18:20:30
System.Environment.Exit();
0226デフォルトの名無しさん2007/02/14(水) 18:26:07
>>211
StreamWriter,Readerはそんな変なコードで動くの????

StreamWriter使わないからしらないけど、
ログインしたストリームはどうやってもらってるの?

=null なんてやってたらどうやっても動きそうにないが?

0227デフォルトの名無しさん2007/02/14(水) 18:45:03
>>226
nullで動くわけ無いだろ
0228デフォルトの名無しさん2007/02/14(水) 18:52:55
これぞまさしくぬるぽ
0229デフォルトの名無しさん2007/02/14(水) 18:54:16
たぶんあのコードは、広告とかに付いてる「写真はイメージです」と同じ。
0230デフォルトの名無しさん2007/02/14(水) 18:59:24
文字コードはユニコードでいいんか?
0231デフォルトの名無しさん2007/02/14(水) 19:04:03
Assembly asm = Assembly.LoadFile("twst.exe");
Type[] typ = asm.GetTypes();

このコードで独自DLLを参照に加えてるexeを読み込もうとすると、GetTypesの所で
実行側のディレクトリにDLLがねーよバーカって怒られるんですが、読み込み元の
ディレクトリからDLLを読み込むにはどうしたらいいでしょうか?
0232デフォルトの名無しさん2007/02/14(水) 19:04:48
初心者だから分からないだけだとおもうよ。
0233デフォルトの名無しさん2007/02/14(水) 19:32:51
PropertyBindingを何度設定してもデバッグのたびに無効になるよ。
どうすりゃいいんだよ。
0234デフォルトの名無しさん2007/02/14(水) 19:38:30
C#の場合には明示的な保存処理が必要
ttp://www.atmarkit.co.jp/fdotnet/dotnettips/438winsettings/winsettings.html
0235デフォルトの名無しさん2007/02/14(水) 19:39:54
ググったら大体答えが出てくるな。
0236デフォルトの名無しさん2007/02/14(水) 21:02:48
>>234
それはやってんだけどなあ、バグなのかな。
SP1入れてみようかな。
0237デフォルトの名無しさん2007/02/14(水) 22:19:31
>>231
参照してるDLLを先にロードしとけ。
まあ他のことでトラブっても知らんがね。
0238デフォルトの名無しさん2007/02/15(木) 06:42:23
Formの再描画のタイミングがよく分からないんですが、
Refresh() 以外にもTimer.Start() や Tickイベントが
起こるたびに再描画されますか?
0239デフォルトの名無しさん2007/02/15(木) 06:46:46
なんでやねん
02402382007/02/15(木) 07:03:10
入門書を勉強してるんですが、Refresh() を使って再描画してる部分と
使ってないにも関わらず再描画されてる部分があって、後者の場合は
タイミング的にそこら辺で再描画も同時に行われてるかと思ったんで、、

ちなみに「プログラムを作ろう!パソコン教科書」という本です。
0241デフォルトの名無しさん2007/02/15(木) 08:21:12
そういうときはタイマーを止めてみればそれが原因かどうかわかるだろう
0242デフォルトの名無しさん2007/02/15(木) 08:42:40
Invalidate
0243デフォルトの名無しさん2007/02/16(金) 01:22:07
テキストボックスへのドロップ時に、ドロップした位置(カーソル位置)に
文字列を挿入するにはどのようにすればいいのでしょうか?

「いったんクリップボードにデータを入れろ」というサイトを見つけてやって
みたのですが、この方法だとドロップした位置ではなく、ドラッグ開始直前の
キャレット位置に文字列が挿入されてしまい訳わかめです(><)
0244デフォルトの名無しさん2007/02/16(金) 01:22:49
>>238
他のアプリのウィンドウと重なった後や、リサイズ・最大・最小化等でも起こる。
ようはタイミングなんて気にしたらイカン。
0245デフォルトの名無しさん2007/02/16(金) 01:43:36
>>243
DropでGetCharIndexFromPosition とかで場所から文字のインデックスとって
SelectionStart, SelectionLength でカーソル移動してペースト

でいけないかしら?
0246デフォルトの名無しさん2007/02/16(金) 01:46:42
>>243
textBox1.AllowDrop = true;
textBox1.DragEnter += delegate(object sender, DragEventArgs e) {
    e.Effect = e.Data.GetDataPresent(DataFormats.UnicodeText) ? DragDropEffects.Copy : DragDropEffects.None;
};
textBox1.DragOver += delegate(object sender, DragEventArgs e) {
    TextBox textBox = sender as TextBox;
    textBox.Select(textBox.GetCharIndexFromPosition(textBox.PointToClient(new Point(e.X, e.Y))), 0);
};
textBox1.DragDrop += delegate(object sender, DragEventArgs e) {
    if (e.Data.GetDataPresent(DataFormats.UnicodeText))
        (sender as TextBox).SelectedText = (String)e.Data.GetData(DataFormats.UnicodeText);
};

こんなもんか。このままだと最後の文字の後ろにドロップできないが、その辺は適当になんとかしてくれ
0247デフォルトの名無しさん2007/02/16(金) 01:50:38
>>246
DragOverしたら選択状態が変わらんか?
0248デフォルトの名無しさん2007/02/16(金) 01:59:54
>>245>>246
ご返答ありがとうございます。
書き忘れましたが実は.NET1.1なんです。
上記を試してみたのですが、TextBoxにGetCharIndexFromPositionが無いようです。。。

で、GetCharIndexFromPositionがRichTextBoxにあるようなのでTextBoxから
置き換えて試してみています。
プロパティドラッグ&ドロップらしきものが無いようなので方法を調べてみて
わからなかったら再度お願いします
0249デフォルトの名無しさん2007/02/16(金) 02:03:17
>>247
選択解除されるがキャレットを自前描画しなくてよくなる。
0250デフォルトの名無しさん2007/02/16(金) 02:07:05
RichTextBoxなら自分で処理書かなくても大丈夫だろう
0251デフォルトの名無しさん2007/02/16(金) 02:13:36
>>250
RichTextBoxのAllowDropをTrueとしてみましたが、反応ないようです。
0252デフォルトの名無しさん2007/02/16(金) 02:17:58
ああ、1.1か。残念だったな。
0253デフォルトの名無しさん2007/02/16(金) 02:32:04
なぜか、VS2003でDrag&Drop関連のメニューが出てこないだけで、
イベントハンドラを手動で追加したら動きました。

>>246さんのコードをベースにDrop部分をクリップボード経由にしたところ、
末尾入力も出来るようになりました。

private void richTextBox1_DragDrop(object sender, System.Windows.Forms.DragEventArgs e) {
Clipboard.SetDataObject(e.Data.GetData(DataFormats.Text).ToString());
richTextBox1.Paste();
}

皆さん、本当にありがとうございました。
0254デフォルトの名無しさん2007/02/16(金) 05:46:37
すいません。SoundPlayerで普通のwavの再生は出来たんですが、
これをプログラム本体に埋め込むことは出来ますか?
画像はresxgenで埋め込めたんですが、・・・
0255デフォルトの名無しさん2007/02/16(金) 07:27:49
普通にプロジェクトに追加すればいいだろ
0256デフォルトの名無しさん2007/02/16(金) 10:38:51
ちょっと聞いてもいいですか、お願いします。
ToolStripButtonで、文字を表示しようと思ってるんですが
うまくいかず。

TextImageRelationプロパティをいろいろ変えてみたんですが出ず、
Overlayで重ねたいんですが、Textが現われんです。
なんかコードで操作必要なんでしょうか。
0257デフォルトの名無しさん2007/02/16(金) 10:58:50
DisplayStyle?
0258デフォルトの名無しさん2007/02/16(金) 11:02:30
>>257
あー、それか、わかりますた。
助かりましたです、ドモ!!
0259デフォルトの名無しさん2007/02/16(金) 13:25:58
>>254
2005ならプロジェクトのプロパティのリソースのページで追加するだけ
0260デフォルトの名無しさん2007/02/16(金) 18:27:12
C#でASPのWebを開発中です。

ObjectDataSourceを使ってオラクルのデータをGridViewに表示しています。
SelectMethodには、DataTableを返すGetData()を登録しているのですが、
ObjectDataSource.Select()という一回の呼び出しで、なぜかGetData()が2度
実行されてしまいます。
どなたかこの現象についてご教授願えないでしょうか?
0261デフォルトの名無しさん2007/02/16(金) 22:46:49
セキュリティホールのIISをインストールする気にならないので
WEB UI触ったことないが、これかな?


>ObjectDataSource.Select メソッド

>データ バインド コントロール
>ObjectDataSource コントロールが GridView コントロールなどのデータ バインド
>コントロールに関連付けられている場合、ページ コードから Select メソッドを呼び出す
>必要はありません。
>Select メソッドは、データ バインド コントロールによって直接呼び出されます。

0262デフォルトの名無しさん2007/02/17(土) 01:12:35
>>255>>259
すいませんIDE使わない方法はありませんか?
0263デフォルトの名無しさん2007/02/17(土) 01:29:45
resx書いてresgenで変換すりゃいいじゃない。

あるいはResourceWriterつかって自作するか。
0264デフォルトの名無しさん2007/02/17(土) 07:06:21
.NetFrameWorkのバージョンは現在1.0、1.1、2.0、3.0があります。
いろいろ調べてみたのですが、よく分からないので教えてください。

基本的にVS2002やVS2003で開発したものは1.1で動くので、1.0をアンインストール
してもかまわない。VS2005で開発したものは2.0と3.0で動くが、3.0は2.0に機能追加
したもので2.0の機能を使うので、3.0だけを入れられない。

という認識で間違いないでしょうか。無駄なものをHDの肥やしにしたくないので、
私のマシンはXpなんですが、1.1、2.0、3.0だけを入れて、1.0を消そうと思っています。
0265デフォルトの名無しさん2007/02/17(土) 12:54:14
なんでこんなとこでウダウダ言ってる間にMSの説明を読まないんだ?
0266デフォルトの名無しさん2007/02/17(土) 13:28:12
オープンファイルダイアログについて質問があります。
ファイルの種類のフィルターについてなのですが、
このフィルターのプロパティ項目のストリングを弄るだけで、
原理的に変更がなされるはずですよね。
それとも、他のプロパティに関連してるとかそんな事もあるのでしょうか?

自分の場合はストリングをどんなに弄っても、何も変更がなされないのです。
前使ったときはそんな事は無かったのですが、、、。
つまり、以前はフィルタープロパティは直ぐに変更できました。

それとも、これは、何らかのバグなのでしょうか?
0267デフォルトの名無しさん2007/02/17(土) 13:29:17
"ビットマップ画像|*.bmp|全てのファイル|*.*"
こんな感じなのですが、、、。
0268デフォルトの名無しさん2007/02/17(土) 13:33:58
コードは?
0269デフォルトの名無しさん2007/02/17(土) 13:55:22
すいませんでした。
一応自己解決しました。

本当に初歩的なことで、勘違いしてました。
どうも、済みませんでした。
0270デフォルトの名無しさん2007/02/17(土) 15:36:10
TextboxのReadOnryをTrueにすると中の文字が
灰色になってしまうのはなんとかなりませんか?
0271デフォルトの名無しさん2007/02/17(土) 15:41:23
背景は灰色かもしれないけど文字は黒いぜ
02722702007/02/17(土) 15:48:41
>>271
すばやいレスthxです。

Textboxの背景色はBackgroundImageで白くできたのです。
表示される文字が灰色なのは気のせいってことですな。
0273デフォルトの名無しさん2007/02/17(土) 18:18:18
>>264
1.0と1.1を共存させるか、1.0を削除するかは
ttp://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=7233&forum=7
のjittaさんのコメントを参考に考えてみてはどうでしょう。

それと2.0と3.0については
ttp://www.atmarkit.co.jp/fdotnet/insiderseye/20060705teched06boston/teched06boston_01.html
の記事が参考になるでしょう。

個人的な意見としてOSがxpを使用されているということと、VSがまだ完全に3.0に対応していない
という点から、3.0のインストールは時期早々だと思っています。また1.0の削除は、使用マシンが
仕事でつかうものなら止めたほうがいいかもしれません。
0274デフォルトの名無しさん2007/02/17(土) 18:26:49
×時期早々(じきそうそう)
○時期尚早(じきしょうそう)
0275デフォルトの名無しさん2007/02/17(土) 20:12:18
×不幸のズンドコ
○不幸のドンゾコ
0276デフォルトの名無しさん2007/02/17(土) 20:13:32
×ギブス
○ギプス
0277デフォルトの名無しさん2007/02/17(土) 20:54:27
//sle_1:旧番号
//sle_2:旧番号
long Ai=0
string code,old_id
int i
old_id=trim(sle_1.text)
for i=17 to 1 step -1
Ai=Ai+(long(mid(old_id,i,1)))*(mod(2∧((18)-i),11))
next
choose case mod(Ai,11)
case 0
code='1'
case 1
code='0'
case 2
code='x'
case else
code=string((12)-mod(Ai,11))
end choose
sle_2.text=old_id+code

上記のプログラミングの意味を!!
HELP
0278デフォルトの名無しさん2007/02/17(土) 20:57:58
C# じゃないのでスレ違いだな
0279デフォルトの名無しさん2007/02/17(土) 21:28:47
そのキモイ言語なに?
0280デフォルトの名無しさん2007/02/17(土) 21:34:56
どこに行ったら教えてもらえるのでしょうか・・・・
0281デフォルトの名無しさん2007/02/17(土) 21:40:31
ttp://www.qianfang.com/bbs/showthread.php?t=166

もとは↑ここのです
0282デフォルトの名無しさん2007/02/17(土) 21:48:01
PowerBuilderじゃねえの?
0283デフォルトの名無しさん2007/02/17(土) 21:49:05
スレ立てるまでもないとかそんな感じのスレで聞いてみ
演算そのもののは大して言語に依存してるわけでもなさそうだしな

しかしこの VB に宣言部だけ C を取り入れたような文法はキモいな
PowerScript とか言う言語らしいが
02842042007/02/17(土) 21:53:23
>>283
有難うございました!((+_+))
0285デフォルトの名無しさん2007/02/17(土) 22:03:59
>>281
中国サイトに誘導するな!

ウィルスが怖いじゃないか!!!
0286デフォルトの名無しさん2007/02/17(土) 22:04:44
>>282
へえ。調べてみたけどやっぱりキモイなあ
いつからあるのか知らないけれど、類似する言語は山ほどあるのに独自文法を作っちゃうあたり特に…
0287デフォルトの名無しさん2007/02/17(土) 23:17:33
PowerBuilderって結構古いよ。
VB2の頃にはもうあった。
0288デフォルトの名無しさん2007/02/18(日) 00:36:22
C#はCと思っちゃいかん、どちらかと言うとVBだ
0289デフォルトの名無しさん2007/02/18(日) 00:39:31
なにを今更そんな当たり前のことを
0290デフォルトの名無しさん2007/02/18(日) 01:37:22
いやそもそも Delphi だ

……で何が?
0291デフォルトの名無しさん2007/02/18(日) 14:34:41
言語自体はVB(非.NET)とはかけ離れてるだろ
VBみたいに使えるようにIDEが頑張ってるだけで
0292デフォルトの名無しさん2007/02/18(日) 14:44:58
VBもIDEが頑張ってるだけだから
0293デフォルトの名無しさん2007/02/18(日) 14:46:02
VBのIDEは頑張ってるな
VB.NETのIDEは頑張りすぎだが…
0294デフォルトの名無しさん2007/02/18(日) 15:51:40
VBさわってないけどintellisenceは C#以上なのか
ずっとBCBしか触って無くて
はじめて2005でVC#触った時 あまりの手回しの良さに驚いた

こりゃスゲーとおもってVC++を使ってみると intellisenceのあまりの放置加減に…
BCB以下じゃん Ctrl+j Ctrl+j !
0295デフォルトの名無しさん2007/02/18(日) 15:56:25
インテリセンスはVB.NETとC#ならC#の方が賢いと思うよ。

これに慣れちゃうと他の言語使えなくなるんだけどね
0296デフォルトの名無しさん2007/02/18(日) 15:58:25
>>295
w
0297デフォルトの名無しさん2007/02/18(日) 16:05:57
あんまかわらんだろう。VB.netとC#ならば。
0298デフォルトの名無しさん2007/02/18(日) 16:11:02
C#は一文字目から補完候補でるようになったのに、VBはまだなんだよなあ。
0299デフォルトの名無しさん2007/02/18(日) 16:23:07
VBは名前空間表示してくれなかったり、
クラスの色が変わってくれなかったり
不便なとこもある。
0300デフォルトの名無しさん2007/02/18(日) 16:35:15
>>298
一文字も糞も、ドット(.)打った瞬間に出るだろw
VBだろうがC#だろうが
0301デフォルトの名無しさん2007/02/18(日) 16:46:45
C#はCと打てばConsoleあたりの補完候補が出るが、VBはでない。
どうしてドットが出てくるのかわからない。
0302デフォルトの名無しさん2007/02/18(日) 16:47:00
>>300
C#だと、メソッドの中で一文字目をタイプすると型名の候補が表示される。
VBだとキーワード 「Dim」が必要だから、構造的にこれは無理。なのでこれは仕方ない。

C#書いてて便利だと思うのは new の時の型名候補が的確なことかな。
0303デフォルトの名無しさん2007/02/18(日) 16:51:51
お前ら知らないのか
VBでもCtrl+Spaceで候補がでてくるんだぞ
0304デフォルトの名無しさん2007/02/18(日) 16:58:17
使ってみたけど、VBはintellisence弱いでしょ。
コンテクストを全く理解してくれず、メソッドの外なのにクラスのプロパティを候補に出したりしよる。

スニペットもマウス使わないと入力できなくて使い物にならん。
0305デフォルトの名無しさん2007/02/18(日) 17:01:09
>>303
出るには出るが、知ってる単語を全部表示してくれるじゃん…
0306デフォルトの名無しさん2007/02/18(日) 17:09:12
>>302
それってVBでは"as"って打った後と同じ状態に過ぎないのでは?w
0307デフォルトの名無しさん2007/02/18(日) 17:32:20
tryと打ってエンター押したら
Catch ex As Exception
End Try
が挿入されたのは衝撃だった
Exceptionをcatchするのは良くないんじゃなかったっけ?
逆に例外の握りつぶしにつながるような…
0308デフォルトの名無しさん2007/02/18(日) 17:35:32
そういえばintellisenceで候補が出た時に矢印キーとマウス以外で
選択肢を上下に移動できないのかね
ホームポジションのまま動かせるといいんだけど
キーカスタマイズにも項目ないし
矢印キーまでいちいち 手を伸ばすのめんどくさいんだよね

選択確定するまで単語うちこめってか
0309デフォルトの名無しさん2007/02/18(日) 17:40:05
>>308
禿同
0310デフォルトの名無しさん2007/02/18(日) 17:41:52
漏れは窓使いの憂鬱でなにもかもEmacs風にしてあるから、
大抵のことはホームポジションで出来る。
intellisenseの候補はC-vとかM-vとかでページ単位にスクロールさせてる。

よそ行ったときイラつくのが難点だが。。。
0311デフォルトの名無しさん2007/02/18(日) 17:59:10
>>310
muleかじった程度の俺では そこまで変更できん……
Windows標準のCtrl-c,v,x,zなんかは変えたくないし
0312デフォルトの名無しさん2007/02/18(日) 18:21:33
>>307
握りつぶし全般が悪いわけじゃないでしょ。
03132812007/02/18(日) 20:37:48
>>285

ごめんなさい・・・
中国のはウイルス多いんですね。
今後注意します。(o_ _)o))
0314デフォルトの名無しさん2007/02/20(火) 03:42:50
レスがないw
0315デフォルトの名無しさん2007/02/20(火) 17:43:37
すいません、C#知識0なんですが、
なにから始めればよいでしょうか?
C言語は、printfしか知りません。
すいません。
0316デフォルトの名無しさん2007/02/20(火) 17:45:19
C#とCは全く別言語だから気にすることではないが、
何か既習言語がないなら適当に入門書でも買ってくるといいよ。
0317デフォルトの名無しさん2007/02/20(火) 18:11:17
なにをそんなに謝ってるの?
0318デフォルトの名無しさん2007/02/20(火) 18:29:15
お前みたいに何でもイチャモンつけるやつがいるから
0319デフォルトの名無しさん2007/02/20(火) 18:55:43
printf()が分かれば可変長引数がわかるさ

printf(const char*, ...);  //関数宣言
0320デフォルトの名無しさん2007/02/20(火) 18:58:55
Write()が分かれば可変長引数がわかるさ

Write(string format, params object[] arg);  //メソッド宣言
0321デフォルトの名無しさん2007/02/20(火) 19:02:32
初心者です、まったく分かりませんと言うのは釣りだろうな
普通入門書とか買ったり入門サイト見て、それに従って憶えて
分からない所をこことかで聞くものだ
0322デフォルトの名無しさん2007/02/20(火) 19:05:01
初心者なのでわからないので教えてほしい
お願いします
0323デフォルトの名無しさん2007/02/20(火) 19:27:09
質問です。
読み込んだstring型の文字列を1行毎(改行コード毎)に処理(とりあえず別のstringにコピー)したいのですが
どのように処理するのが一般的でしょうか?
0324デフォルトの名無しさん2007/02/20(火) 19:33:17
>>323
C#でSplit関数の代わりになるものは?: .NET Tips: C#, VB.NET, Visual Studio
http://dobon.net/vb/dotnet/vb2cs/vbsplit.html
0325デフォルトの名無しさん2007/02/20(火) 19:37:53
>>323
StringReaderに突っ込んでReadLine
0326デフォルトの名無しさん2007/02/20(火) 19:40:38
>>324
�dクス。
ここの通りに試してみます。
0327デフォルトの名無しさん2007/02/20(火) 19:42:07
Vb互換ライブラリ使うのは汚い感じがするな
03283232007/02/20(火) 19:44:27
>>325
こんな関数があったとは…
どうもです。

>>324さん、>>325さん、ありがとうございました。
0329デフォルトの名無しさん2007/02/20(火) 20:40:26
っていうか、2.0以降なら普通にStringのSplitでいけるんだけどね
0330Start ◆C2QJEAJVdg 2007/02/21(水) 07:19:06
4月からPGになるStartと申します。
仕事上C#をやることになりました。
現在、C#の知識は皆無といっても過言でありません。
なので、4月までには少しでも社員に追いつけるように努力します。
なので。これからこのスレにはお世話になると思いますのでよろしくお願いします。
とりあえず、今理解しているのは意味段落・形式段落・本文で成り立っているって
ことです。そのほかにもMainには一定の形があるというのも理解しております
public static void Main(string[] args)
昨日の今日はじめたので今はこれぐらいですが4月までには色々と出来るように
なりたいと思いますのでC#を勉強中の皆様頑張りましょう。

今、変数に関してちょこっと勉強してみたのですがintは整数を表していますよね?
で、doubleは少数。では、stringとあるんですがこれはいったいどうゆうことでしょう?
整数ではt=3の場合は int t=3 なんですがstringはどういった式ができるんでしょうか?
0331デフォルトの名無しさん2007/02/21(水) 07:32:19
そんな事疑問に思うってことはプログラミング自体の知識が皆無なんだろ?
入門書買って一通り勉強してからにしてくれ。
0332デフォルトの名無しさん2007/02/21(水) 07:33:36
string str = "文字列" ;
0333デフォルトの名無しさん2007/02/21(水) 07:34:08
釣りだろ
0334デフォルトの名無しさん2007/02/21(水) 07:40:27
こんなんの上司になってしまったら自殺したくなるな。
0335デフォルトの名無しさん2007/02/21(水) 07:44:09
いまどき能力も確かめずに採る会社ないだろ…
0336デフォルトの名無しさん2007/02/21(水) 08:08:44
釣りだろ
PGで飯食っていくなら、入門書かってある程度独学で理解出来なきゃ
役にたたん
0337Start ◆C2QJEAJVdg 2007/02/21(水) 08:23:54
>331
入門書は会社から提供されたものがあるんでそれで頑張ります。

>332
ありがとうございます。

>333
釣りじゃないです。

>334
そうですかOrz しかし、そうならないためにも頑張ります。

>335
プログラミング知識は皆無と伝えてあります初めはトライアル雇用として働きます。

>336
はい。昨日の今日はじめたばかりなのでまだまだ理解するところはたくさんありますので
頑張っていきたいと思います。
0338Start ◆C2QJEAJVdg 2007/02/21(水) 08:27:21
とりあえず、今はプログラムとはどういった構造で出来てるかを勉強しています。

ttp://www12.plala.or.jp/dokugaku/main/1/2.html

今は参考書も含め主にこのサイトで色々勉強しております。
本当に無知でプログラミングのプの字もわからない状態です。
0339デフォルトの名無しさん2007/02/21(水) 08:36:05
こんな所に書き込みしてるなら、まず本屋回れ
0340Start ◆C2QJEAJVdg 2007/02/21(水) 08:41:59
>339
そうですね。ありがとうございます。

後、秋には基本情報処理の試験があるんです。
一応、その時急にゆうと信憑性がないんで今いっときます。
ちなみに基本情報の知識も皆無なので本当にやることが山ほどあります。
0341デフォルトの名無しさん2007/02/21(水) 08:49:06
転職したほうがいいよ
0342デフォルトの名無しさん2007/02/21(水) 08:51:50
**********重要**********

    Start ◆C2QJEAJVdgあぼーん推奨

**********重要**********
0343Start ◆C2QJEAJVdg 2007/02/21(水) 09:09:02
>341
転職ですか。今は内定しやる気があるので転職は考えておりません。
今、自分が出来ることをしそれでも無理だと感じたら別の職種につこうかとは思っております。

とりあえず、先ほどのサイトを全て理解した後、参考書を購入しにいきます。
0344デフォルトの名無しさん2007/02/21(水) 09:36:06
NEET脱出おめでとう。
でもここはあなたのBlogじゃないから。
0345Start ◆C2QJEAJVdg 2007/02/21(水) 09:41:11
>344
NEETじゃないですよ学業→就職で仕事もやる気満々なんで。
そうですね。何かブログみたいな感じなんでもぐります。
質問があるときはよろしくお願いします。
0346デフォルトの名無しさん2007/02/21(水) 10:09:38
変数の基礎知識もないような人間をプログラマとして雇用するのも豪気だなw
コネ系?
0347Start ◆C2QJEAJVdg 2007/02/21(水) 10:27:08
>346
変数基礎は理解しました。
コネ系じゃないですよ。
0348デフォルトの名無しさん2007/02/21(水) 10:39:20
相 手 に す ん な
0349デフォルトの名無しさん2007/02/21(水) 11:05:06
ていうか、別に普通にあるでしょ、素人を採用って。
これからどれだけ伸ばせるかが問題であって。

まあでも、まずはサイトと書籍で勉強だな。
0350デフォルトの名無しさん2007/02/21(水) 11:13:22
どうでもいいが>>338で勉強するのはやめといた方がいいと思うけどな
意味段落・形式段落・本文って何だよw
0351デフォルトの名無しさん2007/02/21(水) 11:14:08
雇う側はそれでいいが、教える側はつらい
0352Start ◆C2QJEAJVdg 2007/02/21(水) 11:14:40
>349
はい。ありがとうございます。
ただいま、boolを理解しつつあります。おもしろいですね。
が
しかし、私の投稿はこの板違いと自負しておりますので私事情の発言は控えさしていただきます。
なので、これからはスレタイにのっとりわからないことを質問さしていただくようにします。
住民の皆様板汚しすいませんでした。
0353デフォルトの名無しさん2007/02/21(水) 11:30:12
>>Startさん
まぁ、基本とかどうでもいいよ。
フォームをちょちょっと作って、このボタンを押したら〜とかこのフォームが更新されたら〜とかは
雷マーク押してイベント追加して、処理をかけばいいだけさ。
簡単なもんだよプログラムなんて。
昔はWINMAIN、WINPROCからつくちゃってさ。面倒なことこの上なかった。
0354Start ◆C2QJEAJVdg 2007/02/21(水) 11:39:03
>353
助言ありがとうございます。
現在、コンパイルのやり方がいまいちわかっていないために実行することができません。
コンドプロンプトでコンパイルしようとしてるんですができません。
コンパイルに関しては自分で解決しようとしてるんですがお一つ質問があります。
class TRICK
{
Main
{
TRICK is wonderful.
}
}
とありますが【[.]】やタブなどは見易さ重視のタメにあるんでしょうか?
そのほかにも何か意味はあるんでしょうか。
0355デフォルトの名無しさん2007/02/21(水) 11:51:15
質問をするレベルにも達していない
帰れ
0356デフォルトの名無しさん2007/02/21(水) 12:25:54
おまえらはおれがプログラムしてやったんだぞ
0357デフォルトの名無しさん2007/02/21(水) 12:26:44
コンドプロンプト?
コンドームプロンプト?
0358デフォルトの名無しさん2007/02/21(水) 15:27:20
TreeNode に Keyって概念があるんですが、どうもあわてて 2.0から
入れたらしく説明がいまいちしっくり来ないんですがいかがですか。

どうも説明読むと TreeNode.Name プロパティ と同じらしいんですが
これって混乱の元になるかと。

key と読んだり、名前と読んだり、Nameプロパティと言ったりするのは
やめて、KeyならKeyで統一するべきじゃないでしょうか?それとも
NameプロパティならNameプロパティで統一するべきでhないでしょうか。

どうでしょう?
0359デフォルトの名無しさん2007/02/21(水) 15:29:46
もっともKeyは従来の TreeView や Delphi のそれにはあったかと思うんですが
やっぱり検索に時間かかるんでKeyも必要って感じでいれた感じです。

でも用語は混乱を生じないようにした方がいいかと思うんですよね。
0360デフォルトの名無しさん2007/02/21(水) 15:49:40
あほ
0361デフォルトの名無しさん2007/02/21(水) 16:04:15
グレースケールのBitmap画像データが3つあって、
それらを適当にRGBに割り当ててカラー画像を作りたいのですが、
そのようなクラスありますか?
0362デフォルトの名無しさん2007/02/21(水) 16:06:16
色変えて重ねて描画すれば
0363デフォルトの名無しさん2007/02/21(水) 17:12:19
FTPでnetworkstreamからデータを読み込もうとしています。

StreamReader sr = new StreamReader(networkstream, Encoding.ASCII);

while ((temp = sr.ReadLine()) != null)
{
  //コード
}

のようにして1行ずつ読み込もうとしています。
whileの行にブレークポイントを設定してsrの状態を観察しようとすると、
最初に1行読み込むとコードがストップしてしまいます。
エラーも起きずにReturnを処理したかのように終わってしまいます。
networkstreamからReadLineで読み込むのはまずいのでしょうか?
0364デフォルトの名無しさん2007/02/21(水) 17:20:24
一行分しかデータ届いてないんじゃないの?
0365デフォルトの名無しさん2007/02/21(水) 17:20:38
改行が来るまでブロックされて当然じゃん
0366デフォルトの名無しさん2007/02/21(水) 17:33:16
>>364
1行分しかデータが届いていなければ、whileの行に戻ってきたときにsr.ReadLine()がnullを返すと思うのですが、
そうはならないのでしょうか?
0367デフォルトの名無しさん2007/02/21(水) 17:46:27
「コードがストップ」をくわしく
0368デフォルトの名無しさん2007/02/21(水) 18:02:46
>>367
意味不明なのはわかります。
なんと説明すればいいのかわからないのですが、そのメソッドの処理が終わってしまいます。

//コード

の中でブレークポイントを設定して一度止めます。
そうするとたしかにtempの中に文字列が格納されていますので1行は読み取ってます。
で、srはどうなっているのかとおもってカーソルをあわせると

EndOfStream 前の関数の評価がタイムアウトしたため、関数の評価は無効になりました。続けて実行し、再度関数の評価を有効にしてください。 System.IO.Stream

と表示されます。F11でコードを進めようとするとコンソールが出てきてそこで止まってしまいます。
VisualStudioのほうは(実行中)のままです。

説明があやふやなのですが、
http://pc2.2ch.net/tech/kako/1039/10396/1039646808.html
ここの35と似ているのかもしれませんが、それにレスがついてないのでわかりません。
0369デフォルトの名無しさん2007/02/21(水) 18:17:50
すみません。質問したいのですがよろしいでしょうか。
初心者なんですが引数の使い方についてわかりません。

public delegate double f1(double[] f2);

public int keisan(f1 x)
{

}
↑この関数内で引数xを使いたいのですが、認識してくれません。
この使い方は間違っているのでしょうか?
0370デフォルトの名無しさん2007/02/21(水) 18:20:22
>>368
自分で意味不明だったら他人に判るわけないだろw

っていうか何が問題なの?
動かないの?
0371デフォルトの名無しさん2007/02/21(水) 18:22:16
>>369
認識ってなに?
0372デフォルトの名無しさん2007/02/21(水) 18:22:52
型、名前空間名にXが見つかりませんでしたとなってしまいます。
Xを使うには?
0373デフォルトの名無しさん2007/02/21(水) 18:22:55
>>368
ブレークポイントの話はいいから、結局なんなんだ?
03743712007/02/21(水) 18:25:41
>>372
xが大文字になってるけどまさかそれじゃないだろうなw
0375デフォルトの名無しさん2007/02/21(水) 18:26:26
それはないです。
0376デフォルトの名無しさん2007/02/21(水) 18:32:38
ポインタを使いたいときunsafeで使うのは良くないんですか?
配列やrefにしたほうが良いのでしょうか?
0377デフォルトの名無しさん2007/02/21(水) 18:42:00
>>368
どうでもいいからtry catchで例外のひとつでも表示してみろい。
0378デフォルトの名無しさん2007/02/21(水) 18:53:15
>>376
わざわざポインタを使う理由による
0379デフォルトの名無しさん2007/02/21(水) 18:54:20
>>375
コードさらしてみ?
0380デフォルトの名無しさん2007/02/21(水) 19:18:38
>>369
public int keisan(f1 x) {return (int) x(new double [] {1.1, 2.2});}
0381デフォルトの名無しさん2007/02/21(水) 19:23:59
はじめましてです。
今掲示板作っているんですが、
どうしても先に進めないのでよかったら教えてください。

グリッドビューのページング機能をtrueにしてたんですが、
データベースに格納や参照するコードを書いたら
ページングが出来なくなってしまったんです。
エラー文は、「GridView 'GridView1' はハンドルされていないイベント
PageIndexChanging を送出しました」です。
どうしたらいいか教えていただけますか?
すいませんが、よろしくお願いします。

0382デフォルトの名無しさん2007/02/21(水) 19:33:57
>>381
>データベースに格納や参照するコードを書いたら 
>ページングが出来なくなってしまったんです。 

使い方が悪いとしか答えようがない。
0383デフォルトの名無しさん2007/02/21(水) 19:35:31
Gridイベントの設定が出来てないのでは?
03843632007/02/21(水) 19:36:49
using System;
using System.Collections.Generic;
using System.Text;
using System.Net;
using System.Net.Sockets;
using System.IO;
using System.Threading;

namespace FTPSample{
  class Program{
    static void Main(string[] args){
      TcpClient tcp = new TcpClient("localhost", 21);
      NetworkStream ns = tcp.GetStream();
      Thread.Sleep(800);//少し待つ
      StreamReader sr = new StreamReader(ns, Encoding.ASCII);
      string temp = "";
      int LastCode = 0;
      try{
        while ((temp = sr.ReadLine()) != null){
        LastCode = int.Parse(temp.Substring(0, 3));//ここにブレークポイントを置いてsrを見ると止まる
        if (LastCode != 0)
          break;
        }}
      catch (Exception ex){ Console.WriteLine(ex.ToString());}
      Console.WriteLine(LastCode);
      Console.Read();
    }
  }
}
0385デフォルトの名無しさん2007/02/21(水) 19:37:48
Gridイベントの設定・・・もう一度見てみます。
ありがとうございました。
03863632007/02/21(水) 19:41:26
ローカルマシンでFTPサーバーが動いています。
これを実行するとコンソールに220と表示されます。
それでいいのですが、
LastCode = int.Parse(temp.Substring(0, 3));
のところにブレークポイントを置いてsrにマウスカーソルを当ててどうなっているか見ようとすると
コードが止まってしまいます。

「srにマウスカーソルを当てると止まる」というのをどういう風に説明すればいいのかわからずにスレを汚してすいません。
これが「srにマウスカーソルを当てても止まらない」状態にするにはどうすればいいでしょうか?
0387デフォルトの名無しさん2007/02/21(水) 19:49:06
何で今日はこんなに客が多いの?
0388デフォルトの名無しさん2007/02/21(水) 19:52:13
>>386
ヒント:ネットワーク
0389デフォルトの名無しさん2007/02/21(水) 19:54:53
>>380
そんなところはどうでもいい
たぶんf1の定義位置がおかしい
0390デフォルトの名無しさん2007/02/21(水) 19:56:33
>>369
ちゃんとできるぞ。

public delegate double f1(double[] f2);

public int keisan(f1 x)
{
return (int)x(new double[] {1.1, 2.2} );
}

private double y(double[] param)
{
return param[0] + param[1];
}

private void button1_Click(object sender, EventArgs e)
{
System.Diagnostics.Debug.WriteLine(keisan(y).ToString());
}
0391デフォルトの名無しさん2007/02/21(水) 19:58:03
定義の位置が悪いんだろ?
0392デフォルトの名無しさん2007/02/21(水) 19:59:31
>>386
ようするにプログラムの動作は問題なくて、デバッガの機能の話しをしてるのか?
0393デフォルトの名無しさん2007/02/21(水) 20:01:31
>>386
タイムアウトってわかるかな?
03943632007/02/21(水) 20:12:52
>>388 >>393
確かにずっと放置しておけばタイムアウトするのはわかります。
しかし、それならwhileの行にブレークポイントを置いてそこで止まってから少し待って
同じようにsrを見たら切断されていると思います。
1行読み取ったあとすぐに切断されてしまうようなので困ってます。

でも、どうやら私の質問はあまり性質のいいものではなさそうな雰囲気なので
このあたりで撤退いたします。
もう少し現象を絞れたらまた質問させていただきたいと思います。
0395デフォルトの名無しさん2007/02/21(水) 20:21:10
private int simp(ref double[][] p,ref double[] y, ref f1 []x)
{
double[] psum=new double[10];
p[i][j] = psum[j] = 0.5*(p[i][j]+p[ilo][j]);
y[i] = (x)(psum);
}
かなり中身を省略していますがこのような形です。
このときのxでエラーが出てしまいます。
0396デフォルトの名無しさん2007/02/21(水) 20:21:15
>>394
タイムアウト=「ずっと放置」とは限らない。
0397デフォルトの名無しさん2007/02/21(水) 20:22:33
>>395
さっきと全然ちがうじゃねーか!
0398デフォルトの名無しさん2007/02/21(水) 20:23:25
>>395
で、なんで ref f1 x ってしてるの?
0399デフォルトの名無しさん2007/02/21(水) 20:24:53
(x)????
0400デフォルトの名無しさん2007/02/21(水) 20:26:54
なんだ釣りかよ…orz
0401デフォルトの名無しさん2007/02/21(水) 20:28:27
>>394
ftpにどんなコマンド送ってるの?
0402デフォルトの名無しさん2007/02/21(水) 20:30:16
>>395
勉強しなおせ。

> ref f1 []x
まずはここからだな。
0403デフォルトの名無しさん2007/02/21(水) 20:32:05
すいません。こんな感じです。
private delegate double f1(ref double[] f);
private int simp(ref double[][] p,ref double[] y, f1 []x)
{
double[] psum=new double[10];
p[i][j] = psum[j] = 0.5*(p[i][j]+p[ilo][j]);
y[i] = (x)(psum);
}
04043632007/02/21(水) 20:33:58
>>401
コマンドを送る以前に接続したときの220を受け取りたいのですが
それの処理中にネットワークが切断されてしまいます。
ストリームから読み取れない状態になります。

>>384のコードを実行するとちゃんと220が帰ってくるのですが、
途中でブレークポイントを置いたり、ほかのコードを間に挟んだりすると
止まってしまいます。
0405デフォルトの名無しさん2007/02/21(水) 20:34:25
ブレークしてる間にタイムアウトしてるんだろうが
0406デフォルトの名無しさん2007/02/21(水) 20:35:43
>>403
* refって何か分かってんのか
* xの型は何か分かってんのか
* なんで(x)って括弧で括ってんだよ
0407デフォルトの名無しさん2007/02/21(水) 20:49:35
(x)はおかしいのですか?
C++で作ったプログラムをC#でやっているんですが、よくわかりません。
0408デフォルトの名無しさん2007/02/21(水) 20:56:40
やっぱりC++厨だったか。
なんとなくそんな気がしたんだが…
デリゲートは関数ポインタじゃないぞ。

あと次元を考えろよな。
0409デフォルトの名無しさん2007/02/21(水) 21:11:36
>>407
C++とC#は全く別言語なんだから一からマニュアル読めよ。
0410デフォルトの名無しさん2007/02/21(水) 21:42:42
>>403
・refの意味がない。Array型は参照型
・xはパラメータであって型ではない
・y[i]はdouble, xはf1[]で型が合わない
0411デフォルトの名無しさん2007/02/21(水) 21:50:21
C#でポインタ使いたいんならC++にしろよ
良く言われるがC#はCじゃないどっちかと言うとVBだ
ポインタ使うにもDELL使ってデータ渡すとかその位だな
0412デフォルトの名無しさん2007/02/21(水) 21:51:44
>>411
×DELL

○DLL
0413デフォルトの名無しさん2007/02/21(水) 21:53:03
(´・∀・`)ヘーDELLってなんだろう知らないと馬鹿にされるそうだぐぐってみよう……




        ∧∧
       ヽ(・ω・)/   ズコー
      \(.\ ノ
    、ハ,,、  ̄
     ̄

0414デフォルトの名無しさん2007/02/21(水) 21:59:55
勢い余ってミスタッチしただけだ
Dキーの上がEキー
0415デフォルトの名無しさん2007/02/21(水) 22:06:22
初心者です。
本を5冊買いました。たくさんググりました。
でも分かりません

false=ファルス?フォルス?
int=イント?インテ?

ガベージコレクション?ガーベジコレクション?

教えて下さい、まじめに。
0416デフォルトの名無しさん2007/02/21(水) 22:07:19
>>415
すっこんでろ
0417デフォルトの名無しさん2007/02/21(水) 22:13:30
>>416
イヤ本気なんですよ。
活字の情報の限界ですよね・・・・

ちょっと人に説明する機会がありまして・・
ちなみに学生時代にプログラム習う年代ではないので
本当に分からないのです
0418デフォルトの名無しさん2007/02/21(水) 22:14:43
http://dictionary.goo.ne.jp/voice/f/00030585.wav
0419デフォルトの名無しさん2007/02/21(水) 22:17:40
>>418
そのURLじゃわからねえ。「フォース」に聞こえる。
0420デフォルトの名無しさん2007/02/21(水) 22:25:30
>>418
そこのボイスのトップどうやってはいるの?
0421デフォルトの名無しさん2007/02/21(水) 22:29:52
フォゥルス
0422デフォルトの名無しさん2007/02/21(水) 22:33:01
インテと読むならインテジャーと読もうよ。
0423デフォルトの名無しさん2007/02/21(水) 22:35:12
>>420
http://dictionary.goo.ne.jp/index.html?kind=ej
0424デフォルトの名無しさん2007/02/21(水) 22:35:24
インテジャーだから迷うんじゃね?
0425デフォルトの名無しさん2007/02/21(水) 22:37:44
>>423
すぺっしょーるスァンクス!
0426デフォルトの名無しさん2007/02/21(水) 22:38:40
>>423
ちょっ、そこは分かるんだってばw
0427デフォルトの名無しさん2007/02/21(水) 22:43:21
インテは聞いたことはないな。
0428デフォルトの名無しさん2007/02/21(水) 22:47:03
えなーぶれど
ビジブル
0429デフォルトの名無しさん2007/02/21(水) 22:50:17
フォゥルスw
0430デフォルトの名無しさん2007/02/21(水) 23:00:55
http://jibun.atmarkit.co.jp/scenter/bbs/viewtopic.php?topic=5005&forum=23

こっちでやれ
0431デフォルトの名無しさん2007/02/21(水) 23:04:10
>>362
ヒントをおくれ
0432デフォルトの名無しさん2007/02/21(水) 23:35:20
>>431
1. レンダーターゲットを作る
System.Drawing.Graphics.FromImage メソッド
System.Drawing.Bitmap クラス

2. ソースとColorMatrix変えてターゲットに描画
System.Drawing.Graphics.DrawImage メソッド
System.Drawing.Imaging.ColorMatrix クラス
System.Drawing.Imaging.ImageAttributes クラス

たぶんできる
0433デフォルトの名無しさん2007/02/21(水) 23:38:04
>>432
thx
ためしてみる
0434デフォルトの名無しさん2007/02/21(水) 23:39:44
いい加減にスレ無駄に消費して遊ぶのやめろ
0435デフォルトの名無しさん2007/02/22(木) 01:15:54
>>433
メモリを直接触ったほうが手っ取り早そうな気もする
0436デフォルトの名無しさん2007/02/22(木) 08:21:35
>>432-433
Win32のBitBlt使えば簡単じゃないかと思うんだけど。。
0437デフォルトの名無しさん2007/02/22(木) 18:48:09
いちおうC#のスレだから、まずは.NETのクラス使っとけば良いんじゃない?
0438デフォルトの名無しさん2007/02/23(金) 06:20:36
WebBrowserなんですが、たとえばこんなアドレス
http://msdn2.microsoft.com/en-us/default.aspx
を表示すると、ページの上の方が少し隠れて表示されません、
これをすべて表示できるようにするには何か方法があるでしょうか。
0439デフォルトの名無しさん2007/02/23(金) 11:23:30
スタイルシートがくさってるんじゃね?
0440デフォルトの名無しさん2007/02/23(金) 13:30:31
はっきり言って俺はC#は詳しいよ。
Append()は戻り値がvoidなので新たにオブジェクトを作らない。
よーく考えろ。

 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄\| ̄ ̄ ̄ ̄ ̄ ̄
                        _,,t-‐‐-、,-‐‐-、
                     三'::::::............... .....::::::`y,.
                     ナ::::::::::::::::::::::::::::::::: :::::::::::::ヾ
              | ̄|   V::::::::::::::::_{{ ({∫∬ノノjヾ:::::{
           | ̄| | ̄|   ナ::::::::::::::i`__,,,,,,,ァ_  _,,,,,_ t;;:ヌ
           |  | |  |  イヘ::::::(ヾ~!,ャt、 !'''i ィtン )=f }f
           |  | |  |  i {t)テ" ヘ' '___,イ ヽ_/ 介'
           |  | |  | _,rヘ_,j|!'     /ー--''!     |'
           |,.ィ―'''' ̄ /| |       /二ク     !
           /;;:::'';;::''::;;:/ { ! 、     ヾニン   ノ\
            /'''::::;r|''':::;;;|  | ! \       _,,./|::;;'''\
        /:;;/ |;;;''::;;|   丶\  `__>-ー´   !;;;:'''::iヽ、
          i/   |'::;;;;''|      三 ―''"       !''::;;;;| /ヽ
        /⌒ヽ  |;;''':::;|       \            !;;::''|/  i
         /     \{'';;;::''}          ̄二ニ=    !::;;|   |
        /ヘ     |;;:::::;{            ‐-      !/   |
        /  i     |:::;;;''!             ー       !  / |
     /   l     |;;'';イ                   }   {、
     〉、      ∧テ{ ヽ  _   _,,,,;;;;;:::-==ニ;;;_   ノ __,イ´
      / \_    //レ!      ̄           ̄ { ̄  |



0441デフォルトの名無しさん2007/02/23(金) 13:46:57
>>439
てことはそちらでは問題ないですか、とすればこっちだけの問題でしたか・・・。
う〜ん
0442デフォルトの名無しさん2007/02/23(金) 14:03:26
>>441
使ってるフォントとか、ユーザースタイルシートとか、
IEのバージョン依存だったりするんじゃないかな
0443デフォルトの名無しさん2007/02/23(金) 14:23:51
>>442
どうもありがとう、なるほど。
するとWebBrowserで表示するときに場合によってはその辺の
世話が必要になるかもしれんてことですか。結構大変そうかなぁ・・・。
0444デフォルトの名無しさん2007/02/23(金) 22:04:12
T add<T>(T a, T b)
{
 return a + b;
}
↑をコンパイルすると、演算子'+'は型'T'に適用でできないと
怒られます。T は byte,short,int,long のいずれかなんですけど、
型制約では、int などの指定は出来ないようです。

型別にメソッド書くしかないのでしょうか?
0445デフォルトの名無しさん2007/02/23(金) 22:07:31
DynamicMethodとかILGeneratorとか使って無理やり実現できないこともないけど
かなり面倒で怪しい方法。
ふつうは別々に書く
0446デフォルトの名無しさん2007/02/23(金) 22:08:08
はい。

CLRのジェネリクスは演算子オーバーロードと相性が悪いから、どうしようもない。
リフレクション使えば何とかなることはなるが、コンパイラのチェックが入らないから美しくないしね
0447デフォルトの名無しさん2007/02/23(金) 22:16:58
バイト配列からstringを取り出すとき、文字化けした文字を取り除くにはどうしたらいいでしょうか?
0448デフォルトの名無しさん2007/02/23(金) 22:17:08
演算子のオーバーロードが暗黙的なインターフェイスの実装として実装されてれば面白かったのにな。
0449デフォルトの名無しさん2007/02/23(金) 22:18:27
C++上がりの人間としては
ducktypingができると期待してしまうのさ・・・
0450デフォルトの名無しさん2007/02/23(金) 22:23:42
C#のconstはC++のconstとは違うだよね
0451デフォルトの名無しさん2007/02/23(金) 22:26:10
違うだよ。
C#のconstは定数を宣言するときにしか使わないだよ。
0452デフォルトの名無しさん2007/02/23(金) 22:27:04
VB.NETのDLL使いたいんですが、よく分かりません。
どこかいいサイトご存じないでしょうか?
0453デフォルトの名無しさん2007/02/23(金) 22:29:43
普通に参照設定するだけで使えるはず
でもモジュールはダメかも
0454デフォルトの名無しさん2007/02/23(金) 22:31:29
>>450
C#のconstは数学定数とか絶対に変わらない定数にしか使わないだよ
04554442007/02/23(金) 22:33:31
みなさん、レスありがとうございました。

型別に書くのいやだなぁ〜。
その部分だけ、C++/CLI の DLL に出来ないか
見当してます。
0456デフォルトの名無しさん2007/02/23(金) 22:33:33
具体的に言うと組み込み型の変数宣言に対してしか使えないだよ
0457デフォルトの名無しさん2007/02/23(金) 22:39:08
プリミティブな数値型にINumericとかつけといてくれればよかったのになあ。
0458デフォルトの名無しさん2007/02/23(金) 22:51:58
namespace 妄想
{
  interface INumeric<T>
    : IEquatable<T>, IComparable<T>, IConvertible<T>
  {
    T Add(T val);
    T Subtract(T val);
    T Multiply(T val);
    T Divide(T val);
    T Modulo(T val);
  }

  struct Int32: INumeric<Int32> { }
}
0459デフォルトの名無しさん2007/02/23(金) 23:03:37
>>451
immutableに使わないと
0460デフォルトの名無しさん2007/02/23(金) 23:04:34
>>458
Tがそれらのメソッドを持たない肩であると(ry
0461デフォルトの名無しさん2007/02/23(金) 23:10:50
interface INumeric<T>
  : IEquatable<T>, IComparable<T>, IConvertible
  where T: INumeric<T> { }

こうですか><
0462デフォルトの名無しさん2007/02/23(金) 23:10:54
static void Keisan(){
Average(delegate(float a1, float a2) { return a1 + a2; },
delegate(float a1, float a2) { return a1 / a2; },
2f, 6f, 2f, 3f));
}
delegate T TwoParameters<T>(T a1, T a2);
static T Average<T>(TwoParameters<T> add, TwoParameters<T> div, T count, params T[] args)
where T:new(){
T s = default(T);
for (int i = 0; i < args.Length; i++)
s = add(s, args[i]);
return div(s, count);
}
こういうのはどうだ
T countが気持ち悪いけど
0463デフォルトの名無しさん2007/02/23(金) 23:15:19
間違えた3f, 6f, 2f, 4fだった
0464デフォルトの名無しさん2007/02/23(金) 23:17:52
TwoParametersをコレクションにしたくなる
0465デフォルトの名無しさん2007/02/23(金) 23:38:19
>>447
正しいエンコードを判定するのが先じゃね?
0466デフォルトの名無しさん2007/02/23(金) 23:45:00
>>464 こうですか?
void Keisan(){Average(OperatorsF.Instance, 3f, 6f, 2f, 4f);}
static T Average<T>(IOperators<T> operators, T count, params T[] args) where T:new(){
T s = default(T);
for (int i = 0; i < args.Length; i++)
s = operators.Add(s, args[i]);
return operators.Divide(s, count);
}
interface IOperators<T>{
T Add(T a1, T a2);T Subtract(T a1, T a2);
T Multiply(T a1, T a2);T Divide(T a1, T a2);
}
class OperatorsF : IOperators<float>{
public static readonly IOperators<float> Instance = new OperatorsF();
public float Add(float a1, float a2) { return a1 + a2; }
public float Subtract(float a1, float a2) { return a1 - a2; }
public float Multiply(float a1, float a2) { return a1 * a2; }
public float Divide(float a1, float a2) { return a1 / a2; }
}
0467デフォルトの名無しさん2007/02/23(金) 23:53:19
>>465
文字コードはShift-JISということはわかっています。
現物はこれです↓
http://yp.ladio.livedoor.jp/stats/list.xml
これをStreamで取り出した物なんですが…


なんか流れ断ち切ってるみたいですいません orz
0468デフォルトの名無しさん2007/02/24(土) 00:08:41
秀丸で開いても文字化け警告でなかったぞ
0469デフォルトの名無しさん2007/02/24(土) 00:12:31
>>468
一部抜粋
    <source>
        <url>http://203.131.199.131:8080/roki<;/url>
        <gnl>Vが主</gnl>
        <nam>£яoκ・ラRadioψCafe£</nam>
        <tit />
        <mnt>/roki</mnt>
        <tim>1172243353</tim>
        <tims>07/02/23 21:07:39</tims>
        <cln>4</cln>
        <clns>7</clns>
        <srv>203.131.199.131</srv>
        <prt>8080</prt>
        <typ>icecast2.2</typ>
        <bit>128</bit>
    </source>
秀丸では警告出ませんが£яoκの部分で化けてます
0470デフォルトの名無しさん2007/02/24(土) 00:13:31
ありゃ、・が消えてるorz
そこの部分のバイナリは0x13でした
0471デフォルトの名無しさん2007/02/24(土) 00:20:39
0x13 じゃあ Shift_JIS のコード内だから不正ではないな。
化けていると言っても、何をして化けていると判断するのかは微妙なことが多い。

不正なバイトシーケンスなら DecoderFallback とか使えば何とかなるだろうけど……。
0472デフォルトの名無しさん2007/02/24(土) 00:24:13
つか何で作ったらあぁなるん?
0473デフォルトの名無しさん2007/02/24(土) 00:26:01
いったい何がしたいんだ?
正しく表示したい訳じゃないのか?
0474デフォルトの名無しさん2007/02/24(土) 00:26:41
>>471
XmlSerializerで逆シリアライズするときに0x13が無効な文字だと出てくるので化けてると
思ったのですが、Shift-JISのコード内ですか…

通りでDecoderFallbackに引っかからないわけだ orz
0475デフォルトの名無しさん2007/02/24(土) 00:53:35
非整形式か。
そりゃもう 0x09/0x0A/0x0D 以外の 0x20 未満を適当に置き換えるとかそんな地道な手段しかないような気がする。
.NET の XML 関連は非整形式に優しくない。
0476デフォルトの名無しさん2007/02/24(土) 01:20:03
>>475
この方法でうまくいきました。ありがとうございました。
0477デフォルトの名無しさん2007/02/24(土) 02:56:33
>>435
Scan0を使って直接メモりに入れる方法でやっつけた
Strideがやっかいだね
0478デフォルトの名無しさん2007/02/24(土) 17:15:56
ttp://dotnetfan.org/forums/thread/625.aspx を参考にし,
axVcc5Ctrl1というVB6/VC用OCX(コントロール)をForm1に配置,使用しています.
ここでaxVcc5Ctrl1のメソッドは問題なく使用できているのですが,
イベントのパラメータが取得できません.


例えばint型の2つのパラメータを持つイベントAckRxEventは,サンプルであるVB6からは
------
Private Sub Vcc5Ctrl1_AckRxEvent(ByVal wParam As Long, ByVal lBytes As Long)
〜
End Sub
-----
のように使用されています.


一方,VSで生成されたC#のソースでは
------
Private void axVcc5Ctrl1_AckRxEvent(object sender, AxVcc5AXCtrlJ.__Vcc5Ctrl_AckRxEventEvent e){ }
------
となっており,senderとArgcしか渡されていません.
どのようにすればパラメータ(wParamやlBytes)を受け取ることが出来るでしょうか?
0479デフォルトの名無しさん2007/02/24(土) 17:31:00
eのプロパティは?
04804782007/02/24(土) 18:04:55
>>479
ぉぉぉぉ・・・ e.lBytes, e.wParam でokでした!
全然気がつきませんでした・・・(Form1.Designer.cs の方とか見たりぐぐったりしてた)

ありがとうございました.
0481デフォルトの名無しさん2007/02/24(土) 18:47:29
>>478
axVcc5Ctrl1

なんか嫌な名前だな
0482デフォルトの名無しさん2007/02/24(土) 18:57:51
StatusStrip を配置してあるフォームに、
RichTextBox を配置して、Dock=Fill にすると、
StatusStrip を無視して Fill しちゃうんですけど、
そういうものなんでしょうか?

まず、パネルを配置してから、その中に
RichTextBox を置くしかないのでしょうか。
0483デフォルトの名無しさん2007/02/24(土) 19:02:28
ToolStripContainerは?
0484デフォルトの名無しさん2007/02/24(土) 19:02:47
背面にあるコントロールから優先的に配置されるから、
ドキュメントアウトラインでD&Dして順位を変えればいい。
0485デフォルトの名無しさん2007/02/24(土) 19:28:58
文章を単語に分割したいのですが、
ワードパッドで文字をダブルクリックしたときに、
選択されるくらいの精度で良いので、何か文章を単語に
分割するAPIはないでしょうか。
chasenなどの外部ソフトをインストールしなければ
ならないもの以外で探しています。
0486デフォルトの名無しさん2007/02/24(土) 20:40:50
てきとー

Regex.Matches(textBox1.Text, "([あ-ん]+)|([^あ-ん]+)")
0487デフォルトの名無しさん2007/02/25(日) 01:08:32
>>482
最前面に移動
0488デフォルトの名無しさん2007/02/25(日) 11:29:43
>>485
精度気にしないのであれば、単純にスペース・カンマ・文字種の境目etcで
ぶったぎる処理を自分で書いたらいいんじゃと思うんだが。
0489デフォルトの名無しさん2007/02/25(日) 21:52:22
Windowsで、Explorerでファイルなどの選択の方式を
Mouseのポイントだけで可能にしてあるか、それともクリックで初めて
選択となるか、の設定を知る方法はあるでしょうか?
自分のアプリもそれに合わせるにはどうすればいいでしょう?
0490デフォルトの名無しさん2007/02/25(日) 22:00:12
レジストリのどこかに記録されてるでしょ。

レジストリの差分とるソフトで確認してみればいいんじゃない?
0491デフォルトの名無しさん2007/02/25(日) 22:01:53
>>490
>レジストリの差分とるソフトで確認して

なるほど
どうもでした!
0492デフォルトの名無しさん2007/02/25(日) 22:46:09
どうしてVisual C++の開発環境とかは高いお金を払って買ったのに、
C#の開発環境は無料で手に入るのはなんで?
0493デフォルトの名無しさん2007/02/25(日) 22:50:41
今では VC++ も無料ですよ
MFC やら ATL やらはその限りじゃないけど
0494デフォルトの名無しさん2007/02/25(日) 22:51:14
.NETを広めたいからじゃない?
0495デフォルトの名無しさん2007/02/25(日) 22:59:17
あとは、C#布教用か。VBも、それなりの待遇はしている様子だが、
VC++は、使いたければどうぞ。的な雰囲気があるような気がする。
0496デフォルトの名無しさん2007/02/25(日) 23:01:04
VC++も無料なんだ
今やこんな立派な開発環境が無料で手に入る時代なんだなぁ
04974822007/02/25(日) 23:43:13
勉強になりました♥
0498デフォルトの名無しさん2007/02/26(月) 00:19:08
C# & SQL Server 2005 でスタンドアロンなDBアプリを作りました。
これを、C/S型にしてクライアントを複数同時起動できるように
したいです。
どこか参考になるサイトがあったら教えてください。
04994852007/02/26(月) 00:40:16
それっぽいものができました。
どうもありがとうございました。
0500デフォルトの名無しさん2007/02/26(月) 00:40:22
MSDN
0501デフォルトの名無しさん2007/02/26(月) 01:29:44
>>492-494
時代の煽りだと思う。
0502デフォルトの名無しさん2007/02/26(月) 01:37:03
C#のジェネリックで、列挙体を引数や戻り値に取るメソッドを作る方法はないのでしょうか?

public TEnum SomeMethod<TEnum>(TEnum param1) where TEnum : System.Enum

のようなメソッドを作ると、「制約は特殊クラス 'System.Enum' にはなれません。」とのエラーになってしまいます。
0503デフォルトの名無しさん2007/02/26(月) 01:44:29
無理だね
delegate の制約したいんだけどなぁ
05045022007/02/26(月) 01:50:55
回答ありがとうございます。

やはり無理ですか。とりあえず、必要な列挙体の分だけオーバーロードすることにします。
0505デフォルトの名無しさん2007/02/26(月) 21:35:16
VBの自作クラスをC#で初めて使う事ができました
とてもうれしいです
0506デフォルトの名無しさん2007/02/26(月) 22:00:15
どういたしまして
0507デフォルトの名無しさん2007/02/26(月) 22:09:14
TextBoxやRichTextBoxで、トップラインの行番号を指定してページをめくる
ようなことはプログラムからできるでしょうか。プロパティ見るとどうもなさそう
ではありましたが・・・
0508デフォルトの名無しさん2007/02/26(月) 22:29:56
EM_SCROLL とか EM_LINESCROLL とか使えばなんとかなりそうだな
あとはまあ GetCharIndexFromPosition とか GetLineFromCharIndex とか
0509デフォルトの名無しさん2007/02/26(月) 22:31:33
行選択しといてScrollToCaretでもできた気がしたけど。
まあ、あんまりエレガンドじゃないか
0510デフォルトの名無しさん2007/02/26(月) 22:41:56
>>508さん、>>509さん、ありがとうございます
EM_SCROLL,EM_LINESCROLL,GetCharIndexFromPosition,GetLineFromCharIndex
ScrollToCaret,など情報どうもです、さっそく調べてみます、助かりました。

ところで、これらのコントロールにはキーを送りつけるようなことは可能でしょうか、
やってみたいことは、デュアルで並べたものに片方のキーイベントをもう片方にも
同時に送るといった感じのことです。
0511デフォルトの名無しさん2007/02/26(月) 22:49:02
受け取ったのと同じWM_KEYDOWN/WM_KEYUPを投げればいいんじゃないの。
0512デフォルトの名無しさん2007/02/26(月) 22:50:22
例えばマウスでドラッグされたらどうする?
とか考えると同期ってのはなかなか大変だぜ
0513デフォルトの名無しさん2007/02/26(月) 22:56:20
>>511-512
どうもです、助かります、やっぱり方法はあるのですね、
WM_KEYDOWN/WM_KEYUPなどで調べてやってみますです。

そうですね、同期させるとなると難しいかもしれないですか、
片方は隠れてるのに片方はあわられてるとかになる可能性は
ありますか・・・。またちょっとがんばってみますです。

ありがとうございました!!
0514デフォルトの名無しさん2007/02/27(火) 11:32:45
>>511様
すみません、基本的なところでわかってませんでした(><。。

WM_KEYDOWNなどこれとかはもしかするとMFCなどアンマネージドドコード
での利用になるでしょうか。できればマネージドコードのみで処理できれば
と思いますが、マネージコードでコントロールの外部からそのコントロールに
対してKeyEventを発生させるということは可能でしょうか?

よろしくお願いします。
0515デフォルトの名無しさん2007/02/27(火) 11:55:09
>>514
マネージコードで処理できる
通常コントロールのWndProcメソッドをoverrideして使う
サンプルは、『WndProc C#』でぐぐればいくつか出てくる

>マネージコードでコントロールの外部からそのコントロールに
>対してKeyEventを発生させるということは可能でしょうか?
試したこと無いけど、MSDNかどっかに、イベントの発生は
イベントを生成したクラスからのみって記述があったような希ガス
ただし、デリゲートを介せば出来るように思うが…
0516デフォルトの名無しさん2007/02/27(火) 12:26:02
>KeyEventを発生させるということは可能でしょうか?
コントロールを継承してOnKeyXXXを間接的に呼び出すメソッドを追加するだけ。
でも、フツーにコード書いてればそんなことがしたいと普通は思わないと思う。

逆に言えば、そんなことがしたいと思うのはどっか設計的にマズいコードの可能性が高いと思う。
0517デフォルトの名無しさん2007/02/27(火) 12:26:12
>>515
さっそくどうもです、助かります。
WndProc C# で調べてみました。

>デリゲートを介せば出来るように思う

これは、一旦コントロールを基本クラスから継承して
新たに作成して、そこに WndProc() をオーバーライドした
Publicメソッドを用意しておいて、そこに WM_KEYDOWN
などのメッセージを外部から投げ込んでやるといった
感じでしょうか?いろいろお聞きしてすみません。


0518デフォルトの名無しさん2007/02/27(火) 12:29:28
>>516
かぶりました、すみませんです。

>コントロールを継承してOnKeyXXXを間接的に呼び出すメソッドを追加するだけ

なるほど!!そうやるんですか、わかりました!!どうもです!

目的は>>510のようなことなのですが、やったことないことなので
方法がわかりませんでした(><。
0519デフォルトの名無しさん2007/02/27(火) 13:41:34
>>517
>これは、一旦コントロールを基本クラスから継承して…
違う
デリゲートを調べて貰えれば分かると思う。
516で出来るんならそれでいいとは思うが、
出来なければ516で作った関数をデリゲートを介するようにすればいい。
まあ、いろいろ試してみてください。

>メッセージを外部から投げ込んでやるといった…
Win32APIのPostMessageを使うのも一つの手
マネージドコードという要求から外れると思うが
あまりこだわらずに、Win32API使えばいいんじゃないって気もするけど

まあそれよりも、過去レス見ると個々のイベントでやりとりするのは>>512さんの指摘通り
大変とおもうけど(アプリの詳細がわかんないからなんともいえないけど…)
0520デフォルトの名無しさん2007/02/27(火) 14:09:44
C#って、今までCで使ってきたstrtokなどの標準関数は使えないのですか
あとポインタはないのですか

だとすると、C/C++と違い、Cを名乗れるような言語じゃありませんね
ほとんどJavaじゃん
0521デフォルトの名無しさん2007/02/27(火) 15:07:36
>>520
とりあえず、ここの機能一覧を一通り読んでみたほうがいいよ。
http://msdn2.microsoft.com/ja-jp/library/yyaad03b(VS.80).aspx
0522デフォルトの名無しさん2007/02/27(火) 15:15:27
静的コンストラクタで列挙以外を弾け。
いや俺も美しくないとは思うよ…
0523デフォルトの名無しさん2007/02/27(火) 15:18:01
Cじゃないもん。
ポインタはあるけど。
0524デフォルトの名無しさんNGNG?2BP(222)
名前の一部にCが入ってるだけで「Cを名乗っている」ことになるなら、COBOLも
BASICもCを名乗ってることになるなぁ。
0525デフォルトの名無しさん2007/02/27(火) 15:35:34
>>521
お〜サンクス、参考にしてみます。
unsafeでポインタ使えるのか。ま、でも、使う機会はめっきり減りそうだな
0526デフォルトの名無しさん2007/02/27(火) 15:39:06
>>524
それは論理的におかしいでしょ
C言語
C++
C#
COBOL

Cの後ろにあるトークンを見れば、明らかに種別が違うでしょ
よってパターン的に、C言語を継承したものだと認識される
BASICなんて全くもって論外では
0527デフォルトの名無しさんNGNG?2BP(222)
>>526
>Cの後ろにあるトークンを見れば、明らかに種別が違うでしょ

それはお前の脳内基準だな。

>よってパターン的に、C言語を継承したものだと認識される

名前の付け方にそんなルールもパターンも無い。
0528デフォルトの名無しさん2007/02/27(火) 16:15:49
>>520
だったらC使ってたらいいんじゃないの?
CやC++と同じなら誰もC#なんて使わないよ…
0529デフォルトの名無しさん2007/02/27(火) 16:16:10
>>527
アホですか?
C#のCがC言語に由来するのは明らかだろうに。

まあC++のリプレースメントって意味でC#という名称にしたのであって
互換性がないのが問題とは別におもわんがね
0530デフォルトの名無しさん2007/02/27(火) 16:21:40
C≠≠
って教わった
0531デフォルトの名無しさん2007/02/27(火) 16:32:52
スーパーファミコンでファミコンのゲームが動かないのと同じだよ
0532デフォルトの名無しさん2007/02/27(火) 16:42:58
ネーミングが悪いとしかいいようが無いな。
非互換性云々の問題以前に、C/C++とは守備範囲が全然違うから、
C/C++のリプレースメントになどなりようもないのに。

むしろMSがマーケティングのために敢えて誤解を招きやすいネーミングにして
C/C++層を誘い込もうとした、そのためだけにつけられた名前と言うべきだろう。
0533デフォルトの名無しさん2007/02/27(火) 16:44:16
Cの文法を継承してるってだけでしょ
0534デフォルトの名無しさん2007/02/27(火) 16:45:30
C++/CLIもISOで「C++ではない」って言われてたけどなw
0535デフォルトの名無しさん2007/02/27(火) 16:46:19
ここまで酷いイチャモンは初めてだ
0536デフォルトの名無しさんNGNG?2BP(222)
>>529
リプレースにはならんだろ。
それに、「C#のCがC言語に由来している」のと「C#がCを名乗っている」のは全く
違う話なんだが。
0537デフォルトの名無しさん2007/02/27(火) 17:29:15
>>533
それだけならJavaだってPerlだってPythonだって
Cほにゃららとつけてもいいことになるな。

>>534
実際その通りだろ
0538デフォルトの名無しさん2007/02/27(火) 17:33:34
俺はJavaやPerlやPythonがCなんとかでも別に構わんと思うが…
0539デフォルトの名無しさん2007/02/27(火) 17:39:24
C#が全然違う名前だったら今より流行ってないのは間違いない
0540デフォルトの名無しさんNGNG?2BP(222)
>>537
>それだけならJavaだってPerlだってPythonだって
>Cほにゃららとつけてもいいことになるな。

いいんじゃねえの別に。
言語の命名規則なんて存在しないんだから。
命名者のセンスの赴くままで。
0541デフォルトの名無しさん2007/02/27(火) 17:44:15
>>588
この世にCのオブジェクトコードとリンクすら出来ないCほにゃららを
出すのがMSだけで良かったな。
そんなのが大量に出回っていたら世も末だ。情報にアクセスしにくくなるし
初心者にはわけわかめだろう。

それにしても、とっくにインターネット時代になっていたというのに、こんな
検索しにくいキーワード(.NETだのC#だの)を打ち出してくるMSは
池沼としか言いようが無いな。
0542デフォルトの名無しさん2007/02/27(火) 17:44:21
商標侵害その他で訴えられない限りは何でもいいだろ普通
0543デフォルトの名無しさん2007/02/27(火) 17:45:39
検索しにくいのは同意。
0544デフォルトの名無しさん2007/02/27(火) 17:51:24
>>542
法的にはいいんだろうな。
「ニッキーマウス」みたいな、ブランドパクリ安物みたいな
ネーミングだから嘲笑われるだけで。
0545デフォルトの名無しさん2007/02/27(火) 17:53:34
検索しにくいか?
「C#」って普通にgoogleで検索できるっしょ
0546デフォルトの名無しさん2007/02/27(火) 17:54:12
でも J++ よりは多少マシかな・・・
0547デフォルトの名無しさん2007/02/27(火) 17:54:24
C#はまだマシとして.NETをなんとかしてくれ
0548デフォルトの名無しさん2007/02/27(火) 17:54:56
デゼニランド思い出したw
0549デフォルトの名無しさん2007/02/27(火) 17:56:48
三月磨臼
0550デフォルトの名無しさん2007/02/27(火) 17:59:25
POLISHは結構すぐに閃いたが、ATTACHは一週間くらい悩んだな
0551デフォルトの名無しさん2007/02/27(火) 18:39:02
春だねぇ
0552デフォルトの名無しさん2007/02/27(火) 18:58:32
突然あったかくなったからね……
0553デフォルトの名無しさん2007/02/27(火) 19:01:49
>520以降おかしくなったのか
0554デフォルトの名無しさん2007/02/27(火) 19:11:06
>520
春休みっていつ終わるんだ?
0555デフォルトの名無しさん2007/02/27(火) 19:36:39
>520-555まで全部アホだと思うのだが
05565542007/02/27(火) 19:58:15
>>555
>>554は本物だよ。正真正銘のバカ
05575052007/02/27(火) 20:09:24
昨日作ったDLLに2次元配列を渡せるように出来ました!
とてもうれしいです
0558デフォルトの名無しさん2007/02/27(火) 20:12:40
あ、ああ。
(おかしなおじさん達は気にせずに)がんばってね。
0559デフォルトの名無しさん2007/02/27(火) 20:15:51
>>558
ありがとうございます!!
プログラムって面白いですね
レベルの低い話をしてすみませんでした
0560デフォルトの名無しさん2007/02/27(火) 20:17:36
>>559を見てうらやましさすら感じる
0561デフォルトの名無しさん2007/02/27(火) 20:25:52
そういえば多次元配列ってあんまり使う機会ないな
05625592007/02/27(火) 20:36:52
あ、やりたい事はテキストファイルから必要な文字だけ取り出して
VBのDLLにセル番号とStringをセットにして一度に渡したいんです
(DLLはExcelに書き込むクラスです)

んで2次元配列にしてStringとセル番号を1セットにして数セット処理したいんです
なんかもっといい方法ありましたかね・・・
でもいい練習になりました
0563デフォルトの名無しさん2007/02/27(火) 20:37:33
List<>なんかで済むならそもそも配列自体あまり
0564デフォルトの名無しさん2007/02/27(火) 20:42:28
上級者になると配列は使わなくなるんですね
なんか意外でした。
まだまだ先は長いなぁ・・・
0565デフォルトの名無しさん2007/02/27(火) 20:45:12
使えるのは2005からだけど
List<>やDictionary<>みたいなものはむしろ初心者が扱いやすいよ
0566デフォルトの名無しさん2007/02/27(火) 20:46:51
配列みたいな生データぽいのより、もっと抽象的な構造を使うようになるんじゃないかなあ。
行列とかならズバリ多次元配列かもしれないけど。
0567デフォルトの名無しさん2007/02/27(火) 20:47:35
ジェネリックリストができてから一次元配列を使う理由はなくなったな
0568デフォルトの名無しさん2007/02/27(火) 21:00:37
なるほど・・
今は本を見ながらコツコツやってるんですが、何分歩みが遅いので
まずは配列とか基本をしっかりやろうと思います。
んで出来上がったら教えてもらったList<>やDictionary<>とかで
洗練させていきたいと思います。
ありがとうございます

ちなみに2005EEです(C#、VB共に)
0569デフォルトの名無しさん2007/02/27(火) 21:05:26
C#なんだから半音上がってるんだよ
CとDの間、Cじゃない
0570デフォルトの名無しさん2007/02/27(火) 21:06:01
List<>便利だよね
配列のように扱えるし
05715682007/02/27(火) 21:07:38
このスレは優しい人が多いから好きです
0572デフォルトの名無しさん2007/02/27(火) 21:08:37
>>568
要素数が先にわかるなら配列のほうがいいよ
単純ゆえに高速だから。
0573デフォルトの名無しさん2007/02/27(火) 21:11:45
>>572
そうですか!実は今動的配列?にしてるんですが
素人目にもなんかムダっぽいなぁ・・と感じてました。
(中身を新しい配列に入れなおすんですよね?)
>要素数が先にわかるなら配列のほうがいい
貴重な情報ありがとうございます。初心者本にはこういうの載ってないんですよね
0574デフォルトの名無しさん2007/02/27(火) 22:12:23
>>519
またどうもです。

>516で出来るんならそれでいいとは思うが、
>出来なければ516で作った関数をデリゲートを介するようにすればいい。
>まあ、いろいろ試してみてください

片側のキー入力があったほうのコントロールから、Focusのないほうの
public な間接メソッド(=そこで OnKeyDown メソッドを呼び出すもの)
をコールして、そこに KeyEventArgs を投げてやってみたのですが、
OnKeyDown メソッド中で base.OnKeyDown() していてそこを通っている
にも関わらず、結果として Focusのない方のコントロールにはKey入力が
入っていっていないようでした。

原因が何なのかわかりませんが、これはやはりおっしゃっているように
deligate を使う必要がありそうでしょうか、それとも、外部からのKeyValue
の投げ込みはよりも、WindowMessageの送り込みでやるべきだということ
なのでしょうか。いろいろお聞きしてすみませんです。
0575デフォルトの名無しさん2007/02/27(火) 22:13:56
OnKeyDown呼んだらKeyDownは起こるけど、
実際にキーが押されたことにはなるわけないじゃん
0576デフォルトの名無しさん2007/02/27(火) 22:34:12
>>575
なるほど、やっぱり無理だったでしょうか。

実現したい機能は>>510のようなことですが、
たとえばVS2005のコードエディタなどにありました、あのように
一つのテキストファイルをマルチ画面で表示できてさらに
片方の入力結果もう片側にもちゃんと反映しているようなもの
というのは、実際にはどうやって作られているのかわかりませんでした。

あれができているということは、なんらかの形で実現できるものと
思っていましたが、その場合はKeyイベントではなくてやはり
WindowMessageの送信が必要ということでしょうか?
0577デフォルトの名無しさん2007/02/27(火) 22:37:56
漢字変換はどうするつもりなんだ
0578デフォルトの名無しさん2007/02/27(火) 22:38:14
>>576
いや、必要なのはこつこつ基礎から学ぶ態度。
実現したい仕様を漏れなくかつ簡潔に人に伝えようとする努力。
0579デフォルトの名無しさん2007/02/27(火) 22:51:31
TextChanged でもう片方にそのままコピーとかな
0580デフォルトの名無しさん2007/02/27(火) 23:01:24
>>577
あ、なるほど漢字変換も対応が必要でした・・・やっぱり難しいかなぁ。
キーいちいち送っても変換までDualではやってくれないですかね。

>>578
目指すところは、結局VS2005で採用されているようなエディタにように
片方での入力を完全にもう一方にも反映させる機能でした。

>>579
確かにそれもありました、そのときに表示画面が元の位置まで
スクロールされて戻らなければならない点があり、その結果、>>507
のように対応しなければならないかもとも思ったのですが、、
もしキー入力がそのままもう一方にも届けばそうしなくても済むため、
その方法を知りたかったのでした。
0581デフォルトの名無しさん2007/02/28(水) 00:16:11
エクスプローラの画像の縮小表示みたいなのを実装したいのですが
どうすればできますか?
0582デフォルトの名無しさん2007/02/28(水) 00:21:36
どこまでできてて何が分からないんだ?
05835812007/02/28(水) 00:30:06
え・・どこまでって、何も出来てません。
ListViewのViewをLargeIconとかDatailsとかにすると大きいアイコンや詳細表示になりますよね?
縮小表示も標準装備されてたらいいのですが、出来ますか?
出来なかったらどのように実装するか全然分からないので、考え方?を教えて欲しいです。
0584デフォルトの名無しさん2007/02/28(水) 00:34:35
漏れはFlowLayoutPanelにButtonをずらずら流し込んでそんな感じのを作ったことがある。
0585デフォルトの名無しさん2007/02/28(水) 00:38:10
>>583
http://www.atmarkit.co.jp/fdotnet/dotnettips/336listviewimage/listviewimage.html
0586デフォルトの名無しさん2007/02/28(水) 00:42:15
>>580
575の指摘は、OnkeyDownをラップしているpublicな間接メソッドの
引数がおかしいのでは?っていう意味。
デリゲートは気にしなくていい
OnKeyDownの引数のKeyEventArgsはきちんと渡しているの?
(ここに、どのキーが押下されたかの情報が入ってる)

>>583
縮小画像というのは、Jpeg等の通常の画像?
それをどこに表示したいの?
とか、もうちょっと詳細な情報があった方が…
05875812007/02/28(水) 00:51:43
>>585
どんぴしゃです!ありがとう!

>>584、>>586
ありがとう
0588デフォルトの名無しさん2007/02/28(水) 00:52:26
こんばんは。
ASP.NET1.1/VS2003でWebアプリケーションを作成しています。
コードビハインドのPage Loadで、テキストボックスに属性を追加する
静的メソッドを持った以下の共通クラスを作ってみました。

--
using Sytem; using Sytem.Web.UI; using Sytem.Web.UI.WebControls;

namespace hoge{
  public class WebControlUtil{
    public WebControlUtil {}
    
    public static void AddAttribute(TextBox tb , Page pg){
      tb.Attributes.add("bluer","JavaScriptの関数(" + pg.FindControl(tb.ID).ClientID) + ");"); ※
    }
  }
}
--
上記のメソッドをコードビハインドのPage Loadで呼び出して、

WebControlUtil.AddAttribute(textbox, Page);

のように呼び出したのですが、※のラインで
「オブジェクト参照がインスタンスに設定されていません」というエラーが
出てしまいます。
私としてはtextboxとPageはインスタンスになっているのでエラーが出る原因が
分かりません。なぜえらーになってしまうのでしょうか?
よろしくおねがいします。
0589デフォルトの名無しさん2007/02/28(水) 00:58:11
そのコードの断片だけから考えるに、FindControlがnullを返したんだろう
0590デフォルトの名無しさん2007/02/28(水) 01:06:22
>>586
一応KeyEventArgsもシグネチャ通り渡したのですが、入力されて
行かなかったのでした。とりあえず、完全に同じようにはなりませんが
Textを丸ごとコピーする方法で今回はよしとし、またいつかトライして
みたいと思います。
皆様大変どうもありがとうございました。
0591デフォルトの名無しさん2007/02/28(水) 07:17:11
ストリーミング(ネットラジオ)を録音・保存してリアルタイムでエンコードかけたいのですが・・・

よくわからなければ保存してリアルタイムでエンコードかけようかと思ってるんですが、
C#でやるのはどのような手順を踏めばいいでしょうか?
0592デフォルトの名無しさん2007/02/28(水) 07:30:50
DirectShow
0593デフォルトの名無しさん2007/02/28(水) 12:54:05
アイコンの取得をしているのですが、
http://www.atmarkit.co.jp/fdotnet/dotnettips/280getappicon/getappicon.html
この方法でもアイコンが取得できない場合があり、そのときに
一般的なアイコンを仮に使うようにしたいと思いました。

拡張子ごとのアイコンが取得できないかと思っているのですが、
たとえば url.dll にあるアイコンとかを.NETのクラスで個別に取得する
ことなどは可能でしょうか。
0594デフォルトの名無しさん2007/02/28(水) 13:49:36
>一般的なアイコンを仮に使うようにしたいと思いました。
一般的なアイコンが取得できるのなら、>>593の方法でも取得できるんじゃないの?

>この方法でもアイコンが取得できない場合があり
もともと、アイコンが設定されてないものから取得は出来ないと思うんだけど

一応Iconクラスで2.0以降からアイコンの取得は出来るようになってるけど、
結果は多分>>593と同じだと思う
0595デフォルトの名無しさん2007/02/28(水) 13:49:52
ListViewを貼り付けているフォームがあります。
フォームの大きさを変えたとき、それに合わせて自動的にListViewの大きさを変えるには
どうしたいいですか?
もしかすると、イベントハンドラに、自分で書かなければなりませんか?
0596デフォルトの名無しさん2007/02/28(水) 13:50:39
>>595
Anchorプロパティ or Dockプロパティ
0597デフォルトの名無しさん2007/02/28(水) 13:56:46
IconクラスのSaveメソッドで、アイコンの保存したのだけど、
色の表現が変わってしまう
(Iconクラスのコンストラクタで取得したときと、保存したアイコンを表示した時の比較)
どんなかんじかというと、3万色から256色に減色されたような感じで

これって仕様?
0598デフォルトの名無しさん2007/02/28(水) 14:01:42
>>594
>一般的なアイコンが取得できるのなら、>>593の方法でも取得できるんじゃないの?

そうかもしれないのですが、ところが例えば
http://www.microsoft.com/downloads/details.aspx?familyid=0baf2b35-c656-4969-ace8-e4c0c0716adb&displaylang=en
のようなところのURLリンクファイルの場合、特別にアイコンが設定されているようで
あの方法で取得するとNullになってしまったのでした。

そこでその場合は urlリンクファイルに共通のアイコンを取得するべきなのか
とも思ったのでした。
0599デフォルトの名無しさん2007/02/28(水) 14:16:47
>>597
仕様です
0600デフォルトの名無しさん2007/02/28(水) 14:22:28
>>598
リンク先は関係無いよね。一応見てみたけど。

>そこでその場合は urlリンクファイルに共通のアイコンを取得するべきなのか
多分、拡張子がlnkのファイルを指していると思うんだけど

そうだとすると、そこにはリソース(ここでいうところのアイコンの画像)は埋め込まれていない。
エディタで見てみると分かる。
そのかわりに、IconFileと書かれているところに画像があるから、そこから取得していくようになってるぽい。
つまり、exe形式のように実体がアイコンとして埋め込まれているのではなく、
lnkファイルにアイコンリソースの埋め込み先のURLが書かれている。
アプリでアイコンファイルがあるURLの先まで追っていけば、もしかしたら(いや多分)
>>593でも取得できるかもしれない

少なくとも、画像としての取得は可能だからアイコンに変換することは出来る
0601デフォルトの名無しさん2007/02/28(水) 14:23:26
>>599
サンクス

そうなのか
まあ、自分用のアプリで見た目以外になんも困ってないからいいけど
06026002007/02/28(水) 14:26:18
>そのかわりに、IconFileと書かれているところに画像があるから、そこから取得していくようになってるぽい。
日本語が分かりづらいのでちょい補足

『lnk形式でアイコンを表示しているアプリは』を前に補ってください
0603デフォルトの名無しさん2007/02/28(水) 14:36:37
favicon.icoのことね。単純な仕掛けだけでホームページにfavicon.icoの名前で保存されている。
例えばGoogleのは
http://www.google.co.jp/favicon.ico
0604デフォルトの名無しさん2007/02/28(水) 14:55:19
つーか.urlファイルのアイコン取りにいくと、
システムにキャッシュが残ってればFaviconが返ってくるよ。
そうでないときは.urlファイルのデフォルトアイコン。
0605デフォルトの名無しさん2007/02/28(水) 14:55:56
>>600>>602
教えて戴き感謝です、どうも現象がこのアドレスのショートカットの場合だけ
起こるので不思議に思ってましたが、そういう場合にも対応可能にしないとと思ったのでした。
Lnkファイルの場合は内部構造が難しくてわたしにはわかりそうもありませんので
またググってみます。

IEなどからのD&Dで作成したURLリンクファイルの場合は、拡張子がurlでしたが、
通常は一般的なURLリンクファイル用のアイコンが取得できていますので、
>>593の方法で普通は取れるのだと思います。

ただ何かの場合に取れないケースがあるので、その場合の応急対策をと考えました。
この場合だけに起こる理由もまた考えてみます。


0606デフォルトの名無しさん2007/02/28(水) 14:57:42
もうちょいサービスすると、URLからの画像の取得はこんな感じ
簡単にできる(イメージの取得は確認済み。アイコンはやったことがない)

XmlUrlResolver resolver = new XmlUrlResolver();
Uri fulluri = new Uri(href);
System.IO.Stream stm = (System.IO.Stream)resolver.GetEntity(fulluri, null, typeof(System.IO.Stream));
image = Image.FromStream(stm);

hrefはstring型でURLを指定。Image.FromStreamをIconクラスのコンストラクタで置き換えれば
多分いける
0607デフォルトの名無しさん2007/02/28(水) 14:59:43
>>593
のコードって、アイコンハンドル解放してなくね?
Cloneしたほうを使ってhIConはDestroyIconすべきじゃないか
0608デフォルトの名無しさん2007/02/28(水) 15:00:48
>>603>>604
やっぱり普通は返ってくるんですよね、どうしてだろ・・・・
ここのアドレスだけだめなので、またなんとかがんばってみます。。。。

>>606
ソースまでありがとうございます。またがんばってみます。
0609デフォルトの名無しさん2007/02/28(水) 20:40:01
Visual C# Express Edition (無料)ダウンロード
http://www.microsoft.com/japan/msdn/vstudio/express/vcsharp/

.NET Framework SDK (2.0)
http://msdn2.microsoft.com/ja-jp/library/ms310244.aspx

MSDN Visual C# Express Edition フォーラム
http://forums.microsoft.com/msdn-ja/ShowForum.aspx?ForumID=187&SiteID=7
Visual Studio ユーザーグループ
http://vsug.jp/

@IT Insider.NET
http://www.atmarkit.co.jp/fdotnet/index.html
Insider.NET 会議室 ディレクトリ
http://www.atmarkit.co.jp/fdotnet/index/bbs/index.html

宇宙仮面の C# プログラミング / C# Programming
http://ukamen.hp.infoseek.co.jp/
WisdomSoft C#入門
http://wisdom.sakura.ne.jp/programming/cs/index.html
WisdomSoft Microsoft .NET入門
http://black.sakura.ne.jp/~third/system/msnet/msnet.html
どっとねっとふぁん
http://dotnetfan.org/
緑のバイク 初めてのC# 〜 覚え書き 〜
http://homepage3.nifty.com/midori_no_bike/CS/
どぼん!の .NET Tips
http://dobon.net/vb/dotnet/
.NET のつぼ
http://park16.wakwak.com/~mimi/dotnet/top.html
0610デフォルトの名無しさん2007/02/28(水) 20:43:13
うわっ!!!!!マジごめん
新スレ立てちゃった・・・・・・
0611デフォルトの名無しさん2007/02/28(水) 20:58:41
AxWindowsMediaPlayerが動くWMPの最低バージョンっていくつですか?
0612デフォルトの名無しさん2007/02/28(水) 21:20:23
>>610
FOXが悪いんだよ気にするな。
0613デフォルトの名無しさん2007/02/28(水) 21:23:17
>>612
ありがとう。そしてごめんね
0614デフォルトの名無しさん2007/02/28(水) 22:26:38
Borland C#Builder2006
http://www.borland.com/jp/products/csharpbuilder/index.html

Turbo C#
http://www.turboexplorer.com/csharp

.NET Framework 1.1 製品ドキュメント
http://www.microsoft.com/japan/msdn/library/ja/netstart/html/sdkstart.asp

---

MSDNライブラリ 2006年6月版
http://www.microsoft.com/downloads/details.aspx?FamilyID=373930cb-a3d7-4ea5-b421-dd6818dc7c41&DisplayLang=ja

MSDNをローカルで見れる。
0615デフォルトの名無しさん2007/03/01(木) 00:20:11
あ〜数日前からC#勉強し始めたけど、結構めんどいわ
ジェネリックだの、デリゲートだの、インデクサだの・・・
全部覚えてられん
Cは単純だったのになぁ
0616デフォルトの名無しさん2007/03/01(木) 00:38:41
>>615
ならCでいいじゃん。
0617デフォルトの名無しさん2007/03/01(木) 00:41:40
http://hp.vector.co.jp/authors/VA000092/jokes/strup.html
0618デフォルトの名無しさん2007/03/01(木) 01:23:37
MDIというやつで
子フォームをいくつかShowして
その子フォームの順番を知りたいのですがどうしたら良いのでしょうか?


AForm
BForm
CForm

というのがAFormが一番上、
BFormが真ん中、
CFormが一番下で重なっているようなイメジージです。
0619デフォルトの名無しさん2007/03/01(木) 19:27:28
MFCで言うところのMDI型アプリケーションはどうやって作るの?
0620デフォルトの名無しさん2007/03/01(木) 19:34:15
>>619
WinFormsなら親フォームのプロパティを変更するだけ
0621デフォルトの名無しさん2007/03/01(木) 19:47:14
フォームプログラミングについてわかりやすく順序立てて解説してるサイトか本ないですか?
0622デフォルトの名無しさん2007/03/01(木) 20:10:49
グリッド系とか余程複雑なコントロール以外はMSDNライブラリ読んで試せば
だいたい分かるじゃん。
それがRADってもんの利点の一つなんでは?
0623デフォルトの名無しさん2007/03/01(木) 20:12:38
・・・そうですか
すいません、出直してきますorz
0624デフォルトの名無しさん2007/03/01(木) 20:38:03
下記URLでWebBrowserコントロールのStatusTextが取得できないパターンがありますが…
これって.NETのバグですかね?

ttp://search.yahoo.co.jp/search?p=test&ei=UTF-8&n=100
06255732007/03/01(木) 20:52:57
すみません。なんか変な事書いちゃったみたいです
VBのredimと勘違いしてました

そうそう!List<>出来ましたよ!!
ググって初めて分かったんですが、コレがジェネリックってやつなんですね!!
Stringbuilderとの組み合わせでかなり早くなりました。

ありがとうございました
0626デフォルトの名無しさん2007/03/01(木) 21:14:12
>>621
C#によるプログラミング Microsoft Windows(上)(下)
これがおすすめ。
0627デフォルトの名無しさん2007/03/01(木) 21:25:19
>>624
すぐバグバグ言うやつの脳味噌がバグってるというのが定説
0628デフォルトの名無しさん2007/03/01(木) 21:35:13
Windows XP, VS2005, .NET Framework 2.0, Acrobat Pro 7.0で開発をしています。
やりたいことは、一般的に印刷可能な形式のファイル、
ワード、エクセル、パワーポイント、一太郎、画像、テキスト、HTML等を
PDFに変換することです。
Acrobatが入っている前提なので、プリンタとしてAcrobat PDFが入っており、
手動でそれを指定して印刷してやると、PDFとして吐き出してくれます。

聞きたいことは、C#+.NETで上記のようなファイルを印刷する(Acrobat PDFに渡してやる)方法です。
ネットで調べたところ、文字列と画像はSystem.Drawing.Printing.PrintDocument でprintで
印刷できることが分かりました。
しかし、いくら調べてもそれ以外のドキュメントを印刷する方法が分かりませんでした。
それさえわかれば、PrinterSettings.PrinterNameでAcrobat PDFを設定してやり、
印刷してやればPDFを作ってくれると思うのですが…。

よろしくお願いいたします。

画像の印刷のサンプルコードはここで確認しました。
ttp://dobon.net/vb/dotnet/graphics/printdocument.html
0629デフォルトの名無しさん2007/03/01(木) 21:53:25
一太郎とかは君には無理だ。
0630デフォルトの名無しさん2007/03/01(木) 22:12:15
AxWindowsMediaPlayerを使用しているのですが、たまにRaceOnRCWCleanupが発生してしまいます。
これは、勝手にRCWを解放しようとしてるために起こっているようなのですが、勝手にRCWを解放するのを
抑制するにはどうしたらいいですか?
0631デフォルトの名無しさん2007/03/01(木) 22:22:49
>>628
プリンタを列挙してもAcrobatPDFとやらは出てこないの?
foreach (string name in System.Drawing.Printing.PrinterSettings.InstalledPrinters){
Console.WriteLine(name);
}
0632デフォルトの名無しさん2007/03/01(木) 22:27:31
>>631
プリンタはどうにかするみたいだけど、
一太郎のオブジェクトが作れないと言ってるんじゃないの?
0633デフォルトの名無しさん2007/03/01(木) 22:31:02
>>631
> >>628
> プリンタを列挙してもAcrobatPDFとやらは出てこないの?
> foreach (string name in System.Drawing.Printing.PrinterSettings.InstalledPrinters){
> Console.WriteLine(name);
> }

いや、でてきますし指定もできますが…。

画像ファイル以外の印刷可能なファイルを、PrintDocumentのオブジェクトに渡す方法がわからないのですが…。
画像ファイルなら

//画像を読み込む
Image img = Image.FromFile("test.bmp");
//画像を描画する
( System.Drawing.Printing.PrintPageEventArgs ) e.Graphics.DrawImage(img, e.MarginBounds);

という処理をPrintPageEventHandlerに関連づけられたメソッドの中でやれば印刷できますよね。
実際これでPDF化できましたし…。
わからないのは、画像以外のファイルを印刷する方法です。
画像じゃないのでDrawImageは使えないし、かといってDrawFileとかDrawStreamとかいうメソッドもないですし…。
0634デフォルトの名無しさん2007/03/01(木) 22:31:52
>>633
だから君には無理だと言ってるだろ?
06356182007/03/01(木) 22:33:10
わかりません;_;
0636デフォルトの名無しさん2007/03/01(木) 22:34:23
>>635
俺にはお前が何を言ってるか分からん。
0637デフォルトの名無しさん2007/03/01(木) 22:37:18
>>633
COMでも叩いとけ
0638デフォルトの名無しさん2007/03/01(木) 22:38:45
>>637
一太郎のCOMの使い方知ってるのか?
0639デフォルトの名無しさん2007/03/01(木) 22:40:09
頑張って読み込んで
GDI上にレンダリングすればいいんじゃね
0640デフォルトの名無しさん2007/03/01(木) 22:41:06
一太郎ドキュメントだってMSWordに読ませりゃいいじゃん
06416242007/03/01(木) 22:43:04
>>627 バグバグ言ってスマンの

再現パターン晒しておきます
WebBrowserコントロールに以下の内容のファイルをDrop
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<a href="http://wrs.search.yahoo.co.jp/S=2114736020/K=test/v=2/SID=w/l=DNWBB/;_ylt=A8vY4SGv0eZFNhQAfsmUTwx./SIG=12ae79n8l/EXP=1172841263/*-http%3A//search.yahoo.co.jp/search?p=test">ウェブ</a>
<br>
<a href="http://wrs.search.yahoo.co.jp/S=2114736020/K=test/v=2/SID=w/l=DNWBB/;_ylt=A8vY4SGv0eZFNhQAfsmUTwx./SIG=12ae79n8l/EXP=1172841263/*-http%3A//search.yahoo.co.jp/">ウェブ</a>
</body>
</html>

StatusText上は取得不可、下は可能です
0642デフォルトの名無しさん2007/03/01(木) 22:43:30
>頑張って読み込んで
kwsk
0643デフォルトの名無しさん2007/03/01(木) 22:53:15
クラスAが所有しているフレームインスタンスを
クラスBに参照渡しで渡したとします
そしてクラスBの中でそのフレームインスタンスに対して
コントロール(メニュー含む)追加や削除など
色々と操作することはオブジェクト指向的に違反ですか?
0644デフォルトの名無しさん2007/03/01(木) 22:56:02
シングルトンもダメってこと?
0645デフォルトの名無しさん2007/03/01(木) 22:56:47
フレームってなにさね?
0646デフォルトの名無しさん2007/03/01(木) 22:59:21
>>643
参照渡しにする意味がわからんが、問題ないだろ
06476242007/03/01(木) 23:05:27
すいません、事故解決しました。

単にURLが長すぎてステータスバーに入り切らなかっただけっぽい。
0648デフォルトの名無しさん2007/03/01(木) 23:10:45
昭和生まれのお兄さんがたに質問ですが、c#は面白いですか?
0649デフォルトの名無しさん2007/03/01(木) 23:10:56
これが安易にバグとか言い出す奴の結末というわけだな
06506432007/03/01(木) 23:12:12
回答ありがとうです

フレーム → フォーム です

動的にコントロールを追加/削除するのもアリですか?
0651デフォルトの名無しさん2007/03/01(木) 23:12:36
あり
0652デフォルトの名無しさん2007/03/01(木) 23:14:24
トンクスです
0653デフォルトの名無しさん2007/03/01(木) 23:24:13
C# 2005 Express Edition
についてるヘルプは、Visual C++に比べて分かりにくいし、クラスが全て載ってるわけじゃないし
ゼロから勉強する人は本買う必要あるかも
0654デフォルトの名無しさん2007/03/01(木) 23:40:52
>>635
いわゆるZオーダーって奴のことだよね。
たぶん組み込みの機能としては用意されてないと思うけど、比較的簡単に実装できないか?
例えばこんな感じ。

1) 各子フォームにZOrderというプロパティを実装する
2) 自分がActiveになったとき、ZOrder = 0
3) 自分よりZOrderが小さい(小さかった)他のフォームがActiveになったとき、--ZOrder
0655デフォルトの名無しさん2007/03/01(木) 23:58:16
課題でC#でBMIを計算するコンソールプログラムを作っています。
計算結果を小数点第1位で四捨五入したいのですが、うまくいきません。
ソースは
static void Main()
{
double Height,Weight,bmi;
string Figure="不明";
System.Console.WriteLine("身長を入力してください 単位(m)");
Height=Double.Parse(Console.ReadLine());
System.Console.WriteLine("体重を入力してください 単位(kg)");
Weight=Double.Parse(Console.ReadLine());
bmi=Weight/(Height*Height);
if(bmi>=25)
{
Figure="肥満";
}
else if(bmi>=18.5)
{
Figure="標準";
}
else if(bmi>=0)
{
Figure="やせ";
}
System.Console.Write("あなたのBMIは[");
Console.Write("{0,f1}]で",bmi);
Console.WriteLine("[{0,0}型]です",Figure);
}
このようになっています。
どうすれば四捨五入してくれるのでしょうか。
0656デフォルトの名無しさん2007/03/02(金) 00:10:04
ヒント 四捨五入 c# で検索…

検索を便利に使おうね。
0657デフォルトの名無しさん2007/03/02(金) 00:16:29
{0:f1}
{0:0}
0658デフォルトの名無しさん2007/03/02(金) 09:20:03
Winアプリ作成中です。
テキストボックス入力時に、「xxxxxxxxx」と打ったら
自動的に「xxx.xxx.xxx」となるようにしたいのですが
どうしたらいいかまったく思い浮かびません。
検索ヒントだけでもご助言頂けると助かります。宜しくお願いしますー
0659デフォルトの名無しさん2007/03/02(金) 09:29:05
表示をそうしたいのか、スペースを挿入したいのかどっち
0660デフォルトの名無しさん2007/03/02(金) 09:30:03
Changeイベントごとに内容取得して、フォーマット変えて中身いじれば
いいのではなかろうか。
0661デフォルトの名無しさん2007/03/02(金) 09:34:10
>659
表示したいと思っています。
私の言葉が足りなくて申し訳ないです。

>660
一度やってみますね。助言ありがとうございました!
0662デフォルトの名無しさん2007/03/02(金) 09:36:32
もし.NET 2.0だったらMaskedTextBoxを普通に使うだけ…
とはちがうの?
0663デフォルトの名無しさん2007/03/02(金) 09:40:19
ユーザが「123456789」と打ち込んだ際に
自動的に「123.456.789」または「123/456/789」というように、
3桁ごとに区切りを入れたいのですー
表現が悪くて誤解を招いてしまい、申し訳ないです。
ありがとうございますー
0664デフォルトの名無しさん2007/03/02(金) 09:59:36
まさにそのために存在するのがMaskedTextBoxなんじゃないのか。
0665デフォルトの名無しさん2007/03/02(金) 10:14:41
>>618
>>635
Win32のGetNextWindowを呼ぶとZオーダー順にウィンドウハンドルを返してくるので
順番に付き合わせればわかると思います。使い方は面倒くさいから調べて。
Control.FromHandleとかいうのも便利かもしれません。
0666デフォルトの名無しさん2007/03/02(金) 11:02:16
GetNextWindowじゃなくてGetWindowだった。
GetNextWindowはヘルプには出てくるけどuser32.dllにないようだ。

そういえばEnumChildWindowsというのも思い出しました。
0667デフォルトの名無しさん2007/03/02(金) 11:09:09
酒飲みすぎてふらふらっとC#desukaこのすれたいは

0668デフォルトの名無しさん2007/03/02(金) 11:18:36
>>618
WinFormsで分からないことがあったらとりあえず、MSDNの.NET Framework クラス ライブラリで
対象のクラスのパブリックプロパティ・パブリックメソッドの説明を読み、それで実装できなければ
Win32APIの処理で実装できるか探す。
それでも分らないときに聞いた方がいいと思うよ。他人からレスがくるまで開発が遅れるのは無駄
だから。
0669デフォルトの名無しさん2007/03/02(金) 15:02:01
ListBoxで背景を黒、文字を白、選択時背景を青にする場合
private void listBox1_DrawItem(object sender, DrawItemEventArgs e){
    e.Graphics.FillRectangle(Brushes.Black, e.Bounds);
if(e.State == DrawItemState.Selected)
e.Graphics.FillRectangle(Brushes.Blue, e.Bounds);

Brush myBrush = Brushes.White;
Font myfont = new Font("FixedSys", 10);
e.Graphics.DrawString("あほ"
, myfont,Brushes.White,e.Bounds.X,e.Bounds.Y,StringFormat.GenericDefault);
e.DrawFocusRectangle();
}
こんな感じでやると、選択時背景色の青の表示が上手くいかないんですが……。
スクロールさせている間は選択アイテムの背景は青になるんですけど、通常状態では黒のまま。どういう方法が良いのでしょうか?
0670デフォルトの名無しさん2007/03/02(金) 15:35:12
'System.Net.Dns.Resolve(string)' は古い形式です
と、コンパイル時に警告が出たんですが、代わりに何を使えば良いんでしょうか?
0671デフォルトの名無しさん2007/03/02(金) 15:37:03
大量のデータをFormに表示させたり計算したりしたいのですが、
TextBoxで処理をしようかと思い、作業をしていました。
TextBoxが200個を超えた頃からTextBoxの名前を変更するのにも遅くなってしまいました。

ひょっとしてTextBoxを多数並べるよりもいい方法があるのでしょうか?
Labelも考えたのですが、Borderの部分が固定できずに挫折しました orz
0672デフォルトの名無しさん2007/03/02(金) 15:37:59
>>670
GetHostEntry()かなあ?
0673デフォルトの名無しさん2007/03/02(金) 16:21:31
>>670
http://msdn2.microsoft.com/ja-jp/library/system.net.dns.resolve(VS.80).aspx

なんのためにMSDNがあると思っているんだ
0674デフォルトの名無しさん2007/03/02(金) 16:36:22
MSDN見るまでもなく警告メッセージに書いてあるんだが
0675デフォルトの名無しさん2007/03/02(金) 17:09:12
>>671
リストボックスは使わないの?
0676デフォルトの名無しさん2007/03/02(金) 17:47:24
>>671
Formsは描画にCPUリソース大量に消費するからコントロールを多数配置するのは厳禁だよ。
Excelみたいなスプレットシートを実装したいのかな?
06776712007/03/02(金) 18:06:20
>>675
リストボックスは使ってないです。
使った方がスマートなんですか?

>>676
Excelみたいなものが実装できるのが一番の理想です。
ある行の背景に色をつけたりとかできるならなんですけど…。

現在はTextBoxを使っていてデータを表示する際にはループで計算したものを
貼り付けさせてます
0678デフォルトの名無しさん2007/03/02(金) 18:08:40
リストビュー使えよ
0679デフォルトの名無しさん2007/03/02(金) 18:09:31
>>677
DataGrid?
06806712007/03/02(金) 18:15:09
>>678-679
リストビューとDataGridどちらかでやるのが一番のような気がしてきました。
(完全に頭の中から抜け落ちてました)
DataGridで頑張ってみようかと思います。
(特定の行に色のつけ方で詰まりそうな予感が…orz)

お答えいただいた方々、ありがとうございました。
0681デフォルトの名無しさん2007/03/02(金) 18:23:01
>>677
既存ライブラリならこれで
.NET Framework 2.0のWindowsフォーム新機能(前編)
http://www.atmarkit.co.jp/fdotnet/special/win20review01/win20review01_01.html

商用ライブラリならこれで
SPREAD for .NET Windows Forms Edition
http://www.ipublisher.jp/netmag/se200501-01.xml
0682デフォルトの名無しさん2007/03/02(金) 20:17:35
ListView的なコントロールならCodeProjectとかに多機能なやつが色々ある。
0683デフォルトの名無しさん2007/03/02(金) 22:35:41
ToolStrip使ってるんですが、あるところではマウスでつまんで動かせるのでしたが、
別のところでは動かせない状態でした。どっちもToolStripPanelには置いてあるのですが、
両者のプロパティの差は無いように見えます。何かを操作してどこであっても動かせる
ようにすることはできるでしょうか、

またToolStripPanel以外のPanelなどに置いた場合にも動かせない状態になっていましたが、
ToolStripは必ずToolStripPanelやToolStripContainerにおくべきでしょうか。よろしくお願いします。
0684デフォルトの名無しさん2007/03/02(金) 22:43:36
別のところに置かなければ良いんじゃね
06856832007/03/02(金) 22:59:32
>>684
別のところとは別のフォーム(正確には別のユーザーコントロール)の中という意味でした。
最初に使ったところでは初めから動かせていたので動くのが普通なのだと思ったのですが、
あるとき別のユーザーコントロールを作っておいてみると、そこでは動かせなくなっていました。
ToolStripというのは、動かせるのがデフォではないのかと初めて気が付きました。
0686デフォルトの名無しさん2007/03/02(金) 23:33:45
2つほど質問させてください。
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=23085&forum=7
ここにあるのと同じことをしようとしたのですが、ここだとハンドルの取得方法が
FindWindowで取得するようになっています。しかし、ウインドウタイトルがしょっちゅう
変わるのでFindWindowが使えません。
このような場合、ウインドウのハンドルはどのように取得すればいいでしょうか?

また、Messageを取得できたとしても、
>st = (COPYDATASTRUCT)m.GetLParam(typeof(COPYDATASTRUCT));
の所でSEHExceptionを吐いて止まってしまいます。これは何が原因なのでしょうか?
0687デフォルトの名無しさん2007/03/02(金) 23:49:12
Process.GetProceses とか Process.GetProcessesByName とか
EnumWindows とかの Win32API を使うとかもある
SendMessage でブロードキャストして応答を待つとか言う手もある

後者はなんか変なコトしてるんだろ
0688デフォルトの名無しさん2007/03/03(土) 00:01:56
>>687
ありがとうございます。
GetProcessByNameを試したのですが、ここに投げたMessageは
どこに行くのでしょうか?メインウインドウや他のウインドウには
届いてないみたいですが…

後者は、日本語が原因っぽいです。
0689デフォルトの名無しさん2007/03/03(土) 00:14:31
ここってどこよ?
あとエラーはちゃんと調べろ。SEHException なら ErrorCode 出るだろ。
0690デフォルトの名無しさん2007/03/03(土) 00:37:46
超初歩的な質問だと思いますが、ボタンを押した時にグラフィックを描画するために
OnPaintメソッドを呼びたいのですが、引数のPaintEventArgsとかは何を
渡せばいいんでしょうか。それともこの描画方法は間違ってますか
0691デフォルトの名無しさん2007/03/03(土) 00:43:32
>>690
OnPaintの中に書いた内容を実行したいって話なら、その中身を
まるまる一つの別メソッドにして、OnPaintとそのボタン両方から
呼び出すようにしたら?
0692デフォルトの名無しさん2007/03/03(土) 00:48:04
間違ってる。
そもそもOnPaint等のOn〜メソッドは、プログラマが自分で呼ぶものではなく、システムによって呼ばれるのを待つもの。
描画をおこなうべきタイミングでOnPaintが呼ばれるので、その中にプログラマがやりたい描画処理を記述しておく。
0693デフォルトの名無しさん2007/03/03(土) 00:49:15
間違ってるように思うな。
OnHogehoge は呼ぶもんじゃなくて呼ばれるもの。
再描画して欲しいなら Invalidate を呼べばシステムが OnPaint を呼び出してくれる。
06946932007/03/03(土) 00:50:56
だだかぶーり orz
0695デフォルトの名無しさん2007/03/03(土) 00:52:27
>>690
ボタンのイベントハンドラがInvalidate()を呼び出してOnPaint()を実行する。
MSが推奨するイベントドリブンでいいと思うけど
06966952007/03/03(土) 00:54:09
>>またかぶーり orz
0697デフォルトの名無しさん2007/03/03(土) 00:56:52
まあ、回答者の意見は一致してるってことで。
0698デフォルトの名無しさん2007/03/03(土) 00:58:17
Invalidate()したあとUpdate()すれば可及的速やかに再描画が起るぞ。
0699デフォルトの名無しさん2007/03/03(土) 01:00:12
PaintEventArgs クラスをMSDNで調べればいいんじゃないの?
実際には、PaintEventArgsクラスをnewして自分で作る。
newするには、コンストラクタに描画対象の、Graphicsと描画領域の指定をすることになる。

OnPaintという関数にこだわらなければ、
そこのサンプル見れば、PaintEventArgsを貴方が作らなくていい例がある
(pictureBox1.Paintのあたりを見て)
07006182007/03/03(土) 01:03:09
>>668
あのー学生であそんでいるだけなんですがー
0701デフォルトの名無しさん2007/03/03(土) 01:03:36
>>699
OnPaintはイベントハンドラだからをコードでよぶべきでないと。
0702デフォルトの名無しさん2007/03/03(土) 01:04:59
このスレ、初心者用っていうより、教えたがり屋用スレだなw
俺ならいくら初心者用スレっていってもこんな低レベルなこと知らない奴は、
それは知らないんじゃなくて単に知る気がない奴だと判断して放置するが。

こんなのネット上にだって解説してるところは複数個所あるだろ
0703デフォルトの名無しさん2007/03/03(土) 01:06:02
放置できずに口出してるじゃねえかよw
0704デフォルトの名無しさん2007/03/03(土) 01:08:39
ネット上じゃ PictureBox にわざわざご丁寧に Paint イベントで描画する方法を教えてくれるんだぜ?
0705デフォルトの名無しさん2007/03/03(土) 01:09:47
>>702
教えることにより、自分の知識の整理ができるから教えている。
教えたがらないプログラマーが多いことがむしろ残念なことだ。
0706デフォルトの名無しさん2007/03/03(土) 01:11:17
×教えたがらないプログラマーが多い
○教えることができないプログラマーが多い
0707デフォルトの名無しさん2007/03/03(土) 01:13:39
>>700
お前さん、くだらない揚げ足取りをする口はあっても
回答くれた人間に礼をいう口は持ってないんだな
0708デフォルトの名無しさん2007/03/03(土) 01:14:34
理解していないプログラマーは教えることもできない。
0709デフォルトの名無しさん2007/03/03(土) 01:16:45
>>701
ああ、ごめん
>>690さんには不適だね。

上の指摘は理解してるつもりだけど、
アプリ上からイベント発生させたい場合とか、
On〜をよぶ必要がある場合もあるんじゃないかと思ってたんだけど。

例えば、イベントPaintに+=で複数のメソッドを登録した場合とか
07106182007/03/03(土) 01:28:00
>>707
えらそうな奴に教えを貰っても
全然感謝の気持ちは得られない。
そもそもすでに解決済みだったし。
0711デフォルトの名無しさん2007/03/03(土) 01:35:47
>>710
なんでもいいが、教える側が下手にでることはないと思うが。
0712デフォルトの名無しさん2007/03/03(土) 01:36:34
>>710
YOU TO LeeEEEEEEEEEEEEEEE
0713デフォルトの名無しさん2007/03/03(土) 01:41:27
まあ>>618みたいな廃人に向かって何か言ってみてもそれはきっと無駄だろう
07146182007/03/03(土) 01:52:03
>>713
その手の内容は心の中で思うもので
決して書き込んで人様に見せるものではないよね。
解説してみて得意げになりましたって自虐的にアピールしてこっちが恥ずかしくなる。
0715デフォルトの名無しさん2007/03/03(土) 01:53:11
>>709
イベントへのハンドラ登録は、本来
「ハンドラをイベントを持つコンポーネント・コントロールに永続化する事」
別の使い方をするのは一人で開発するなら問題ないけど、大規模になると
混乱のもとだよ。
07166902007/03/03(土) 02:11:24
みなさん回答ありがとうございます。
OnPaintメソッドについて調べてみても、オーバーロードのことばかりで
呼ぶ記述がなかったので悩んでたのですが、やはり直接呼ぶのは
ダメなんですね。
ちょっと考えたら、Paintイベントに登録するハンドラと、ボタンハンドラで
同じメソッドを呼べば簡単に実現しますね
あとInvalidate()についても調べてみます。どうもでした
0717デフォルトの名無しさん2007/03/03(土) 02:13:44
ジョアンヌ、そっちへ逝っちゃだめだー!
07186902007/03/03(土) 02:30:46
あ、ハンドラとして同じメソッドを登録するのではなくて、
ハンドラから同じ関数を呼ぶってことです

でもやはりInvalidate()メソッド使ったほうがよさそうです
0719デフォルトの名無しさん2007/03/03(土) 09:02:48
>>690
もう大体理解できたかもしれないけど、.NET のコントロールというのは、自分自身を
描画する責任は負っているけど、いつでも好き勝手に描画をしていいわけじゃないのね。
.NET Framework が、必要に応じて、「お前の再描画が必要になったので描画しる」と
命令するわけ。

OnPaint() メソッドというのは、その命令を受ける窓口として存在するものなので、
そこに自分で命令をするのはお門違いということ。
で、Invalidate() メソッドというのは、.NET Framework に対して、「再描画命令を
下してください」とお願いするためのものと思っておけばおk。
07206712007/03/03(土) 09:09:11
>>681-682
お礼が遅くなりました。ありがとうございます。
参考にさせていただきます。
07216862007/03/03(土) 10:34:09
朝起きてみたら額にスペースキーが orz

>>689
エラーコードは-2147467259でしたが、文字列に日本語が含まれてると
発生するようです。
0722デフォルトの名無しさん2007/03/03(土) 12:01:50
.Net FrameworkのListViewについてですが、
以下について質問です。

�@サブアイテムのみを選択する方法ってありますか?
�A�@の状態で、サブアイテムのラベルを編集する方法はあるでしょうか?

どういうことをやりたいのかというと、
使い方的にはDataGridみたいな感じなのですが、
DataGridだと変に機能が手厚かったり、微妙に操作しにくいので、
リストビューをセルのように扱うことはできないかなと思いまして
質問させていただきました。
0723デフォルトの名無しさん2007/03/03(土) 12:07:36
ない。クリックされたらテキストボックスを重ねて表示するとかそういう細工が必要。
codeproject とか漁ればその辺の拡張したコントロールが見つかりそうな気もするが。
0724デフォルトの名無しさん2007/03/03(土) 12:09:20
>>723
ありがとうございます。やっぱないですか・・・。
codeprojectをちょっと調べてみます。
なかったら自分で作ってみます・・・。
0725デフォルトの名無しさん2007/03/03(土) 12:34:25
どちらにしろ、FormsはOrcas(.NETFramework3.5)でWPFに移行が当たり前になるから、
あまり深入りしないほうが賢明だと思うよ。
ASP2.0はそれほど大きな変更はしばらくないから使っていてもいいけど。
WindowsアプリはMFC・WTL/ATL・FormsはWPFへ、WebアプリはASP2.0を使用
これが世の中の流れになる。
*注 WebアプリはJAVA+Ajax・JAVA+FlexなどMS以外の選択肢が多数あるけど
0726デフォルトの名無しさん2007/03/03(土) 12:45:58
世の中はそんなスイッチの入り切りのようにかわらないんだよボク

っていうか、その発想って精神病んでる奴の発想だぜw
どうせ死ぬんだから刹那的に生きようっていう例の奴だな
0727デフォルトの名無しさん2007/03/03(土) 12:55:09
>>726
それがスイッチのように切り替わるのがWindowsOSなんだけど。
MSはすでに98まで切り捨ててるし、MSがOS上でサポートしなくなったら
移行しなければサポート切れのOS上でアプリ動かすことになるよ。
0728デフォルトの名無しさん2007/03/03(土) 13:05:32
そしていつまでも残る Win2k
0729デフォルトの名無しさん2007/03/03(土) 14:12:30
>>723 いいの見つかりました。ありがとうございました!
http://www.codeproject.com/cs/miscctrl/EXListView.asp
0730デフォルトの名無しさん2007/03/03(土) 14:42:49
そしてVB6の新規開発案件に投入される漏れ。
0731デフォルトの名無しさん2007/03/03(土) 14:45:30
98って何年前だ。
XPも期限延びなかったか?
0732デフォルトの名無しさん2007/03/03(土) 14:47:03
切り替わるのはWindowsであって世の中ではないのだよ
0733デフォルトの名無しさん2007/03/03(土) 14:55:10
WPFにはなかなか変わらないと思うよ。
xamlも面白いけどそれだけって感じ。


英文読んでるけど関係代名詞や接続死のおかげで意味が分かり辛いorz
0734デフォルトの名無しさん2007/03/03(土) 15:11:16
WPFは2000のサポート切れてから普及するだろうから、まだ切り替えにはならないとは思うけど。
XPとVistaがメインの環境になったら開発生産性や開発者とデザイナーの分業を推進するために
Windowsアプリのリプレースでは一番の候補にあがることは確実ではあると思う。
ただ、3Dグラフィック処理については軽量化とプログラミングが容易にならないと普及しない。
0735デフォルトの名無しさん2007/03/03(土) 15:30:43
XPのサポートすら切れてVsitaのみくらいにならないと無理じゃないか?
既存のXPのマシンってあんまりビデオカードの性能いいの載ってないし。
0736デフォルトの名無しさん2007/03/03(土) 21:36:30
MFCやFormsをWPFでリプレースする程度のアプリならXPで十分で
ビデオカードの性能高いのはいらないよ。
業務アプリなら3Dいらないから。
0737デフォルトの名無しさん2007/03/03(土) 21:59:10
>>727
いまだにMFC使ってるところとかあるし
スイッチ切り替えられちゃってんのお前なんじゃね?
0738デフォルトの名無しさん2007/03/03(土) 22:17:20
>>725
>FormsはOrcas(.NETFramework3.5)でWPFに移行

って何の話かわからないわたし。
0739デフォルトの名無しさん2007/03/03(土) 23:14:16
とりあえずググれと。
WPFの出始めは、糞UIのソフトがごろごろでてくるんだろうなあ。
0740デフォルトの名無しさん2007/03/03(土) 23:34:01
>>738
FormsとWPFはMVCモデルでいうところのViewだから競合しているんだよ。
現在、WPFは3Dは重いしバグも多いのは事実だけどOrcasではバグはつぶれてるだろうし。
Formsの問題点はGPUパイプラインをサポートしてないことと余計な描画処理が多すぎるからWPF後は衰退するだけだと思う。
MFCからリプレースというのは、C++ネイティブはDLLヘルやサンドボックスなどのセキュリティ対策がないのも
問題だし、クライアントアプリを配布するのにCDなどに焼いて渡すのも運用管理でも問題がある。
.NETFrameworkでIISサーバからクライアントアプリをClickOnceで配布すればバージョン管理もできるし、
ランタイムの更新もほぼ、自動で行える。
プログラムの容易性だけでなくてTCOを考えるとクライアントがWindowsXP以降限定なら
WPFでClickOnceが一番TCOが低く抑えられるってことが考えられるわけ。
0741デフォルトの名無しさん2007/03/03(土) 23:36:02
ご高説は結構だがそろそろスレ違い感が否めない
0742デフォルトの名無しさん2007/03/03(土) 23:46:34
740 のような言説を読むにつけ、
もはや MS はホビーユーザ近辺には関心がないんじゃないかと思わざるを得ない
0743デフォルトの名無しさん2007/03/03(土) 23:59:37
>>741
すみませんでした。
巣に帰ります。
0744デフォルトの名無しさん2007/03/03(土) 23:59:44
Vistaでもウリ文句が半透明とフリップぐらいしか出せてないしな
0745デフォルトの名無しさん2007/03/04(日) 00:16:07
文字を縦書きしたいのですが、DrawString() で行なうと
グラフィックアダプターのドライバ依存のためかマウスの
位置がかぶると描画が消える部分ができてしまうのですが、
Labelなどでも実現できますでしょうか。
0746デフォルトの名無しさん2007/03/04(日) 00:21:57
WPFはFormsの描画の重さを解消する切り札になるんだったら一気に置き換わるんじゃないかなと思う。
0747デフォルトの名無しさん2007/03/04(日) 00:32:05
>>745
そんな文章書くと日本語でオッケって書かれるよw
0748デフォルトの名無しさん2007/03/04(日) 01:15:27
>>745
>グラフィックアダプターのドライバ依存
では全然なくて単にPaintイベントで描画してないってオチでしょ?

横書きして同様になったとしてもやっぱりグラフィックアダプターのドライバ依存ですか?
0749デフォルトの名無しさん2007/03/04(日) 01:44:53
>>748
2つモニターがあって、、片方のモニターではそういう現象が起こらず、
もう片方では、同じ部分の描画文字なのに、マウスで一瞬の間部分的に
消されていました。それで、またもう一方のモニターの中に戻すとそういうことは
やはり起こらないのでした。それでどうもグラフィックボードの出力ポート
依存性があるかと思われ、そのように推測したのでした。

それと、やはり縦書きラベルとかはないものでしょうか?
0750デフォルトの名無しさん2007/03/04(日) 01:46:40
>>748
あ、それから確かにPaintイベントの中で描いているのですが、
そうなってしまうのでした。そういうことは普通はやはり起こらないですか?
0751デフォルトの名無しさん2007/03/04(日) 01:58:16
そんなミエミエのバグがVGAドライバに残ってる可能性は非常に低いと思うけどねw
十分検証した上で言ってるのそれ?
現象が再現できる簡単なコードさらしてみたら?

ダメな奴ほどバグバグ言いたがる法則だと思うよ正直
0752デフォルトの名無しさん2007/03/04(日) 02:13:45
ClickOnceは業務アプリではなかなか
使いにくいんだよう。
0753デフォルトの名無しさん2007/03/04(日) 02:30:01
>>751
こんな感じなのですが、どうでしょうか。一応動作自体にはNGはないようです。
やはりアダプタが古いせいではないかと思うのですが・・・。片方のモニターでは
問題がないのです。

Private Panel1_Paint(Object sender, System.Windows.Forms.PaintEventArgs e)
{
Display(drawString);
}

Private Display(String drawString)
{
Graphics g = pnlNowTask.CreateGraphics();
Font fnt = new Font("@MS ゴシック", 9, FontStyle.Regular);
String Format = new StringFormat();

sf.FormatFlags = StringFormatFlags.DirectionVertical;
sf.Alignment = StringAlignment.Near;
sf.LineAlignment = StringAlignment.Near;
g.Clear(Color.FromKnownColor(KnownColor.Control));
g.DrawString(drawString, fnt, Brushes.DodgerBlue, 1.0F, 20.0F, sf);

fnt.Dispose();
g.Dispose();
}
0754デフォルトの名無しさん2007/03/04(日) 02:31:36
>>752
ちなみにそれって、CodeAccessSecurityの関係でですか?
できればもう少し詳しく。
0755デフォルトの名無しさん2007/03/04(日) 02:33:50
あ、正確には Panel1_Paint() は Panel1_Paint_Paint() でした、スマソです。
0756デフォルトの名無しさん2007/03/04(日) 02:34:34
>>755訂正 Panel1_Paint_Paint() ==> Panel1_Paint()
0757デフォルトの名無しさん2007/03/04(日) 02:38:47
アーまた間違えた、Panel1_Paint_Paint() ==> pnlNowTask_Paint() でした。。。
0758デフォルトの名無しさん2007/03/04(日) 02:39:23
もう寝た方がいいんじゃないか。
0759デフォルトの名無しさん2007/03/04(日) 02:48:51
>>754
ちげーよ
0760デフォルトの名無しさん2007/03/04(日) 02:50:45
>>758
そうですね。もう寝ますね、、それで寝る前にもう一つ質問書かせてください。

.NETではDataGridViewをデータベースとは無関係にただの表形式表示として
使っても別に構わないでしょうか。まだあまり調べてないままなのですが、
単純に以前のMSFlexGridの代用みたいに使えるものでしょうか。

それではまた明日お願いします。


0761デフォルトの名無しさん2007/03/04(日) 02:51:45
>>759
そちらもまた明日教えてください、ではまた。
0762デフォルトの名無しさん2007/03/04(日) 10:14:25
>>760
質問する前にMSDNライブラリ読め、な。

ttp://msdn2.microsoft.com/ja-jp/library/system.windows.forms.datagridview.datasource(VS.80).aspx
> DataGridView クラスは、標準の Windows フォーム データ バインディング モデルをサポートします。
> つまり、データ ソースには、次のいずれかのインターフェイスを実装する任意の型を使用できます。
> * IList インターフェイス。1 次元配列を含みます。
> * IListSource インターフェイス。DataTable クラス、DataSet クラスなどがあります。
> * IBindingList インターフェイス。BindingList クラスなどがあります。
> * IBindingListView インターフェイス。BindingSource クラスなどがあります。
0763デフォルトの名無しさん2007/03/04(日) 12:12:14
>>753
それ本当に実行して確認したコード?
実行時に例外でると思うけどなあ。。
とりあえずPaintイベントでもらったGraphicsをDisposeしちゃダメだろうw
0764デフォルトの名無しさん2007/03/04(日) 12:15:14
>>763
0765デフォルトの名無しさん2007/03/04(日) 12:28:06
>>753
プロパティの値に応じてちゃんとダブルバッファリングされるように、e.Graphics使ったほうがいいよ。
0766デフォルトの名無しさん2007/03/04(日) 12:28:11
ああゴメン。
Graphicsを引数でもらってるんじゃなくて、
PaintイベントだろうがなんだろうがCreateGraphicsしてるのか。

よけい酷いじゃんw
0767デフォルトの名無しさん2007/03/04(日) 12:38:12
TcpClient tcp = server.AcceptTcpClient();
tcpから接続元のIPを調べる方法を教えてください
0768デフォルトの名無しさん2007/03/04(日) 12:46:14
想像
((IPEndpoint)tcp.Client.RemoteEndpoint).Address
0769デフォルトの名無しさん2007/03/04(日) 13:15:48
>>763
いや、実行時エラー以前にコンパイル通らないと思うよw
0770デフォルトの名無しさん2007/03/04(日) 13:16:17
>>768
同じパソコンでクライアントとサーバーを試しているせいか127.0.0.1が返って来ましたorz。

ありがとうございます。
0771デフォルトの名無しさん2007/03/04(日) 13:31:05
>>763-766
どうもありがとうございます。
そこで e.Graphics を使ってもやってみましたが、
ただどうも結果は同じようなのです。

もともとOKのモニターでは問題なくできますが、問題だった方の
モニターではやはり描画した直後のマウスカーソルのかぶった
ところだけ消えてました。

やはりこのボードがずいぶん古いのかなと思います。

この問題の方のモニターでは、テキストボックスやコンボボックスの
テキスト表示部でも、その枠線の一部分がマウスで消えてしまう現象が出てました。
やはり.NETのクラスで使っているグラフィックスの機能がそのポートを
制御しているドライバーのマウスカーソル制御と干渉するのではないかと。。

これら以外の表示では今のところは大丈夫ですが・・・
0772デフォルトの名無しさん2007/03/04(日) 13:32:50
>>769
ビルドは問題なくできてました。
e.Graphics使う方でも、引数で渡してやりましたがビルドできていました。
0773デフォルトの名無しさん2007/03/04(日) 13:37:56
>>762
こちらもありがとうございました。
教えて頂いたMSDNを含め調べてみます。
この感じですと、CSVファイルとかにも直接対応して読み込めるようなので
使えそうですね。
0774デフォルトの名無しさん2007/03/04(日) 13:58:24
>>Part14の27
漏れがエスパーするに、君はいきなりDragDropイベントをキャッチしようとしているんだろう。
DragDropイベントを発生させるには、DragEnterイベントでドロップを許可しないとダメ。

ここのサンプルコードでも見とくんだな。
http://support.microsoft.com/kb/307966/ja
0775デフォルトの名無しさん2007/03/04(日) 15:35:42
Part14の>>27です。
DragEnterイベントに処理は書いているんですけどね・・・。
AllowDropプロパティをtrueにしてもDragEnterイベントがこないのです(´・ω・`)

書き忘れてましたが私の環境は

Windows XP Pro + VS2005SE

です。
0776デフォルトの名無しさん2007/03/04(日) 15:42:17
だからコード晒せよ
0777デフォルトの名無しさん2007/03/04(日) 15:52:05
AllowDropプロパティを間違いなくtrueにしているなら、あとはイベントハンドラをイベントに登録してないとかかな。
イベントハンドラをどこぞからコピペしてこなかったか?
フォームのプロパティからDragEnterイベントハンドラを生成してみてはどうかな。
0778デフォルトの名無しさん2007/03/04(日) 15:53:50
つい最近まで、C#を「シーナンバ」って読んでたよ
シャープだったんだ
0779デフォルトの名無しさん2007/03/04(日) 15:57:02
C++の ++を斜めにずらして重ねると # 
なんつって
07807752007/03/04(日) 15:58:49
>>776 >>777

簡単にサンプル作ったのだけどやっぱりイベントが来ない・・・。
何か勘違いしてるんでしょうか?

class TestForm : Form
{
public TestForm()
{
this.DragEnter += new DragEventHandler(FormTest_DragEnter);
this.DragDrop += new DragEventHandler(FormTest_DragDrop);
this.AllowDrop = true;
}

void FormTest_DragEnter(object sender, DragEventArgs e)
{
if (e.Data.GetDataPresent(DataFormats.FileDrop) == true &&e.Data.GetDataPresent(DataFormats.Text) == true ) {
e.Effect = DragDropEffects.All;
} else {
e.Effect = DragDropEffects.None;
}
}

void FormTest_DragDrop(object sender, DragEventArgs e)
{
string[] fileNameList = (string[])e.Data.GetData(DataFormats.FileDrop, false);

if (0 < fileNameList.Length) {
MessageBox.Show(this, fileNameList[0]);
}
}
}
07817752007/03/04(日) 16:01:16
スペース全部消された・・・。

class TestForm : Form
{
  public TestForm()
  {
    this.DragEnter += new DragEventHandler(FormTest_DragEnter);
    this.DragDrop += new DragEventHandler(FormTest_DragDrop);
    this.AllowDrop = true;
  }

  void FormTest_DragEnter(object sender, DragEventArgs e)
  {
    if (e.Data.GetDataPresent(DataFormats.FileDrop) == true && e.Data.GetDataPresent(DataFormats.Text) == true ) {
      e.Effect = DragDropEffects.All;
    } else {
      e.Effect = DragDropEffects.None;
    }
  }

  void FormTest_DragDrop(object sender, DragEventArgs e)
  {
    string[] fileNameList = (string[])e.Data.GetData(DataFormats.FileDrop, false);

    if (0 < fileNameList.Length) {
      MessageBox.Show(this, fileNameList[0]);
    }
  }
}
0782デフォルトの名無しさん2007/03/04(日) 16:04:32
FileDrop と Text が両方登録されてる事ってあんまり無いような気がするが
0783デフォルトの名無しさん2007/03/04(日) 16:05:04
FormTest_DragEnterの

if (e.Data.GetDataPresent(DataFormats.FileDrop) == true && e.Data.GetDataPresent(DataFormats.Text) == true )

↓

if( e.Data.GetDataPresent( DataFormats.FileDrop ) || e.Data.GetDataPresent( DataFormats.Text ) )

にしてみそ
0784デフォルトの名無しさん2007/03/04(日) 16:06:32
>>779
実際そういうことでしょ?
0785デフォルトの名無しさん2007/03/04(日) 16:07:16
コードを丸ごとコピペして試したけど、ちゃんとイベントは発生する。
ひょっとすると、イベントはちゃんと起きてるけど、if 文の条件式が絶対に成り立たないから、
イベントが発生してないと勘違いしちゃってるんじゃないのかな。

e.Data.GetDataPresent(DataFormats.FileDrop) == true だけで試してみ。
07867752007/03/04(日) 16:08:14
>>783

やってみましたがダメでした・・・。
DragEnterイベント自体が来ないです・・・。
0787デフォルトの名無しさん2007/03/04(日) 16:11:09
DragEnterイベント自体が発生していないことをどのようにして確認してる?
0788デフォルトの名無しさん2007/03/04(日) 16:12:19
エスパー4級だが、OnDragEnterをオーバーライドして、base.OnDragEnterを呼んでないと予想。
07897752007/03/04(日) 16:12:53
>>787
DragEnterイベントのif文にブレイクポイントを設定してデバッグで実行しています。
Loadイベントではブレイクポイントで止まるのでDragEnterイベントは発生してないとしか・・・。
07907752007/03/04(日) 16:14:28
>>788
OnDragEnterメソッドはオーバーライドしてません・・・。
0791デフォルトの名無しさん2007/03/04(日) 16:15:29
protected override void OnDragEnter(DragEventArgs drgevent) {
base.OnDragEnter(drgevent); // <- ここでブレークしたらどうなるよ?
}
07927752007/03/04(日) 16:17:27
>>791
やってみました。
止まりません・・・。
もしかして私の環境が壊れてる?(´・ω・`)
0793デフォルトの名無しさん2007/03/04(日) 16:17:37
大穴

TestForm じゃなくて Form を Application.Run していた
0794デフォルトの名無しさん2007/03/04(日) 16:18:33
まさかとは思うが、実は同じプロジェクト内にFormっていう変なクラスがあって、
そっちを継承しちゃってるとか。
0795デフォルトの名無しさん2007/03/04(日) 16:22:27
みんなよくそんだけ色々と思い付くなあ
07967752007/03/04(日) 16:22:42
まさかと思って新しいプロジェクトを作ってやってみたけどダメみたい・・・。
フォームの呼び出しもApplication.Run(new TestForm());としてるよ。
どうしてだろ・・・(´・ω・`)
0797デフォルトの名無しさん2007/03/04(日) 16:23:16
ああ、でも OnDragEnter がちゃんとオーバーライドできるなら、ベースクラスが間違ってる説はないか。
07987752007/03/04(日) 16:26:22
>>797

クラスの定義を

class TestForm : Form

から

class TestForm : System.Windows.Forms.Form

に変更してみた。
やっぱりダメです・・・。
0799デフォルトの名無しさん2007/03/04(日) 16:27:48
DEBUGでやってないって落ちはないよね
0800デフォルトの名無しさん2007/03/04(日) 16:28:02
一応確認しとくけど、エクスプローラとかでもドラッグアンドドロップができなくなってる、ってことはないよな。
08017752007/03/04(日) 16:28:45
>>799
コンストラクタ等ではブレイクポイントで止まることを確認しているのでそれはないです・・・。
0802デフォルトの名無しさん2007/03/04(日) 16:29:00
ファイルをドラッグしたときにコピーマークが出てないって事なのか?
0803デフォルトの名無しさん2007/03/04(日) 16:29:41
program.cs

using System;
using System.Windows.Forms;
public class Program {
    [STAThread] public static void Main() {
        Form f = new Form();
        f.AllowDrop = true;
        f.DragEnter += new DragEventHandler(Enter);
        Application.Run(f);
    }
    private static void Enter(object sender, DragEventArgs e) {
        MessageBox.Show(e.Data.GetDataPresent(DataFormats.FileDrop).ToString());
    }
}

取りあえずこの辺から行ってみようか。
08047752007/03/04(日) 16:29:49
>>800
エクスプローラや他のファイルのドロップが行えるアプリケーションが動作しているんのは確認しています。
0805デフォルトの名無しさん2007/03/04(日) 16:29:51
マウスポインタがフォーム上に差し掛かったとき、ポインタは「止まれ」の標識みたいな奴に変化する?
08067752007/03/04(日) 16:32:01
>>803

そのコードで実行してみたのですがイベントが来ません(´・ω・`)

>>805
はい。
そのカーソルになります。
08077752007/03/04(日) 16:33:09
ここまでくるともう私の環境が壊れているとしか思えませんね・・・(´・ω・`)
0808デフォルトの名無しさん2007/03/04(日) 16:34:11
ためしにPCを再起動してみようか。
0809デフォルトの名無しさん2007/03/04(日) 16:35:40
MessageBox.Show(typeof(Form).AssemblyQualifiedName + "\n"
+ typeof(global::System.Windows.Forms.Form).AssemblyQualifiedName);

はどうなってる?
0810デフォルトの名無しさん2007/03/04(日) 16:37:09
>>809
普通なら同じ文字列が2行出るはずやね。
08117752007/03/04(日) 16:39:15
>> 808
再起動してみます。

>> 809
以下のように・・・。
---------------------------

---------------------------
System.Windows.Forms.Form, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
System.Windows.Forms.Form, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
---------------------------
OK
---------------------------

今、重要なことに気付いたのですが。
このPCには.NET Framework 3.0のランタイムもインストールされています。
これって関係大有りでしょうか・・・?
0812デフォルトの名無しさん2007/03/04(日) 16:39:32
参照設定のSystem.Windows.Formsのプロパティのパスの項はどうなってる?
0813デフォルトの名無しさん2007/03/04(日) 16:39:33
イベント来てないって書いてるやん
0814デフォルトの名無しさん2007/03/04(日) 16:42:03
> このPCには.NET Framework 3.0のランタイムもインストールされています。
> これって関係大有りでしょうか・・・?
.NET3.0でも、System.Windows.Forms.dllは.NET 2.0のものをそのまま参照しているから関係ないはず。
0815デフォルトの名無しさん2007/03/04(日) 16:44:39
>>811
アセンブリも間違ってないのかー謎だなあ
08167752007/03/04(日) 16:46:09
再起動しました。
しかし状況変わらずです・・・。

>>812
以下のようになっていました。
C:\Windows\Microsoft.NET\Framework\v2.0.50727\System.Windows.Forms.dll

>> 813
それで困っているのです・・・。

>>814
そうですか・・・。
0817デフォルトの名無しさん2007/03/04(日) 16:52:46
別のマシンで試せないのかな。
あるいは、ExpressEditionを入れてそっちで試してみるとか。
0818デフォルトの名無しさん2007/03/04(日) 16:56:21
いずれにせよ

if( e.Data.GetDataPresent( DataFormats.FileDrop ) == true && e.Data.GetDataPresent( DataFormats.Text ) == true )

じゃファイルドロップのときtrueにならないぞ
08197752007/03/04(日) 16:56:40
PCは予備があるのですが98なのです・・・。
0820デフォルトの名無しさん2007/03/04(日) 16:57:10
>>818
それはもうとっくに外出だって
0821デフォルトの名無しさん2007/03/04(日) 16:58:23
ファイル丸ごとUPして丸投げしちゃえ!!
0822デフォルトの名無しさん2007/03/04(日) 16:59:24
流れ嫁よ…
08237752007/03/04(日) 17:05:23
もう諦めます・・・(´・ω・`)
0824デフォルトの名無しさん2007/03/04(日) 17:06:27
OS再インスコだな
0825デフォルトの名無しさん2007/03/04(日) 18:30:51
まさかFormにイベント作ってるのにコントロールにファイルとか
ドロップしようとしてないよね?

そうじゃないならダメ元でFormのデザイナのプロパティの方に
イベント追加してみ?
0826デフォルトの名無しさん2007/03/04(日) 18:31:38
訂正:
コントロール→Formに設置したコントロール
0827デフォルトの名無しさん2007/03/04(日) 18:39:39
例え Dock.Fill なコントロールをはっつけてても Form の DragEnter は発生するよ。
0828デフォルトの名無しさん2007/03/04(日) 18:51:59
>>827
マジか…
俺の環境も壊れているようです orz
0829デフォルトの名無しさん2007/03/04(日) 20:08:39
DataGridViewに関してちょっと質問

DataGridView.DataSouce = DataSet.Tables[0];
としてデータ表示をしています
DataGridViewをソートさせDataGridViewをクリックした時に
クリックした場所のDataSetのRowIndexを取りたいのですが
どうすればいいですか?
普通にDataGridViewのRowIndexなら取れるのですが・・・
0830デフォルトの名無しさん2007/03/04(日) 20:50:20
泥臭い方法なら、DataGridViewRow の DataBoundItem が DataRowView になるんで、
そいつの Row を DataTable.Rows の IndexOf に掛けるとか。

BindingSource 使えばもうちょっとスマートな書き方ができたような気がするが思いだせん。
0831デフォルトの名無しさん2007/03/04(日) 22:30:40
えーっと、縦書きの方は相変わらずなのですが、昨日の>>752>>759の方は
よろしければ、「ClickOnceは業務アプリではなかなか使いにくい」 のか
教えてください。

ただ実は当方 ClickOnce の意味がいまいちまだ理解できてないわけでしたが
0832デフォルトの名無しさん2007/03/04(日) 22:32:58
ClickOnce という言葉はあちこちに書いてあるのですが、それが何ものなのかに
ついての単刀直入な説明がなかなか探せないのです。
0833デフォルトの名無しさん2007/03/04(日) 22:34:56
マイクロソフトではよくあること
0834デフォルトの名無しさん2007/03/04(日) 22:45:38
DataGridViewについて質問です。

Rowのヘッダーにテキストを設定することは可能なのでしょうか?
もし可能ならば方法を教えてください。お願いします。
0835デフォルトの名無しさん2007/03/04(日) 22:46:45
ClickOnceはWebページからワンクリックでクライアントアプリをインストールする機能
簡単に説明するとこんな感じ。
08368342007/03/04(日) 23:15:23
解決しました。
0837デフォルトの名無しさん2007/03/05(月) 00:48:56
>>784
C++じゃなくてC++++が由来だとか。
0838デフォルトの名無しさん2007/03/05(月) 01:03:21
>>837
正解
0839デフォルトの名無しさん2007/03/05(月) 01:13:14
正解とかなんでもいいよ
XNAなんて"Xna is Not Acronym"だぜ?
0840デフォルトの名無しさん2007/03/05(月) 01:14:52
GNU以上にアフォだな
0841デフォルトの名無しさん2007/03/05(月) 01:40:00
>>835
そういうことだったのですか、、
ありがとうございます、おかげでやっとわかりました。。。

.NETアプリケーションはZipにしておいて勝手にダウンロードさせて
自分のLocalのすきなところに展開してExeファイルをアイコンにして
もらえばそれでいい、ぐらいにしか考えてなかったので、
何をクリックするのかまったくわからないでいました><。。。

0842デフォルトの名無しさん2007/03/05(月) 01:43:10
ただ、そうだとしますと、「ClickOnceは業務アプリではなかなか使いにくい」
という意味がますますわかりませんが、何か問題があるのでしょうか?
今後のことを考えるとちょっと気になるのですが。
0843デフォルトの名無しさん2007/03/05(月) 02:08:27
>>842
Webサーバで認証されたユーザだけダウンロードすれば、業務アプリで使うのに問題ないはずだけど、
使えない理由が俺にもわからない。
0844デフォルトの名無しさん2007/03/05(月) 08:23:33
自分に理解できないもの使いこなせないものをいろいろ理由をつけて
使えないとか言い張る人間はどこにでもいるものだ。
大方普通のインストーラを作りたかったのにそういうものではなかったということかな。
0845デフォルトの名無しさん2007/03/05(月) 11:22:55
初心者な質問なのですが。。。

int i = 3000;
↑を 3,000 の様に桁区切りで表示する際には
i.ToString("###,###");
と文字列にする以外方法はありますでしょうか?
(理想としてはintのままにしておければ計算する際にわざわざまたintにする必要がないなと思いまして)

0846デフォルトの名無しさん2007/03/05(月) 11:31:05
何に困っているかがわからない
0847デフォルトの名無しさん2007/03/05(月) 11:47:20
ToStringは文字列を返すが、iそのものは変わらんぞ?
0848デフォルトの名無しさん2007/03/05(月) 11:59:22
ClickOnce実際に試したことあるなら何でかって分かりそうなもんだが。
08498452007/03/05(月) 12:03:27
すっごいお馬鹿な質問をしてしまいました。
なんか混乱してて…。確かにiは変わりませんよね><;
質問の仕方を間違っているのですが、上手く説明できません。

整理して出直します。お手数をお掛けしました
0850デフォルトの名無しさん2007/03/05(月) 12:11:27
>>848
あえて聞こう、なんで?
0851デフォルトの名無しさん2007/03/05(月) 19:49:04
public class SmpClass{
 private int[] smp;

 public SmpClass(int size)
 {
  smp = new int[size];
 }
}

↑
このように、コンストラクタなどで動的に配列の生成を行いたいんですが、
配列はオブジェクトとして生成するから、ヒープ領域に置かれるんでしたよね
で、その領域はSmpClassオブジェクトが存在する間に勝手に開放されることは
ないですよね
0852デフォルトの名無しさん2007/03/05(月) 19:51:59
貴方が参照してる間は大丈夫。
0853デフォルトの名無しさん2007/03/05(月) 19:56:34
ガーベジコレクションっていうやつですね
安心しますた
ありがとうございました
0854デフォルトの名無しさん2007/03/05(月) 20:54:50
TabControlのタブ部分を表示しない方法はありませんか。
それで何をしたいかというと、WINAMPやネスケの設定画面のように、複数ページをTreeViewで切り替えるようなものを作りたいのです。
0855デフォルトの名無しさん2007/03/05(月) 20:59:33
自分で消したり出したりすりゃいいじゃん。
0856デフォルトの名無しさん2007/03/05(月) 21:16:56
それが面倒だから聞いてるに決まってるでしょw
854の質問の意図は俺は理解できるよ。
残念ながらエレガントに実現する方法は少なくともVSでは用意されてないと思うけど。

エレガントでなくても、とりあえずデザイナ使ってサクッとデザインできればいいなら
パネルの中にTabControlぶち込めば出来そうだけど
0857デフォルトの名無しさん2007/03/05(月) 21:22:41
.NET Framework を使う限り無理。
0858デフォルトの名無しさん2007/03/05(月) 21:27:13
>>854
これやるよ。長いから2レスに分けるぞ。

public class TablessTabControl : System.Windows.Forms.TabControl
{
[Browsable(false)]
[EditorBrowsable(EditorBrowsableState.Never)]
[ReadOnly(true)]
public new TabAppearance Appearance
{
get { return base.Appearance; }
}

[Browsable(false)]
[EditorBrowsable(EditorBrowsableState.Never)]
[ReadOnly(true)]
public new Size ItemSize
{
get { return base.ItemSize; }
}

[Browsable(false)]
[EditorBrowsable(EditorBrowsableState.Never)]
[ReadOnly(true)]
public new TabSizeMode SizeMode
{
get { return base.SizeMode; }
}
0859デフォルトの名無しさん2007/03/05(月) 21:28:00
[Browsable(true)]
[Category("Appearance")]
public new TabPage SelectedTab
{
get { return base.SelectedTab; }
set { base.SelectedTab = value; }
}

public TablessTabControl() : base()
{
SuspendLayout();

base.Appearance = TabAppearance.Buttons;
base.ItemSize = new Size(0, 1);
base.SizeMode = TabSizeMode.Fixed;

ResumeLayout();
}
}
0860デフォルトの名無しさん2007/03/05(月) 21:35:48
あと、こういう手もあるが、デザイン時の位置決めが面倒なのでお勧めしない。
「タブを消す」という意味においては、こっちのほうが確実だとは思うけどね。

public class TablessTabControl : System.Windows.Forms.TabControl
{
[Browsable(true)]
[Category("Appearance")]
public new TabPage SelectedTab
{
get { return base.SelectedTab; }
set { base.SelectedTab = value; }
}

private void SetDisplayRegion()
{
Region = new Region(DisplayRectangle);
}

public TablessTabControl() : base()
{
SuspendLayout();
SetDisplayRegion();
ResumeLayout();
}

protected override void OnResize(EventArgs e)
{
base.OnResize(e);
SetDisplayRegion();
}
}
0861デフォルトの名無しさん2007/03/05(月) 21:40:34
>>856
そんくらいが面倒なら何やるのも面倒だと思うけどね。
0862デフォルトの名無しさん2007/03/05(月) 21:42:24
タブコントロール使う方が面倒じゃないかなこれって。
普通にパネル置いて、表示したいユーザーコントロールを置き換える処理を
行った方がスマートで描画処理も早いような気がする。
0863デフォルトの名無しさん2007/03/05(月) 21:55:28
ああ、なるほど画面ごとに複合コントロールにして
それをポンポン置き換えるってのは確かによさそうだな。
いいアイデア聞いたよ。
0864デフォルトの名無しさん2007/03/05(月) 21:58:11
>>863
だから何?
0865デフォルトの名無しさん2007/03/05(月) 21:58:45
Panelを同じ大きさ・位置で重ねて
TreeViewの選択イベントでBringToFrontすればいいじゃん
それをManageするクラス作っときゃ
0866デフォルトの名無しさん2007/03/05(月) 21:59:28
だから最初から自分で消したり出したりすりゃいいじゃんっていっとるやん毛
0867デフォルトの名無しさん2007/03/05(月) 22:00:21
>>866
おまえが消えろ
0868デフォルトの名無しさん2007/03/05(月) 22:00:42
>>865
・重くなる
・デザイン時デザインしにくい
0869デフォルトの名無しさん2007/03/05(月) 22:03:12
同じサイズの UserControl を必要なページ分だけ用意するわけだな。
UserControl に配置したコントロールのアクセス修飾子を internal にでもしておけばいいか。

でもやっぱり、デザイン時の手軽さでは TabControl にかなわないな。
0870デフォルトの名無しさん2007/03/05(月) 22:03:38
それぞれ UserControl にして必要な時に出したり消したりすりゃいいんだYO!
0871デフォルトの名無しさん2007/03/05(月) 22:05:12
次の方どうぞ↓
0872デフォルトの名無しさん2007/03/05(月) 22:06:40
結局>>866のとおりなんだけどな
0873デフォルトの名無しさん2007/03/05(月) 22:10:31
タブが消えたらデザイン時にタブを選択できないじゃないか!
0874デフォルトの名無しさん2007/03/05(月) 22:12:13
>>873
なるほどー!
0875デフォルトの名無しさん2007/03/05(月) 22:13:50
ちょwwwwwだからわざわざSelectedTabsをBrowsableにしてるんだろwwwwww
0876デフォルトの名無しさん2007/03/05(月) 22:19:25
一人でウケてろよ馬鹿。
こいういう馬鹿は相手すれば調子になって居つし、無視すれば無視したで
地縛霊みたいに居つくし、手の打ちようがないな。本当鬱陶しいわ
0877デフォルトの名無しさん2007/03/05(月) 22:21:16
>>876
いやなことがあったんだね。
でもここで発散すんな。
0878デフォルトの名無しさん2007/03/05(月) 22:23:41
次の方どうぞ↓
0879デフォルトの名無しさん2007/03/05(月) 22:29:49
>>864,867,871,878
0880デフォルトの名無しさん2007/03/05(月) 23:16:34
こんばんわ、お世話になります。

サーバー側のAcceptTcpClientに関する質問です。クライアントからの前のソケットが残った
状態で更にクライアントが新規にソケットを作成しようとするとサーバー側がハングアップの
ようになってしまうのですが回避する方法はありませんでしょうか?。
0881デフォルトの名無しさん2007/03/05(月) 23:27:39
一般的には要求を Accept するたびに処理スレッドを作ってそっちで応答処理させるものだが
0882デフォルトの名無しさん2007/03/05(月) 23:35:41
>>881
それがスレッドを立てても、BeginAcceptTcpClientかAcceptTcpClientの所で
止まってしまうようなのです。スレッドの立て方が悪いのでしょうか?。

TcpListener listener;
private void Form1_Load(object sender, EventArgs e)
{
listener = new TcpListener(IPAddress.Any, 8080);
listener.Start();
new Thread(newfun).Start();
}

private void newfun()
{
this.listener.AcceptTcpClient(); ← ここで割り込まれてハングアップのようになる
}
0883デフォルトの名無しさん2007/03/05(月) 23:38:31
AcceptTcpClient()から返ってきたTcpClientを別スレッドで読み書きするんでわ?
0884デフォルトの名無しさん2007/03/05(月) 23:48:41
>>882
それだとスレッド一個しかできんじゃん
0885デフォルトの名無しさん2007/03/06(火) 00:07:26
>>883-884
BeginAcceptTcpClientを使ってみたり色々と試していたので上記のは手書きしたの
で間違えました。AcceptTcpClient()から返ってきたTcpClientで書き直したのを
キッカケにして色々と書き直してみたらループに嵌っていたのがわかりました。

お騒がせしました。
0886デフォルトの名無しさん2007/03/06(火) 00:42:36
TcpClientなんて使わないでSocket使って非同期なり同期通信なり、自作すればいいよ。
0887デフォルトの名無しさん2007/03/06(火) 02:37:45
こうですか?わかりません!

private void StartListening()
{
TcpListener listener = new TcpListener(IPAddress.Any, 8080);
listener.Start();
listener.BeginAcceptTcpClient(new AsyncCallback(AcceptTcpClientCallBack), listener);
}

private void AcceptTcpClientCallBack(IAsyncResult ar)
{
TcpListener listener = ar.AsyncState as TcpListener;
TcpClient client = listener.EndAcceptTcpClient(ar);
NetworkStream stream = client.GetStream();
byte[] buf = new byte[ 65536 ];
stream.BeginRead(buf, 0, buf.Length, new AsyncCallback(ReadCallBack), new object[] { stream, buf });
listener.BeginAcceptTcpClient(new AsyncCallback(AcceptTcpClientCallBack), listener);
}

private void ReadCallBack(IAsyncResult ar)
{
NetworkStream stream = ((object[])ar.AsyncState)[ 0 ] as NetworkStream;
Byte[] buf = ((object[])ar.AsyncState)[ 1 ] as byte[];
int len = stream.EndRead(ar);
if (len > 0) { /* 受信したデータで何かする */ }
stream.BeginRead(buf, 0, buf.Length, new AsyncCallback(ReadCallBack), new object[] { stream, buf });
}
0888デフォルトの名無しさん2007/03/06(火) 02:48:59
弟子よ。おまえに教えることはもう何もない。
0889デフォルトの名無しさん2007/03/06(火) 03:30:30
BitBlt

ビットビットってよんでたよ。。。。。。。。orz
0890デフォルトの名無しさん2007/03/06(火) 03:33:35
ひ〜とびとの〜HitBit...
0891デフォルトの名無しさん2007/03/06(火) 08:58:43
じゃあ何て発音しますか?フフフ…
08928852007/03/06(火) 09:01:08
おはようございます。

*イメージとしてはこんな感じにしたいです
key string = array(string,NetworkStream)
key string[0] = string
key string[1] = NetworkStream

上記のようなディレクトリを使いたいと思い、
private Dictionary<string, Dictionary<string, NetworkStream>> users = new Dictionary<string, Dictionary<string, NetworkStream>>();
としてusers.add(key, ??? );と書こうとしているのですが???の部分の書き方がわからないのです。
どのように書いたら良いのでしょうか?。

>>886-887
887は別人です!笑。が参考にさせて頂きました。
ありがとうございます。
0893デフォルトの名無しさん2007/03/06(火) 11:22:59
ほかのアプリケーションのスクリーンショットを撮りたいとき
Alt+PrintScreenを送ってクリップボードから取得する以外に
いい方法はありませんか?

Vistaでのウィンドウ一覧の3D表示をXPでも
できるようにするソフトを作りたいのですが。
0894デフォルトの名無しさん2007/03/06(火) 11:38:00
>>893
PrintWindow API使えばある程度できるよ。
ttp://www.microsoft.com/japan/msdn/windows/windowsxp/xpvisualstyles.aspx

でもVistaみたいに最小化しているウィンドウについては無理。
あとリアルタイムアニメーションも多分きつい。

Vistaはわざわざライブサムネイルのためにウィンドウマネージャ書き換えてAPIまで追加したわけで、
それが何の苦労もなくXPで実現できるならXPでいいじゃんということになる。
08958942007/03/06(火) 11:48:47
>>893
追記だけど、XPをVista風にするよりVistaで新しいUI考える方がおもしろいんじゃないかね?
Flip 3Dってパクるほどの価値もないと思うんだが……

例えばこれはVistaの新API使って作ったExposeもどき。Macのあれね。
ttp://blogs.labo-dotnet.com/simon/archive/2006/11/08/11485.aspx
C++/CLIとWPFで書かれてる。ソースコード付き。
こういうの作った方が楽しいし勉強にもなっていいんじゃない?
0896デフォルトの名無しさん2007/03/06(火) 11:48:53
StreamReader sr = new StreamReader(Path.GetFullPath("read.txt"));
StreamWriter sw = new StreamWriter(Path.GetFullPath("write.txt"));
String buf;

while( (buf=sr.ReadLine()) != null) sw.WriteLine(buf);

↑
こうやってファイルの内容をswに書き込みたいのですが、うまく書き込めません
ファイルは両方ともちゃんと開いてるし、srからはちゃんと文字列を読み取っています。
なぜか書き込みだけができません。(途中まで書き込むこともあるw)

しかし
using(sw)
{
 while( (buf=sr.ReadLine()) != null) sw.WriteLine(buf);
}
とやると、うまく書き込めます。
書き込み用ファイルストリームはこうしないと、書き込み途中で破棄されたりするのでしょうか
0897デフォルトの名無しさん2007/03/06(火) 12:19:12
>>892
それだと、外側のDictionary<,>のアイテム数だけ内側のDictionary<,>のインスタンスをつくらにゃならん。
String, String, NetworkStream を持つクラスを作って、そのList<>でも作っとけ。
0898デフォルトの名無しさん2007/03/06(火) 13:03:32
>>894
俺は>>893じゃないが、ありがとう
TaskSwitcherどうやって作ってるか気になってたんだ
0899デフォルトの名無しさん2007/03/06(火) 13:11:06
>>896
StreamWriter がバッファ付き出力で、
WriteLine が呼ばれた時点ではメモリ上にデータをためてある状態で
ファイルには反映されない。

StreamWriter の Dispose なり Close なりが呼ばれた時点で
初めてバッファの中身がファイルに出力される。

ファイルみたいな、.NET Framework の管理対象外を操作する場合、
using パターンが必須。
0900デフォルトの名無しさん2007/03/06(火) 13:22:36
>>894,895
トンクス!
0901デフォルトの名無しさん2007/03/06(火) 14:47:36
textBoxのキー押しイベントは

private void textBox1_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e)
{ }

だけではだめなのでしょうか
なぜか呼ばれません
0902デフォルトの名無しさん2007/03/06(火) 15:20:49
だけではだめです。

this.textBox1.KeyDown += new System.Windows.Forms.KeyEventHandler( this.textBox1_KeyDown );
0903デフォルトの名無しさん2007/03/06(火) 15:35:48
サンクス
0904デフォルトの名無しさん2007/03/06(火) 16:19:58
>>899
そうなんですか。分かりました。サンクス!
0905デフォルトの名無しさん2007/03/06(火) 17:55:55
CheckedListBoxの内容を保存/復元しようとして、
項目の保存/復元は出来たのですが、
チェック状態の保存/復元の方法が分かりません。
どうしたら良いのでしょうか。
0906デフォルトの名無しさん2007/03/07(水) 19:01:45
親クラスのプロパティを呼び出して 別のプロパティ名で使いたいのですが
どういう風にやればいいのかわかりません。
どなたかご指導いただけないでしょうか?
0907デフォルトの名無しさん2007/03/07(水) 19:06:53
普通にbase.Propを読み書きするプロパティを定義したらいいんじゃないのか?
0908デフォルトの名無しさん2007/03/07(水) 19:20:05
>905
いみがわからない
0909デフォルトの名無しさん2007/03/07(水) 19:22:09
>>905
CheckedIndicesも覚えとけば?
0910デフォルトの名無しさん2007/03/07(水) 20:21:47
すいません、初歩的な質問なんですが、
newって「メモリを動的に確保するぜ」って意味の名残?ですよね

ふとstringがnewしないのはなんでかなぁーとか思ったもので
0911デフォルトの名無しさん2007/03/07(水) 20:29:51
string s = new string(new char[0]);
0912デフォルトの名無しさん2007/03/07(水) 20:30:06
いや、してるよ
0913デフォルトの名無しさん2007/03/07(水) 20:31:51
>>910
newはクラスをインスタンス化する指令だ。メモリ云々とは関係ない
0914デフォルトの名無しさん2007/03/07(水) 20:40:38
string a = "あwせdrftgyふじこ";

は、一般のクラスと同じ形式で書けば

string a = new string( "あwせdrftgyふじこ" );

であると心の中では思っているがどうか?
実際にはこんなコンストラクタ冗長なだけだから無いんだけど。
0915デフォルトの名無しさん2007/03/07(水) 20:47:59
>>914
利便性のために簡素化してある。ilレベルで専用命令があるもよう。

string str = "abcdef";
System.Console.WriteLine(str);

  IL_0001:  ldstr      "abcdef"
  IL_0006:  stloc.0
  IL_0007:  ldloc.0
  IL_0008:  call       void [mscorlib]System.Console::WriteLine(string)
0916デフォルトの名無しさん2007/03/07(水) 20:50:12
コンストラクタの引数がすでにStringクラスのインスタンスな罠
0917デフォルトの名無しさん2007/03/07(水) 20:53:11
こう書けなくもない。
System.String str = new System.String(new char [] {'a', 'b', 'c'});
0918デフォルトの名無しさん2007/03/07(水) 20:56:29
>>910
実際にはnewしてるんだけど、記述の簡素化のために省略した書き方が許されている。
数値型やStringの配列で、new int[] とか書いても書かなくてもいいのもそう。
09199102007/03/07(水) 21:39:51
StringクラスでやったのとILレベルで同じになるって感じっぽそうですね。
省略されてただけでしたか。ん、疑問解決。

っというか初めてILの存在を知った。.NETってすげー
0920デフォルトの名無しさん2007/03/07(水) 21:58:50
直値としての文字列はすでに存在しているのを持ってくるだけなので new しない、
と言う考えの方がいいんじゃないかな。

Console.WriteLine(Object.ReferenceEquals("a", "a"));
Console.WriteLine(Object.ReferenceEquals("a", new String('a', 1)));
Console.WriteLine(Object.ReferenceEquals(new String('a', 1), new String('a', 1)));
0921デフォルトの名無しさん2007/03/07(水) 22:11:16
「すでに存在している」と言うより「あらかじめnewしておいた」じゃない?

しかしあまり深入りし過ぎると混乱しそうだ
0922デフォルトの名無しさん2007/03/07(水) 22:18:11
C#のnewを、CILのnewobjに対応づけるなら、
文字列リテラルは「newされていない」ことになるが
0923デフォルトの名無しさん2007/03/07(水) 22:34:48
Dictionary<string, string[]>でContainsValue()を使う所で悩んでいるのですが、
string[0],[1],[2]とある場合に0だけを検索対象にする事はできるのでしょうか?
0924デフォルトの名無しさん2007/03/07(水) 22:37:06
そんな器用なことはできん

そもそも ContainsValue(string[]) だろ。
0925デフォルトの名無しさん2007/03/07(水) 22:37:16
できないね
string[] の代わりに IEquatable 実装させたクラス使うとかすればできるけど
09269232007/03/07(水) 22:37:21
すいません、追加です
bool ContainsValue()のようですがkey を返す事はできないでしょうか?
0927デフォルトの名無しさん2007/03/07(水) 22:39:10
Value から Key 調べるんだったら素直に foreach しとけ。
これなら配列要素も使いたい放題だ。
0928デフォルトの名無しさん2007/03/07(水) 22:41:08
LINQの出番だな
09299232007/03/07(水) 22:41:31
>>924-925、927
無理ですが、ありがとうございます。
ぐるぐる回す事にします。
0930デフォルトの名無しさん2007/03/07(水) 22:55:34
>>923
お前さんがほしいのはこういうものか?

static void Main(string[] args)
{
Dictionary<string, string[]> dic = new Dictionary<string, string[]>();
dic.Add("ABC", new string[] { "A", "B", "C" });
dic.Add("DEF", new string[] { "D", "E", "F" });
dic.Add("GHI", new string[] { "G", "H", "I" });
dic.Add("JKL", new string[] { "J", "K", "L" });

string key = SearchDictionary(dic, "G");
}

private static string SearchDictionary(Dictionary<string, string[]> dictionary, string firstValue)
{
List<KeyValuePair<string, string[]>> tmp = new List<KeyValuePair<string, string[]>>(dictionary);
KeyValuePair<string, string[]> find
= tmp.Find(delegate(KeyValuePair<string, string[]> x) {
return (x.Value != null && x.Value.Length > 0 && x.Value[ 0 ] == firstValue);
});

return find.Key;
}
0931デフォルトの名無しさん2007/03/07(水) 23:04:54
var keys = from x in dic where x.Value != null && x.Value.Length >= 1 && x.Value[0] == "Foo" select x.Key;
09329302007/03/07(水) 23:08:47
冷静に考えたら、これ、ぐるぐる回すのとなんら変わりないな……
0933デフォルトの名無しさん2007/03/07(水) 23:12:05
というかむしろ効率悪いと思われ
0934デフォルトの名無しさん2007/03/07(水) 23:16:27
じゃあこうしよう。

private static string SearchDictionary(Dictionary<string, string[]> dictionary, string firstValue)
{
foreach (KeyValuePair<string, string[]> item in dictionary)
{
if (item.Value != null && item.Value.Length > 0 && item.Value[ 0 ] == firstValue)
{
return item.Key;
}
}

return null;
}
0935デフォルトの名無しさん2007/03/07(水) 23:20:33
こうする方が良くね?
public static T SearchDictionary<T, K>(IDictionary<T, K> dictionary, Predicate<K> match) {
   foreach (KeyValuePair<T, K> pair in dictionary)
      if (match(pair.Value)) return pair.Value;
   return default(T);
}
0936デフォルトの名無しさん2007/03/07(水) 23:21:26
あ、return pair.Key の間違いだった
0937デフォルトの名無しさん2007/03/07(水) 23:24:43
>>935
return pair.Key じゃね?
ていうか、俺ら質問者を置き去りにしすぎじゃね?w
0938デフォルトの名無しさん2007/03/07(水) 23:25:28
勝手に暴走するのは今に始まったことじゃない
0939デフォルトの名無しさん2007/03/07(水) 23:26:06
>>935
呼ぶのが面倒だYO!
0940デフォルトの名無しさん2007/03/07(水) 23:26:23
>>937
どう見ても後追い
09419232007/03/07(水) 23:31:07
初心者はこう書きました・・・

foreach (string ns in users.Keys)
{
if (users[ns][0] == "val")
{
return ns;
}
}
return false;
0942デフォルトの名無しさん2007/03/07(水) 23:32:48
>>941
うん、それが一番まっとうだと思うw
0943デフォルトの名無しさん2007/03/07(水) 23:33:35
イヤ待て、string と bool が返ってるのはどういう事だ
0944デフォルトの名無しさん2007/03/07(水) 23:34:40
戻り値はobject型なんだ
0945デフォルトの名無しさん2007/03/07(水) 23:38:24
返値を bool にして out で Key を返すべきだな
Int32.TryParse の形だ
09469232007/03/08(木) 00:13:19
あ、まだ多用してないからユーザー関数にしてないので手書きしたのですが
確かにおかしいですねorz

return -1で!
09479232007/03/08(木) 00:16:36
数字じゃん;;
0948デフォルトの名無しさん2007/03/08(木) 00:17:29
落ち着けw
0949デフォルトの名無しさん2007/03/08(木) 00:21:56
C#でかかれたソース付きのバイナリエディタまたはバイナリダンププログラム、どこかで
公開されていないでしょうか。
情報求む。
0950デフォルトの名無しさん2007/03/08(木) 01:04:58
http://home.gna.org/bless/
俺はこれしか知らんな。
0951デフォルトの名無しさん2007/03/08(木) 21:15:30
C++では配列を初期化するとき
int array[10] = { 0 } ;
とすれば個々の要素を全て0で初期化出来たと思いますが、C#で同様の実装はどのように行うのでしょうか?
int[] array = new int[10] { 0 } ;
ではエラーになるようです・・・
0952デフォルトの名無しさん2007/03/08(木) 21:35:10
0 で初期化したいのなら new int[10] でおk
09539512007/03/08(木) 22:22:02
>>952
明示的に0で初期化しないとなんとなく気持ち悪くないですか?
0954デフォルトの名無しさん2007/03/08(木) 22:23:09
int型の変数は0に初期化されると仕様で決まってる。
0955デフォルトの名無しさん2007/03/08(木) 22:25:51
new int[10]; は気持ち悪く感じるのに int array[10] = {0}; は受け入れられる不思議な感性
0956デフォルトの名無しさん2007/03/08(木) 22:34:20
気持ち悪いも何も、言語仕様に明記されてます。

5.2 Default values
The following categories of variables are automatically initialized to their default values:
* Static variables.
* Instance variables of class instances.
* Array elements.
09579512007/03/08(木) 22:35:38
>>954
でも,例えばdouble型は0じゃ初期化されませんよね?
そういう意味で、明示した方がすっきりするような気がするんですけど。

>>955
そうかなぁ・・・{0}はオールゼロ的な感じで。一応明示してるし
0958デフォルトの名無しさん2007/03/08(木) 22:38:41
>>957
> でも,例えばdouble型は0じゃ初期化されませんよね?
されるよ。値は全て 0/false/null になる。

> そうかなぁ・・・{0}はオールゼロ的な感じで。一応明示してるし
ひょっとして
int array[10] = {1};
がどうなるか理解していない?
0959デフォルトの名無しさん2007/03/08(木) 22:38:58
>>957
default(double) == 0D

これも仕様で決まってる。
0960デフォルトの名無しさん2007/03/08(木) 22:44:48
>>958
> int array[10] = {1};
やったことないですね。

>>959
仕様で決まってるのは分かりますけど、
明示した方が分かりやすいのではないか?という話です
0961デフォルトの名無しさん2007/03/08(木) 22:47:34
>>960
それならなんで、
int array[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; と書かないの?
矛盾してるじゃん。
0962デフォルトの名無しさん2007/03/08(木) 22:50:06
>>960
> でも,例えばdouble型は0じゃ初期化されませんよね?
のどこが
> 仕様で決まってるのは分かりますけど、
> 明示した方が分かりやすいのではないか?という話
なんだ?
0963デフォルトの名無しさん2007/03/08(木) 22:54:14
>>960
0に初期化されることになってるんだから、
下手に初期化子書くよりずっと分かりやすいだろ。
0964デフォルトの名無しさん2007/03/08(木) 22:54:55
>>960
int array[10] = {1};
 ↓
int array[10] = {1, 0, 0, 0, 0, 0, 0, 0, 0, 0};
0965132007/03/08(木) 23:12:14
クラス変数などでも明示しなければprivateになるのに、privateってわざわざ付けますよね。
それと一緒で、冗長でも明示した方が分かりやすい気がするんですけど、そういう訳でもないのでしょうか?


>>964
ぁー・・・それダメですね・・・
全部1で初期化されるのかと思ってました。
0966デフォルトの名無しさん2007/03/08(木) 23:15:41
>>965
>>961
0967デフォルトの名無しさん2007/03/08(木) 23:17:15
>>965
俺はアクセス修飾子も省略できるところは省略する主義なんだけど
0968デフォルトの名無しさん2007/03/08(木) 23:17:36
おまえらもう許してやれ
0969デフォルトの名無しさん2007/03/08(木) 23:25:08
>>965は基礎からやり直し
0970デフォルトの名無しさん2007/03/08(木) 23:27:59
ちょっとは仕様を確認してから書けよあほう。
0971デフォルトの名無しさん2007/03/08(木) 23:31:04
ローカルな変数(スタックにとられるもの)だけは初期化されない。
言語仕様で初期化を強制されるが。
0972デフォルトの名無しさん2007/03/08(木) 23:31:25
(*´∀`)
0973デフォルトの名無しさん2007/03/09(金) 00:33:09
c++病ですね。
初期化忘れでどれほどのプログラマが苦しんだんだろう…
0974デフォルトの名無しさん2007/03/09(金) 00:42:49
そもそも初期化しない変数を使う時点で問題あるし
自動で初期化されても同じバグを出しやつはいるだろ
0975デフォルトの名無しさん2007/03/09(金) 00:45:29
自分の組んでない部分で初期化されてない場合もありました。
0976デフォルトの名無しさん2007/03/09(金) 00:47:05
そんなわけないだろw
だいたい実数や整数の初期値が0であることを前提にするコードなんて
そうそうあるもんじゃないし。
0977デフォルトの名無しさん2007/03/09(金) 00:48:27
intが2バイト前提でmallocしてあったり…
すれ違い棚。
0978デフォルトの名無しさん2007/03/09(金) 00:54:04
>>976
実数は知らないけど Countが0で初期化されてないのは…
0979デフォルトの名無しさん2007/03/09(金) 01:02:35
いい加減巣に帰れ
0980デフォルトの名無しさん2007/03/09(金) 01:15:51
c#サイコー!!
最強!!!
0981デフォルトの名無しさん2007/03/09(金) 04:08:39
仕様を熟知してないから、明示的にしたがるんじゃね。
俺もそうなんでなんとなくわかる。

ただ、クラス変数の初期化なんかは、仕様のデフォルトじゃない初期値を入れる以外では、
コンストラクタ等で代入される前に参照される可能性がある変数に限りますけどね。
仕様のデフォルト値に期待しないという点では同じかな。
0982デフォルトの名無しさん2007/03/09(金) 09:16:56
C#とC++とVBとJavaと掛け持ちでやってたりすると、
全部同じ書式で初期化しないとわけわかんなくなるw
0983デフォルトの名無しさん2007/03/09(金) 10:17:00
初期化されるタイミングも考慮せいよ
0984デフォルトの名無しさん2007/03/09(金) 10:34:20
初期化されるってわかってても不安になるよなw
0985デフォルトの名無しさん2007/03/09(金) 11:51:05
職業プログラマは、新人のうちに「初期化の習慣をつけろ」って叩き込まれるからな。
業務で書くコードは、言語に不慣れな人が読むことも考慮せにゃならんし。
0986デフォルトの名無しさん2007/03/09(金) 12:31:11
そんな習慣叩き込まれないだろw

そもそも初期化忘れごときで躓く奴はPGに最初から向いてないんだよ、
煽りでもなんでもなく。

だって変数が自分の期待する初期値になっていると、自分で初期化するコードを
書いてもいないのに期待するって端的に頭おかしいだろw

初心者スレでエスパー召還しないと誰にも理解できない質問する馬鹿に通じるものがある、
ある種の頭の悪さだよねこれ。
0987デフォルトの名無しさん2007/03/09(金) 13:16:11
論理飛躍しすぎ
0988デフォルトの名無しさん2007/03/09(金) 13:40:24
>>986
> そんな習慣叩き込まれないだろw
かわいそうに。
ろくに教育もしてくれないようなところにお勤めなんですね。
そりゃ2chで暴れたくもなりますよね。
0989デフォルトの名無しさん2007/03/09(金) 13:53:07
>>986
ゼロ初期化はそれほど突飛ではないと思うが。
まあ初期化をしない慣習はC系PGの悪癖かもしれんけど。
0990デフォルトの名無しさん2007/03/09(金) 14:04:10
変数定義していきなり参照するのは、体が覚えてて拒否反応起こすべ
0991デフォルトの名無しさん2007/03/09(金) 14:36:34
最近のこの業界は初心者に親切すぎて普通の人にはむしろ読みにくいコードばっかりで困る。
0992デフォルトの名無しさん2007/03/09(金) 16:38:49
static T[] Fill<T>(T[] array, T value)
とか作って満足しとけ
0993デフォルトの名無しさん2007/03/09(金) 17:07:07
この業界ってどこだ
普通の人ってどういう基準で普通なんだ
0994デフォルトの名無しさん2007/03/09(金) 17:10:23
C++でいうところのsetにあたるクラスってないんですか?
自分の探し方が悪いだけかもしれないけど仕方なくDictionary<T, object>でValueをnullにしてたりするんですが
0995デフォルトの名無しさん2007/03/09(金) 17:17:46
ないんです。
自分で作っちゃいなよ。
0996デフォルトの名無しさん2007/03/09(金) 17:19:34
なるほど、ないのですねありがとうございました
0997デフォルトの名無しさん2007/03/09(金) 18:38:40
>>988
話が噛合ってないようだが、俺の意図は
そもそもそんな低レベルかつ当然のことをいちいち叩き込まれないと実行できない奴は
最初からPGの適性がないということだ。

お前さんが初期化忘れで躓いたことがあるとしたら、
所詮その程度の男(まあ女かもしれんいけど)だということ。

所詮三流PGの俺ですら、初期化忘れなんかで泣いたことは
初めてプログラム書いた厨房の頃から一度もないよ。

だって>>986にも書いたとおり、初期化忘れなんて普通の思考能力があったら
むしろありえないだろ。
0998デフォルトの名無しさん2007/03/09(金) 18:43:04
そういう適性のないやつだってプログラマやってるし、
運悪く上司になっちゃったりしたら、くだらん教育をせんとならん。

察してやってください
0999デフォルトの名無しさん2007/03/09(金) 18:43:35
生め
1000デフォルトの名無しさん2007/03/09(金) 18:44:10
マ板でやれ
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。