C#, C♯, C#相談室 Part54at TECH
C#, C♯, C#相談室 Part54 - 暇つぶし2ch1:デフォルトの名無しさん
09/08/22 12:32:03
(#゚ー゚)つ < C#、.NETの話題はこちらでどうぞ。

前スレ
C#, C♯, C#相談室 Part53
スレリンク(tech板)

Visual C# 2008 Express Edition 日本語版
URLリンク(www.microsoft.com)

その他テンプレ>>2-5くらい

2:デフォルトの名無しさん
09/08/22 12:33:24
関連スレ

ふらっとC#,C♯,C#(初心者用) Part43
スレリンク(tech板)

Visual Studio 2008 Part 17
スレリンク(tech板)

WPF(XAML,XBAP,.NET3.5)GUIプログラミング Part4
スレリンク(tech板)

【VB.NET】LINQ友の会【C#, C♯, C#】
スレリンク(tech板)

C#,C#の宿題片付けます。
スレリンク(tech板)

3:デフォルトの名無しさん
09/08/22 12:33:52
参考リンク

MSDNライブラリ
URLリンク(msdn.microsoft.com)

@IT Insider.NET
URLリンク(www.atmarkit.co.jp)
Insider.NET 会議室 ディレクトリ
URLリンク(www.atmarkit.co.jp)
MSDN フォーラム
URLリンク(forums.microsoft.com)

pinvoke.net: the interop wiki!
URLリンク(pinvoke.net)
宇宙仮面の C# プログラミング / C# Programming
URLリンク(ukamen.hp.infoseek.co.jp)
WisdomSoft C#入門
URLリンク(wisdom.sakura.ne.jp)
WisdomSoft Microsoft .NET入門
URLリンク(wisdom.sakura.ne.jp)
どっとねっとふぁん
URLリンク(dotnetfan.org)
緑のバイク 初めてのC# ~ 覚え書き ~
URLリンク(homepage3.nifty.com)
どぼん!の .NET Tips
URLリンク(dobon.net)

4:デフォルトの名無しさん
09/08/22 12:34:07
質問する前に"必ず"WikiやFAQ集を参照し、同じような質問がないか確認してください。

初歩的な質問はPC初心者板で・・・
URLリンク(pc11.2ch.net)
参考リンク(よく出てくる情報リンク)
Windows Vista Wiki
URLリンク(windowsvista.ms)
Windows VistaFAQ
URLリンク(vistafaq.stdo.net)
インストールから設定・活用まで~ すべてが分かるWindows Vista大百科
URLリンク(journal.mycom.co.jp)

5:デフォルトの名無しさん
09/08/22 13:26:55
>>1乙!

6:デフォルトの名無しさん
09/08/22 19:41:07
さっそく質問なんですが

VC♯で画面を作っていて、
ListBoxを二つ用意して、ListBox1の項目を選択した場合に、ListBox2に表示されている項目もListBox1の項目に対応したフォーカスが自動でセットされる仕組みにしたいのですがうまくいきません。
例えば、ListBox1に名前を表示させて、ListBox2に誕生日を表示させた場合、名前を選んだら自動的にその名前に対応した誕生日にフォーカスがあたる仕組みを作りたいのです。

それぞれのListBoxに表示するものはXMLファイルから読み取って表示させています。
一応、名前と誕生日はXMLファイルの中で関連付けもしています


7:デフォルトの名無しさん
09/08/22 19:53:33
Ajax的なものをWinFormでしたいのな。
ListBoxが変化したときにイベント起こせばいけそう。

8:デフォルトの名無しさん
09/08/22 20:07:24
バインディングで
ListBoxだとDataSourceか

9:デフォルトの名無しさん
09/08/22 21:13:26
>>6
「うまくいかない」という質問は、ありえないほど酷い。
PCが煙吐いて空の果てに飛び立ったまま戻ってこなくなりました、だって「うまく
いかない」のうちだ。
どううまくいかないのかを書け。

リストボックスの項目選択をプログラム的に行うだけならListBox#SelectedIndex
プロパティに値をセットすれば動くが。

10:デフォルトの名無しさん
09/08/22 21:13:41
>>6 汚いソースでごめんよ。
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private const string xmldoc =
@"<?xml version='1.0'?>
<names>
<person name='satou'>2009/01/01</person>
<person name='saitou'>2009/02/01</person>
<person name='sakata'>2009/03/01</person>
</names> ";
private void Form1_Load(object sender, EventArgs e)
{
var doc = XElement.Parse(xmldoc);
var q = from n in doc.Descendants("person")
select n.Attribute("name").Value;
this.lstName.DataSource = q.ToList();
}
private void lstName_SelectedIndexChanged(object sender, EventArgs e)
{
var item = (sender as ListBox).SelectedItem.ToString();
var doc = XElement.Parse(xmldoc);
var q = from n in doc.Descendants("person")
where n.Attribute("name").Value == item
select n.Value;
this.lstBirthday.DataSource = q.ToList();
}
}


11:デフォルトの名無しさん
09/08/22 21:23:32
一応、貼っておくね?
URLリンク(www.redout.net)

12:デフォルトの名無しさん
09/08/23 00:58:34
おお、皆さんありがとうございます
とりあえず今から試してみます

13:デフォルトの名無しさん
09/08/23 01:46:18
URLリンク(d.hatena.ne.jp)
ここ参考にMeCab(形態素解析器)呼び出し作ってみたんだけど

1000文字くらいの解析を数万ループしたら
メモリがバカほど膨らんでしまった

GC.Collect();
しても解放されないのでMeCab内で持っているらしいんだけど
こういうのって対策ある?

14:デフォルトの名無しさん
09/08/23 02:30:29
その DLL が解放するための関数を提供してないなら、
DLL 自体をアンロードするしかないんじゃね?

15:デフォルトの名無しさん
09/08/23 02:34:58
>>13
mecab_destroy よんでないんじゃないのか?

16:デフォルトの名無しさん
09/08/23 02:35:36
相互参照は開放するように指示は出せるけど、いつ開放するかは決まらないんじゃなかったけ


17:デフォルトの名無しさん
09/08/23 02:51:03
>14-16
返信どうもです

mecab_destroyは呼んでます
それでも駄目なので困ってたところ

ロード アンロードは時間がかかるので
あまりやりたくないのですが,それしか方法なさそうですか...

18:デフォルトの名無しさん
09/08/23 07:17:53
どうせ目的の処理自体が重いんだからどうでもいいだろ
別プロセスにして標準出力で受けるとかでもよくね

19:デフォルトの名無しさん
09/08/23 07:43:51
>>13
リンク先、PtrToStringAnsi呼ぶ位置がおかしいな
それはともかく手元のVistaでmecab0.98pre2のlibmecabを4000文字10000回ほど
mecab_new2~mecab_sparse_tostr~mecab.destroyしてみたが
とくに問題なかった 非プライベートなワーキングセットも含めて

20:デフォルトの名無しさん
09/08/23 09:06:40
>>19
0.97->0.98pre3
バージョン上げることでメモリ問題解決しました
気づかせてくれてありがとうございます

わざわざサンプルまで作っていただいてすみません


アンカー後先逆ですが
>>18
以前までそういう風に組んでたんですが
アンマネージのDLL読み込めることを知ったのでやってみたらこうなった感じです


21:デフォルトの名無しさん
09/08/23 12:55:34
System.Net.Socketsが見つからないため
TcpListenerクラスが使えません。 System.Netはありました。
どうすればいいですか? VC#2008です

22:デフォルトの名無しさん
09/08/23 12:57:34
必要なアセンブリを参照設定して、必要な名前空間を using する。
それだけ。

23:デフォルトの名無しさん
09/08/23 14:30:05
>>22
いえ、それでも見つからなかったのです

24:デフォルトの名無しさん
09/08/23 14:34:23
じゃあアンドレカンドレの「夢の中へ」でも歌っとけ

25:デフォルトの名無しさん
09/08/23 14:43:14
じゃあ、あきらめろよ。

26:デフォルトの名無しさん
09/08/23 15:00:11
>>23
具体的にどんな環境でどんなことやって見つからなかったの?

27:デフォルトの名無しさん
09/08/23 16:10:00
>>23
気合が足りない

28:デフォルトの名無しさん
09/08/23 16:26:12
昨日の>>6で質問した者なんですが>>10さんが書いてくださったソースを基に試してるのですが
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();

var doc = XElement.Parse(xmldoc);
var q = from n in doc.Descendants("person")
select n.Attribute("name").Value;
var lll = from a in doc.Descendants("aaa")
select a.Attribute("name").Value;
this.listBox1.DataSource = q.ToList();
this.listBox2.DataSource = lll.ToList();
}
private const string xmldoc =
@"<?xml version='1.0'?>
<names>
<person name='satou'>2009/01/01</person>
<person name='saitou'>2009/02/01</person>
<person name='sakata'>2009/03/01</person>
<person name='sakamoto'>2009/01/01</person>
<aaa name='2009/01/01'></aaa>
<aaa name='2009/02/01'></aaa>
<aaa name='2009/03/01'></aaa>
<aaa name='2009/04/01'></aaa>
</names> ";
private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
}
このようしてにXMLから表示させる時にpersonの名前と関連させた誕生日だけを表示させるのではなく、まず初めに名前一覧と誕生日一覧をそれぞれのListBoxに表示させてから名前を選ぶとそれに関連する誕生日にフォーカスが移るようにしたいのですが、
この場合personの誕生日をみてaaaの誕生日と関連付けをしてフォーカスを移させることは可能なのでしょうか?

29:デフォルトの名無しさん
09/08/23 19:12:59
無理無理。なにせpersonとaaaを関連づける情報が無いじゃないか。
エスパーするとaaaのnameが参照キーでテキストノードが関連するデータのつもりかもしれないけど。
名前ならいざしらず誕生日をキーにする気?(名前も同じ名前があったらどうする)

あくまで一例だけど、こんなのはどう?
1.DataSet 配置して、その中に persons テーブル作る。
2.persons の中に name と birthday 項目を作る。
3.二個のリストボックスの DataSource に配置した DataSet を設定。
4.二個のリストボックスのそれぞれの DisplayMember に "persons.name" と "persons.birthday" を設定。
5.DataSet に以下のようにデータを食わせる。
string data
= @"<?xml version='1.0' standalone='yes'?>
<data>
<persons><name>satou</name><birthday>2009/01/01</birthday></persons>
<persons><name>saitou</name><birthday>2009/02/01</birthday></persons>
<persons><name>sakata</name><birthday>2009/03/01</birthday></persons>
<persons><name>sakamoto</name><birthday>2009/04/01</birthday></persons>
</data>";
public Form3() {
InitializeComponent();
dataSet1.ReadXml(new StringReader(data));
}
これで名前を選択すると誕生日、誕生日を選択すると名前が自動にセレクトされる。

他の関連付けたい情報は、誕生日と同じようにpersonsテーブルに入れて誕生日と同じように関連付け。
ラベルとかに選択されてるデータを連動表示させたいなら
label1.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.dataSet1, "persons.birthday", true));
という感じ。

30:デフォルトの名無しさん
09/08/24 14:39:51
興味のない方はすみません(スルーお願いします。)
新しくコンテストを来年開きたいと思っています
プログラマー(ゲーム・ツール・)の方は
スレリンク(tech板)l50
のスレに来てもらえるとうれしいです。
運営も募集しています。
↓のような感じでコンテストを開始する予定です。
URLリンク(219.113.110.143)


31:デフォルトの名無しさん
09/08/24 14:48:00
なぜHSP・・・

32:デフォルトの名無しさん
09/08/24 14:51:24
つーかIPアドレス直でやるなよ。
ちょっとDDNS登録すりゃ済む話じゃないか

33:デフォルトの名無しさん
09/08/24 15:28:15
そんなスレがム板にあったのか。
ゲ制作板でやるべきじゃね?

34:デフォルトの名無しさん
09/08/24 19:22:24
これ誰得・・・?
豪華商品にふいたw

35:デフォルトの名無しさん
09/08/24 21:01:45
リアル中学生だな……

36:デフォルトの名無しさん
09/08/24 21:31:40
中古w

37:デフォルトの名無しさん
09/08/25 23:23:56
treeview(4階層)を最初はエクスパンドしていない状態にし、
検索ボックスで該当した4レベル目のノードとその親ノードと祖父ノードのみを表示させたいときはどうやるのでしょうか?

38:デフォルトの名無しさん
09/08/26 00:02:47
気合い

39:デフォルトの名無しさん
09/08/26 00:08:48
ふらっとの方でレスもらってたろw

40:デフォルトの名無しさん
09/08/28 11:19:41
カスタムコントロール作るのは大変???????????

41:デフォルトの名無しさん
09/08/28 11:40:09
そんな質問をするレベルなら大変

42:デフォルトの名無しさん
09/08/28 13:21:36
ツリービューを開いたのを、一度完全に折り畳むには、どういうメソッドを設けたらよいですか?

43:デフォルトの名無しさん
09/08/28 13:35:55
WinForm?
CollapseAll 呼び出すだけだが

44:デフォルトの名無しさん
09/08/28 14:39:49
>>43
A
B1
C1
B2
C2
C3
というツリーがあり、これが全て畳んだ状態でC3ノードを検索したとき、
A1
B2
C3
のみを表示させることはできますか?

45:デフォルトの名無しさん
09/08/28 14:42:50
>>43
A
B1
C1
B2
C2
C3
というツリーがあり、これが全て畳んだ状態でC3ノードを検索したとき、
A1
B2
C3
のみを表示させることはできますか?


46:デフォルトの名無しさん
09/08/28 14:45:08
Aが開かれてる時その子ノードのB1が表示されてなかったらおかしいだろ

47:デフォルトの名無しさん
09/08/28 15:02:12
表示するようにすればいいじゃん

48:デフォルトの名無しさん
09/08/28 15:42:47
元のツリーを変更してもいいけど、検索結果閉じた時に面倒なんで
新しいツリー用意してA1->B2->C3だけ表示すればいいじゃん

49:デフォルトの名無しさん
09/08/28 15:54:04
同じレベルのノードは、常に表示されてしまうわけか…。

50:デフォルトの名無しさん
09/08/28 17:18:31
データセットの特定のレコードを削除するには、どう記述すればいいですか?

51:デフォルトの名無しさん
09/08/28 19:48:07
dataSet.Tables[0].Rows.Remove

52:デフォルトの名無しさん
09/08/28 20:09:18
>>51
ありがとう(*^_^*)。

53:デフォルトの名無しさん
09/08/28 21:30:07
( object sender , EventArgs e )という形の引数が取られる形をよく見るのですが
この引数に何かが代入(参照)するコードはどこにあるのでしょうか。
senderには


54:デフォルトの名無しさん
09/08/28 21:30:58
ごめんなさい、途中送信してしまいました。

55:デフォルトの名無しさん
09/08/28 21:31:58
senderにはそのなのとおり呼び出し元が渡されます
キャストでもして使えばいいじゃないんでしょうか

56:デフォルトの名無しさん
09/08/28 21:49:55
>>55
お答えありがとうございます。

sender = オブジェクト名 ;のようなコードを書かなくても
呼び出し元が自動で渡されるという理解でいいのでしょうか?

57:デフォルトの名無しさん
09/08/28 21:56:29
自動も何も引数って呼び出す側が渡すものだから。
誰が呼び出してるかというと,イベントの発生源が呼び出してる。
つまりイベントの発生源がそのイベントを呼び出すときにはsenderにthisを渡してるわけ。

58:デフォルトの名無しさん
09/08/28 22:13:24
>>56
URLリンク(www.akadia.com)
Clockのところが参考になるよ。

59:デフォルトの名無しさん
09/08/28 22:41:25
方法 : .NET Framework ガイドラインに準拠したイベントを発行する (C# プログラミング ガイド)
URLリンク(msdn.microsoft.com)

この辺を紹介しておけばいいような

60:デフォルトの名無しさん
09/08/28 23:04:05
一度終了したスレッドをもう一回再開するにはどうすればいいですか?

61:デフォルトの名無しさん
09/08/28 23:06:58
できないよ

62:デフォルトの名無しさん
09/08/29 00:41:20
コンソールって何ですか。

63:デフォルトの名無しさん
09/08/29 00:53:03
メンソールみたいなもんだ。

64:デフォルトの名無しさん
09/08/29 01:02:14
チェックボックスの外観をラジオボタンと同じ丸型にできると聞いたことがあります。
どのようにすればできるのでしょうか。
appealanceプロパティだと、コマンドボタンの形状になってしまいます。

65:デフォルトの名無しさん
09/08/29 01:15:54
>>64
もうこれと同じ質問を今週だけで3回見たが、
どっかの学校の夏休みの宿題か何かなのかね。

それとも同じ奴が粘着してるのか?

66:デフォルトの名無しさん
09/08/29 01:16:42
>>64
やめろ。チェックボックスは四角のままにしとけ。

67:デフォルトの名無しさん
09/08/29 01:31:34
こんな宿題を出す学校は存在しないと思いたい…
UIデザインとしては最悪じゃん。

68:デフォルトの名無しさん
09/08/29 01:43:48
ラジオボタンは複数の選択肢から選らばせるとき…
チェックボックスは単純に有無を示すとき…
という典型的な使用方法があるのだから。
チェックボックスを丸にすると逆に不気味。

69:デフォルトの名無しさん
09/08/29 01:47:35
普通に丸にするやり方を調べて来た生徒は落第

「丸にする理由が無くまた機能を視覚化するデザインとして最悪でうんぬん」
と課題をやらない理由をレポートしてきた生徒は合格

70:デフォルトの名無しさん
09/08/29 01:58:33
C#をマスターするために読むべき、すばらしい本を教えてください。
入門書は読み終えました。

71:デフォルトの名無しさん
09/08/29 02:20:30
ぐぐれ

72:デフォルトの名無しさん
09/08/29 02:24:02
入門書読み終わったのなら、理解度を確認するためにも小規模なアプリケーション作っとけ
本読んで理解したつもりになりたいだけなら作んなくてもいいけど

73:デフォルトの名無しさん
09/08/29 02:40:29
>>69
そこまで頭が働く奴は、独立SEとして食べていけるだろうね。

74:デフォルトの名無しさん
09/08/29 02:44:08
>>70
俺のお勧めは、

作って覚えるV…C#2008
秀和システム

だね。Express向きだけど、家計簿を作りながらイメージを掴める。
他の本でアプリケーション作成の一連の作業を例示してくれている本は知らない。

75:56
09/08/29 02:44:14
>>57さん
つまり例えばpaintイベントなどにも見えてはいないけれども、senderに実引数(となるオブジェクト)を渡すような
コードが書かれているとことなのですね。

>>58さん >>59さん
参考になりました。

みなさんありがとうございました。



76:デフォルトの名無しさん
09/08/29 10:05:47
教えてください。
propertyGridで表示しているプロパティの名称一覧は取得できますか?
できるのであれば、どのようにすればよいのでしょうか?

77:デフォルトの名無しさん
09/08/29 10:08:00
TypeDescriptor.GetProperties
なんだってそんな面妖なことを

78:デフォルトの名無しさん
09/08/29 10:13:26
>>77
ありがとうございます

プロパティウィンドウに表示されている順番にすべてを取得したくて
propertyGridに表示させれば簡単に取得できるのかな?と調べてました

79:デフォルトの名無しさん
09/08/29 13:24:40
おまえらいくつ?

80:デフォルトの名無しさん
09/08/29 13:34:41
>>79
33歳独身。現在、社内SE。
4月入社だがついていけなくて、毎日が地獄。

81:デフォルトの名無しさん
09/08/29 15:38:05
>>79
独り身

82:デフォルトの名無しさん
09/08/29 16:06:20
C#は実行ファイル(中間コード)が見えると聞きました。
結構簡単に見えてしまうんですか?


83:デフォルトの名無しさん
09/08/29 16:10:20
↑すいません日本語が変でした。

C#は実行ファイル(中間コード)からソースコードが容易に解析できると聞きました。




84:デフォルトの名無しさん
09/08/29 16:14:33
>>83
reflectorでググれ

85:デフォルトの名無しさん
09/08/29 16:15:00
うん、.NetでもJavaでも、中間コードを見るツールは標準で入ってる。

86:デフォルトの名無しさん
09/08/29 16:34:59
難読かすればだいぶ見にくくなる。
それかましとけば十分。

87:デフォルトの名無しさん
09/08/29 17:18:09
>>81
何歳?

88:デフォルトの名無しさん
09/08/29 17:21:54
88

89:デフォルトの名無しさん
09/08/29 17:23:43
89

90:デフォルトの名無しさん
09/08/29 18:27:21
僕3さい!

91:デフォルトの名無しさん
09/08/29 18:39:04
前に、デリケートに関する質問があったが、
結局デリケートは、サブルーチンを呼ぶサブルーチンを呼ぶサブルーチンを1オブジェクトのように見立てるようなもの?

92:デフォルトの名無しさん
09/08/29 18:40:26
ふらっとの方で質問した方がいいんじゃね?

93:デフォルトの名無しさん
09/08/29 18:48:36
それから delegate な

94:デフォルトの名無しさん
09/08/29 19:06:59
サブルーチンなんて言葉を聞いたのはドクター宮永以来だ

95:デフォルトの名無しさん
09/08/29 19:21:00
デリケートゾーン?

96:デフォルトの名無しさん
09/08/29 20:01:43
覚えたての頃、得意げにサルブーチンって言ってたの思い出して赤面した

97:デフォルトの名無しさん
09/08/29 20:08:25
サブルーチンって死後??????
私は34歳。COBOL歴5年ののち、金融機関の内勤5年…のブランクがあるからか。。。

98:デフォルトの名無しさん
09/08/29 20:10:30
昔のFORTRANなら「サブルーチン副プログラム」というのが正しい。

99:デフォルトの名無しさん
09/08/29 20:13:30
>>94
今は、なんて言っているの?
共通プログラムとか?

100:デフォルトの名無しさん
09/08/29 20:16:41
「C#の初心者や修行者あつまれ!!!!!」in 大阪城公園
なんてイベントを企画したら、みんな来てくれるかな?
私は関西在住なので関西でしか企画できないですが
(+_+;)。

101:デフォルトの名無しさん
09/08/29 20:19:31
行く分けねーだろ馬鹿

102:デフォルトの名無しさん
09/08/29 20:20:16
>>101
そんな言い方ないだろ。てめえの面が見てみたいよ。

103:デフォルトの名無しさん
09/08/29 20:31:28
>>102
見せるわけねーだろカス

104:デフォルトの名無しさん
09/08/29 20:32:49
>>103
どんだけひねくれているんだよ。
大手でプロジェクトリーダーでもやってるのか?

105:デフォルトの名無しさん
09/08/29 20:55:24
何でひねくれてると大手でプロジェクトリーダーやってることになるんだよw

106:デフォルトの名無しさん
09/08/29 21:18:33
それが彼の常識だから

107:デフォルトの名無しさん
09/08/29 21:34:50
ひねくれている奴がリーダーだったりするけどね…。
○○○データとか。

108:デフォルトの名無しさん
09/08/29 22:11:16
>>107
ひねくれているのはお前だろうが。
風呂屋でひとっ風呂浴びて頭を温めてこい。

109:デフォルトの名無しさん
09/08/29 22:29:35
dataはいい評判聞かないね
N,F,Hのほうがまだまし

110:デフォルトの名無しさん
09/08/29 22:40:57
メーカーとSI一緒にすんなハゲ

111:デフォルトの名無しさん
09/08/29 22:41:40
ひねくれよばわりする前に、下請けに甘んじている自分の人生を省みろよ。

112:デフォルトの名無しさん
09/08/29 22:44:47
そのアホ話、いつまで続けるつもりだよ。
しかし、無能な奴ほど被害妄想が激しいのはこの業界もう鉄板といっていい法則だな。

113:デフォルトの名無しさん
09/08/29 22:48:47
マ板でやれ!だな

114:名無しさん@そうだ選挙に行こう
09/08/30 09:10:18
おいおい大学生の俺にも住処をあたえてくれよ

115:名無しさん@そうだ選挙に行こう
09/08/30 09:21:23
就職板でやれガキ

116:名無しさん@そうだ選挙に行こう
09/08/30 13:49:07
ニートの俺にも(ry

117:83
09/08/30 20:07:28
>>84-86
詳しく教えていただき、ありがとうございました。

118:デフォルトの名無しさん
09/09/01 04:18:28
.Net2.0で開発してるんだけども、DictionaryのValuesをIListを受け入れるメソッドに使いたい。
Listに代入してしまうのが楽だけど、Valuesの変更が即反映させるようにしたい場合、
IListを継承した独自クラスを作ってそれに入れるしかない?

119:デフォルトの名無しさん
09/09/01 04:22:29
変更が即反映する,ってどういう感じ?

120:デフォルトの名無しさん
09/09/01 04:43:23
Dictionary<int,char> dic = new Dictionary<int,char>()
{
  { 0, 'a' },
  { 1, 'b' },
};

***List<char> lis = new ***List<char>(dic.Values);

dic.Add( 2, 'c');

こんな処理の時、lis[2]に'c'が入ってて欲しいのですよ。
とりあえずIListを継承したクラスを用意して実現はできたけど、
あまりにも汎用的なので何かクラスが既にあるような気がしてならない。

121:デフォルトの名無しさん
09/09/01 04:53:07
Dictionary<TKey, TValue>.ValueCollectionが
ICollection<T>しか実装せずIList<T>を実装しないのには理由があるわけで、
IList<T>はICollection<T>より限定的なリストなので
そんなの汎用的に作れと言われても無理。

122:デフォルトの名無しさん
09/09/01 05:59:04
FUNC<DIC,ILIST>とかで毎回作るのだめ?


123:デフォルトの名無しさん
09/09/01 08:17:22
IListを実装するってことは要素の順番に意味があるってこと
だから要素の順番を全く保証しないDictionaryがIListを実装するのは不適切

124:デフォルトの名無しさん
09/09/01 09:29:31
Javaには標準でLikedHashMapがあるのに・・
C#まじ使えねーな

125:デフォルトの名無しさん
09/09/01 09:38:22
>>120の例ではSortedList<TKey, TValue>が使える
SortedList<TKey, TValue>.ValuesはIList<TValue>型

126:デフォルトの名無しさん
09/09/01 11:20:07
>>124
ばかだろあんた。
そりゃList違いだ。


127:デフォルトの名無しさん
09/09/01 12:15:44
(・∀・)クスクス

128:デフォルトの名無しさん
09/09/01 16:08:40
キャスト不要のenumみたいなのってありますか?
全部int型みたいな

129:デフォルトの名無しさん
09/09/01 16:15:53
こんなふうにする
struct MyEnum : IEquatable<MyEnum>, IComparable<MyEnum> {
public static readonly MyEnum One = 1;
public static readonly MyEnum Two = 2;

private int value;
private MyEnum(int value) { this.value = value; }
public static operator int(MyEnum value) { return value.value; }
public static operator MyEnum(int value) { return new MyEnum(value; }; }
//以下略(インターフェイスメンバや演算子などを実装)
}

130:129
09/09/01 16:17:15
訂正
public static implicit operator int(MyEnum value) { return value.value; }
public static implicit operator MyEnum(int value) { return new MyEnum(value; }; }

131:デフォルトの名無しさん
09/09/01 16:18:12
全部定数でいいじゃん

132:デフォルトの名無しさん
09/09/01 16:35:53
>>129-131
ありがとうございます
全部定数にしますっ!

133:デフォルトの名無しさん
09/09/01 16:48:43
ワロタ

134:デフォルトの名無しさん
09/09/01 20:16:19
そもそも:intなenumは普通にキャストなんかせずにintとして扱えると思うんだが

135:デフォルトの名無しさん
09/09/01 20:51:54
扱えません

136:デフォルトの名無しさん
09/09/01 21:14:22
ん?と思ったが、そうかキャスト要らないのはenumな型の変数に整数を入れる場合であって
逆ではなかったのか。

冷静に考えるとこれって本来逆であるべきじゃないのかね。
まあ深くは考えてないんでいろいろ何か事情があるんだろうが。

137:デフォルトの名無しさん
09/09/01 21:17:33
試してから言えよ
どっちもキャストが必要

138:デフォルトの名無しさん
09/09/01 21:21:01
>>137
棚上げクンって恥ずかしいなw

139:デフォルトの名無しさん
09/09/01 21:42:54
>>138は0しか試してないのか?

140:デフォルトの名無しさん
09/09/01 21:57:52
>>137
すまん確かに試さずに言ってた。

そもそもenumを数値的に扱うことをほとんどしないのと、
あとVBも触るんでそっちの知識がゴッチャになってた。

141:デフォルトの名無しさん
09/09/01 22:00:32
0からのみ暗黙に変換できるのはcharも同じだな
変換というよりは0は数値じゃなくて特別な記号みたいなものとして扱われてるんだろうな

142:デフォルトの名無しさん
09/09/01 22:20:47
しかし、逆はともかくenumを基になってる整数型として暗黙的に扱えても
そんなに害にも落とし穴になるとも思えないけど、なんで明示的キャストが
強制されるルールになってるんだろう。

143:デフォルトの名無しさん
09/09/01 22:28:49
特に必要もないのにenumを数値として意識したり明示的に型指定することは
非推奨とされてるからなあ

144:デフォルトの名無しさん
09/09/02 08:02:47
>>63
土曜日からずっとメンソールに関して調べましたがタバコ関係の情報しか得られませんでした。
もっとヒントください

145:デフォルトの名無しさん
09/09/02 08:30:45
コンソメみたいなもんじゃね

146:デフォルトの名無しさん
09/09/03 00:53:10
めんそーれー

147:デフォルトの名無しさん
09/09/04 08:40:19
麺魂

148:デフォルトの名無しさん
09/09/04 16:36:57
おまいらスピン付数値入力コントロール作るとしたらテキストボックスから派生させる?それともcompositionつかう?

149:デフォルトの名無しさん
09/09/04 16:54:27
作らない

150:デフォルトの名無しさん
09/09/04 21:35:41
コンポジション

151:デフォルトの名無しさん
09/09/04 22:10:27
NumericUpDownが使えない環境でってこと?

152:デフォルトの名無しさん
09/09/04 22:11:44
コンポジションっていうか、この場合は普通にユーザーコントロールでしょ。

153:デフォルトの名無しさん
09/09/04 22:14:16
コンポジションが使いやすい

154:デフォルトの名無しさん
09/09/04 23:23:30
>151
いや、一般的な設計の話で。
コンポジションの方が作る分には良いんだが、使う側としてはテキストボックスでもあった方がプロパティ設定出来て良いものか。
んでも余計なものない方がよい気もする。

155:デフォルトの名無しさん
09/09/04 23:29:24
スピン付数値入力コントロールならキャレット関連はあんまり意味無いだろ

それ以外でTextBox固有の機能で特に必要なものなんてあるか?

156:デフォルトの名無しさん
09/09/04 23:33:22
主に外環の設定だな。


157:デフォルトの名無しさん
09/09/04 23:35:21
テキストボックスのように使うのなら継承だ

158:デフォルトの名無しさん
09/09/04 23:40:22
んでテキストボックスとして使うことがそれほどあるのかって問題だな。
用途としては違うとも思うけれどかぶってるところもある。


159:デフォルトの名無しさん
09/09/05 00:05:53
だからこういう場合はユーザーコントロールにするんだよ。
本当にコントロールを自分で作ったり拡張したことがある奴が
経験に基づいて継承だのコンポジションだの言ってるのか?

やってみろよ実際。
そんな方法じゃめんどくさくてやってられないから。

160:デフォルトの名無しさん
09/09/05 00:52:06
ネタで言ってるんだと思ってた

161:デフォルトの名無しさん
09/09/05 05:04:28
ユーザーコントロールとカスタムコントロールの違い

162:デフォルトの名無しさん
09/09/05 06:51:04
>>159
ユーザーコントロールにコントロールを乗せて行くという方法をコンポジションと
言うんだと思っていたが?普通に合成という意味だから。
拡張して作るカスタムコントロールはどう考えてもコンポジットではない。

163:デフォルトの名無しさん
09/09/05 12:44:32
それならユーザーコントロールって言おうよ。
ユーザーコントロールはオブジェクトコンポジションより意味が狭いのだから。
ユーザーコントロールはコンポジョションだが、逆は違うよ。

普通は前提条件なしで「コンポジション」と言えば、NativeWindow的なものを想像するぞ。

164:デフォルトの名無しさん
09/09/05 19:38:25
俺はオブジェクト指向的な包含の事かと思ってた

165:デフォルトの名無しさん
09/09/05 21:18:59
同じだよ
数値入力コントロールを作るためにユーザーコントロールにテキストボックス置いたら
それはオブジェクト指向的な包含

166:デフォルトの名無しさん
09/09/05 22:10:20
未経験でC#アプリの製作をしているが、
汎用系の開発しかしたことがなかったから、GUI設計をしたことがない
(-_-;)。
どういう点に心がけたらいいんだろ。
もう50回くらいやり直しをしまくって、
フォームを分けてみてはやはりパネルにしてみたり、
縦スクロールにしてみては横にしたり…。
未だに使いやすいフォームができない。
担当者は俺だけ。
どうすりゃいいんだよ…。先が見えない。

167:デフォルトの名無しさん
09/09/05 22:12:40
諦めちゃえばいいじゃん

168:デフォルトの名無しさん
09/09/05 22:13:12
馬鹿でも簡単に使えるように気をつけてるな

169:デフォルトの名無しさん
09/09/05 22:19:55
>>168
それが一番大事だね。

170:デフォルトの名無しさん
09/09/05 22:30:23
・選択肢を少なくする。
 →1画面内にあるコントロールを少なくする。
・クリック回数を少なくする
 →処理を完了するまでのステップ数を少なくする。

この相反する2つの調度良いバランスを求める。
後は既存の似た処理をするツールのUIをオマージュ。
開発経験者か、UIを発注した事ある人に意見を聞くのがいいんだろうけど。

171:デフォルトの名無しさん
09/09/05 22:39:39
c#上からpingして疎通確認するアプリ作って xp上からは動いたんですが

2003にいれたら他のマシンへのping完了しないのはどこらへんがまずいんでしょうか
ちなみにcmd.exe起動してping打つと普通に他のマシンへも通ります。

なんかファイアウォールとかいわれたけど
windosのファイアウォールってなにもいわないからなどこで止められてるのかわかんないし
もうつかれたよ・・・。

172:デフォルトの名無しさん
09/09/05 22:41:52
ファイアウォールの例外に追加したら?

173:デフォルトの名無しさん
09/09/06 00:25:48
>>166
作るのは初めてでも、使ったことくらいはあるだろ。
そこから何か学ばなかったか?

174:デフォルトの名無しさん
09/09/06 00:27:11
GUIデザインの草案は紙とペンで作るのがいいとおもうまう

175:デフォルトの名無しさん
09/09/06 00:45:01
はじめまして、ちょっと質問させてください。
DataGridViewで列ヘッダをクリックして並び替える際に、行を選択していたりするとこの選択状態の位置がそのまま維持されてしまい、
並び替えられた(選択されていた)行へ追従しません。

これを、並び替えたときに行とともに選択状態の位置が移動するようにするにはどうしたらよいでしょうか?

176:デフォルトの名無しさん
09/09/06 08:43:02
今まで見てきたGUIで、感動したものを教えてください。
サイトでも何かのコントロールでもいいです。

177:デフォルトの名無しさん
09/09/06 09:00:38
ユーザーインターフェイスデザイン―Windows95時代のソフトウェアデザインを考える

でも買え。って、About Face の 3 が出てるのな。ぽちっとしておこう。

178:デフォルトの名無しさん
09/09/06 09:13:40
>>176
Windows Vista 版 Explorer のアドレスバー。
パンくず型リストの理想型だと思う。
ただし、1 つのコントロールが複数の機能を兼ねているので、
賛否が分かれそうだが。

あと FL Studio の GUI 全般。
複雑になりがちな DAW というジャンルで、画面遷移や
ウィンドウ数の増大を上手く回避してる点に感心してる。

179:デフォルトの名無しさん
09/09/06 09:48:42
EclipseのPerspectiveの機能はVSにもほしい

180:デフォルトの名無しさん
09/09/06 11:03:11
不景気で6月末でMSDNサブスクリプション更新しなかったのにWindows7製品板が落とせるんだけど。
後から請求きたりするの?

問い合わせてみて「手続き上のミス」とか言われて終わっちゃうのも残念なんで問い合わせしてないんだけど。

181:デフォルトの名無しさん
09/09/06 12:15:02
Pro は落とせるみたい。
5年以上前に Expire したアカウントでも落とせた。

182:デフォルトの名無しさん
09/09/06 13:11:15
>>179
Eclipseのパースペクティブと、VSのソリューションがあると自分的には完璧だなぁ。
ソリューションは機能であってUIじゃないけど。

GUIで最も感動したのはポップアップメニューというかコンテキストメニュー。
オブジェクト選択して右クリックで動詞選ぶなんて最高だ。

183:デフォルトの名無しさん
09/09/06 13:24:59
VSのソリューションがEclipseのWorkspaceに相当するんじゃないのかな?

184:デフォルトの名無しさん
09/09/06 14:04:54
だってワークスペース切り替えは-dataで起動時指定だしなぁ。
いいとこProjectsレベル。

185:デフォルトの名無しさん
09/09/06 14:11:31
solutionはライブラリ作りつつアプリ作ってる時とか便利

186:デフォルトの名無しさん
09/09/06 18:46:36
年配向けの顧客データ管理ソフトを作るよう特命を受けた。
顧客データや商品データなど100項目以上あり、1画面に入りきらない。
タブコントロールを使いたいけど相手は年寄り。
急にパネルが見えなくなれば、疲れるだろう。
スクロールを多様すればいくらでも画面内に情報が入れられるが、
相手は年寄り。
スクロールによって見えなくなった情報が気になって疲れるだろう。
マウスを当てたら新しいウインドウが立ち上がり、隠れた情報を知ることができても、相手は年寄り。
消えたときに疲れるだろう。
どうしたら年寄りから満足してもらえるかなぁ。
やはりスクロールをするしかないかな。

187:デフォルトの名無しさん
09/09/06 18:53:34
「誰か他の若者に仕事をさせる」機能が無いぞ

188:デフォルトの名無しさん
09/09/06 18:56:05
>>186
またお前か

189:デフォルトの名無しさん
09/09/06 18:56:46
考えすぎ。

俺なら操作手順の少ないタブで押し通す。
新しいウィンドウなんて視線があちこち飛んで疲れるだけ。それならタブでいいし。
スクロールするにしても目次のリスト出しておいてクリックするとその位置まで
自動的にスクロールとか、タブとほとんど同じにして操作の手数にこだわる。

190:デフォルトの名無しさん
09/09/06 19:00:12
ボタン一発でリモートアシスタンスを実行できるようにすればいいと思う

191:デフォルトの名無しさん
09/09/06 19:26:11
>>186
何回も同じ質問するな。少しは自分で考えろよ。

192:デフォルトの名無しさん
09/09/06 19:33:36
>>186
画面のほうをでかくしろ

193:デフォルトの名無しさん
09/09/06 20:24:51
その程度で疲れる相手に管理ソフトなんか作ってもすぐに使われなくなるのがオチ
「ええのう、わしの若い頃を思い出すのう みwなwぎwっwてwきwたwww」
って思わせるような画面でも考えてろ

194:デフォルトの名無しさん
09/09/06 20:25:21
タッチパネルにしてウィザード方式。大丈夫、たぶん ATM とかで
お年寄りでも慣れてる

195:デフォルトの名無しさん
09/09/06 20:50:29
>>193
それも立派な視点だね。

196:デフォルトの名無しさん
09/09/06 21:40:25
>>186
ウィザード方式に俺も一票。最初に目的を押させた後は
質問に答えてもらうとあら不思議、登録が終わってるみたいな。

197:デフォルトの名無しさん
09/09/06 21:45:30
>>181

そんなもんなんだ。
たしかにプロだったなぁ。
なぜに放置なんだろ

198:デフォルトの名無しさん
09/09/06 22:24:06
でもアクティベーションキーの取得はさすがにダメなんでしょ?
それじゃほぼ無意味じゃないかn。

199:デフォルトの名無しさん
09/09/07 00:07:40
>>186
100項目もあるのがおかしい。
20項目まで削れ。

200:デフォルトの名無しさん
09/09/07 00:18:07
>>186
年寄りに一度に100項目も見せて殺す気かよw


201:デフォルトの名無しさん
09/09/07 00:23:12
>>186
てか何故に100項目も出来るのかが知りたい

202:デフォルトの名無しさん
09/09/07 00:26:23
だって正規化してないDBなんだもんっ♪
みたいな

203:デフォルトの名無しさん
09/09/07 00:29:13
>>202

204:デフォルトの名無しさん
09/09/07 00:32:24
>>202

205:デフォルトの名無しさん
09/09/07 10:19:43
>>202


206:デフォルトの名無しさん
09/09/07 11:00:30
WinFormのWYSIWYGなHTMLエディタコントロール探してるんだけど、
ASPとか有料のしか見つからないんだがフリーでないんだろうか。

文字サイズと色変えれるくらいでいいんだが、何か知らない?

207:デフォルトの名無しさん
09/09/07 14:26:03
JavaScriptのやつが山ほどあるから、WebBrowserでホストして使うのが楽。
文字サイズとか色変えるぐらいなら自分で実装してもいい。

208:デフォルトの名無しさん
09/09/07 15:09:04
>>207
なるほど、調べてみるよ
サンクス

209:デフォルトの名無しさん
09/09/07 20:14:06
>>203
なんで202を笑う?
普通の意見だろうが。

210:デフォルトの名無しさん
09/09/07 20:19:43
>>209

211:デフォルトの名無しさん
09/09/07 20:27:48
>>210
なんでだよ禿げ野郎!

212:デフォルトの名無しさん
09/09/07 21:56:23
UIの項目数とテーブルの正規化になんの関係があるんだよハゲ

213:デフォルトの名無しさん
09/09/07 22:15:29
例えばPCの諸元で言うなら、CPU : Core2 Duo T5600 という項目と動作周波数・
コア数・FSB・・・の項目があるような。普通ならCore2 Duo T5600だけでいいのに。

キー項目以外の項目を表示するということはあるかもしれないけど、全項目に
渡って表示しているなら第二正規化していない可能性高いヨネーという話かと。

214:デフォルトの名無しさん
09/09/07 22:44:12
月末、大阪城公園か淀川河川敷でオフ会をやりませんか?
参加費は1人100円いただきます(ビニールシートを買うため)。
C♯を語りつくしましょう。

215:デフォルトの名無しさん
09/09/07 22:47:09
ビニールシートくらいだれか一人が持っていけよ

216:デフォルトの名無しさん
09/09/07 23:07:07
じゃ1メートル四方の一枚もっていく

217:デフォルトの名無しさん
09/09/08 00:26:04
ビニールシートなら大阪城にたくさんあるじゃん

218:デフォルトの名無しさん
09/09/08 01:50:46
そういうの好きだけど大阪在住でないのが残念

219:デフォルトの名無しさん
09/09/08 20:04:24
まじで企画しようかな。
大阪城公園、または本町の居酒屋でもいいね。
参加していい人は、書き込みしてください。
ミクシイに似たようなコミュニティがあれば、そちらでもできるので教えてください。

220:デフォルトの名無しさん
09/09/08 20:10:13
九州ならいったのに・・・

221:デフォルトの名無しさん
09/09/08 20:25:42
河川敷よりネット環境のあるところのほうが良くね?

222:デフォルトの名無しさん
09/09/08 20:26:26
オーストラリアならいったのに。。。

223:デフォルトの名無しさん
09/09/08 20:36:15
太宰府市なら行く

224:デフォルトの名無しさん
09/09/08 20:58:15
第一回は大阪で…
(理由:私が関西におりますので…。)
達人から初心者まで、C#に日々打ち込む人たちが集うコミュニティがあればなぁ…。
関西でうまくいけば、九州でも集まりたいですね。
一度きりの人生、こういうきっかけであっても、先に楽しみが生まれるならば
こういう集まりでもいいじゃないですか。

225:デフォルトの名無しさん
09/09/08 21:07:13
普通のコミュニティで充分。

226:デフォルトの名無しさん
09/09/08 21:28:25
わんくまとか各都市でやってるじゃん
俺は行ったことないけど

227:デフォルトの名無しさん
09/09/08 21:36:26
わんくまは・・・いいやw

228:デフォルトの名無しさん
09/09/08 22:29:20
わんくまってなに?


229:デフォルトの名無しさん
09/09/08 22:31:27
幼稚園のクラスの名前。

230:デフォルトの名無しさん
09/09/08 22:33:59
わんくまかw

231:デフォルトの名無しさん
09/09/08 22:36:50
マルチポストを忌み嫌うヤカラの集団。

232:デフォルトの名無しさん
09/09/08 22:47:05
>>231
いやむしろあそこの掲示板はそうでもないよ。
dobon氏の掲示板にいるようなキチガイ監視員はいないと思う。

233:デフォルトの名無しさん
09/09/08 22:48:42
っていうか、ひょっとして>>231まマルチポスタークンなのかなw

234:デフォルトの名無しさん
09/09/08 22:50:06
インフルエンザで勉強会中止だぜー

235:デフォルトの名無しさん
09/09/08 23:02:21
プロしかいないのけ?

236:デフォルトの名無しさん
09/09/08 23:10:28
どうせお前らは、友人もおらず同僚からも距離を開けられ、家族からも怪訝な目で見られ、親戚からも寡黙に思われている孤独男児だろ。
集まろうよ。俺と会って話そうよ。ネットができる喫茶店にでも集まるか。

237:デフォルトの名無しさん
09/09/08 23:53:44
行きたいけどニートなのが恥ずかしいのでそこら辺には触れないでくれると嬉しいです

238:デフォルトの名無しさん
09/09/09 00:17:35
オフ板でやれ

239:デフォルトの名無しさん
09/09/09 00:57:36
ここでいいよ

240:デフォルトの名無しさん
09/09/09 02:14:10
初心者スレで聞いてみたんですが、誰も相手してくれなかったのでお願いします。

VS2005、C#なんですが
大きな画像、というか地図を格子状に区切って分割して保存してある画像があり、
任意の場所を中心として周囲8近傍結合、pictureBoxに表示するソースを書いてます。

pictureBoxの画像をマウスドラッグでgoogleMapのように滑らかにスクロールさせたく思い
その際表示領域より少し大きめの画像に結合したあと表示領域分切り出しているんですが
動作がもっさりであんまり満足できていません。

上手くやる方法ないでしょうか?
またはpictureBox以外でもこのような実装を行う方法ってありますか?

241:デフォルトの名無しさん
09/09/09 02:19:20
>>240
> 動作がもっさりであんまり満足できていません。
この原因をくわしく

242:デフォルトの名無しさん
09/09/09 02:24:00
>>241
Graphics g = g.DrawImage(~~~~);
という感じで大き目の画像を結合した上で
さらに同じ方法で切り出しを行ってるためだと思うんですが・・・

243:デフォルトの名無しさん
09/09/09 02:27:15
で?

244:デフォルトの名無しさん
09/09/09 02:33:44
>>242
原因調査が不十分って感じなんだが
とりあえず,どの部分でどれだけ時間がかかっているか実測してみて

245:デフォルトの名無しさん
09/09/09 09:15:33
C#は糞
スレリンク(tech板)

246:デフォルトの名無しさん
09/09/09 09:38:43
C#すげー
LINQすげー
URLリンク(blogs.msdn.com)

247:デフォルトの名無しさん
09/09/09 15:44:55
>>246
変態的だwww

248:デフォルトの名無しさん
09/09/10 10:38:36
あれ、カスタム書式指定文字列で整数部はカンマ区切り、小数部は有れば全部表示とかしたかったんだが、整数部と小数部分けてごにょごにょやらないと出来ない?
#とか使うと小数部が指定した桁数分に丸められてしまふ…

249:デフォルトの名無しさん
09/09/10 11:00:34
#を310個ほど並べたらいいよ

250:デフォルトの名無しさん
09/09/10 11:06:23
全部表示は無茶だろ
とんでもない桁になる

251:デフォルトの名無しさん
09/09/10 14:56:55


252:デフォルトの名無しさん
09/09/10 20:26:40
小数部を全部出すという要件が思いつかんが。

253:デフォルトの名無しさん
09/09/10 23:06:29
仮に全部出したところで桁数なんてしれてるだろう。


254:デフォルトの名無しさん
09/09/10 23:19:05
1/3

255:デフォルトの名無しさん
09/09/10 23:21:40
表示は上の数桁だけに制限して,コピーしたら全部取得されるみたいな工夫をするべき

256:デフォルトの名無しさん
09/09/10 23:31:12
要するに普通にdoubleなりdecimalなりで扱えばいいってことだな

257:デフォルトの名無しさん
09/09/11 00:06:24
なんか分かって無さげなのいるから横から。

System.Double.Epsilon 見てみれば分かるが、
指数部が e-324 とかになる。

「有効桁数」ならまぁ高々15桁としても小数部とかみた
いな表現すりゃ 300 文字オーバーみたいになりうるよと
いう話。

ちなみに Epsilon で . 以下 # を 339 個並べてみたら全部
出たので >>249 の方法論でいいんじゃね(310 では足り
ないみたいだが)

ちなみに整数部も同じ。e308 かな。


258:デフォルトの名無しさん
09/09/11 00:39:55
ああごめん、確かにぼけてたわ。


259:デフォルトの名無しさん
09/09/11 06:15:46
>248
すまん、数値入力の部分の表示だったので小数部がえらいことになるとか考えてなかったw
桁数制限、ごもっともです。

260:デフォルトの名無しさん
09/09/11 18:45:31
WebBrowserコントロールで表示してるWebページを、コントロールの大きさ(横幅)に合わせて拡大縮小しだいのたけど
どんな属性やメソッドを使えば良いのか全く分からない……
MSDNのフォーラムに似たような質問があったけど、そもそもその解決したと言われるプロパティが見つからない

環境は学生用のVS2008なんだけど、誰か突破方法に心当たりありません?

261:デフォルトの名無しさん
09/09/11 18:47:41
属性とかスタイルシートとかでやってんじゃねーの
そのプロパティとやらを書いてみろよ

262:デフォルトの名無しさん
09/09/11 18:52:06
>>260
そのフォーラムのスレッドどこ?

263:デフォルトの名無しさん
09/09/11 18:56:30
>>262
URLリンク(social.msdn.microsoft.com)

264:デフォルトの名無しさん
09/09/11 19:08:01
>>263
JavaScript じゃねーか

265:デフォルトの名無しさん
09/09/11 19:11:27
JavaScriptっつーか、HTML DOMな
StyleプロパティまではWinFormでもサポートしてるから
そこにzoomの設定つけたしゃいい

266:デフォルトの名無しさん
09/09/11 19:19:08
だって>>260はコントロールの話じゃなくてHTMLのビジビリティの話なんだもんっほしみ

267:デフォルトの名無しさん
09/09/11 20:37:54
>>264-266
いまいちよく分からなかったけど、ありがとう

268:デフォルトの名無しさん
09/09/11 20:42:57
さすが学生^^

269:デフォルトの名無しさん
09/09/11 20:49:13
俺はそのWebBrowserコントロールのClientSizeをいじればいいだけの話に思えたんだけど、違うんだろうなあ。

270:デフォルトの名無しさん
09/09/12 08:06:35
よくわからんがOperaの拡大縮小みたいなかんじ?

271:デフォルトの名無しさん
09/09/12 08:30:08
ディスプレイが2台ある状態でdualviewかcloneか片方のディスプレイのみ利用の切り替えと
それぞれのディスプレイの解像度を変更したいのですが、どうしてもやりかたがわかりません。

とりあえず解像度だけでも変更してみようと調べました。
DirectXのSDKをインストールしてDirectDrawを使って以下のコードを実行したところメインディスプレイの解像度が変わりましたが
DualViewになっている場合セカンダリディスプレイはNo signalになってしまいます・・・
セカンダリディスプレイの解像度を変更する方法がわかりません。

Microsoft.DirectX.DirectDraw.Device device;
device = new Microsoft.DirectX.DirectDraw.Device();
device.SetCooperativeLevel(this, Microsoft.DirectX.DirectDraw.CooperativeLevelFlags.Normal);
device.SetDisplayMode(800, 600, 32, 0, false);

どなたか助言お願いします。

272:デフォルトの名無しさん
09/09/12 09:02:50
解像度は ChangeDisplaySettingsEx() でいけるだろ。

273:デフォルトの名無しさん
09/09/12 10:54:08
型名とかに日本語使ってますか?

274:デフォルトの名無しさん
09/09/12 11:23:08
別の言語だったかで文字コードの違うソースコード作っちゃって、リンクで
エラー起こして以降、多バイトコードで識別子は書かないと心に決めてる。
あと、タイプミスが思いのほか多いんだアレ。てにおはとか。

275:デフォルトの名無しさん
09/09/12 12:56:56
すっごい関係ないが
てにをは
だよ

276:デフォルトの名無しさん
09/09/12 12:59:15
手爾遠波

277:271
09/09/12 14:49:37
>>272
いけました!!ありがとうございます。
後はデュアルディスプレイ・クローン・一つのディスプレイのみの設定の変更です・・・
なにか方法ありますか?

278:デフォルトの名無しさん
09/09/12 15:07:07
>>273
IMEの変換とインテリセンスの親和性が最悪じゃない?
Migemoのアドインとかあればましかもしれんが

279:デフォルトの名無しさん
09/09/12 15:09:01
初歩的なことですがサブクラスaをメンバとして持つAからA1というオブジェクトインスタンスを作成しました
aで定義したメソッドやプロパティにA1からアクセスできません
aの内部でもAでもpulicは設定したんですが・・・

なんか勘違いしてますか?

280:デフォルトの名無しさん
09/09/12 15:17:00
>>279
日本語で書け、と言われる前に質問を推敲したほうがいいんじゃないの?
しかし、そんな日本語で他人に通じると思ってる神経が理解できん。

言葉の使い方に自信がないのなら、同じ事を複数の別の言い方で表現しておくとか、
馬鹿は馬鹿なりに少しは工夫しようよ。

281:デフォルトの名無しさん
09/09/12 15:43:15
>>279
Dotfuscatorを通したようなクラスでも作っているんだろうか。
public class A
{
public a a1 = new a();

public class a
{
public void f() { }
}

static void Main(string[] args)
{
A A1 = new A();
A1.a1.f();
}
}


282:デフォルトの名無しさん
09/09/12 16:46:25
>>281
こんな感じですまさに
A1.a1.f();
これができないんです。

できないわけがないですよね?
そもそもできないのがあたりまえかと思ってしまって
もういちどチェックしてみます。

283:デフォルトの名無しさん
09/09/12 17:31:36
>>282
コンパイルエラーならメッセージをよく確認する。
質問するときはエラーメッセージもアップ。

内部クラスをpublicにしてないという話だと思うけど、
他にはstaticなメンバーを参照経由で呼び出そうとしているなど他の可能性はある。
どれかはエラーメッセージを見れば分かる。

284:デフォルトの名無しさん
09/09/12 18:03:00
>>282
public class Outer
{
public class Inner
{
public static void f() { }
public void g() { }
}

public Inner innerObj = new Inner();

static void Main(string[] args)
{
Outer outerObj = new Outer();
outerObj.innerObj.g();

Outer.Inner.f();
}
}
ふらっとでやれ。

285:デフォルトの名無しさん
09/09/12 18:16:35
>>274
なるほど、タイプミス多いなww

286:デフォルトの名無しさん
09/09/12 18:33:52
>>283
エラーメッセージはアセンブリに対する参照を設定しろと言われました
今チェックしています

>>284
ごもっともでした

287:デフォルトの名無しさん
09/09/12 18:44:56
内部クラスをpublicにしたらガイドライン違反だよ

288:デフォルトの名無しさん
09/09/12 18:50:49
URLリンク(support.microsoft.com)
ここのソースの中に
ChangeDisplaySettingsEx((LPSTR)DisplayDevice.DeviceName,
&defaultMode, NULL, CDS_NORESET|CDS_UPDATEREGISTRY, NULL);

// A second call to ChangeDisplaySettings updates the monitor.
ChangeDisplaySettings(NULL, 0);
とあるのですが、C#ではChangeDisplaySettingsの第一引数に
通常DEVMODEの構造体を受け渡すところを上記のようにnullにすると

エラー1'ConsoleApplication1.Program.ChangeDisplaySettings
(ref ConsoleApplication1.Program.DEVMODE, int)' に最も適している
オーバーロード メソッドには無効な引数がいくつか含まれています。

というエラーが出てしまいます・・・ nullを受け渡したいのですがどうしたらいいですか?


289:デフォルトの名無しさん
09/09/12 18:53:39
適当なnull渡せるオーバーロードを書く

290:デフォルトの名無しさん
09/09/12 18:54:12
IntPtrとして宣言してIntPtr.Zeroを渡す

291:デフォルトの名無しさん
09/09/12 19:04:54
>>290
出来ました!
ありがとう!

292:デフォルトの名無しさん
09/09/12 19:12:53
DEVMODEをクラスで定義して値渡しすりゃいいんじゃないの?

293:デフォルトの名無しさん
09/09/12 23:55:04
>>292
どういうこと?

294:デフォルトの名無しさん
09/09/13 00:27:39
どういうこと、って言われても「そういうこと」だよ。
>>292が説明の限界じゃないか?
URLリンク(msdn.microsoft.com)

295:デフォルトの名無しさん
09/09/13 00:28:21
エスパーすると多分、自力で定義して渡したら?
と言っていると思うけど、リセットのためのNULLを渡したいという話なので的外れだね。

296:デフォルトの名無しさん
09/09/13 00:31:37
>>295
エスパーってチミが無知なだけだと思うけど。
頭大丈夫かよ。

297:デフォルトの名無しさん
09/09/13 00:35:28
あ、こっちが的外れだったか、すまん。

298:デフォルトの名無しさん
09/09/13 17:40:58
フリーソフトで出回っているYouTubeのダウンローダが使い辛いので
自分専用のダウンローダを作ろうとしています。

やりたい事は、検索キーワードを入力してヒットする動画のうち
埋め込みタグが禁止されていない物は全て丸ごとダウンロードできるものを
作りたいと思っています。

そこで質問なのですがYouTubeから動画をダウンロードするにはどうすればよいでしょか?
参考になるサイトがあれば教えてください。

299:デフォルトの名無しさん
09/09/13 18:25:06
>>298
来年1月1日以降に作って発表するといいと思うよ

300:デフォルトの名無しさん
09/09/13 18:34:40
(1)のtreeview から(2)のように
stringの配列を受け取るにはどう処理すれば良いでしょうか?
階層の深さは何段になるかわからない環境です。

(1)
foo
├─bar
│ └─hoge
├─bar2
└─bar3
├─hoge2
└─hoge3
(2)
foo\bar\hoge
foo\bar2
foo\bar3\
foo\bar3\hoge2
foo\bar3\hoge3

301:デフォルトの名無しさん
09/09/13 18:37:41
再帰的な処理にすれば簡単だろうが

302:デフォルトの名無しさん
09/09/13 18:44:26
barは取らないのにbar3は取るとか謎仕様だな

303:デフォルトの名無しさん
09/09/13 18:49:41
>>300

304:デフォルトの名無しさん
09/09/13 18:53:21
>>302
すいません、bar3も取らない形で作りたいです。

305:デフォルトの名無しさん
09/09/13 18:55:04
再帰的処理で葉が無ければ上に受け渡す
受け取ったものがあればそれを\で連結
超簡単じゃないか

306:デフォルトの名無しさん
09/09/13 18:59:35
TreeNode.FullPath使えば連結する必要すらない

307:デフォルトの名無しさん
09/09/13 19:14:35
>>301>>305>>306
レスありがとうございます。

結局string[]で返すのは自分には書けませんでしたので
配列を引数にしてそれを再帰で変更するようにすれば
希望通りの動作にできました。

308:298
09/09/13 20:03:03
>>299
なぜに来年1月1日以降なのでしょうか?
まぁ、作っても自分が欲しい動画を出回っているソフトだと色々と制限があって
使い辛いので自分用に使おうと思ってます。

ってかYouTubeからC#(つか .Net) を使用して動画をダウンロードする方法はありますか?
FLV ⇒ mpg( or AVI)形式に自動変換した上でDLしたいと思っています。

309:デフォルトの名無しさん
09/09/13 20:04:41
来年1月1日から特許出願したらいいとおもうよ

310:デフォルトの名無しさん
09/09/13 20:10:18
他の言語でできるならC#でもできる
やり方はスレ違い
それくらい自分で調べられないなら無理

311:デフォルトの名無しさん
09/09/13 20:14:43
>>309
もう既に色々あるしwネタだろうけどw

つかマジで出回ってるYouTubeのダウンローダー宣伝が入ってたり
遅かったりマジで使い辛いんだよね~


教えて頂戴

312:デフォルトの名無しさん
09/09/13 20:16:52
そういったの開発しているところがオープンソースだったらもらってくればいいんじゃないの

313:デフォルトの名無しさん
09/09/13 20:24:41
>FLV ⇒ mpg( or AVI)形式に自動変換した上でDLしたい
えっ

314:デフォルトの名無しさん
09/09/13 20:24:44
>>312
だから教えて頂戴と。
出回ってるフリーソフトよりも遥かに使い勝手のいいものを作るから

315:デフォルトの名無しさん
09/09/13 20:25:51
>>311
お前には作れないよ

316:デフォルトの名無しさん
09/09/13 20:28:34
やり方を教えろって、ソースまで出せって事なんだろうな

317:デフォルトの名無しさん
09/09/13 20:33:32
ヒントを教えて頂戴

例えばSystem.IO.FileStreem とかね

318:デフォルトの名無しさん
09/09/13 20:35:42
System.IO.FileStreem









System.IO.FileStreem

319:デフォルトの名無しさん
09/09/13 20:39:42
>>318
なんか知らんが爆笑した

320:デフォルトの名無しさん
09/09/13 20:45:10
>>318
頭打ちぬかれてしね

321:デフォルトの名無しさん
09/09/13 20:51:18
Streemワロタw

322:デフォルトの名無しさん
09/09/13 20:56:20
Streeeeeeeeeeem

323:デフォルトの名無しさん
09/09/13 23:33:57
【利用環境】
.net3.5、WinXPPro、VS2008Proの環境で開発しています。
利用環境は主に、.net3.5、Win2008 or WinVistaを想定しています。

【質問内容】
C#で、以下の機能を実現するには、どうしたらいいでしょうか?
URLリンク(www.bohyoh.com)
順列組み合わせを出力する機能です。これ関連の、クラスがあれば教えてください。

324:デフォルトの名無しさん
09/09/13 23:36:23
>>323
自分でコーディングする。

325:デフォルトの名無しさん
09/09/13 23:59:28
>>323
VC/CRTのalgorithm読んでpermutation関係を移植する。

326:323
09/09/14 00:08:49
実はすでに自分でコーディングしたものはあるんですよ。
問題なく動いていますが、新しいプログラムを作成する際に、既存のものがあれば、活用したいと思ったのです。
その方が何かと助かると思っていたので……

しかし、なさそうでしたら、今まで通り、自作の物を使用します。
どうもありがとうございました。

327:デフォルトの名無しさん
09/09/14 01:41:14
順列生成はわりかし単純だで、俺も昔アルゴリズム辞典とかを読んで理解できた
でも組み合わせの効率的生成はnext_combination.cのソース見ても理解できなかった

なにが言いたいかというと、やっぱそういうのは標準ライブラリに入れといてほしいよね

328:デフォルトの名無しさん
09/09/14 04:15:09
>>327
順列生成なんて簡単でしょ?と思って見てきたけど、んー…こりゃ難しい。

329:デフォルトの名無しさん
09/09/14 04:42:07
直感だけど再帰っぽくなりそう

330:デフォルトの名無しさん
09/09/14 14:31:07
勉強がてら作ってみた

class Permutation
{
public static IEnumerable<int[]> GetPermutationSet(int[] array)
{
return GetPermutationSet(new List<int>(array), new List<int>());
}
//とりあえず何も考えずにListに
private static IEnumerable<int[]> GetPermutationSet(List<int> left, List<int> permutation)
{
if (left.Count == 0)
yield return permutation.ToArray();

for (int i = 0; i < left.Count; i++)
{
int element = left[i];
left.RemoveAt(i);
permutation.Add(element);
foreach (var tItem in GetPermutationSet(left, permutation))
yield return tItem;
left.Insert(i, element);
permutation.RemoveAt(permutation.Count - 1);
}
}
}

331:デフォルトの名無しさん
09/09/14 14:38:10
順列って俺もしらんかったが、とりあえずすべての組み合わせのことを言うのか?

すべてのデータが違うというのを前提として、文字列でやると
private void func()
{
List<string> ret = new List<string>();
junretsu("あいうえお", "", ret);
foreach (string s in ret)
{
Console.WriteLine(s);
}
}
private void junretsu(string str, string junretsustr, List<string> ret)
{
if (str.Length == 1)
ret.Add(junretsustr + str);
else
foreach (char c in str)
{
junretsu(string.Join("", str.Split(c)), junretsustr + c, ret);
}
}
こんな感じのこと?

332:デフォルトの名無しさん
09/09/14 15:00:41
>>331
全てのデータが違う前提だとそうだけど、同じデータが含まれる場合も考慮するのが普通。
例えば {1,1,2} に対する並び替えで、「組み合わせ」と言ったら {1,1,2}, {1,2,1}, {2,1,1} の3通りだけど
「順列」と言ったら {1,1,2}, {1,2,1}, {1,1,2}, {1,2,1}, {2,1,1}, {2,1,1} の6通り(2つの1をそれぞれ別ものとみなす)。

333:デフォルトの名無しさん
09/09/14 15:04:48
>>332
ふむ。理解した。

334:デフォルトの名無しさん
09/09/14 18:26:03
組み合わせは{1,1,2}なら
{1}{2}
{1,1}{1,2}
{1,1,2}
じゃないか?
で、順列なら3!/1!2!=6/2=3コあって
{1,1,2}{1,2,1}{2,1,1}
だよ

335:デフォルトの名無しさん
09/09/14 19:46:22
順列・組み合わせって中三の内容だったぞ俺の時代はw
今は高校でもやらんの?
知らないってことはないはずだと思うが。

336:デフォルトの名無しさん
09/09/14 19:50:54
こういう発言から学歴論争に発展する

337:デフォルトの名無しさん
09/09/14 19:52:54
義務教育レベルの話に学歴も糞もないだろ真面目な話。
俺だって中学なんて田舎の公立校だよ。

338:デフォルトの名無しさん
09/09/14 20:05:52
今は数学I・A(高校)なのかな?
多分文系でもやってると思うけど、高校数学は10年以上縁がないので違ってるかもしれん

339:デフォルトの名無しさん
09/09/14 20:09:47
オレの時台は高校で選択だったから同年代の半数は順列組み合わせを知らない

340:334
09/09/14 21:45:00
え、俺が間違ってた?

341:デフォルトの名無しさん
09/09/14 21:47:59
うん

342:334
09/09/14 22:03:07
うそーん
一応現役なのにorz

でも332はあからさまに間違ってるよね??

343:デフォルトの名無しさん
09/09/14 22:25:35
うん

344:デフォルトの名無しさん
09/09/14 23:14:11
>>334
それは組み合わせじゃなくて
{∅} と合わせて冪集合。
俺の知る限り高校じゃ習わん。

順列はあってる

345:デフォルトの名無しさん
09/09/14 23:41:23
1個選ぶ組合せ
2個選ぶ組合せ
3個選ぶ組合せ
っていうつもりで書いたんだがそれでも間違ってる?
てか、激しく論点がずれてしまった
この辺で自重します

346:デフォルトの名無しさん
09/09/15 00:23:29
URLリンク(ja.wikipedia.org)(%E6%95%B0%E5%AD%A6)

347:デフォルトの名無しさん
09/09/15 07:56:00
すいません、質問させてください。

Formのサイズ変更枠がありますよね。
その枠の長さを動的に得たいのですが、方法はありますか?

↓マウスでつまんでサイズ変更ができる枠の長さです。
URLリンク(f42.aaa.livedoor.jp)

VistaだとXPに比べて枠が長いですよね。おそらく・・・
それを現在のウィンドウ(Form)の状態によって動的に値を得たい。
たとえば、BorderStyleがNoneのときは、「0」になるとか。
そういうのを得るメソッド・プロパティってありますか?

348:347
09/09/15 08:07:33
URLリンク(dobon.net)
このサイトにかかれているフォームの境界線の長さを得たいわけです。はい。

349:デフォルトの名無しさん
09/09/15 08:45:35
arimasen

350:デフォルトの名無しさん
09/09/15 08:59:20
GetSystem…


351:デフォルトの名無しさん
09/09/15 10:12:25
SystemInformation..::.Border3DSize

352:デフォルトの名無しさん
09/09/15 10:16:08
それは違うだろう

353:デフォルトの名無しさん
09/09/15 11:42:52
>>347
長さ?幅じゃなくて?

354:デフォルトの名無しさん
09/09/15 15:49:28
幅のことだろう。

(form.Width - form.ClientSize.Width) / 2

でいいんじゃね。

355:デフォルトの名無しさん
09/09/15 23:52:41
組み合わせは、3C2=3通りだろ。
高校の時にやったぞ。
ちなみに年齢は30のおっさんだ。
たぶん1つ上の年代までは教育課程が違ってやってないかもしれない。
数Ⅰ、Ⅱ、Ⅲ、A、B、C世代な。


356:デフォルトの名無しさん
09/09/16 00:17:48
それも組み合わせの一つ

357:デフォルトの名無しさん
09/09/16 00:58:37
さすがに普通科の理系コースで高校卒業までに確率統計を一度も習わない、
なんてことはありえんと思うが(ありえるなら日本終わってるだろ)
俺の時代も何故か確率統計ってあまり重要視はされてなかったね。

何だろうね。
個人的には微積はともかく線形代数より役に立つ場面が多いと思うけど。

358:デフォルトの名無しさん
09/09/16 01:04:08
>>354
左右対称とは限らないだろう

359:デフォルトの名無しさん
09/09/16 02:18:26
じゃあフォームのleftとクライアントのleftで左枠の幅を求めてから引けばいい

360:デフォルトの名無しさん
09/09/16 02:51:59
>>359
ClientRectangleの座標値はクライアント座標だから左端は常に0

361:デフォルトの名無しさん
09/09/16 09:19:05
>>357
30代の俺の代ですら、受験で稼げない確統なんざ理系選抜クラスでも選択科目扱いだった
今なんてなおさらでしょ

362:デフォルトの名無しさん
09/09/16 11:21:00
>>360
PointToScreen使えばクライアント座標をデスクトップ座標に変換できる

363:デフォルトの名無しさん
09/09/16 11:45:56
>>357
ありえるし、すでに終わってる
それが授業のカリキュラムを大幅に削減したゆとり教育の結果
学力が下がって企業の開発力が落ちてこのザマ
工業製品が台湾や韓国にどんどん追い越されてる

364:デフォルトの名無しさん
09/09/16 17:41:00
>>357
確率は数Aでやるけど統計は習わないはず。
もちろん進学校は別。
来年以降高校の教育課程で統計を本格的に入れるという話を聞いた。
数字カードの組み合わせ問題はゆとり教育時代でも小学校で習うし中学入試にも出る。

確率統計が後回しにされるのは、文系で統計学をやる時に積分を沢山使うから
それを先に学ばせないと授業にならないからだそうだ。
俺理系で文系の人から聞いた話だから、嘘ついてたらすまん。

365:デフォルトの名無しさん
09/09/16 18:17:56
初心者以下の質問のような気がしますが

C#3.0って、VisualStudio2008以上でないと開発に使えないのですか?
あと.NET以外でC#を使うことはできないのですか?

366:デフォルトの名無しさん
09/09/16 18:27:40
>>365
MONO

367:デフォルトの名無しさん
09/09/16 22:34:02
C#のバージョン(1.x,2.0,3.0とか)と、
VisualStudio(VisualC#)のバージョン(VisualStudio2005とか、VisualC#2008とか)と、
.NET Frameworkのバージョン(2.0とか3.0とか)の違いがいまいちわかりません。

どなたかわかりやすく説明していただけませんか?

たとえば、C#3.0から追加になったLINQの機能を、VisualStudio2005でソースを書くとどうなりますか?
C#3.0はVisualStudio2008がサポートしていると聞いたのですが、動かなかったりコンパイルエラーになったりするのでしょうか?

368:デフォルトの名無しさん
09/09/16 22:49:56
VSのバージョンと使用可能言語・開発可能ターゲットは以下の通り
VS2002: C#1.0 .NET1.0
VS2003: C#1.1 .NET1.1
VS2005: C#2.0 .NET2.0 ※.NET3.0用の拡張があったけど今はもうないはず
VS2008: C#3.0 .NET2.0/.NET3.0/NET3.5

LINQはC#3.0の機能なのでVS2008でしか使えない
ただし、LINQは基本的に.NET3.5のライブラリを使ってるので
開発ターゲットが.NET2.0/.NET3.0の場合は普通には使えない

違いと一口に言われても困るな

369:デフォルトの名無しさん
09/09/16 22:50:41
>>367
VS2005 - C# 2.0
VS2008 - C# 3.0
VS2010 - C# 4.0
といった感じでいいんでないかな。
.NET Frameworkのバージョンは0.5とかSP1とか出てきて面倒くさいので考えない方向で。

VS2005でLinqのコードを書くとコンパイルエラーになります。

370:デフォルトの名無しさん
09/09/16 23:05:21
VS2002 -> 1.0
VS2003 -> 1.1
VS2005 -> 2.0
VS2005 + Extention -> 3.0(2.0)
VS2008 -> 2.0、3.0(2.0)、3.5(2.0、3.0)


371:デフォルトの名無しさん
09/09/16 23:05:38
>>368
>>369
ありがとうございます。

もうひとつ質問なのですが、
1つのパソコンに異なるバージョンのVisualStudioを共存させるのはよくないのでしょうか?
会社で使うのが主に旧バージョンなので、
自宅PCには会社と同じ環境用の旧バージョンと自己学習用の新バージョンを入れたいと思っているのですが

372:デフォルトの名無しさん
09/09/16 23:14:58
問題ない。

373:デフォルトの名無しさん
09/09/16 23:15:43
複数の環境を作るためにVirtualPCを無料で配布しているんです

374:デフォルトの名無しさん
09/09/16 23:37:14
いあ普通に共存できるし。

375:デフォルトの名無しさん
09/09/16 23:50:38
そういう問題じゃないんだよ

376:デフォルトの名無しさん
09/09/17 00:01:06
どういう問題だよ。

377:デフォルトの名無しさん
09/09/17 00:05:50
趣味グラマにゃ関係ねえわなwww

378:デフォルトの名無しさん
09/09/17 00:23:42
いや仮想環境はいいぞ

379:デフォルトの名無しさん
09/09/17 00:27:37
むしろパソヲタ的な趣味グラマの方が意味なく(おまけにライセンス的にヤバい方法で)
VMで遊んでる気もしますが。

380:デフォルトの名無しさん
09/09/17 00:42:46
趣味グラマ(初心者)で意味なくVMで遊んでるけど
ライセンス的にやばいことはしないぞw
win7(RC)入れて見たり、linuxで遊んでるだけだ

381:デフォルトの名無しさん
09/09/17 00:47:49
仮想環境って、2台としてカウントされるのだろうか…

382:デフォルトの名無しさん
09/09/17 00:55:17
職業グラマ(上級者)だけどVMはLinux・BSD開発に使ってる
Win開発は実機

383:デフォルトの名無しさん
09/09/17 01:06:34
HDDイメージをDVDに焼いておけば簡単に初期状態に戻せるから重宝してるよ
クリーンな状態でテストしたいからね

384:デフォルトの名無しさん
09/09/17 01:07:44
>>382
上級者は自分を上級者だと言わない

385:デフォルトの名無しさん
09/09/17 01:11:01
>>384
そういう突っ込みを入れさせるために書いといた
まあちょっとした遊び心


386:デフォルトの名無しさん
09/09/17 01:11:51
涙目。

387:デフォルトの名無しさん
09/09/17 01:37:35
後釣り宣言ほど恥ずかしいものはないな

388:デフォルトの名無しさん
09/09/17 01:39:05
まあちょっとした遊び心

389:デフォルトの名無しさん
09/09/17 01:41:05
釣れた釣れた

390:デフォルトの名無しさん
09/09/17 01:41:40
MSDNで開発用のライセンス貰ってVMで動かしてる。

391:デフォルトの名無しさん
09/09/17 01:49:07
俺はDreamSparkでもらったやつをホストOSにして
それで余ったやつをゲストOSにしてる

392:デフォルトの名無しさん
09/09/17 02:01:45
大学生羨ましい

393:デフォルトの名無しさん
09/09/17 02:10:50
ちなみに専門学校です
しかも情報系ではありません

394:デフォルトの名無しさん
09/09/17 02:41:21
なら私は高専生低学年です
しかも情報系ではありません

395:デフォルトの名無しさん
09/09/17 02:54:33
そうですか。

396:デフォルトの名無しさん
09/09/17 03:20:29
いいから寝ろ

397:デフォルトの名無しさん
09/09/17 03:51:43
仕事中

398:デフォルトの名無しさん
09/09/17 04:05:50
いいから仕事しろ

399:デフォルトの名無しさん
09/09/17 04:30:12
おはよう、おまいら

400:デフォルトの名無しさん
09/09/17 04:34:44
いいから眠らせろ

401:デフォルトの名無しさん
09/09/17 08:12:14
2005と2008を共存させるのビビッて仮想環境で
開発しようとか、典型的なおっさんプログラマーだろうなw

402:デフォルトの名無しさん
09/09/17 08:56:14
えっ

403:デフォルトの名無しさん
09/09/17 10:47:59
2005のupdateがきて関連付けを2005にされたときは、ふざけるなと思った

404:デフォルトの名無しさん
09/09/17 20:35:57
>>403
ごめんね。MSがばかでごめんね。

405:デフォルトの名無しさん
09/09/18 21:28:03
エスケープ文字についての質問です。

\nは改行、\rは復帰だそうですが、復帰とはどういう意味ですか?
また、サンプルソースで改行を\r\nとしていたのですが、ただの\nと何が違うのですか?

406:デフォルトの名無しさん
09/09/18 21:30:05
C#とは関係ない
「改行コード」でぐぐれ

407:デフォルトの名無しさん
09/09/18 22:22:27
放送大学の学籍番号キター

408:デフォルトの名無しさん
09/09/18 23:01:19
>>405
行頭に戻る

409:デフォルトの名無しさん
09/09/18 23:05:53
>>405
「\r 復帰」で検索すればすぐにわかるのに

410:デフォルトの名無しさん
09/09/18 23:16:00
まあ、別に非難するつもりはないけど
>>405みたいな話でいちいち人に聞いてたら学習効率悪すぎるな。
>>405は自分で自分の首を絞めてることに気づいた方がいいね。
無理強いはしないけど。

411:デフォルトの名無しさん
09/09/19 08:34:04
ゆとり

412:デフォルトの名無しさん
09/09/20 09:35:04
TransportBindingElement.MaxReceivedMessageSizeで
WCFで受信する最大のメッセージサイズを指定しているのですが、
最大値より大きなメッセージを受信した時に
「最大値を増やすことを検討して下さい」
といった感じのログを残したいと考えています。

メッセージを受信する側で
「最大値より大きいメッセージを受信し、リクエストを拒否した」
という事を検出するにはどうすれば良いのでしょうか?

413:デフォルトの名無しさん
09/09/20 11:03:47
Visual C# 2008 Express Editionを使っています。
スタートアップ時、前回終了時のプロジェクトがそのまま開けるようにできる設定方法はないでしょうか?

414:デフォルトの名無しさん
09/09/20 11:23:29
>>413
オプションにあるだろ

415:デフォルトの名無しさん
09/09/20 11:34:43
>>414
ありがとうございます。見逃していました。
「ツール」→「オプション」→【全ての設定を表示】→『スタートアップ』の手順で、
【全ての設定を表示】のチェックを見逃していたため、気づきませんでした。

416:デフォルトの名無しさん
09/09/20 11:56:10
全ての設定を表示って邪魔くさいよな。

417:デフォルトの名無しさん
09/09/20 13:09:46
Expressのその機能はかえって初心者を混乱させてるよな
何度それに起因する質問を見たことか

418:デフォルトの名無しさん
09/09/20 13:17:31
そう?
「まず落ち着いて状況をよく見る」という、プログラマに不可欠な能力の欠如を
初心者に思い知らせる、いい薬になってると思うけど。

個人的には、そんな「よく見れば誰でもわかる」プログラムの設定程度で
躓く人間にまともなプログラムなんて書けっこないと思う。

419:デフォルトの名無しさん
09/09/20 13:31:09
不明瞭な機能をスキルに対するリトマス試験紙とか言う馬鹿がまだいるとは

420:デフォルトの名無しさん
09/09/20 13:36:03
一通りオプションを眺めるとかHELPを読むとかしろよ
ど素人じゃないんだからさ

421:デフォルトの名無しさん
09/09/20 13:37:34
ど素人なんだろ。

422:デフォルトの名無しさん
09/09/20 13:40:57
あのオプションはチェックが入った状態が逆ならまだましな気がする。
すべて表示、じゃなくて一部隠す、にするということね。

423:デフォルトの名無しさん
09/09/20 13:42:58
Express以外は、チェック自体がないのか?

424:デフォルトの名無しさん
09/09/20 13:43:18
項目大杉! って文句付けた奴がいるんだろうな。

425:デフォルトの名無しさん
09/09/20 14:47:32
>>423
無い。
つーかそもそもExpressEdition以外はC#専用ってわけじゃないしね。
同じExpressEditionでもC++もこのオプション無い。

426:デフォルトの名無しさん
09/09/20 14:55:14
チェックボックスは上位エディションでも設定で出せるよ

427:デフォルトの名無しさん
09/09/20 18:49:32
テキストボックスに日付を入力させて、
もし、値がおかしければ、Leave時にそのテキストボックスの背景色を赤にしたいと思っています。
しかし、Leave時のactiveコントロールは次のタブオーダーのコントロールに変わってしまっていますし、
どうやって、Leaveされたコントロールを取得したらいいのか分かりません。
ご存知の方、教えてください。

428:デフォルトの名無しさん
09/09/20 18:53:07
Validateとかねーの?

429:デフォルトの名無しさん
09/09/20 18:53:32
テキストボックスのイベントハンドラじゃダメなの

430:デフォルトの名無しさん
09/09/20 18:54:18
URLリンク(uchukamen.com)

431:デフォルトの名無しさん
09/09/20 18:54:30
TextBox.Validatedイベントを使う
見た目も任せていいならErrorProviderを使うのが楽

432:デフォルトの名無しさん
09/09/20 21:09:13
>>427です。
お返事ありがとうございます。
Validatedのイベントに記述します。

このチェックを共通サブルーチンのようにし、
複数の日付項目のValidatedイベントから呼ぶようにしたいと思っています。
もしエラーなら、その該当のコントロールの背景色を変えたいのですが、
どのコントロールから呼ばれたかを取り出して、
そのコントロールの背景色を変えるにはどうしたらいいでしょうか。
senderの中身を見ても、コントロールの種類だけしか見つかりません。

たびたびで申し訳ないですが
よろしくお願いします。


433:デフォルトの名無しさん
09/09/20 21:22:54
キャストしろ

434:デフォルトの名無しさん
09/09/20 21:44:23
>>432
いやいやValidatedイベントハンドラ(ってかデリゲータ)を一つ用意すればいいだけだから
無駄に分ける必要ないから

435:デフォルトの名無しさん
09/09/20 22:38:02
ヘルプの EventHandler デリゲートより
「このメソッドの最初のパラメータの型は Object であり、イベントを発生させるインスタンスを参照します。」


436:デフォルトの名無しさん
09/09/20 22:42:18
>>431
へえ。ErrorProviderなんてあるんだな。
俺ならユーザコントロールでコードを分離してイベントを書くな。

437:デフォルトの名無しさん
09/09/21 00:55:51
>senderの中身を見ても、コントロールの種類だけしか見つかりません。
ワロタ


438:デフォルトの名無しさん
09/09/21 02:09:39
テキストボックスのマルチラインをtrueにした状態で、
改行をさせないようにするにはどうすればいいですか?
マルチラインをtrueにしているのは、テキストボックスの高さを少し上げたかったからであり、
複数行入れたいわけではありません。

何かテクニックがあれば教えてください・・・!


439:デフォルトの名無しさん
09/09/21 10:36:18
テキストボックスの高さを普通に上げればいいじゃない

440:デフォルトの名無しさん
09/09/21 11:00:54
そういうスタイルもあるけどコピペに対応できないから
入力時にチェックしてはじいたら?

441:デフォルトの名無しさん
09/09/21 12:11:47
RichTextBox使ってMultiLine=falseにしたら?

442:デフォルトの名無しさん
09/09/21 14:07:47
フォント大きくするか>>441だな。

443:デフォルトの名無しさん
09/09/22 08:42:11
>>441
リッチテキストボックスとテキストボックスは外観がちがうんだね。同じフィックスド3Dでも。
同じならいいのに。

444:デフォルトの名無しさん
09/09/22 13:03:02
C# .NETアプリケーション開発 徹底攻略
て本に、LOADイベントはInitializeComponent完了前、
正確にはResumeLayout直後に発生する事があるって書いてあるんだが
そんなことホントにあるのか?
ちょっと考えられないってかありえない気がするんだが。
Newするだけで表示しなかったらどうなるの?とか疑問だらけだ。

どうもこの本は、正しく理解してない開発者が多いなんて書きながら、
あちこちに間違いとか思い込みとか極端な例を元にしてる話がある感じで
今ひとつ信用できない。
本自体の方向性は好きなんだが。


445:デフォルトの名無しさん
09/09/22 13:06:27
イマイチ信用できなくなったきっかけは、非同期処理絡みでいろんなこと書きながら、
実は正しい非同期処理のルールすら理解せずに書いてるから。
思い込みでおかしな動作すると言ってんじゃないかと思ってしまう。


446:デフォルトの名無しさん
09/09/22 13:08:57
>>444
見た覚えあったので辿ってみた。
C#, C♯, C#相談室 Part52
スレリンク(tech板)
の574あたり。

447:デフォルトの名無しさん
09/09/22 13:12:21
非同期処理では例外は握りつぶされるとか
スレッドプールのスレッドでも同様とか
各種Timerクラスとスレッドプールの関係で勘違いしてるとか
文字列連結パフォーマンス関連の不適切な例と説明とか(ここは言いたいことは理解は出来るが)
ngenの勘違いした記述とか

448:デフォルトの名無しさん
09/09/22 13:31:36
C#はパラダイム詰め込みすぎでパラダイム間の共認知が薄れてるきがす

449:デフォルトの名無しさん
09/09/22 13:35:49
444も447も大体.NETの問題でC#とは直接関係はなさそうだが

450:デフォルトの名無しさん
09/09/22 14:07:46
>>446
サンクス。
読んでみたけど、うーん、そりゃそんなことしたら呼ばれることはあるわな。
これは当たり前の話だよねー。

気になるのは、そんなおかしなことしてる場合じゃなくて、
普通にあり得るのか?ってことなんだよなー。

例え話としては、
「Loadイベントではまだフォームは表示されていない」に対して、
「そんなことはない、Load内でShowを呼び出したら表示される」
「だからLoad中はまだフォームが表示されていないというのは間違い」
とか言ってるみたいな感じ。
※MDIとかだとまたややこしいは話があったかも知れんがそれはそれ

本を見ると、InitializeComponent完了前にLoadが発生するのは
Vistaで起こりやすい?らしいんだが、どうなんだろう…


451:デフォルトの名無しさん
09/09/22 17:20:15
>>450
普通にはありえないんじゃない?

OnLoadで初期化をするとか割とありふれたことだから、
そんな現象がありうるのならもっと大騒ぎされてると思う。

俺が検索した限りでは、そんな現象を指摘する情報は見つからない。
個人的にもそんな現象にあたったことはないね。

452:デフォルトの名無しさん
09/09/22 17:23:53
要するに「可能性があるからできる限りそれに依存しないコードにしましょう」ってことでしょ
その本は読んでないから文脈分からんけど

453:デフォルトの名無しさん
09/09/22 19:04:31
外部 DLL の null 終端されていない文字列を string に変換するにはどうすればいいですか。
以下の方法だとうまくいきませんでした。

struct Hoge {
// 文字列(null terminate されてない)
IntPtr str; // const char*
// 文字列のバイト数
int length; // int
}

[DllImport("hoge.dll", CharSet = CharSet.Ansi)]
extern static IntPtr get_struct(); // 構造体 Hoge のポインタを返す

IntPtr p = get_struct();
Hoge hoge = (Hoge)Marshal.PtrToStructure(p, typeof(Hoge));
string s = Marshal.PtrToStringAnsi(hoge.str, (int)hoge.length); // ここで変換がうまくいっていない


ちなみに length が正しく文字列のバイト数を格納していることは確認しています。

454:デフォルトの名無しさん
09/09/22 19:11:16
RtlMoveMemory() で文字数分切り取ればOK。

455:デフォルトの名無しさん
09/09/22 19:12:33
「うまくいかない」の具体的な事象は?

456:デフォルトの名無しさん
09/09/22 19:17:43
>>454
試してみます。

>>455
文字がシングルバイトかマルチバイトかにかかわらず文字化けします。

457:デフォルトの名無しさん
09/09/22 19:25:12
一部だけ?全部?
char*はANSI(ASCII/Shift_JIS)の文字列で良いの? たまに違う文字セット使う場合もあるけど
取り敢えずMarshal.CopyでIntPtrをbyte[]に転写して中身調べたらどんな感じ?

458:デフォルトの名無しさん
09/09/22 19:37:26
>>457
全部です。
Copy すると byte 配列が明らかにおかしいですね。
char* は ANSI で間違っていないのですが、
byte[] に格納されたバイトは ANSI でも Unicode でもなさそうです。

期待する文字列: 太郎
Marshal.Copy(hoge.str, bytes, 0, hoge.length) の結果: {8, 0, 0, 0}

もしかしたら>>453とは関係ない部分かもしれないので API 等見直します。
ありがとうございました。

459:デフォルトの名無しさん
09/09/22 20:54:01
>>452
可能性でいやなんでも可能性はあるぜ?
大体NewしただけでLoadイベントが発生する作りのFormなんて明らかにおかしいわけで。

----引用開始
またLoadイベントは、コンストラクタの完了を待って同期的に呼ばれるのでは、
といったイメージをもたれがちですが、これも間違っています。
Loadイベントは、コンストラクタで実行されるInitializeComponentメソッドが
完了した後に呼ばれます(正確にはデザイナコードのResumeLayoutメソッドで
レイアウト描画が開始された時)。
つまり、InitializeComponentの直後に記述したロジックと、Loadイベントに
記述したロジックは、どちらが先に実行されてもおかしくありません。
この現象は、マルチスレッド、マルチコアCPUの実行パフォーマンスが最適化
されたWindows Vistaでよく起こるようです。

どちらの現象も開発者に正しく理解されてないことが多く

----引用終了
いややっぱりおかしいって。
多分作りのおかしなアプリ動かして、普通に起こる現象だと勘違いしてる。


460:デフォルトの名無しさん
09/09/22 21:02:29
>>453
C#側の構造体に[StructLayout(LayoutKind.Sequential)]とか書いてある?

461:デフォルトの名無しさん
09/09/22 21:02:54
あー、確かにその記述はフォローできないな
WinFormなんだからシングルスレッドで同期的に動かされるのは当然だもの

462:デフォルトの名無しさん
09/09/22 21:04:12
>>459
明らかにおかしいとは思えんね。
Loadの意味的な定義は「ShowまたはShowDialogが呼ばれた」なんだから、
InitializeComponentの中だろうがなんだろうが、それが起これば発生してくれなきゃ
逆にそっちの方が「オカシイ」よ。

463:デフォルトの名無しさん
09/09/22 21:06:08
発生することがおかしいと言ってるんじゃないよ。
本の記述というか、説明がおかしいと言ってる。
どこかでShowしたらそりゃそのタイミングで発生するのは当たり前。


464:デフォルトの名無しさん
09/09/22 21:11:33
ついでに言うと、マルチスレッドでの例外はこんな感じだ。
デリゲートの非同期実行での例外に関する記述で、EndInvokeを使用してないコードを書いてて、

----引用開始
このマルチスレッド例外のしくみは、ほとんどの開発者に正しく理解されていません

つまり別スレッドで起こった例外は、メインスレッドから検知できません。
これはマルチスレッドにおける重要な仕様です。
別スレッドで起こった例外は、何事もなかったかのように例外の起こったスレッドを
終了しています。

たとえばSocketを使用した非同期通信のしくみを利用した場合、非同期処理の部分は
別スレッドで実行される場合があります。

通信エラーが起こっても正しく検知できません。
通常のスレッド処理や、スレッドプールが暗黙的に使われるタイマー処理、デリゲート
でも同じことが言えます。
----引用終了

そりゃEndInvokeとか使ってないんだから当たり前。
それにBegin~系以外ならちゃんとハンドルされてない例外になるから
タイマーとか普通のスレッドとか普通のスレッドプール利用とかでは当てはまらない。

この人のコードは基本的に非同期処理でEnd~を使ってない。
非同期処理は不安定とか結構文句が書いてあるんだが、
それってちゃんとEnd~してないからってのと、他にもなんか
ぽかやってんじゃないかと思ってしまう。


465:デフォルトの名無しさん
09/09/22 21:23:03
これに対する対処として書かれてる方法が、
非同期実行する対象のメソッドの先頭で、
InvokeRequired調べてコントロールにInvoke。

いくらなんでも例として不適切だ。


466:デフォルトの名無しさん
09/09/22 21:29:24
>>463
なるほど失礼。

467:デフォルトの名無しさん
09/09/22 21:43:43
MSの記事のどこかでMS社員が
FormsのFormの内部実装でスレッドの見落としがあってバグ採りしたってあったなー

コントロールのメソッド一つ一つにInvokeRequiredをガードに入れるという作業

468:デフォルトの名無しさん
09/09/22 22:16:52
質問です。

Set xls = CreateObject("Excel.Application")
xls.Visible = True
Set book = xls.Workbooks.Add

これをC#で書くと、どんな感じになりますか?

469:デフォルトの名無しさん
09/09/22 22:21:36
・ExcelをCOM参照すればまあ似たような感じに書ける
・レイトバインドじゃないと嫌なら、C#で記述するのは諦めてVBで書く
・Excelの相手はVBScriptにやらせて、C#からはProcess.StartでそのVBSを起動するだけにする
お勧めは3つめ

470:デフォルトの名無しさん
09/09/22 22:33:43
レイトバインドもできないわけじゃないけど、かなり面倒だわな。

471:デフォルトの名無しさん
09/09/22 22:35:28
C#4.0待ち

472:デフォルトの名無しさん
09/09/22 22:36:20
お勧めは、Excel Web Service。

473:デフォルトの名無しさん
09/09/22 22:38:16
Visual Studio 2008 で開発してます。
DataGridViewの一行のデータDataRowに、画面には表示しないバイナリデータや、
ArrayListなどを紐付けたいのですが、
DataRowあるいはDataGridViewに、そういう画面非表示のデータを紐付けて管理するメソッド等ありますか?
MFCのCComboBoxのSetItemDataPtr()のようなメソッドです。

474:デフォルトの名無しさん
09/09/22 22:41:58
そういうのは"バインディング"といって,メソッドとかそんなレベルじゃなくてちゃんとした仕組みがあります

475:デフォルトの名無しさん
09/09/22 22:42:12
Dictionary<DataRow, T>辺りで別管理した方が楽じゃね?


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch