C#, C♯, C#相談室 Part54 at TECH
[2ch|▼Menu]
1:デフォルトの名無しさん
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)


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

5374日前に更新/218 KB
担当:undef