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

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
このスレッドは
「どんなにくだらないC#プログラミングに関する発言でも誰かが優しくレスをしてくれるスレッド」です。
ほかのスレッドでは恐ろしくて書き込めないような低レベル、もしくは質問者自身なんだか意味がよく分からない質問など、
勇気をもって書き込んでください。
内容に応じて、他スレ・他板へ行くことを勧められる、あるいは誘導される場合がありますがご了承下さい。
2デフォルトの名無しさん: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/
3デフォルトの名無しさん: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
4デフォルトの名無しさん:2007/02/06(火) 20:37:57
5デフォルトの名無しさん:2007/02/06(火) 20:41:01
11 名前:デフォルトの名無しさん[sage] 投稿日:2007/01/18(木) 19:19:37
質問するときに
〜したいのですが、上手くいきません。
〜したときにエラーが出ます。

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

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

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

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

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

問題は IEnumerable を実装してるクラスの場合で、単純なクラスの場合と同じに
書いてもリストオブジェクト自体のプロパティのバインディングが出来ないです。
12デフォルトの名無しさん:2007/02/06(火) 21:05:22
再掲?
がちょーんって言ってた人?
1311=前スレ972:2007/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() が呼ばれて
いて、これは素直に通過するのだけど通過した後の外部コードの中で例外が発生します。

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

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

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

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


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

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

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

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

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

それはさておき、MessageBox はモーダルウィンドウなので。
嫌なら自分でフォーム書くとか。
34デフォルトの名無しさん: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
35デフォルトの名無しさん:2007/02/07(水) 08:49:56
>>33
なんでモーダルウィンドウだとそうなるんですか?
36デフォルトの名無しさん:2007/02/07(水) 09:06:59
なんでって用途を考えろよ
37デフォルトの名無しさん:2007/02/07(水) 09:13:59
わかんねーから聞いてるんですけど
質問スレで「考えろ」って回答はありえないんですけど
38デフォルトの名無しさん:2007/02/07(水) 09:20:41
典型的なゆとりだな。
39デフォルトの名無しさん:2007/02/07(水) 09:22:58
>>37
>>34
40デフォルトの名無しさん:2007/02/07(水) 09:55:45
わかり易く説明してくれよ
初心者なんだからさ
マルチスレッドとか意味わかんね

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

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

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

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

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

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

こんな感じに並んでいて、2の行がダブルクリックされた際に
「2」でも「ぬるぽ」でも「B」でもいいのでこのクリックされた行に関する情報を得たいです。
51デフォルトの名無しさん: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 );
    }
}
52デフォルトの名無しさん:2007/02/07(水) 13:58:54
>>51
うまくいきました。
お手数おかけしました。
どうもありがとうございます。
53デフォルトの名無しさん:2007/02/07(水) 15:55:37
BinaryReaderでfloat値をバイナリファイルから取り出す場合、どうすればいいの?
標準でReadFloatが入ってないのも不思議だが・・・
54デフォルトの名無しさん:2007/02/07(水) 16:12:49
ReadSingleてないの?
55デフォルトの名無しさん:2007/02/07(水) 16:20:50
>>54
d
それでいけました。
ReadFloatって名前じゃなかったのね。
56デフォルトの名無しさん:2007/02/07(水) 19:41:47
テキストファイルを途中から読み込む方法教えてください。
○○行目から読み込む、
又は
○○の文字列の後から読み込むなど。
よろしくお願いします
57デフォルトの名無しさん:2007/02/07(水) 19:49:59
ない。
考えれば分かると思うが…
普通に読み込んでいらない行を捨てていくだけ。
58デフォルトの名無しさん:2007/02/07(水) 20:28:55
>>57
そんなわけねーだろwカス

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

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

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

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

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

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

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

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

>>87
ありがとうございます。
するとRunWorkerCompleted イベント中の処理って
やっぱりUIスレッドがビジーの間は待たされるということですか
メッセージキューみたいなイメージでいいんですかね?
90デフォルトの名無しさん :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();
}}
91デフォルトの名無しさん:2007/02/08(木) 19:36:33
小さいもの?に大きいものが入ってるイメージがあるかもしれないが
実際はそんなものじゃないのです。
代入してもベースのオブジェクトのメモリに押し込まれるわけでありません。
拡張した部分が削られるわけではないのです。

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

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

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

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

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

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

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

  生 物 の 時 間 終 了
101デフォルトの名無しさん :2007/02/09(金) 02:57:51
>>100
おまえ何歳なんだよ
102デフォルトの名無しさん: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
103デフォルトの名無しさん: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);
}
}



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

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

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

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

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

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

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

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

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


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

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

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

Cシャープ→csya-pu
のような感じで。
161デフォルトの名無しさん:2007/02/11(日) 21:26:43
っ ImmGetConversionList
っ KAKASI, ChaSen
162デフォルトの名無しさん:2007/02/11(日) 21:29:15
しゃ は sha なのか sya なのか
163デフォルトの名無しさん:2007/02/11(日) 21:33:23
KeyUpを捕まえとくとか?
164デフォルトの名無しさん:2007/02/11(日) 21:39:43
>>137>>144
Actionクラスくらい自作しれ
165デフォルトの名無しさん:2007/02/11(日) 21:41:18
親指シフト使いの俺も忘れないでください
166160:2007/02/11(日) 21:44:27
うーむ・・基本的には正しい変換とか気にせずに拾ってほしいからやっぱKeyUpなのかねぇ・・
BackSpaceとかDeleteとかどうすんだろ
167デフォルトの名無しさん:2007/02/11(日) 21:46:01
車売るならKeyUp…
168デフォルトの名無しさん:2007/02/11(日) 21:51:19
>>160
基本はimm32を叩く。
キー入力とるのは、クリップボードや範囲選択DELをうまく扱えないのであまり美味しくない。
169デフォルトの名無しさん:2007/02/11(日) 21:56:08
かな使いの俺も忘れないでください
170デフォルトの名無しさん:2007/02/11(日) 22:05:25
VistaならTSFを使うことになるんだろうな
171160:2007/02/11(日) 22:08:04
>>168
やっぱそうかね。
キー入力も妖しいな。
172デフォルトの名無しさん:2007/02/11(日) 22:14:25
妖しい
173デフォルトの名無しさん:2007/02/11(日) 22:35:47
174デフォルトの名無しさん:2007/02/11(日) 22:48:58
175デフォルトの名無しさん:2007/02/11(日) 23:32:55
>>164
サンプル
176デフォルトの名無しさん:2007/02/12(月) 00:51:44
177デフォルトの名無しさん:2007/02/12(月) 12:56:52
stringからStreamを作成する方法を教えてください
178デフォルトの名無しさん:2007/02/12(月) 13:07:07
string のバイナリ化ってこと?
System.Text.Encoding に GetByte とかがあったと思う。
179デフォルトの名無しさん:2007/02/12(月) 13:15:02
StringStream なんてのは無いな
Encoding.GetBytes で MemoryStream に書き込むのが基本か
180デフォルトの名無しさん:2007/02/12(月) 13:17:26
StringBuilder とか StringReader / StringWriter とかで代用できる用途かも知れない
181デフォルトの名無しさん:2007/02/12(月) 13:22:04
Stringとstringの違いを述べよ
182デフォルトの名無しさん:2007/02/12(月) 13:30:13
ツマンネ
183デフォルトの名無しさん:2007/02/12(月) 14:33:50
>>181
それからして分かんないんだけど・・・
分かりやすく解説したドキュメントってある?
184デフォルトの名無しさん:2007/02/12(月) 14:36:14
185デフォルトの名無しさん:2007/02/12(月) 14:42:15
#質問

データアダプタでUpdateメソッドを使用したいのですが、
インサート、アップデート、デリート事に、
データアダプタをインスタンス化しなければいけないのでしょうか?
186デフォルトの名無しさん:2007/02/12(月) 15:23:47
??
187デフォルトの名無しさん: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)

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

普通SELECTとUPDATE, INSERT, DELETEは一組だと思うので
その組ごとにデータアダプタを作ります。
194デフォルトの名無しさん: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のデータを取得するにはどうしたらいいんでしょうか?
195194:2007/02/13(火) 14:58:49
自己解決。GetChildRowsで取得できました。
196デフォルトの名無しさん:2007/02/13(火) 21:45:55
キーが押されたらwinmm.dllを用いて対応するwaveを再生する

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

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

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

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

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

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


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

カップラーメンだけじゃわからんっての。
211205:2007/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;}
}
212デフォルトの名無しさん:2007/02/14(水) 13:22:52
>>211
だから〜

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

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

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

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

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

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

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

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

でいけないかしら?
246デフォルトの名無しさん: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);
};

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

で、GetCharIndexFromPositionがRichTextBoxにあるようなのでTextBoxから
置き換えて試してみています。
プロパティドラッグ&ドロップらしきものが無いようなので方法を調べてみて
わからなかったら再度お願いします
249デフォルトの名無しさん:2007/02/16(金) 02:03:17
>>247
選択解除されるがキャレットを自前描画しなくてよくなる。
250デフォルトの名無しさん:2007/02/16(金) 02:07:05
RichTextBoxなら自分で処理書かなくても大丈夫だろう
251デフォルトの名無しさん:2007/02/16(金) 02:13:36
>>250
RichTextBoxのAllowDropをTrueとしてみましたが、反応ないようです。
252デフォルトの名無しさん:2007/02/16(金) 02:17:58
ああ、1.1か。残念だったな。
253デフォルトの名無しさん: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();
}

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

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

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


>ObjectDataSource.Select メソッド

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

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

あるいはResourceWriterつかって自作するか。
264デフォルトの名無しさん: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を消そうと思っています。
265デフォルトの名無しさん:2007/02/17(土) 12:54:14
なんでこんなとこでウダウダ言ってる間にMSの説明を読まないんだ?
266デフォルトの名無しさん:2007/02/17(土) 13:28:12
オープンファイルダイアログについて質問があります。
ファイルの種類のフィルターについてなのですが、
このフィルターのプロパティ項目のストリングを弄るだけで、
原理的に変更がなされるはずですよね。
それとも、他のプロパティに関連してるとかそんな事もあるのでしょうか?

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

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

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

Textboxの背景色はBackgroundImageで白くできたのです。
表示される文字が灰色なのは気のせいってことですな。
273デフォルトの名無しさん: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の削除は、使用マシンが
仕事でつかうものなら止めたほうがいいかもしれません。
274デフォルトの名無しさん:2007/02/17(土) 18:26:49
×時期早々(じきそうそう)
○時期尚早(じきしょうそう)
275デフォルトの名無しさん:2007/02/17(土) 20:12:18
×不幸のズンドコ
○不幸のドンゾコ
276デフォルトの名無しさん:2007/02/17(土) 20:13:32
×ギブス
○ギプス
277デフォルトの名無しさん: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
278デフォルトの名無しさん:2007/02/17(土) 20:57:58
C# じゃないのでスレ違いだな
279デフォルトの名無しさん:2007/02/17(土) 21:28:47
そのキモイ言語なに?
280デフォルトの名無しさん:2007/02/17(土) 21:34:56
どこに行ったら教えてもらえるのでしょうか・・・・
281デフォルトの名無しさん:2007/02/17(土) 21:40:31
282デフォルトの名無しさん:2007/02/17(土) 21:48:01
PowerBuilderじゃねえの?
283デフォルトの名無しさん:2007/02/17(土) 21:49:05
スレ立てるまでもないとかそんな感じのスレで聞いてみ
演算そのもののは大して言語に依存してるわけでもなさそうだしな

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

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

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

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

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

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

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

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

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

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

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

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

>>324さん、>>325さん、ありがとうございました。
329デフォルトの名無しさん:2007/02/20(火) 20:40:26
っていうか、2.0以降なら普通にStringのSplitでいけるんだけどね
330Start ◆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はどういった式ができるんでしょうか?
331デフォルトの名無しさん:2007/02/21(水) 07:32:19
そんな事疑問に思うってことはプログラミング自体の知識が皆無なんだろ?
入門書買って一通り勉強してからにしてくれ。
332デフォルトの名無しさん:2007/02/21(水) 07:33:36
string str = "文字列" ;
333デフォルトの名無しさん:2007/02/21(水) 07:34:08
釣りだろ
334デフォルトの名無しさん:2007/02/21(水) 07:40:27
こんなんの上司になってしまったら自殺したくなるな。
335デフォルトの名無しさん:2007/02/21(水) 07:44:09
いまどき能力も確かめずに採る会社ないだろ…
336デフォルトの名無しさん:2007/02/21(水) 08:08:44
釣りだろ
PGで飯食っていくなら、入門書かってある程度独学で理解出来なきゃ
役にたたん
337Start ◆C2QJEAJVdg :2007/02/21(水) 08:23:54
>331
入門書は会社から提供されたものがあるんでそれで頑張ります。

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

>333
釣りじゃないです。

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

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

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

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

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

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

    Start ◆C2QJEAJVdgあぼーん推奨

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

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

まあでも、まずはサイトと書籍で勉強だな。
350デフォルトの名無しさん:2007/02/21(水) 11:13:22
どうでもいいが>>338で勉強するのはやめといた方がいいと思うけどな
意味段落・形式段落・本文って何だよw
351デフォルトの名無しさん:2007/02/21(水) 11:14:08
雇う側はそれでいいが、教える側はつらい
352Start ◆C2QJEAJVdg :2007/02/21(水) 11:14:40
>349
はい。ありがとうございます。
ただいま、boolを理解しつつあります。おもしろいですね。

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

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

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

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

でも用語は混乱を生じないようにした方がいいかと思うんですよね。
360デフォルトの名無しさん:2007/02/21(水) 15:49:40
あほ
361デフォルトの名無しさん:2007/02/21(水) 16:04:15
グレースケールのBitmap画像データが3つあって、
それらを適当にRGBに割り当ててカラー画像を作りたいのですが、
そのようなクラスありますか?
362デフォルトの名無しさん:2007/02/21(水) 16:06:16
色変えて重ねて描画すれば
363デフォルトの名無しさん: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で読み込むのはまずいのでしょうか?
364デフォルトの名無しさん:2007/02/21(水) 17:20:24
一行分しかデータ届いてないんじゃないの?
365デフォルトの名無しさん:2007/02/21(水) 17:20:38
改行が来るまでブロックされて当然じゃん
366デフォルトの名無しさん:2007/02/21(水) 17:33:16
>>364
1行分しかデータが届いていなければ、whileの行に戻ってきたときにsr.ReadLine()がnullを返すと思うのですが、
そうはならないのでしょうか?
367デフォルトの名無しさん:2007/02/21(水) 17:46:27
「コードがストップ」をくわしく
368デフォルトの名無しさん: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と似ているのかもしれませんが、それにレスがついてないのでわかりません。
369デフォルトの名無しさん:2007/02/21(水) 18:17:50
すみません。質問したいのですがよろしいでしょうか。
初心者なんですが引数の使い方についてわかりません。

public delegate double f1(double[] f2);

public int keisan(f1 x)
{

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

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

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

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

使い方が悪いとしか答えようがない。
383デフォルトの名無しさん:2007/02/21(水) 19:35:31
Gridイベントの設定が出来てないのでは?
384363:2007/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();
    }
  }
}
385デフォルトの名無しさん:2007/02/21(水) 19:37:48
Gridイベントの設定・・・もう一度見てみます。
ありがとうございました。
386363:2007/02/21(水) 19:41:26
ローカルマシンでFTPサーバーが動いています。
これを実行するとコンソールに220と表示されます。
それでいいのですが、
LastCode = int.Parse(temp.Substring(0, 3));
のところにブレークポイントを置いてsrにマウスカーソルを当ててどうなっているか見ようとすると
コードが止まってしまいます。

「srにマウスカーソルを当てると止まる」というのをどういう風に説明すればいいのかわからずにスレを汚してすいません。
これが「srにマウスカーソルを当てても止まらない」状態にするにはどうすればいいでしょうか?
387デフォルトの名無しさん:2007/02/21(水) 19:49:06
何で今日はこんなに客が多いの?
388デフォルトの名無しさん:2007/02/21(水) 19:52:13
>>386
ヒント:ネットワーク
389デフォルトの名無しさん:2007/02/21(水) 19:54:53
>>380
そんなところはどうでもいい
たぶんf1の定義位置がおかしい
390デフォルトの名無しさん: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());
}
391デフォルトの名無しさん:2007/02/21(水) 19:58:03
定義の位置が悪いんだろ?
392デフォルトの名無しさん:2007/02/21(水) 19:59:31
>>386
ようするにプログラムの動作は問題なくて、デバッガの機能の話しをしてるのか?
393デフォルトの名無しさん:2007/02/21(水) 20:01:31
>>386
タイムアウトってわかるかな?
394363:2007/02/21(水) 20:12:52
>>388 >>393
確かにずっと放置しておけばタイムアウトするのはわかります。
しかし、それならwhileの行にブレークポイントを置いてそこで止まってから少し待って
同じようにsrを見たら切断されていると思います。
1行読み取ったあとすぐに切断されてしまうようなので困ってます。

でも、どうやら私の質問はあまり性質のいいものではなさそうな雰囲気なので
このあたりで撤退いたします。
もう少し現象を絞れたらまた質問させていただきたいと思います。
395デフォルトの名無しさん: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でエラーが出てしまいます。
396デフォルトの名無しさん:2007/02/21(水) 20:21:15
>>394
タイムアウト=「ずっと放置」とは限らない。
397デフォルトの名無しさん:2007/02/21(水) 20:22:33
>>395
さっきと全然ちがうじゃねーか!
398デフォルトの名無しさん:2007/02/21(水) 20:23:25
>>395
で、なんで ref f1 x ってしてるの?
399デフォルトの名無しさん:2007/02/21(水) 20:24:53
(x)????
400デフォルトの名無しさん:2007/02/21(水) 20:26:54
なんだ釣りかよ…orz
401デフォルトの名無しさん:2007/02/21(水) 20:28:27
>>394
ftpにどんなコマンド送ってるの?
402デフォルトの名無しさん:2007/02/21(水) 20:30:16
>>395
勉強しなおせ。

> ref f1 []x
まずはここからだな。
403デフォルトの名無しさん: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);
}
404363:2007/02/21(水) 20:33:58
>>401
コマンドを送る以前に接続したときの220を受け取りたいのですが
それの処理中にネットワークが切断されてしまいます。
ストリームから読み取れない状態になります。

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

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

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




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

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

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

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

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

ちょっと人に説明する機会がありまして・・
ちなみに学生時代にプログラム習う年代ではないので
本当に分からないのです
418デフォルトの名無しさん:2007/02/21(水) 22:14:43
419デフォルトの名無しさん:2007/02/21(水) 22:17:40
>>418
そのURLじゃわからねえ。「フォース」に聞こえる。
420デフォルトの名無しさん:2007/02/21(水) 22:25:30
>>418
そこのボイスのトップどうやってはいるの?
421デフォルトの名無しさん:2007/02/21(水) 22:29:52
フォゥルス
422デフォルトの名無しさん:2007/02/21(水) 22:33:01
インテと読むならインテジャーと読もうよ。
423デフォルトの名無しさん:2007/02/21(水) 22:35:12
424デフォルトの名無しさん:2007/02/21(水) 22:35:24
インテジャーだから迷うんじゃね?
425デフォルトの名無しさん:2007/02/21(水) 22:37:44
>>423
すぺっしょーるスァンクス!
426デフォルトの名無しさん:2007/02/21(水) 22:38:40
>>423
ちょっ、そこは分かるんだってばw
427デフォルトの名無しさん:2007/02/21(水) 22:43:21
インテは聞いたことはないな。
428デフォルトの名無しさん:2007/02/21(水) 22:47:03
えなーぶれど
ビジブル
429デフォルトの名無しさん:2007/02/21(水) 22:50:17
フォゥルスw
430デフォルトの名無しさん:2007/02/21(水) 23:00:55
431デフォルトの名無しさん:2007/02/21(水) 23:04:10
>>362
ヒントをおくれ
432デフォルトの名無しさん: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 クラス

たぶんできる
433デフォルトの名無しさん:2007/02/21(水) 23:38:04
>>432
thx
ためしてみる
434デフォルトの名無しさん:2007/02/21(水) 23:39:44
いい加減にスレ無駄に消費して遊ぶのやめろ
435デフォルトの名無しさん:2007/02/22(木) 01:15:54
>>433
メモリを直接触ったほうが手っ取り早そうな気もする
436デフォルトの名無しさん:2007/02/22(木) 08:21:35
>>432-433
Win32のBitBlt使えば簡単じゃないかと思うんだけど。。
437デフォルトの名無しさん:2007/02/22(木) 18:48:09
いちおうC#のスレだから、まずは.NETのクラス使っとけば良いんじゃない?
438デフォルトの名無しさん:2007/02/23(金) 06:20:36
WebBrowserなんですが、たとえばこんなアドレス
http://msdn2.microsoft.com/en-us/default.aspx
を表示すると、ページの上の方が少し隠れて表示されません、
これをすべて表示できるようにするには何か方法があるでしょうか。
439デフォルトの名無しさん:2007/02/23(金) 11:23:30
スタイルシートがくさってるんじゃね?
440デフォルトの名無しさん: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     |;;'';イ                   }   {、
     〉、      ∧テ{ ヽ  _   _,,,,;;;;;:::-==ニ;;;_   ノ __,イ´
      / \_    //レ!      ̄           ̄ { ̄  |



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

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

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

型別に書くのいやだなぁ〜。
その部分だけ、C++/CLI の DLL に出来ないか
見当してます。
456デフォルトの名無しさん:2007/02/23(金) 22:33:33
具体的に言うと組み込み型の変数宣言に対してしか使えないだよ
457デフォルトの名無しさん:2007/02/23(金) 22:39:08
プリミティブな数値型にINumericとかつけといてくれればよかったのになあ。
458デフォルトの名無しさん: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> { }
}
459デフォルトの名無しさん:2007/02/23(金) 23:03:37
>>451
immutableに使わないと
460デフォルトの名無しさん:2007/02/23(金) 23:04:34
>>458
Tがそれらのメソッドを持たない肩であると(ry
461デフォルトの名無しさん:2007/02/23(金) 23:10:50
interface INumeric<T>
  : IEquatable<T>, IComparable<T>, IConvertible
  where T: INumeric<T> { }

こうですか><
462デフォルトの名無しさん: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が気持ち悪いけど
463デフォルトの名無しさん:2007/02/23(金) 23:15:19
間違えた3f, 6f, 2f, 4fだった
464デフォルトの名無しさん:2007/02/23(金) 23:17:52
TwoParametersをコレクションにしたくなる
465デフォルトの名無しさん:2007/02/23(金) 23:38:19
>>447
正しいエンコードを判定するのが先じゃね?
466デフォルトの名無しさん: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; }
}
467デフォルトの名無しさん:2007/02/23(金) 23:53:19
>>465
文字コードはShift-JISということはわかっています。
現物はこれです↓
http://yp.ladio.livedoor.jp/stats/list.xml
これをStreamで取り出した物なんですが…


なんか流れ断ち切ってるみたいですいません orz
468デフォルトの名無しさん:2007/02/24(土) 00:08:41
秀丸で開いても文字化け警告でなかったぞ
469デフォルトの名無しさん: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κの部分で化けてます
470デフォルトの名無しさん:2007/02/24(土) 00:13:31
ありゃ、・が消えてるorz
そこの部分のバイナリは0x13でした
471デフォルトの名無しさん:2007/02/24(土) 00:20:39
0x13 じゃあ Shift_JIS のコード内だから不正ではないな。
化けていると言っても、何をして化けていると判断するのかは微妙なことが多い。

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

通りでDecoderFallbackに引っかからないわけだ orz
475デフォルトの名無しさん:2007/02/24(土) 00:53:35
非整形式か。
そりゃもう 0x09/0x0A/0x0D 以外の 0x20 未満を適当に置き換えるとかそんな地道な手段しかないような気がする。
.NET の XML 関連は非整形式に優しくない。
476デフォルトの名無しさん:2007/02/24(土) 01:20:03
>>475
この方法でうまくいきました。ありがとうございました。
477デフォルトの名無しさん:2007/02/24(土) 02:56:33
>>435
Scan0を使って直接メモりに入れる方法でやっつけた
Strideがやっかいだね
478デフォルトの名無しさん: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)を受け取ることが出来るでしょうか?
479デフォルトの名無しさん:2007/02/24(土) 17:31:00
eのプロパティは?
480478:2007/02/24(土) 18:04:55
>>479
ぉぉぉぉ・・・ e.lBytes, e.wParam でokでした!
全然気がつきませんでした・・・(Form1.Designer.cs の方とか見たりぐぐったりしてた)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

>>606
ソースまでありがとうございます。またがんばってみます。
609デフォルトの名無しさん: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
610デフォルトの名無しさん:2007/02/28(水) 20:43:13
うわっ!!!!!マジごめん
新スレ立てちゃった・・・・・・
611デフォルトの名無しさん:2007/02/28(水) 20:58:41
AxWindowsMediaPlayerが動くWMPの最低バージョンっていくつですか?
612デフォルトの名無しさん:2007/02/28(水) 21:20:23
>>610
FOXが悪いんだよ気にするな。
613デフォルトの名無しさん:2007/02/28(水) 21:23:17
>>612
ありがとう。そしてごめんね
614デフォルトの名無しさん:2007/02/28(水) 22:26:38
615デフォルトの名無しさん:2007/03/01(木) 00:20:11
あ〜数日前からC#勉強し始めたけど、結構めんどいわ
ジェネリックだの、デリゲートだの、インデクサだの・・・
全部覚えてられん
Cは単純だったのになぁ
616デフォルトの名無しさん:2007/03/01(木) 00:38:41
>>615
ならCでいいじゃん。
617デフォルトの名無しさん:2007/03/01(木) 00:41:40
618デフォルトの名無しさん:2007/03/01(木) 01:23:37
MDIというやつで
子フォームをいくつかShowして
その子フォームの順番を知りたいのですがどうしたら良いのでしょうか?


AForm
BForm
CForm

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

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

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

ありがとうございました
626デフォルトの名無しさん:2007/03/01(木) 21:14:12
>>621
C#によるプログラミング Microsoft Windows(上)(下)
これがおすすめ。
627デフォルトの名無しさん:2007/03/01(木) 21:25:19
>>624
すぐバグバグ言うやつの脳味噌がバグってるというのが定説
628デフォルトの名無しさん: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
629デフォルトの名無しさん:2007/03/01(木) 21:53:25
一太郎とかは君には無理だ。
630デフォルトの名無しさん:2007/03/01(木) 22:12:15
AxWindowsMediaPlayerを使用しているのですが、たまにRaceOnRCWCleanupが発生してしまいます。
これは、勝手にRCWを解放しようとしてるために起こっているようなのですが、勝手にRCWを解放するのを
抑制するにはどうしたらいいですか?
631デフォルトの名無しさん:2007/03/01(木) 22:22:49
>>628
プリンタを列挙してもAcrobatPDFとやらは出てこないの?
foreach (string name in System.Drawing.Printing.PrinterSettings.InstalledPrinters){
Console.WriteLine(name);
}
632デフォルトの名無しさん:2007/03/01(木) 22:27:31
>>631
プリンタはどうにかするみたいだけど、
一太郎のオブジェクトが作れないと言ってるんじゃないの?
633デフォルトの名無しさん: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とかいうメソッドもないですし…。
634デフォルトの名無しさん:2007/03/01(木) 22:31:52
>>633
だから君には無理だと言ってるだろ?
635618:2007/03/01(木) 22:33:10
わかりません;_;
636デフォルトの名無しさん:2007/03/01(木) 22:34:23
>>635
俺にはお前が何を言ってるか分からん。
637デフォルトの名無しさん:2007/03/01(木) 22:37:18
>>633
COMでも叩いとけ
638デフォルトの名無しさん:2007/03/01(木) 22:38:45
>>637
一太郎のCOMの使い方知ってるのか?
639デフォルトの名無しさん:2007/03/01(木) 22:40:09
頑張って読み込んで
GDI上にレンダリングすればいいんじゃね
640デフォルトの名無しさん:2007/03/01(木) 22:41:06
一太郎ドキュメントだってMSWordに読ませりゃいいじゃん
641624:2007/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上は取得不可、下は可能です
642デフォルトの名無しさん:2007/03/01(木) 22:43:30
>頑張って読み込んで
kwsk
643デフォルトの名無しさん:2007/03/01(木) 22:53:15
クラスAが所有しているフレームインスタンスを
クラスBに参照渡しで渡したとします
そしてクラスBの中でそのフレームインスタンスに対して
コントロール(メニュー含む)追加や削除など
色々と操作することはオブジェクト指向的に違反ですか?
644デフォルトの名無しさん:2007/03/01(木) 22:56:02
シングルトンもダメってこと?
645デフォルトの名無しさん:2007/03/01(木) 22:56:47
フレームってなにさね?
646デフォルトの名無しさん:2007/03/01(木) 22:59:21
>>643
参照渡しにする意味がわからんが、問題ないだろ
647624:2007/03/01(木) 23:05:27
すいません、事故解決しました。

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

フレーム → フォーム です

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

1) 各子フォームにZOrderというプロパティを実装する
2) 自分がActiveになったとき、ZOrder = 0
3) 自分よりZOrderが小さい(小さかった)他のフォームがActiveになったとき、--ZOrder
655デフォルトの名無しさん: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);
}
このようになっています。
どうすれば四捨五入してくれるのでしょうか。
656デフォルトの名無しさん:2007/03/02(金) 00:10:04
ヒント 四捨五入 c# で検索…

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

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

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

668デフォルトの名無しさん:2007/03/02(金) 11:18:36
>>618
WinFormsで分からないことがあったらとりあえず、MSDNの.NET Framework クラス ライブラリで
対象のクラスのパブリックプロパティ・パブリックメソッドの説明を読み、それで実装できなければ
Win32APIの処理で実装できるか探す。
それでも分らないときに聞いた方がいいと思うよ。他人からレスがくるまで開発が遅れるのは無駄
だから。
669デフォルトの名無しさん: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();
}
こんな感じでやると、選択時背景色の青の表示が上手くいかないんですが……。
スクロールさせている間は選択アイテムの背景は青になるんですけど、通常状態では黒のまま。どういう方法が良いのでしょうか?
670デフォルトの名無しさん:2007/03/02(金) 15:35:12
'System.Net.Dns.Resolve(string)' は古い形式です
と、コンパイル時に警告が出たんですが、代わりに何を使えば良いんでしょうか?
671デフォルトの名無しさん:2007/03/02(金) 15:37:03
大量のデータをFormに表示させたり計算したりしたいのですが、
TextBoxで処理をしようかと思い、作業をしていました。
TextBoxが200個を超えた頃からTextBoxの名前を変更するのにも遅くなってしまいました。

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

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

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

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

お答えいただいた方々、ありがとうございました。
681デフォルトの名無しさん: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
682デフォルトの名無しさん:2007/03/02(金) 20:17:35
ListView的なコントロールならCodeProjectとかに多機能なやつが色々ある。
683デフォルトの名無しさん:2007/03/02(金) 22:35:41
ToolStrip使ってるんですが、あるところではマウスでつまんで動かせるのでしたが、
別のところでは動かせない状態でした。どっちもToolStripPanelには置いてあるのですが、
両者のプロパティの差は無いように見えます。何かを操作してどこであっても動かせる
ようにすることはできるでしょうか、

またToolStripPanel以外のPanelなどに置いた場合にも動かせない状態になっていましたが、
ToolStripは必ずToolStripPanelやToolStripContainerにおくべきでしょうか。よろしくお願いします。
684デフォルトの名無しさん:2007/03/02(金) 22:43:36
別のところに置かなければ良いんじゃね
685683:2007/03/02(金) 22:59:32
>>684
別のところとは別のフォーム(正確には別のユーザーコントロール)の中という意味でした。
最初に使ったところでは初めから動かせていたので動くのが普通なのだと思ったのですが、
あるとき別のユーザーコントロールを作っておいてみると、そこでは動かせなくなっていました。
ToolStripというのは、動かせるのがデフォではないのかと初めて気が付きました。
686デフォルトの名無しさん: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を吐いて止まってしまいます。これは何が原因なのでしょうか?
687デフォルトの名無しさん:2007/03/02(金) 23:49:12
Process.GetProceses とか Process.GetProcessesByName とか
EnumWindows とかの Win32API を使うとかもある
SendMessage でブロードキャストして応答を待つとか言う手もある

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

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

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

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

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

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

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

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

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

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

どういうことをやりたいのかというと、
使い方的にはDataGridみたいな感じなのですが、
DataGridだと変に機能が手厚かったり、微妙に操作しにくいので、
リストビューをセルのように扱うことはできないかなと思いまして
質問させていただきました。
723デフォルトの名無しさん:2007/03/03(土) 12:07:36
ない。クリックされたらテキストボックスを重ねて表示するとかそういう細工が必要。
codeproject とか漁ればその辺の拡張したコントロールが見つかりそうな気もするが。
724デフォルトの名無しさん:2007/03/03(土) 12:09:20
>>723
ありがとうございます。やっぱないですか・・・。
codeprojectをちょっと調べてみます。
なかったら自分で作ってみます・・・。
725デフォルトの名無しさん: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以外の選択肢が多数あるけど
726デフォルトの名無しさん:2007/03/03(土) 12:45:58
世の中はそんなスイッチの入り切りのようにかわらないんだよボク

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


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

って何の話かわからないわたし。
739デフォルトの名無しさん:2007/03/03(土) 23:14:16
とりあえずググれと。
WPFの出始めは、糞UIのソフトがごろごろでてくるんだろうなあ。
740デフォルトの名無しさん: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が低く抑えられるってことが考えられるわけ。
741デフォルトの名無しさん:2007/03/03(土) 23:36:02
ご高説は結構だがそろそろスレ違い感が否めない
742デフォルトの名無しさん:2007/03/03(土) 23:46:34
740 のような言説を読むにつけ、
もはや MS はホビーユーザ近辺には関心がないんじゃないかと思わざるを得ない
743デフォルトの名無しさん:2007/03/03(土) 23:59:37
>>741
すみませんでした。
巣に帰ります。
744デフォルトの名無しさん:2007/03/03(土) 23:59:44
Vistaでもウリ文句が半透明とフリップぐらいしか出せてないしな
745デフォルトの名無しさん:2007/03/04(日) 00:16:07
文字を縦書きしたいのですが、DrawString() で行なうと
グラフィックアダプターのドライバ依存のためかマウスの
位置がかぶると描画が消える部分ができてしまうのですが、
Labelなどでも実現できますでしょうか。
746デフォルトの名無しさん:2007/03/04(日) 00:21:57
WPFはFormsの描画の重さを解消する切り札になるんだったら一気に置き換わるんじゃないかなと思う。
747デフォルトの名無しさん:2007/03/04(日) 00:32:05
>>745
そんな文章書くと日本語でオッケって書かれるよw
748デフォルトの名無しさん:2007/03/04(日) 01:15:27
>>745
>グラフィックアダプターのドライバ依存
では全然なくて単にPaintイベントで描画してないってオチでしょ?

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

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

ダメな奴ほどバグバグ言いたがる法則だと思うよ正直
752デフォルトの名無しさん:2007/03/04(日) 02:13:45
ClickOnceは業務アプリではなかなか
使いにくいんだよう。
753デフォルトの名無しさん: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();
}
754デフォルトの名無しさん:2007/03/04(日) 02:31:36
>>752
ちなみにそれって、CodeAccessSecurityの関係でですか?
できればもう少し詳しく。
755デフォルトの名無しさん:2007/03/04(日) 02:33:50
あ、正確には Panel1_Paint() は Panel1_Paint_Paint() でした、スマソです。
756デフォルトの名無しさん:2007/03/04(日) 02:34:34
>>755訂正 Panel1_Paint_Paint() ==> Panel1_Paint()
757デフォルトの名無しさん:2007/03/04(日) 02:38:47
アーまた間違えた、Panel1_Paint_Paint() ==> pnlNowTask_Paint() でした。。。
758デフォルトの名無しさん:2007/03/04(日) 02:39:23
もう寝た方がいいんじゃないか。
759デフォルトの名無しさん:2007/03/04(日) 02:48:51
>>754
ちげーよ
760デフォルトの名無しさん:2007/03/04(日) 02:50:45
>>758
そうですね。もう寝ますね、、それで寝る前にもう一つ質問書かせてください。

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

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


761デフォルトの名無しさん:2007/03/04(日) 02:51:45
>>759
そちらもまた明日教えてください、ではまた。
762デフォルトの名無しさん: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 クラスなどがあります。
763デフォルトの名無しさん:2007/03/04(日) 12:12:14
>>753
それ本当に実行して確認したコード?
実行時に例外でると思うけどなあ。。
とりあえずPaintイベントでもらったGraphicsをDisposeしちゃダメだろうw
764デフォルトの名無しさん:2007/03/04(日) 12:15:14
765デフォルトの名無しさん:2007/03/04(日) 12:28:06
>>753
プロパティの値に応じてちゃんとダブルバッファリングされるように、e.Graphics使ったほうがいいよ。
766デフォルトの名無しさん:2007/03/04(日) 12:28:11
ああゴメン。
Graphicsを引数でもらってるんじゃなくて、
PaintイベントだろうがなんだろうがCreateGraphicsしてるのか。

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

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

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

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

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

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

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

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

Windows XP Pro + VS2005SE

です。
776デフォルトの名無しさん:2007/03/04(日) 15:42:17
だからコード晒せよ
777デフォルトの名無しさん:2007/03/04(日) 15:52:05
AllowDropプロパティを間違いなくtrueにしているなら、あとはイベントハンドラをイベントに登録してないとかかな。
イベントハンドラをどこぞからコピペしてこなかったか?
フォームのプロパティからDragEnterイベントハンドラを生成してみてはどうかな。
778デフォルトの名無しさん:2007/03/04(日) 15:53:50
つい最近まで、C#を「シーナンバ」って読んでたよ
シャープだったんだ
779デフォルトの名無しさん:2007/03/04(日) 15:57:02
C++の ++を斜めにずらして重ねると # 
なんつって
780775:2007/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]);
}
}
}
781775:2007/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]);
    }
  }
}
782デフォルトの名無しさん:2007/03/04(日) 16:04:32
FileDrop と Text が両方登録されてる事ってあんまり無いような気がするが
783デフォルトの名無しさん: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 ) )

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

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

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

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

クラスの定義を

class TestForm : Form

から

class TestForm : System.Windows.Forms.Form

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

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

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

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

はどうなってる?
810デフォルトの名無しさん:2007/03/04(日) 16:37:09
>>809
普通なら同じ文字列が2行出るはずやね。
811775:2007/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のランタイムもインストールされています。
これって関係大有りでしょうか・・・?
812デフォルトの名無しさん:2007/03/04(日) 16:39:32
参照設定のSystem.Windows.Formsのプロパティのパスの項はどうなってる?
813デフォルトの名無しさん:2007/03/04(日) 16:39:33
イベント来てないって書いてるやん
814デフォルトの名無しさん:2007/03/04(日) 16:42:03
> このPCには.NET Framework 3.0のランタイムもインストールされています。
> これって関係大有りでしょうか・・・?
.NET3.0でも、System.Windows.Forms.dllは.NET 2.0のものをそのまま参照しているから関係ないはず。
815デフォルトの名無しさん:2007/03/04(日) 16:44:39
>>811
アセンブリも間違ってないのかー謎だなあ
816775:2007/03/04(日) 16:46:09
再起動しました。
しかし状況変わらずです・・・。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

整理して出直します。お手数をお掛けしました
850デフォルトの名無しさん
>>848
あえて聞こう、なんで?