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

C♯相談室 Part14

レス数が1000を超えています。これ以上書き込みはできません。
0001名無しさん♯NGNG

(#゚ー゚)つ < C#、.NET、WinFXの話題はこちらでどうぞ。


過去スレは>>2-5あたり。

関連リンク
http://onigiri.s3.xrea.com:8080/csharp/index.php?%5B%5B%A5%EA%A5%F3%A5%AF%5D%5D
0002名無しさん♯NGNG
過去スレ
Part13 http://pc2.2ch.net/test/read.cgi/tech/1071663456/
Part12 http://pc2.2ch.net/tech/kako/1066/10660/1066038651.html
Part11 http://pc2.2ch.net/tech/kako/1061/10612/1061262958.html
Part10 http://pc2.2ch.net/tech/kako/1051/10518/1051842450.html
Part9 http://pc2.2ch.net/tech/kako/1039/10396/1039646808.html
Part8 http://pc3.2ch.net/tech/kako/1032/10324/1032488831.html
Part7 http://pc3.2ch.net/tech/kako/1027/10275/1027531796.html
Part6 http://pc3.2ch.net/tech/kako/1022/10222/1022257078.html
Part5 http://pc3.2ch.net/tech/kako/1019/10195/1019533942.html
Part4 http://pc.2ch.net/tech/kako/1016/10165/1016597767.html
Part3 http://pc.2ch.net/tech/kako/1009/10094/1009473982.html
Part2 http://pc.2ch.net/tech/kako/1002/10024/1002468050.html
Part1 http://pc.2ch.net/tech/kako/977/977112364.html
0003デフォルトの名無しさんNGNG
∩( ・ω・)∩ ばんじゃーい
0004デフォルトの名無しさんNGNG
>>3
タイーホ
0005デフォルトの名無しさんNGNG
>>3
(*´ー`)σ)ω・) プニ
00063NGNG
>>4-5
死ね
00073(本物)NGNG
>>6
∩( ・ω・)∩ ばんじゃーい
0008デフォルトの名無しさんNGNG
       ヽ|/
     / ̄ ̄ ̄`ヽ
    /         ヽ
   /  ノ'' ll ''ヽ ノ( |  
   | (●) (●)⌒ .|  
   |  / ̄⌒ ̄ヽ   |  
   |  | .l~ ̄~ヽ |   |
   |  ヽ|  u/ノ   |
   |   | /| | >>3  |
      // | | ))
     U  .U
0009デフォルトの名無しさんNGNG
>>3-8
C#やってるのって、こんな香具師ばっかりなの?
0010デフォルトの名無しさんNGNG
>>9
>9
0011デフォルトの名無しさんNGNG
>>9
大丈夫、君も仲間さ
0012デフォルトの名無しさんNGNG
Cab形式とかで圧縮解凍してくれるクラス、基本で入れてくれんかな
0013デフォルトの名無しさんNGNG
コモンダイアログの表示位置は指定できませんか?
0014デフォルトの名無しさんNGNG
できないんじゃね?
メッセージボックスだってできないし。
0015デフォルトの名無しさんNGNG
>>9
Del厨必死だなw
0016デフォルトの名無しさんNGNG
9 名前:デフォルトの名無しさん 投稿日:04/02/17 21:39
>>3-8
C#やってるのって、こんな香具師ばっかりなの?
0017デフォルトの名無しさんNGNG
>14
ありがと。
でもこの本ではメッセージボックスを任意の位置に表示できるようなメニューがあるからさ
http://www.galliver.co.jp/book/csn3001/
コモンダイアログでもなんかあるのかなと。。
この本立ち読みしてくるか・・・
0018デフォルトの名無しさんNGNG
>>17
ああそれね、たしかフック使ってた
たかがメッセージボックスに大仰だなあと思った覚えがある
0019デフォルトの名無しさんNGNG
当然、細かいレベルまで見れば、
内部では、絶対にどこに表示するかのプロパティはあるはずだし、
何らかの方法があるとは思うんだけどね、、、。
フレームワークを逆アセンブリとかすれば、、、?
漏れにはできないけど、、、。
0020デフォルトの名無しさんNGNG
しかし、その程度のプロパティくらい用意して欲しいよな。
まあ、msとしては、どこに表示するかは大した問題ではないから
必要ないという考えなのかな?
0021デフォルトの名無しさんNGNG
俺は気にしないんだけどお客さんが気にするんだ(笑)
0022前スレ964NGNG
>>最凶VB厨房様
前スレ976でご教授いただきありがとうございます。
しかし
SelectedListViewItemCollectionと
Listview.LargeImageList
の間にどういう関連があるかわからず
どうやって使えばいいのかよくわかりません…


とりあえずやりたいことは
ListView上のアイコンをシングルクリックでを選択したあと
ボタンを押して
1、選択されたアイコンを別のアイコンイメージに変える
2、アイコンのX、Y座標を保持する
です。

X、Y座標はドラッグ&ドロップしたときには
取得できたんですけどそういうイベント無しに取得する方法はあるのでしょうか?

重ね重ね申し訳ありませんが、宜しくお願いします。
0023デフォルトの名無しさんNGNG
>>22
private void button1_Click(object sender, EventArgs e)
{
  foreach (ListViewItem item in listView1.SelectedItems)
  {
    item.ImageIndex = 1;
    MessageBox.Show(item.Bounds.ToString());
  }
}
0024デフォルトの名無しさんNGNG
C#というか.net frameworkの質問になってしまいますが
作ったフォームのウィンドウクラス名を変更するにはどうしたらいいでしょうか。
デフォルトでは WindowsForms10.Window.8.app1 とかになってしまいますよね。
0025デフォルトの名無しさんNGNG
age
0026名無しさん♯NGNG
>>24
結論から言えば、できないようです。

FormのCreateParamsプロパティをオーバーライドして云々という手も使えないようです。
詳しくはこちらを。
http://discuss.develop.com/archives/wa.exe?A2=ind0111A&L=DOTNET&D=0&I=-3&P=49377
0027デフォルトの名無しさんNGNG
>>26
どうもです。通りで検索しても引っかからなかったんですね・・・。

クラス名を手がかりにFindWindowしてSetForegroundWindowしたかったんですが、
他の方法を探すしかないようですね。
0028デフォルトの名無しさんNGNG
Exploring New WinForm Controls in VS .NET Whidbey
http://www.devx.com/codemag/Article/20145/0/page/1
0029デフォルトの名無しさんNGNG
C#で使えるフリーで高性能のエディタコンポーネントはありますか?
DelphiのTEditorみたいな・・・
0030デフォルトの名無しさんNGNG
>>29
VC.netのアドインで開発してくれ・・・。
出来たら俺もほしい。
0031デフォルトの名無しさんNGNG
C#で自作でコントロール作ったんだけど重くてたまらない。
C++で作り直して、それをC#で使いたいんだけど
なんか参考になるサンプルや説明のあるサイト知りませんか?
0032デフォルトの名無しさんNGNG
ないのか?
いくらC#の機能が強力でも
Delphiコミュニティのフリーコンポーネント攻勢には
かなわないのか?
それじゃまだC#とDelphiを並行して使うしかないか・・・
0033デフォルトの名無しさんNGNG
煽りはスルーで
0034デフォルトの名無しさんNGNG
>32
煽りじゃないよ。
現状では
C#標準の機能>>>Delphi標準の機能
だが
Delphi標準の機能+コミュニティの成果>C#標準の機能+コミュニティの成果
なんだよね。

ホントはC#を使いたいのだが
エディタコンポーネントのようにDelphiの遺産がモノを言う場合もあるんだよね。
まだ待つしかないのか?
0035デフォルトの名無しさんNGNG
待ってるからだめなんだろ
0036デフォルトの名無しさんNGNG
MS系の言語はマイクロソフトが中途半端に面倒見がいいものだから
コミュニティが発達しづらいのかな?
マイクロソフトのこれまでの言語は
「業務だから使ってんだよ」という傾向が強かったが
C#はそのレベルを遥かに超えてるわけで
ユーザーコミュニティが発達しても良さそうなものだが。
C#はこれから10年の主流言語となるはずなのに。
0037デフォルトの名無しさんNGNG
妄想です
0038デフォルトの名無しさんNGNG
Delphiのエディタコンポーネントは知らないのだが
漏れの使ったことあるのはSharpDevelopと#WTとSyncfusion。
制約があって作りづらいというのがあるんでないかな。
0039フサギコ♯NGNG
     ∧,,∧,,,,,, )      (´⌒(´
  ⊂ミ゚Д゚⊂ `つ≡≡≡(´⌒;;;≡≡≡
       """""  (´⌒(´⌒;;
39ゲットー

コミュニティが作成するのではなくて
BOCとか、みたいな会社が商売していくんじゃないかな。
市場もでかくなっているんだし。

Dreamカンパニのが移植されたら
漏れはウレスィです。
0040デフォルトの名無しさんNGNG
>>31
ATLでも極めてくれ。
0041デフォルトの名無しさんNGNG
>>29
ここはチェックした?
http://windowsforms.com/ControlGallery/default.aspx?Category=12&tabindex=9
004231NGNG
>>40
COMですか・・・
C#で参照の追加ってダイアログを開くと.NETとCOMのタブがあって
そこからコントロールのdllが選べるけど
.NETのタブの方にあるのはCOMじゃないのかな?
だとしたら何で作ってるのかが知りたい。
0043デフォルトの名無しさんNGNG
>>42
managedなdllに決まってる。
004431NGNG
>>42
そうか、そうだったのか・・・なんかがっくり。
managedにしても、やっぱネイティブには適わないだろうし
やっぱATLでCOM作るか・・・本買ってきます。
0045デフォルトの名無しさんNGNG
>>34
無ければ作れ
おまいが受け継いだ遺産はコンポーネントだけか?
0046デフォルトの名無しさんNGNG
ヤだよ。
他人のフンドシでやるから楽なんだし。
バカじゃねーの?
0047デフォルトの名無しさんNGNG
他人の褌だとどうも股擦れが多発するんだよな。
0048デフォルトの名無しさんNGNG
WindowsFormsが遅いなんて言ってるショボPCではLonghornなんかもってのほか。


買い換えろ。
0049名無しさん♯NGNG
新言語仕様はなかなか強力でつね。ヽ(´ー`)ノ

Introduction to Anonymous Methods and Higher-Order Procedures in C#
http://msdnaa.net/Resources/display.aspx?ResID=2488
0050デフォルトの名無しさんNGNG
関数型言語みたいだね
0051デフォルトの名無しさんNGNG
フレームやボタン等のコンテナとかコンポーネントにはマウスイベントを監視させるリスナを
インプリメントすることができるのですが
DirextXで作成したポリゴンのスプライトにもマウスイベントを監視させたいのですが
できるのでしょうか?
やはり自前で監視ル−チン組む必要があるのでしょうか?
0052デフォルトの名無しさんNGNG
ごめんなさい、上の質問は解決しました
0053デフォルトの名無しさんNGNG
解決したんなら解決方法書け( ゚Д゚)ゴルァ!!
005453NGNG
C#を始めようと思ってソフトを買おうかと思っているんですが、
Microsoft Visual C#.netとBorland C# Builderとどっちがいいんでしょうか・・・
005554NGNG
すいません。名前間違えました。ここの>>53の方とは関係ないです・・・
0056デフォルトの名無しさんNGNG
てめえ,わざとかよ( ゚Д゚)ゴルァ!!
0057デフォルトの名無しさんNGNG
>>54
まずはSharpDevelopで試してみてはいかがでしょうか。
.NetFrameworkSDKとSharpDevelopをインストールすれば
MicrosoftのVisualC#とほぼ同等の事が出来ますよ。(ほとんどVisualC#クローンと言えます)
(今まで1ヶ月と少しの間VisualStudio.NetとSharpDevelopを使ってみて違いに気づいたことと言えば
VisualStudioのほうがDBを扱うプログラム構築が楽になる。ということと、
SharpDevelopはエラー発生率が高いと言うことだけ。
DBアクセスは一度ソースを見ればあとはIDEを頼らなくても手コーディングで書けるようになりますが・・・)
Borlandの方は使ったことが無いので何ともいえません。
005857NGNG
と思ったら、SharpDevelopも先日のupdateでDBコネクション関係も作れるようになっておりました。
0059デフォルトの名無しさんNGNG
Borlandは、Personal Editionダウンロード版
(製品パッケージ版と同機能だが、商用利用不可)なら、無償ダウンロードできます。
VS.NETとの違いは、独自のコンポーネント群がついてくる程度です。
詳しくはこちら
ttp://www.borland.co.jp/csharpbuilder/
0060フサギコ♯NGNG
     ∧,,∧,,,,,, )      (´⌒(´
  ⊂ミ゚Д゚⊂,,,,,,,`つ≡≡(´⌒;;;≡≡≡
ズザーーーーーッ    (´⌒(´⌒;;

C#Builder vs. VS .NET- Choose Wisely[C#Builder、対.NET対-賢明に選びます。 ]
http://www.excite.co.jp/world/url/body?wb_url=http%3A%2F%2Fwww.c-sharppro.com%2Ffeatures%2F2003%2F11%2Fcs200311jm_f%2Fcs200311jm_f.asp&wb_lp=ENJA&wb_dis=3

C#Builder for Delphi Developers[デルフォイ開発者のためのC#Builder ]
http://www.excite.co.jp/world/url/body/?wb_url=http%3A%2F%2Fwww.c-sharppro.com%2Ffeatures%2F2003%2F10%2Fcs200310cd_f%2Fcs200310cd_f.asp&submit=%83E%83F%83u%83y%81%5B%83W%96%7C%96%F3&wb_lp=ENJA&wb_dis=3&wb_co=excitejapan

付属のComponentOneはC#BuilderPro以上だったかな?
0061フサギコ♯NGNG
  ∧,,∧   登録がいるけれども
 ミ,,゚Д゚彡 ここも
 ミつ日(ミ
IT Pro 技術の広場 - ようやく出てきたC#の選択肢(上)
http://itpro.nikkeibp.co.jp/members/NBY/techsquare/20031107/1/
0062名無しさん♯NGNG
F#みたいなこともだいぶ楽に書けるんだね。

using System;
using System.Collections.Generic;

delegate T Func<T>(T arg);

class Test {

  public static List<T> Map<T>(List<T> list, Func<T> func) {
    for (int n = 0; n < list.Count; n++) {
      list[n] = func(list[n]);
    }
    return list;
  }

  public static void Iter<T>(List<T> list, Func<T> func) {
    foreach (T t in list) {
      func(t);
    }
  }
0063名無しさん♯NGNG

  static void Main() {
    List<int> l = new List<int>();
    l.Add(1); l.Add(2); l.Add(3); l.Add(4); l.Add(5);

    // 二乗する関数
    Func<int> square = delegate(int n) {
      return n * n;
    };

    // 表示する関数
    Func<int> print = delegate(int n) {
      Console.WriteLine(n);
      return 0;
    };

    Map(l, square);
    Iter(l, print);
  }
}
0064デフォルトの名無しさんNGNG
Schemeでいいよ
0065デフォルトの名無しさんNGNG
そういや .NET Framework上のScheme処理系の話ってどうなった?
商業ベースのやつがあったと思うんだが。
0066デフォルトの名無しさんNGNG
夢のテンプレート!!!
これでC#の世界制覇が現実になりますね。
0067デフォルトの名無しさんNGNG
>>62-63の肝はgenericsじゃなくて匿名delegateだと思うんだが・・・。
0068デフォルトの名無しさんNGNG
ウィンドウをアクティブにしないで開く、もしくはウィンドウを非アクティブにするには
どうしたらいいでしょうね?
0069デフォルトの名無しさんNGNG
>>68
そういうプロパティがフォームにあるはずだから、
それを非表示に設定しておいてから、開けば良いんじゃないでしょうか?
0070デフォルトの名無しさんNGNG
スクロールバーの基本的なことを学びたいのですが、どうしたら良いでしょうか?
0071デフォルトの名無しさんNGNG
MSDNを熟読するのはどうだろう。


つか抽象的すぎ。
0072デフォルトの名無しさんNGNG
実験あるのみ!
0073デフォルトの名無しさんNGNG
二重起動防止に、起動時にApplication.ExecutablePathを引数にMutexクラス作ると、
指定されたパスが見つかりません。という例外が発生するんですが、どうすればいいのでしょうか。
0074デフォルトの名無しさんNGNG
>>71>>72
なるほど。
プログラムってのは、基本的に、
そう言う物なんですね。

自分的にはちゃんとした説明がどこかにあるはずだと思ってましたが、
そうじゃないものもあったりするんですね。
そういう場合は、トライ&エラーで強引に進めるのが普通のプログラマーなんですね。
分かりました。
やってみます。
0075デフォルトの名無しさんNGNG
>>73
\が含まれてると駄目らしい。
Replaceで/に置換するとか?
007673NGNG
>>75
置換したら上手くいきました。ありがとうございます。
0077デフォルトの名無しさんNGNG
例えば、ピクチャーボックスの画像を
スクロールバーで移動させて表示させるような処理ってのは、
基本的に、
スクロールバーの値を取得して、そして、
各画像オブジェ、例えば、レクトアングル、などを
計算して、ずらして表示させるような処理を自分で
書くのが普通なのでしょうか?
自分的には、勝手に計算してくれそうな気がしてましたが、
普通は自分でちゃんとコードを書くものなのでしょうかね?

レクトアングル構造体が2500個ほどあるのですが、
その原点を全てスクロールバーの値から計算して移動させる処理を書くしかないですかね。
逆にピクチャーボックスの座標の原点の方をずらすってことはできないのでしょうか?
原点を0,0じゃなくて、500,500からはじめるとかできたら
簡単なのにな。
自分でも調べてみたけど、そういうプロパティは見つかりませんでした。
ありそうなものだけどな、、、?
やっぱりないですかね?

知ってる方がいらしましたら一言下さいませ。
0078デフォルトの名無しさんNGNG
レクトアングルage
0079デフォルトの名無しさんNGNG
>>77
Panelを使えば思考する余地すらなかったり。

public static void Main(string[] folder) {
   Form f= new Form();
   Panel p = new Panel();
   PictureBox b = new PictureBox();
   b.Image = Image.FromFile("test.bmp");
   b.Size = b.Image.Size;
   p.AutoScroll = true;
   p.Controls.Add(b);
   p.Dock = DockStyle.Fill;
   f.Controls.Add(p);
   Application.Run(f);
}
0080デフォルトの名無しさんNGNG
TreeViewで任意のTreeNodeを選択するにはどうすればいいのん?
(任意のTreeNodeに対してAfterSelectイベントを発生させる)

OnAfterSelectメソッドとかあるけど使い方がよくわかんない( ;゚Д゚)
0081デフォルトの名無しさんNGNG
SelectedNodeプロパティじゃ駄目だっけ?
0082デフォルトの名無しさんNGNG
一応SelectedNodeで指定したけどだめでした。
といってもnewでTreeNodeを作って指定しただけだから、
やり方が他にあるのかもしれないけど。。
008380NGNG
正確には、現在選択されているTreeNodeの下にある任意の
TreeNodeでAfterSelectイベントを起こしたいんです
0084デフォルトの名無しさんNGNG
> といってもnewでTreeNodeを作って指定しただけだから、

だめなんじゃないか?
ツリー内に無いノードは選択できないだろ。
0085デフォルトの名無しさんNGNG
どこで発生するか分かってるんなら
イベント使うまでもなく直接メソッド呼び出せば良いんじゃ……?
008680NGNG
treeView1.SelectedNode = treeView.SelectedNode.Nodes.Item
てふうにすればいいのでしょうか?
0087デフォルトの名無しさんNGNG
>>86
ok

ちなみにNodes[]ね。
008880NGNG
わかりました。
ありがとうございます。
0089デフォルトの名無しさんNGNG
>>79
おお、パネルと言うものがあるのですか?
良く分かりませんが試してみます。
ありがとうございました。
0090デフォルトの名無しさんNGNG
初めてC#をいじっています。

MFCでやっていたときはログクラスを自前で作ってAPPにおいて
どっからでも((CWinAPP2*)AfxGetApp())->m_clsLog.Write("LOG"); って書けばOKだったのですが

C#ではどこに実態を置いて、どうやってアクセスすれば良いのでしょうか……。

0091デフォルトの名無しさんNGNG
>>90
System.Diagnostics.TraceクラスのListenersプロパティでも使ってみたら?
0092デフォルトの名無しさんNGNG
げ。コモンダイアログって HCBT_ACTIVATE で SetWindowPos しても
位置は移動しないの?サイズは変わるのに・・・
常におんなじ位置に来るように何かしてるのかな?
0093デフォルトの名無しさんNGNG
>>57-61
遅くなりましたが、レスありがとうございます。
早速調べてみます。
0094デフォルトの名無しさんNGNG
Point.Offset メソッド
Rectangle.Offset メソッド
って本当に使えるの?
どんなパラメータを指定しても
動かないんだが…

そもそもこのパラメータって
全画面上の座標?
それとも
コントロール上の座標?
0095デフォルトの名無しさんNGNG
System.Web の後ろに . 入力しても HttpUtility が出てこないんだけど何で?

using System.Web;
を宣言してもHttpUtilityなど知らんといわれる。。。

わかるひとー
0096デフォルトの名無しさんNGNG
GDI+でボタンの描画したものを自分の好きなところに書くことは出来ませんか?
DataGridにボタンカラムを追加したいんですが、画像しか無理みたい(感嘆には)
0097最凶VB厨房NGNG
>95
参照設定
009890NGNG
>91
Thanks . やってみます。
質問はちょっと変わるけど、
ソース上のどんな場所からでも実態を取得できるクラスは
つくれるのでしょうか。
0099デフォルトの名無しさんNGNG
>>98
static
ちょっと調べれば・・っつーかC++使えるんなら調べなくてもわかることだと思うが。
010090NGNG
>99
コンパイルでstaticって出たのでそれはわかったのですが
staticを使いたくなかったのです。
0101デフォルトの名無しさんNGNG
>>100
厨房御用達のSingletonパターンで
0102デフォルトの名無しさんNGNG
>>94
>  Point.Offset メソッド
>  Rectangle.Offset メソッド
>  って本当に使えるの?
>  どんなパラメータを指定しても
>  動かないんだが…
Pointとかは構造体だから単に
Location.Offset(10, 10);
とかやっても駄目。

Point p = Location;
p.Offset(10, 10);
Location = p;

>  そもそもこのパラメータって
>  全画面上の座標?
>  それとも
>  コントロール上の座標?
意味がないぞこの質問。
なんのパラメータとしてのPoint構造体かによるだろ。
0103デフォルトの名無しさんNGNG
>>100
static が嫌なら何を使いたいんだ?
C++やJava系のOOPでstatic以外にシングルトンを実現する方法があるか?
まさかグローバル関数か?だったらC#にはねーぞ。
それとも逐一そのインスタンスをそれを必要とするオブジェクトのコンストラクタに渡すか?これが一番汎用性・柔軟性があるがめちゃくちゃ面倒だぞ。
0104デフォルトの名無しさんNGNG
ASP.NET Web Matrix Project 日本語版
http://www.microsoft.com/japan/msdn/asp.net/webmatrix/

フリーのASP.NET開発ツールの日本語版がダウンロード可能に : IT Pro ニュース
http://itpro.nikkeibp.co.jp/free/NT/NEWS/20040223/1/
0105デフォルトの名無しさんNGNG
何を今さらと思ったら日本語版が出たのか。
0106デフォルトの名無しさんNGNG
Passport Uzeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
0107デフォルトの名無しさんNGNG
>>94
なんかのPoint型のプロパティのoffset使おうとしてるのかな?
プロパティのプロパティは使用できないよ。
0108デフォルトの名無しさんNGNG
StreamReader sr = new StreamReader("A:\\abc.txt",System.Text.Encoding.Default);
こんな感じで、フロッピーを読みにいって、フロッピーが入っていないときのエラーが表に出てこないのですが、
これって仕様??
ちなみにWindowsXPでも2000でも同じ。
[CTRL][ALT][DEL]を押すと再試行etc..とかのメッセージボックスは表示されているのですが・・・。

0109デフォルトの名無しさんNGNG
>>108
try
{
StreamReader sr = new StreamReader("A:\\abc.txt",System.Text.Encoding.Default);
sr.Close();
}
catch(System.Exception exc)
{}

こんなコード書いてみたけど、普通にキャンセル、再試行、中止のダイアログ出たよ。
ちなみにOSはWin2k。

0110デフォルトの名無しさんNGNG
>>109
ありがとうございます。
もう少し検証してみます。
0111デフォルトの名無しさんNGNG
Cで作ったDLLを実行ファイルに埋め込んで
使用するにはどうしたらいいのでしょうか?

DLLのビルドアクションを「リソースに埋め込む」にすれば埋め込まれるのですが、
DLL内関数の呼び出し方法がわからないのです。
0112デフォルトの名無しさんNGNG
Exprolerみたいなファイル管理ツールを作ってるんだけど
自動整列させないアイコンをドラッグandドロップするときに
半透明のアイコンを表示させるにはどうすりゃ良いんでしょうか?
それにドラッグ時にアイコンのどこをドラッグしても
ドロップするとアイコンの左上端の座標がマウスカーソルの先端の座標に
なっちゃうし…


うまくいかないYO!
誰か助けてください。
0113デフォルトの名無しさんNGNG
>111
DllImportAttributeクラスを使えばいいはず。
サンプルもMSDNにのってるからみてみなー。
0114デフォルトの名無しさんNGNG
Microsoft Win32 と Microsoft .NET Framework API との対応
http://www.microsoft.com/japan/msdn/net/general/win32map.asp

日本語版
0115111NGNG
>>113
ありがとうございます。
実行ファイル以外にDLLファイルを用意してdllimportする方法は知っておりました。

実行ファイル内にDLLを埋め込んで、
埋め込んだDLLから関数を呼び出す方法が知りたいのです。
そんな方法があるのかどうかもわからない状態ですが・・・。
0116デフォルトの名無しさんNGNG
http://homepage2.nifty.com/woodensoldier/computer/CSharp.htm#14
は見た?
やってことないんでわからんが、StreamにしてからDllImportとか無理?
0117デフォルトの名無しさんNGNG
確かDLLの埋め込みは不可能なはずだが。
"DL"Lの名に相応しく。
0118デフォルトの名無しさんNGNG
ASP.NET Web Matrix Project 日本語版
http://download.microsoft.com/download/f/2/7/f277001e-1d24-4890-a2fa-f2977b0fa7bb/JPN_WebMatrix.msi

めんどくせーよという方用。
0119デフォルトの名無しさんNGNG
VC++にあったようなDoc-Viewアーキテクチャというか,
データクラス,描画クラス,そして制御クラスを分離するような雛形は,
VS.NETのC#には無いですよね?

自作しようとしたら,デザインパターンとか読んで調べるべきですか?
0120デフォルトの名無しさんNGNG
>>119
C++は言語の表現能力が弱いから(MFCの設計がうんこなせいもあるが)ああやってただけで。
C#ではプロパティとイベントが使えるから、既存のフレームワークに依存する必要が無いんだよ。
自分で勝手にドキュメントクラスを作って、値の変更通知をイベントにして公開。
同じく勝手にビュークラスを作って、ドキュメントクラスのイベントを受け取るようにすればいい。
継承関係にとらわれることもないしクラス間の依存関係も少なくて済む。
0121119NGNG
C#は簡単になったC++という程度の認識しかなかったのですが,
全然知識不足であることを痛感しました.
確かに,VCで自分でイベントを作るのは面倒な手続きが必要でしたが,
そういう面倒が無いので,お仕着せのDoc/Viewが必要ないということですね.

本当にどうも有り難うございました.
0122デフォルトの名無しさんNGNG
>>111の質問に関連するんですが、

HRESULT GetActiveObject(
REFCLSID rclsid,
void FAR* pvReserved,
IUnknown FAR* FAR* ppunk
);
これをC#で書くには、
[DllImport("OLEAUT32.DLL ")]
public static extern ....
この後さっぱりです。
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguide/html/cpconmarshalingclassesstructuresunions.aspを見てもさっぱりわかりません。どなたか教えてもらえないでしょうか?
0123122NGNG
ちなみにクラスIDを渡して、その実行中のオブジェクトのインスタンスを受け取る
という関数です。NETライブラリではプログラムIDからROTからインスタンスを受け取る
という形式なのですが、これが使えないので、仕方なくネイティブを呼び出していますが、
このIUnknown FAR* FAR* ppunk というのがオブジェクトインスタンス(の参照)になるはずで、
REFCLSID rclsidが{DC269E7E-44E1-4902-B505-3AD5C8461B34}とかになるはずです。
0124デフォルトの名無しさんNGNG
>>123
Marshal.GetActiveObject()はGetActiveObjectAPIのただのラッパのようにしか見えないけど?
0125122NGNG
>>124
いえ、Marshal.GetActiveObject()
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemruntimeinteropservicesmarshalclassgetactiveobjecttopic.asp
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/cpref/html/frlrfsystemruntimeinteropservicesmarshalclassgetactiveobjecttopic.asp
(訳がちょっと変)の解説、>>123に書いているように、
プログラム ID (ProgID) を渡すのがMarshalNETのほうで、クラス ID (CLSID) を渡すのが32APIのほうです。
ターゲットとなるCOMはいろいろ調べた結果OLE対応で外からインスタンスにアクセスできるはずですが、
ROTビューワーで見ると、認識していない>ProgramIDを返さないので使えません。
おそらくそのCOMの中でOLE登録作業RegisterActiveObject()をしていないのではないかと推測しています。
0126デフォルトの名無しさんNGNG
ほい

[DllImport("oleaut32.dll", PreserveSig=false)]
private static extern IntPtr GetActiveObject( [MarshalAs(UnmanagedType.LPStruct)] Guid classID, IntPtr reserved );

public static Object GetActiveObject( Guid classID )
{
IntPtr unknown = GetActiveObject( classID, IntPtr.Zero );
Object result = Marshal.GetObjectForIUnknown( unknown );
Marshal.Release( unknown );
return result;
}

とりあえず Excel で試してうごいたっぽい。

つーか Register してないならそもそも Get するのは不可能じゃないのか?
0127122NGNG
>>126 神
あーああ、すごいですね。ありがとうございます。晩飯くらいおごりたい気持ちです。
今コピペしたら、そのままVS.netが関数認識しています。今からCLSID入れて
試してみますが、おそらくまだ壁にぶち当たる事がすぐに発生すると思うので、
またここで質問させてください。あつかましようですが、よろしくお願いします。


0128122NGNG
失敗しました。
An unhandled exception of type 'System.Runtime.InteropServices.COMException' occurred in csn276.exe
Additional information: Operation unavailable
というエラーがでました。

あることをするために2週間ほどずっと挑戦しています。
知識のある方がこのスレを見ておられるようなのでぜひ質問させてください。
少し長くなると思いますが、よろしくお願いします。

あるアプリケーションを自動化したいのです。複数のCOMをコアコンポーネントとするアプリケーションです。
このターゲットアプリケーションが実行されているときに、そのCOMのインスタンスに自前のC#アプリケーションから
アクセスして、そのメソッドを実行したり、イベントを拾ったりしたいのです。
0129122NGNG
EASYROUTERCOMCLIENT.dllというのがその内のひとつのCOM/DLLファイルで、
VS.netにそのCOMを参照に追加してオブジェクトブラウザで見ると、
EASYROUTERCOMCLIENTLibと認識されそのクラスの一覧が見れます。

VS6に付属していたOLE/COMビューワーで見ると、InterfaceのセクションにIEasyRouter、IFIXMessageというように、
<ITypeInfo interface>があります。
さらに、TypeLibビューワーでEASYROUTERCOMCLIENTLib(EasyRouter COM Client Type Libirary)を見ると、
0130122NGNG
library EASYROUTERCOMCLIENTLib
{
// TLib : // TLib : OLE Automation : {00020430-0000-0000-C000-000000000046}
importlib("stdole2.tlb");

// Forward declare all types defined in this typelib
interface IEasyRouter;
interface IFIXMessage;
interface IFIXGroup;
interface IFIXGroups;
dispinterface DEasyRouterEvents;
interface ISECOMHandler;
interface IMnemonicMaker;

[
odl,
uuid(DC269E7E-44E1-4902-B505-3AD5C8461B34),
helpstring("IEasyRouter Interface"),
dual,
oleautomation
]
interface IEasyRouter : IDispatch {
[id(0x00000001), helpstring("Send a FIX message to EasyRouter")]
HRESULT SendMsg(
[in] IFIXMessage* FIXMsg,
[out, retval] VARIANT_BOOL* Queued);
//..............
0131122NGNG
というようになっているので、おそらくこのIタイプのインターフェイスの実行中のインスタンスを取得すれば、そのままクラスのメソッド等にアクセスできて、、
そのすでに実行中のターゲットアプリケーションを操作できると思っているのですが、どうでしょうか?
実際、interface IEasyRouter等に使いたいメソッド等は含まれています。
OLE Automationのライブラリがインポートされているのを見ると、おそらく可能だと推測しているのですが、
同じくVS6のROTビューワーで見ると、そのOLE's running object table に認識されていません。
これがOLEのテーブルの登録をそのCOMがやっていないのではないかと推測した理由です。
0132122NGNG
それで、上で>>126さんに書いていただいたAPI関数を利用して、
//....................
using System.Runtime.InteropServices;
using EASYROUTERCOMCLIENTLib;

//.................

IEasyRouter easy;
Guid easyGuid = new Guid("DC269E7E-44E1-4902-B505-3AD5C8461B34");
easy = (IEasyRouter)GetActiveObject(easyGuid);

とかやってみたのですが、上のエラーがでてしまいました。
このプロジェクトにもEASYROUTERCOMCLIENTLibは参照追加しています。
以上、今自分がわかっているポイントをできるだけ書いてみました。
どうぞよろしくお願いします。


0133デフォルトの名無しさんNGNG
> ターゲットとなるCOMはいろいろ調べた結果OLE対応で外からインスタンスにアクセスできるはず

これはどうやって調べたの?
OLE対応=外から操作できる
とは限らないよ。
RegisterActiveObject してなけりゃ GetActiveObject で取得できないし。
0134122NGNG
>>133
え、そうなんですか?
OLE対応=外から操作できると思い込んでいました。


調べたというのは、>>130で書いたように
// TLib : // TLib : OLE Automation : {00020430-0000-0000-C000-000000000046}
importlib("stdole2.tlb");
というのがあるので、OLEであると思いました。

後、DRCOM Monitorというシェアウェアがあり、それでターゲットアプリケーションを
走らせて見ると、Automaticという項目がTrueになっており、Invokeウィンドウから
そのEASYROUTERCOMCLIENTLibにObject.SendLogout()などスクリプトを書いて送ってやると、
実際、その通りのターゲットアプリの挙動がそのツールのコントロールによって引き起こされた
というのがあります。
しかし、これは、DRCOMが同じプロセスでそのターゲットアプリを走らせていると思うので、
確証はないです。しかし、少なくとも外部のツールによってメソッドを実行できたという手ごたえが
ありました。どうでしょうか?
0135デフォルトの名無しさんNGNG
マネージドダイレクトxってただのダイレクトxと何が違うのでしょうか?
ただ、単に、.NET系からも呼び出せる部分のコード(ラップって言うんでしたっけ?)
が、追加されたダイレクトXと思えば良いのでしょうか?
vb.NETの本があって、自分はc#を使ってるのですが、
根本的に理論は同じはずなので買っちゃおうかなと思いましたが、どうなのでしょうか?
どうせ、違う言語の本を買うならいっそc++様のダイレクトxでも理論は同じだから行けたりするのでしょうか?
ご存知の方お願いしますです。
0136デフォルトの名無しさんNGNG
Managedの方はただのDirectXで必要な、
COM周りの煩雑な初期化が必要なく、
使いたい機能を簡単に使える。
0137デフォルトの名無しさんNGNG
>>134
DRCOM Monitorが同一プロセスでサーバーを起動しているのなら、

> 外部のツールによってメソッドを実行できた

ことにはならんのではないでしょうか。
0138122NGNG
自分が調べた限りでは、RegisterActiveObjectというのは、
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/automat/htm/chap5_2k38.asp
英語になりますが、
The RegisterActiveObject function registers the object to which punk points as the active object for the class denoted by rclsid.
Registration causes the object to be listed in the running object table (ROT) of OLE, a globally accessible lookup table that keeps track of objects that are currently running on the computer.
ということで、ROTにクラスIDの参照をのせるためだけの操作で、上のように、手動でクラスIDを調べて、
GetActiveObject にそのクラスIDを渡してやれば、ROTにそのオブジェクトが載っていなくても動作させると
思ったので、>>122のような質問をしました。
0139デフォルトの名無しさんNGNG
>>136
ありがとうございます。
0140122NGNG
>>137
おっしゃるとおりです。最悪、同じプロセスで走らせる方法を
http://www.codeguru.com/dll/Loader.html
ここで見つけて、成功させています。
しかしOLEというのは外部プロセスからアクセスできるというのが自分の
理解で、とりあえず同プロセスの方法は最悪の場合のため凍結しています。
0141デフォルトの名無しさんNGNG
managed DirectX 問題多いよ。
Texture は内部で参照されてるせいでGCが機能しない=Disposeを明示的に呼ばない限りリソース食いつぶす。
し、音楽関係はほとんど使い物にならなかった記憶あり。

特に Texture の問題は結局参照カウントを自力で数えなきゃならなくなって生で使うより余計にめんどい。
しかも C# ではスマートポインタが使えないし。
0142122NGNG
成功というのは、単に同プロセスに乗ったというだけで、これも
全然クラスにはアクセスできていません。結局これを調べるうちに
OLEオートメーションのドキュメントをMSDNで見つけ、これで普通に外部プロセスから操作できる!
と思って案の上壁にぶち当たっています。
0143デフォルトの名無しさんNGNG
エクスプローラのように、ListViewから TreeViewへファイルをドラッグ&ドロップ
して移動させるる処理を作りたいのですが、TreeViewへファイルをドラッグした際に
マウスポインタの通過する TreeViewのNodeを強調表示させたいのですが、うまくいき
ません。
TreeViewのMouseMoveイベントでできるかと思ったのですが、ドラッグ中はMouseMove
イベントが発生しません。
ドラッグ中にマウスポインタのある TreeViewのNodeを強調表示すにはどのような方法が
あるでしょうか?
0144デフォルトの名無しさんNGNG
>>143
こういうの?

The Code Project - TreeView Rearrange - C# Controls
http://www.codeproject.com/cs/miscctrl/TreeViewReArr.asp
0145デフォルトの名無しさんNGNG
>>143
DragOverイベントで

Point location = PointToClient(new Point(e.X, e.Y));
SelectedNode = GetNodeAt(location);

とか汁。
0146143NGNG
>>144
>>145
ありがとん。
ためしてみます。
0147122NGNG
アプローチを変えてみようと思います。
Marshal.GenerateProgIdForType Methodのようなものを使って、
ProgIDを生成/取得したいのですが、可能でしょうか?
0148122NGNG
ああ、やっぱりROTに無いのでこの方法はだめだったか。
0149デフォルトの名無しさんNGNG
OpenFileDialogにコンボボックスを追加したいので、
リソースを作ったのですが、はめ方がわかりません。
教えてください。
0150デフォルトの名無しさんNGNG
俺には無理です
0151デフォルトの名無しさんNGNG
Graphicsオブジェクトに角の丸い四角をFill(したあと輪郭をDraw)するには
どうするのが一番いいですか?
0152名無しさん♯NGNG
Frequently Asked Questions for System.Web.Mail
http://www.systemwebmail.com/default.aspx

気合の入ったサイトです。
0153デフォルトの名無しさんNGNG
>>151
ひとまわり小さくFill
0154デフォルトの名無しさんNGNG
フリーの.NETコンポーネントの集積場みたいなサイトはないですか?
0155デフォルトの名無しさんNGNG
>>154
windowsforms.com と asp.net
0156デフォルトの名無しさんNGNG
>>151
GraphicsPathクラスとDrawPath,FillPath
0157デフォルトの名無しさんNGNG
ダイアログにテンプレート埋められないなら他の方法でもなにかない?
0158デフォルトの名無しさんNGNG
全てを自作する。
0159デフォルトの名無しさんNGNG
再帰呼び出しが出来ない
鬱だ死のう
016057NGNG
>>159
スレ違い。↓で逝ってこい
スペランカーごっこ
http://pc.2ch.net/test/read.cgi/prog/1063898569/l50
0161デフォルトの名無しさんNGNG
Convert.ToDateTime("2004/2/29");
で例外でちゃうのは仕様でつか?

おしえてエロい人
0162デフォルトの名無しさんNGNG
>>161
今試してみたけど例外は出なかったよ

DateTime dt = Convert.ToDateTime("2004/2/29");
Console.WriteLine(dt); // 2004/02/29 0:00:00
0163デフォルトの名無しさんNGNG
>>161
OSの日付とかいじってるのかな?
それだとカルチャに依存してしまうのでそれを考慮に入れるようにする。
0164デフォルトの名無しさんNGNG
厳密に型指定されたDataTableの列のAutoIncrementプロパティををtrueに設定しました。
このままだとDataTableをClear()してもDBから読み込む度にどんどん
インクリメントによって割り当てられる値が大きくなる一方で困っています。
読み込む度に1から振り直させたいのですがどうすればいいでしょうか?
インクリメントが内部に保持している現在の値をクリアできるような
メソッド、方法等ありませんか?
列を一旦破棄して再構築することは避けたいと思っています。
よろしくお願いします。
0165フサギコ♯NGNG
     ∧,,∧,,,,,, )      (´⌒(´
  ⊂ミ゚Д゚⊂,,,,,,,`つ≡≡(´⌒;;;≡≡≡
ズザーーーーーッ    (´⌒(´⌒;;

コモンダイアログの中でも
あまり使い道のなさそうな
FindダイアログとReplaceダイアログに
相当するコントロールがないのですが、
どのようにすれば実装することができるでしょうか?

メモ帳のクローンを作りたいので
自分でForm作るのではなく
コモンダイアログを活用したいと思いました.

よろしくお願いします。
0166デフォルトの名無しさんNGNG
>>165
VCLのソース読んで移植しとけ
0167デフォルトの名無しさんNGNG
AxWebBrowserのNavigateメソッドでWebページを表示した後、マウスでクリックせずに
すぐにキーボードでスクロールをしたいのですが、FocusメソッドやSelectメソッドでは
思うようにいきません。
どなたかご存じないですか?
0168167NGNG
自己レスです。すみません、解決しました。
PanelにAxWebBrowserを貼り付けて使っていたのですが、
panel1.TabStop = false;
とすることでAxWebBrowserのフォーカスがきくようになりました。
0169167NGNG
何度も申し訳ありません

>>168のはカンチガイだったようで、どうやらFocus()ですぐにキーボードスクロールできる
ページとできないページがあるようです。
あれこれいろいろと試したんですが、駄目でした。
マウスで一度領域内の何もないところをクリックするとスクロールできるようになるのです
が、イベントか何かを起こしてその状態にできないものでしょうか?
0170デフォルトの名無しさんNGNG
印刷関係の質問です。
すみません。ページ設定ダイアログで設定した余白等はどうしたら反映されるのでしょうか?
以下のコードだけではダメなんです。(VS2003)
private void button1_Click(object sender, System.EventArgs e)
{
DialogResult result;
pageSetupDialog1.PageSettings=new System.Drawing.Printing.PageSettings();
result=pageSetupDialog1.ShowDialog();
if(result==DialogResult.OK)
printDocument1.Print();
}

private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
{
e.Graphics.DrawString("VC#NET",new Font("Arial",16),Brushes.Black,e.MarginBounds.Left,e.MarginBounds.Top,new StringFormat());
e.HasMorePages=false;
}
0171デフォルトの名無しさんNGNG
>>170
>  private void button1_Click(object sender, System.EventArgs e)
>  {
>  DialogResult result;
>  pageSetupDialog1.PageSettings=new System.Drawing.Printing.PageSettings();
>  result=pageSetupDialog1.ShowDialog();
>  if(result==DialogResult.OK)
>  printDocument1.Print();
>  }

printDocument1とpageSetupDialog1が思いっきり無関係になってないか?
pageSetupDialog1.Document = printDocument1;
が必要だろ。

//因みにPageSetupDialog.Marginsプロパティにバグがあるらしい。
//ダイアログ表示する前に各パラメータを2.54倍する必要があるとか何とか。
0172デフォルトの名無しさんNGNG
>>171
げ、ホントだ!
最近、疲れてるーーーー。
ありがとうございました。
0173デフォルトの初心者NGNG
C#でWebアプリケーション作り始めたんだけど、別フレームの制御が良く分らん。

たとえば上下分割フレームで、上のフレームで検索条件を入力してボタンを押すと
下のフレームに検索結果が表示されるみたいなの。

RedirectとかTransfer使ってできる?
よくわかりません・・・
0174デフォルトの名無しさんNGNG
C#でCGI作って、POSTメソッドで標準入力からデータを受け取るのに、
System.Console.ReadLine()
とやっています。
ところが、04WebServerだとうまく受け取れません。
C#の場合は、これじゃだめなのでしょうか?
0175デフォルトの名無しさんNGNG
失礼します
めちゃくちゃ初心者なのですが。
Visual Studio .net でC#のプログラム作ったのですが、作成したアイコンが完成されたexeに反映されません。
プログラムを起動した左上の部分には表示されるのですが・・・
http://forums.belution.com/ja/csharp/000/000/31.shtml
0176デフォルトの名無しさんNGNG
>>165
http://www.geocities.jp/nullpo0/FindReplaceDialog.cs.txt
こんな感じかな?
0177175NGNG
http://dobon.net/vb/dotnet/programing/applicationicon.html
解決しました。
0178デフォルトの名無しさんNGNG
Win32APIのGetSystemMetrics(SM_CXEDGE)、GetSystemMetrics(SM_CYEDGE)に相当する
値は、どこから取得できるんだろう?
0179デフォルトの名無しさんNGNG
ListViewにAとBという二つのItemが入っている状態で
Bを選択(反転)させたくないのですがどうすればいいでしょうか?
MouseDownやSelectedIndexChangedのイベントに
Aを選択するコードを書いたのですがBをクリックし、
イベントを抜けた後で強引にBが再度選択されてしまい困っています。
だいぶ悩んで「できないのでは?」と思ったのですが、
まさかそんなことは無いと思い書き込みました。
よろしくお願いします。
0180デフォルトの名無しさんNGNG
>>178
自己レス
System.Windows.Forms.SystemInformationにありました。失礼しました。
0181デフォルトの名無しさんNGNG
>>179
なぜBを選択させないために、Aを選択するコードを書いたのかが知りたい
0182デフォルトの名無しさんNGNG
>>169

参照の追加→.NETタブ→Microsoft.mshtml を追加

using mshtml; を追加

で、htmlページのロード時に

mshtml.HTMLDocument doc;

doc = (mshtml.HTMLDocument)axWebBrowser.Document;
doc.focus();

を追加。
0183デフォルトの名無しさんNGNG
>>182
自己レス

ロード時じゃダメだったので
DocumentCompleteイベントでやってくれ。
0184167NGNG
>>182-183

ありがとうございます!できました。
DocumentCompleteイベントでは最初の1回しかできないようだったので、
NavigateComplete2イベントで処理したら毎回フォーカスが移ってキーボードスクロール
できるようになりました。
0185デフォルトの名無しさんNGNG
Java2にあるWeakHashMapってありませんかねえ
キャッシュのようなものがお手軽に作れそうなんですが
0186179NGNG
>>181
Aが選択されていてBが選択されようとした時に
Bに選択を変更して良いのかどうかのエラーチェックが発動し、
エラーに引っかかった時にAの選択を維持する為です。
0187デフォルトの名無しさんNGNG
richTextBox1とrichTextBox2があるとして、
richTextBox1にある文字列を
richTextBox2の文字列の最後に付け加えるのってどうやればいいんでしょうかね。
単に文字列だけならできたのですが、
フォントカラーとかの情報もそのまま付け加えるのがうまくできないのです。
誰か、やり方ご存じでしょうか?
0188デフォルトの名無しさんNGNG
apacheと連携できる?
0189デフォルトの名無しさんNGNG
最小化したときにタスクトレイに入る
Windowsフォームを作ってます。

ShowinTaskBarをfalseにして

  private void Form1_Resize(object sender, System.EventArgs e)
  {
    if(this.WindowState == FormWindowState.Minimized)
    {
       notifyIcon1.Visible = true;
       this.Visible = false;
    }
  }

  private void notifyIcon1_Click(object sender, System.EventArgs e)
  {
    this.Visible = true;
    this.WindowState = FormWindowState.Normal;
    notifyIcon1.Visible = false;
  }

こんな感じで。
で、最大化でも最小化でもない状態(A)→最大化→最小化(タスクトレイ)
→タスクトレイクリック→最大化のフォーム表示→ウィンドウ右上の元の大きさに戻すボタン押す(B)
と(A)の大きさになって欲しいのにやたらちっこくなります。

デバッガで追ったところ(B)の後にResizeイベントが2回起きて
一回目は(A)のサイズなのに2回目でちっこいサイズに指定されているところまでわかりました。
なんで2回目のResizeイベントが起きるか、どうすれば回避できるか
教えてくださいませ。
0190デフォルトの名無しさんNGNG
>>188
Mono 入れればできる。
0191188NGNG
>>190
マジ感謝
0192デフォルトの名無しさんNGNG
float/Single/32bit/4byteをbyte[]に変換するにはどうしたらいいのかな?
0193デフォルトの名無しさんNGNG
>>192
BinaryWriter 使うか、unsafe コードでポインタ使う。
0194デフォルトの名無しさんNGNG
byte1[] =byte1[]+byte2[]
というように2つのバイトアレイをStringの+のように接続したいのですが、
どうやるんですか?
0195デフォルトの名無しさんNGNG
>>193
BitConverter.GetBytes()を使う。
0196デフォルトの名無しさんNGNG
test
0197デフォルトの名無しさんNGNG
test
0198デフォルトの名無しさんNGNG
private string SockRecv(Socket tmpS)
{
int bytes;
byte[] RecvBuff = new byte[128];
string RecvMsg = null;
Socket pop3 = tmpS;

bytes = pop3.Receive(RecvBuff,RecvBuff.Length,SocketFlags.None);
RecvMsg += Encoding.ASCII.GetString(RecvBuff,0,bytes);

while(bytes > 0)
{
bytes = pop3.Receive(RecvBuff,RecvBuff.Length,SocketFlags.None);
RecvMsg += Encoding.ASCII.GetString(RecvBuff,0,bytes);
}

return RecvMsg;
}


っていうクラスを作ったんだけどwhileで無限ループになって
しまうんだけど原因は何なんでしょうか?
0199デフォルトの名無しさんNGNG
>>198
public static string Accept(Socket soc) {
   int bytes;
   byte[] buffer = new byte[128];
   MemoryStream message = new MemoryStream();
   do {
      bytes = soc.Receive(buffer, buffer.Length, SocketFlags.None);
      message.Write(buffer, 0, bytes);
   } while (bytes > 0);
   return Encoding.ASCII.GetString(message.ToArray());
}

とテスト用メソッドを書いてみたが普通に動くな。
while内にブレークポイントなりConsole.WriteLine(bytes)なりを入れてみたらどうなる?

ちなみに直接buffer(そっちだとRecvBuffか)をGetStringするのは良くない。
一旦MemoryStreamに書き込んでってから。
0200デフォルトの名無しさんNGNG
>199
返信ありがとう。

do
{
Console.WriteLine("test");
bytes = pop3.Receive(RecvBuff,RecvBuff.Length,SocketFlags.None);
Console.WriteLine(bytes);
RecvMsg.Write(RecvBuff,0,bytes);
}
while(bytes > 0);

のように書き直してmailサーバーに接続テストしてみたところ
やっぱりwhileの中のソケットから読み出すところで止まってしまう・・・

ループをさせないとサーバーからの応答がちゃんと取り出せるんだが・・・
0201200NGNG
追記
無限ループというよりはソケットから読み出す部分で停止
してるようなきがする。
0202デフォルトの名無しさんNGNG
>>200
で、実行させたときに標準出力にはどう出力されてるの?
0203200NGNG
test
58
test

と表示されました。
0204デフォルトの名無しさんNGNG
でしばらくすると
0
+OK ArGoSoft Mail Server(ry

(ここでUSERコマンドを送信)
test
この直後に次のような例外が発生する。

'System.Net.Sockets.SocketException' のハンドルされていない例外が system.dll で発生しました。

追加情報 : 確立された接続がホスト コンピュータのソウトウェアによって中止されました。
0205200NGNG
原因がわかりました
ソケットに読み出せるものが無いのに読み出そうとしていた
からのようでした。

do
{
bytes = pop3.Receive(RecvBuff,RecvBuff.Length,SocketFlags.None);
RecvMsg.Write(RecvBuff,0,bytes);
if(pop3.Available == 0) break;//この一行を足したら解決しました。
}
while(bytes > 0);
0206デフォルトの名無しさんNGNG
SDKでアセンブリ作ってるのですが、バージョン情報を入れようとして
AssemblyInfo.csに情報を書いても反映してくれません…

csc /t:library hoge.cs

でコンパイルしてます。ファイルは同じフォルダに入れてます。
OSはWin2000です。
0207デフォルトの名無しさんNGNG
>>206
csc /t:library hoge.cs AssemblyInfo.cs
0208デフォルトの名無しさんNGNG
C#の優良解説orサンプル配布サイトを教えてクレイ
0209デフォルトの名無しさんNGNG
>>208
.NET Framework SDK
0210デフォルトの名無しさんNGNG
初心者向けでおながいします。
たとえばこの中から選ぶとしたいかがでしょうか。
http://search.yahoo.co.jp/bin/search?p=C%23
0211デフォルトの名無しさんNGNG
>>210
たった12個だけなんだから全部見ろ
0212デフォルトの名無しさんNGNG
>>207
ありがとう!
0213デフォルトの名無しさんNGNG
すいません、質問です。
たとえば、2004-01-01 10:10 といった感じの日時から、
20分戻した日時を取得するには、どうすればいいでしょうか?
自力で計算しないと駄目ですか?

よろしくおねがいします・・。
0214デフォルトの名無しさんNGNG
>>213
DataTime
TimeSpan
0215デフォルトの名無しさんNGNG
皆さん、C#のプログラム書くときエディタにソースを書いていきます?
それとも、Borlandのやつみたいに、部品を貼り付けていきます?
どっちがいいんですかね?
0216デフォルトの名無しさんNGNG
>>215
部品を貼り付けたときに自動的に書かれるコードを
手書きするメリットを考えてみれば分かる。
0217デフォルトの名無しさんNGNG
static const char* table[] = {"yamada","sato","tanaka"};

C++で読み出し専用のテーブルを使うときは↑こういう感じにしてました。

string[] table = new string[] {"yamada","sato","tabaka"};

C#だと↑こう書いてますが、これだとそのつどnewが実行されてしまいます。
メンバ関数の外に出して、メンバ変数にすればstaticをつけられますが、
ローカルでしか使わない配列をメンバ関数の外に出すのは抵抗があります。
どう書けばよいでしょうか?
0218デフォルトの名無しさんNGNG
>>217
フィールド(メンバ変数)にして、コンストラクタの中で宣言するのが良いと思うけど
どういう状況でその手のテーブルを特定の関数のみで使うのか想像つかない。
参考までに教えてくれい
0219デフォルトの名無しさんNGNG
> 抵抗があります。

抵抗しているのはオマエだけだと思う。
0220デフォルトの名無しさんNGNG
>>216
そっすか。何かペタペタ貼り付けるのって素人っぽいと思ったんですが、
皆さんそのやり方なんですね。
安心しました。
0221デフォルトの名無しさんNGNG
やっぱテマヒマかけたほうが玄人っぽいよな。
仕事ではやらんけど。
0222デフォルトの名無しさんNGNG
今までC++でConsoleアプリしかつくったこと無いけど、
Winアプリもつくろうと思って、手書きより楽だろうし
折角だからVC#買ってきた。

フォームにペタペタやるのってなんか不思議な感じだ。初体験だよマターク
デザインとコードの分離を進めたいけど、やりにくいな。慣れの問題だろうけど。
〜略〜 myTextBox = hogehogeDefault; みたいにして初期化したいけど
これやると プロパティから Textのところ弄れなく成っちゃうんだよな・・・
0223デフォルトの名無しさんNGNG
>>222
禿同
Observerパターンを自分でやるには面倒
やっぱりVC++6 & Doc/Viewこれ最強
ま ち が い な い !
0224デフォルトの名無しさんNGNG

Visual Studio.NET ってC#で作られてるのかな?
VC++6と比べると、かなーり重いんだが。

0225デフォルトの名無しさんNGNG
http://black.sakura.ne.jp/~third/programming/cs/cs.html

http://homepage3.nifty.com/midori_no_bike/index.html

http://ukamen.hp.infoseek.co.jp/Programming1/

http://www.microsoft.com/japan/msdn/vs/client/vbtchessentialcodeforwindowsformsdialogboxes.asp
0226デフォルトの名無しさんNGNG
C#でhtmlをparseしたいです。
なんかいいparserかsampleないでしょうか?

具体的には、
ttp://quote.yahoo.co.jp/q?s=yahoo&d=t&k=c3&h=on&z=m
上記のようなページのテーブル部分の数字だけ抜き取りたいです。

ご指導お願いいたします。
0227デフォルトの名無しさんNGNG
>>221
手間暇かけるなら重要な所にね。
自動化できる部分に手間暇かけてもしょうがないから。
0228デフォルトの名無しさんNGNG
>>226
.NET Frameworkについてる。
0229デフォルトの名無しさんNGNG
TreeViewで、KeyDownイベントをハンドリングしてキー毎に機能を付けているのですが、
キーを押すと警告音が鳴ってしまいます。
警告音が鳴ってもKeyDownイベント発生〜処理はできていますが…。
それでも気になるので、KeyDownイベントで拾っているキーが押されたときは警告音を
鳴らさないようにする方法はないでしょうか?
0230デフォルトの名無しさんNGNG
e.Handled とかなかったっけ?
0231229NGNG
>>230
KeyDownイベント処理中にe.Handledをtrueやfalseにして試してみましたが
やはり警告音が鳴ってしまうようです。
ファンクションキーは押しても鳴らないんですが、Enterキーや文字キーは鳴ります。
e.Handledの使い方が間違っているんでしょうか…。
0232デフォルトの名無しさんNGNG
>>231
KeyPressならHandledプロパティでビープ音を抑制できるらしい。
……でもKeyPressって使いにくいんだよな。
0233デフォルトの名無しさんNGNG
>215
昔Javaのソースを見て、
Delphiならポトペタで終わる部分を一々手書きしてるので
嫌になったことがあるよ。
C#はJavaとDelphiのいいとこ取りさw

0234229NGNG
>>232
KeyPress内でe.Handledをtrueにして(するだけ)、実際のキーイベント処理はKeyDown内でのままだと
特に手間もなく、警告音を鳴らなくすることができました。
これだと全キーで警告音が鳴らなくなるので、KeyPress内で入力キー判別して…とやってたら
結局KeyDownじゃなくてKeyPressで全処理すればいいかなということに気づいた次第(´・ω・`)

なんにしても助かりました。ありがとうです。
0235デフォルトの名無しさんNGNG
ボタンを動的に生成するにはどうしたらいいですか。
「マインスイーパ」みたいに大量のボタンを生成する時に
いちいちコピペを繰り返すわけにもいかないし、
ボタンをクリックした時の動作も大量に書くのも無理ですし
0236デフォルトの名無しさんNGNG
>>235
デザイナで作らずにコードで書けばいいじゃんか
0237デフォルトの名無しさんNGNG
System.Drawing.Bitmap bitmap1 = new System.Drawing.Bitmap(<元ファイル名.jpg>);
bitmap1.Save(<新ファイル名.jpg>, System.Drawing.Imaging.ImageFormat.Jpeg);

とすると、<新ファイル名.jpg>は<元ファイル名.jpg>と
はっきり目で分かるくらい違いが出てしまいます。
JPEGだと品質によって変わるからかと思って、BMPにしても(上のjpgとJpegはBmpに)
目では分からない程度ですがバイナリに違いが出てしまいます。
(途中でbitmap1に書き込みをしたいので単なるコピーではなく)
元のファイルと同じ品質で新しいファイルを作るにはどうすればいいでしょうか?
0238デフォルトの名無しさんNGNG
同一のJPEGファイルをPhotoshopでBitmapに書き出したのと
MS Paint で書き出したのとで各ピクセルを比較すると微妙に色が違ってる
JPEGのデコーダによって違いがあるからではないか?
0239デフォルトの名無しさんNGNG
ちなみにjpegの保存時の品質指定は
ttp://dobon.net/vb/dotnet/graphics/encoderparameters.html
を参考に。
0240デフォルトの名無しさんNGNG
>>238-239
ありがとうです。
その方法で品質高めにすればいいかなと試してみたけど色合いが変わってしまいます。
それを調整するとしてもASP.NETなのでブラウザ、OSで違いが出そうなので
適当に妥協することにします。
0241デフォルトの名無しさんNGNG
>>240
追記
色合いが変わってしまうのは違うフォーマットでした。
JPEGで元画像と同じくらいのサイズになる品質85程度だと違いが分からない。
0242デフォルトの名無しさんNGNG
>233
JBuilderとか使ったことないんか?
まぁいいけどね。Javaスレじゃないんだし。
0243デフォルトの名無しさんNGNG
文字コードEUC-JPのMySQLからODBCでデータをSELECTし、
odbcDataAdapter1.Fill(dataSet11.meibo);
のようにしてデータグリッドに表示させようと思うのですが、
どうやって文字コードを変換すればよいのでしょうか??
0244デフォルトの名無しさんNGNG
> 文字コードEUC-JPのMySQL

この時点でもうダメポと思われ
0245デフォルトの名無しさんNGNG
なぜですか?
0246デフォルトの名無しさんNGNG
EUC-JPがこわいのでしょう ;-)
0247デフォルトの名無しさんNGNG
MySQLってUNICODE対応してないんだっけ
0248名無しさん♯NGNG
ttp://blogs.msdn.com/csharpfaq

C# Teamのweblogです。期待しましょ。
0249デフォルトの名無しさんNGNG
ネームスペース内共通の定数ってどこに記述するのが良いんですかね?
普通にstaticでクラスに定義しておけば良いんですかね?
皆さんはどうされてますか?
0250デフォルトの名無しさんNGNG
>>249
その方法でなにか問題でも?
0251デフォルトの名無しさんNGNG
>>250
ださい
0252デフォルトの名無しさんNGNG
ださくてなにか問題でも?
0253デフォルトの名無しさんNGNG
>>249
整数であればenumを使うこともある。
モジュール内でどの程度広い役割を持っているかにもよるだろうけど
0254デフォルトの名無しさんNGNG
>>252
そりゃー、コードはエレガントじゃないとさ
それでメシ食ってるならなおさら
0255デフォルトの名無しさんNGNG
>>254
つーか別にださくないような?
ネームスペース内に限定可能な分、defineよりエレガントじゃないか。
0256デフォルトの名無しさんNGNG
正規表現を使わない検索できませんか?
オプションでIgnoreCaseとRightToLeft が使えると尚いいです。
0257デフォルトの名無しさんNGNG
コードにエレガントさなんて不要と思いますが・・・
いかに早く動作するかが問題でしょ
0258デフォルトの名無しさんNGNG
>>257
機械語でな。
0259デフォルトの名無しさんNGNG
全部MSILでプログラミング?



……お客さん、チャレンジャーですね。
0260デフォルトの名無しさんNGNG
もういい加減ポトペタでコード書くの止めてくれませんか?
0261WhidbeyネタNGNG
>>260
> もういい加減ポトペタでコード書くの止めてくれませんか?
コードスニペットとかインテリタスクとかは邪道ですか、そうですか。
0262デフォルトの名無しさんNGNG
ポトペタってなに?
0263デフォルトの名無しさんNGNG
private string SockRecv(Socket tmpS)
{
int bytes;
byte[] RecvBuff = new byte[256];
MemoryStream RecvMsg = new MemoryStream();
Socket pop3 = tmpS;

do
{
bytes = pop3.Receive(RecvBuff,RecvBuff.Length,SocketFlags.None);
RecvMsg.Write(RecvBuff,0,bytes);
}
while(pop3.Available != 0);

return Encoding.ASCII.GetString(RecvMsg.ToArray());
}
をつかって
0264デフォルトの名無しさんNGNG
//RETRコマンドの送信
for(int count = 1; count <= mailCount; count++)
{
SendComd = "RETR " + count + "\r\n";
Console.WriteLine(SendComd);
SendBuff = Encoding.ASCII.GetBytes(SendComd);
pop3.Send(SendBuff,SendBuff.Length,SocketFlags.None);
RecvComd = SockRecv(pop3);
Console.WriteLine(RecvComd);
}

//QUITコマンドの送信
SendComd = "QUIT\r\n";
SendBuff = Encoding.ASCII.GetBytes(SendComd);
pop3.Send(SendBuff,SendBuff.Length,SocketFlags.None);
RecvComd = SockRecv(pop3);
Console.WriteLine(RecvComd);

pop3.Shutdown(SocketShutdown.Both);
pop3.Close();

の操作をするとRETRコマンドの途中で止まって
QUITコマンドまで逝けないのはなぜなんでしょう?
原因が全くわかりません・・・・
0265デフォルトの名無しさんNGNG
>>264
まずはブレークポイントなりで具体的にどこで止まってるのかを確認しないと。
0266デフォルトの名無しさんNGNG
>>249
メインになる部分で、値を設定して、別クラスにはプロパティでくれてやってる。
0267デフォルトの名無しさんNGNG
for(int count = 1; count <= mailCount; count++)
{
SendComd = "RETR " + count + "\r\n";
Console.WriteLine(SendComd);
SendBuff = Encoding.ASCII.GetBytes(SendComd);
pop3.Send(SendBuff,SendBuff.Length,SocketFlags.None);
RecvComd = SockRecv(pop3);
Console.WriteLine(RecvComd); <-ここにブレイクポイント
}

して実行したところ

RETR 1

+OK 406 octets

RETR 2

(メール2通分の内容)

が表示されてここでプログラムが
終わってまいQUITコマンドまで逝けなかった。
0268デフォルトの名無しさんNGNG
また気になったこととして
ブレイクポイントを置かないで実行すると
RETR 1

+OK 406 octets

RETR 2

(メール1通分の内容)

となって挙動が変るのですがなんでだろう・・・
0269デフォルトの名無しさんNGNG
ステップインで一行ずつな?
何が表示されたかじゃなくてコードのどこで止まってるのかが重要なんだぞと。
それともなにか、いきなり終了するのか?
0270デフォルトの名無しさんNGNG
ステップインで一行ずつ実行した場合は全ての結果が表示
されるんだけどブレイクポイントを置かないで実行すると
一回目のwhileループが終わった後のConsole.WriteLine(RecvComd);
の結果までしか表示されない・・・
というか挙動が違うような気がする・・・
0271デフォルトの名無しさんNGNG
もっと前の所にブレークポイント置いてみる。
0272デフォルトの名無しさんNGNG
>>262
D&D
0273デフォルトの名無しさんNGNG
C#を触り初めたばかりなんですが、
C# = (VB + JAVA + Delphi + C++) / 4 + α
という認識でよろしいですか?
0274デフォルトの名無しさんNGNG
>>262
部品をフォームに「ポト」っと落とすと「ペタ」っと貼りつく開発環境。
0275デフォルトの名無しさんNGNG
>>273
混合比率が1:1:1:1じゃない気もするけどおおむねその通り。
0276デフォルトの名無しさんNGNG
でもMSの後押しが弱いような気がする
0277273NGNG
>>275
確かにその通りで、最初は重み付き平均で表そうと思ったのですが
面倒臭くなったのでやめました。

>>276
MSの後押しは弱いのでしょうか?MSはLonghornを筆頭とする次期
Windowsの開発言語のStandardとすることを目標としているように
私は感じます。Win32APIに至ってはエミュレータ上で動作するように
なり、VirtualPC状態になると聞いたので、腹をくくってC#を始めたん
ですけどね…
0278デフォルトの名無しさんNGNG
勉強始めて1週間です。
デリゲートが理解できません。
ダメですか?
0279デフォルトの名無しさんNGNG
>>278
今までに他のプログラミング言語を使った経験は?
それが結構あってデリゲートが分からないならダメです。
0280デフォルトの名無しさんNGNG
Perl,PHP,ActionScriptです。
0281デフォルトの名無しさんNGNG
>>280
それがダメ。
0282デフォルトの名無しさんNGNG
じゃあどうしろと?
0283デフォルトの名無しさんNGNG
Lisp でもやりなさい
0284デフォルトの名無しさんNGNG
やだ
0285デフォルトの名無しさんNGNG
>>278
必要になるまで放っておけばいいよ。
0286デフォルトの名無しさんNGNG
いつ必要になりますか?
0287285NGNG
>>286
とりあえずは、自作クラスにイベントを用意したくなったら必要になるね。
まずは、フレームワークのまねで実装することから始めて、徐々に理解していけば
十分だと思うけど。
理解しなくても使うことはできるから。
0288デフォルトの名無しさんNGNG
多分、当分必要にならないと思うよ。

それはそれとして、自分も質問があるっす。

キーボードイベントの
キーコードとキーデータって何が違うんですかね?
どっちも、同じENUMのKeys値が返ってくるだけなんですけど。
まあ、別に困ることは無いので良いのですが。
0289デフォルトの名無しさんNGNG
どうやら、同じ1byteの右半分と左半分の違いのようなんですが、
シフトキーやコントロールキーなどの特殊なキーの判別に
ビット演算をつかって判別するのに利用するみたいですが、
別にそんなことしなくても、
普通にシフトキーとかはkeys値自体で分かるのですが、、、。
0290デフォルトの名無しさんNGNG
あ、分かったから良いです。
どうやら、同時押しの時に、
他の文字と一緒に押されたかの判別に使うということが分かりました。
0291デフォルトの名無しさんNGNG
自分のプログラムの自作ルーチンで
アップ、ダウンイベントで処理するところを、
事前に判断して処理してフラグを立ててくれてるってことのようですね。
0292デフォルトの名無しさんNGNG
Windows画像とfaxビューワーに独自形式の画像を
表示させる事は可能でしょうか?
出来ればこれをC#でやりたいと思っています。
資料を探してみたのですが、見つけることが出来ませんでした・・・
どなたかアドバイスをお願いいたします。
0293デフォルトの名無しさんNGNG
>>292
独自形式からテンポラリにbmpかjpgで保存して、それを開くってのじゃダメ?
0294292NGNG
独自形式というのがデジカメの生ファイルなのです。
それをプログラム的にbmpやjpeg形式に変換することは
当然可能なのですが、できればそのままの形でJpeg等と
同等の扱いで鑑賞したいのです。
0295デフォルトの名無しさんNGNG
IMEの変換機能とかってC#から利用できるんでしょうか?
できるなら郵便番号変換に使いたい・・・
0296デフォルトの名無しさんNGNG
どう言う場面でどう使うのさ。
textboxをつかえば全然普通に日本語入力は受け付けてくれるよ。
0297デフォルトの名無しさんNGNG
答え:
APIを使う。
0298デフォルトの名無しさんNGNG
TabPageが切り替わったときに処理する方法教えてください。
今から本買いにいってきますけど。
帰ってきたら書いてあったらいいなぁ。
よろしくお願いします。
0299デフォルトの名無しさんNGNG
>>296
TextBox1に七桁の数字を打ったら、
TextBox2に住所が入るっていう具合にしたいんです。
0300デフォルトの名無しさんNGNG
>292
いまどきjpeg以外の独自形式で保存するデジカメなんてあるの?
とりあえず独自形式が何なのかハッキリさせないとアドバイスも
貰えないのではないかと。
0301デフォルトの名無しさんNGNG
>>299
Win32 API
Webサービス
データ落としてきてDBにしてそこから取得
0302デフォルトの名無しさんNGNG
http://www.postan.jp/postanws.htm

インターネットに接続しているならWebサービスを利用するって
方法もあります。有料のようですが...
0303デフォルトの名無しさんNGNG
あんまりいい方法じゃないけど、
インターネットで郵政公社の検索を使うとか
http://ukamen.hp.infoseek.co.jp/Programming1/ZipCode/
XMLでやってくれれば弁理なんだg
0304デフォルトの名無しさんNGNG
>>299
自前で郵便番号→住所なデータを用意して
TextBox1からフォーカスが外れたら、TextBox2に書き込むってのが簡単そうだが。

郵便番号→住所のデータはそこいらに転がってるだろうから、
それからソースに取り込むなり、テキストにして起動時に読み込むなりすればいいし。
0305デフォルトの名無しさんNGNG
>> 300
いわゆるRAWというやつなのですが、Jpegのような圧縮形式では
なくて、CCD情報をそのまま持っている形式です。
最近のカメラはかなり出力対応しているのですが、カメラ毎にフォー
マットが違います。

別な方法としては、Windows画像とFaxビューワーをSUSIEプラグイン
対応にするといったことをしたいのです。

0306デフォルトの名無しさんNGNG
DataGridコントロールの質問なのですが、列ごとに背景色の設定をしたい場合、どのようにすればよいのでしょう?
すみません。お願いします。
0307デフォルトの名無しさんNGNG
>>306
オーナドロー
0308デフォルトの名無しさんNGNG
>>307
ありがとうございます。
DataGridColumnStyle.Paintメソッドをオーバーライドして、
列ごとに背景色を変えました。
ご回答の内容と合ってます??
0309デフォルトの名無しさんNGNG
ListViewがさくっとオーナードローできないなんて……_| ̄|○
0310デフォルトの名無しさんNGNG
オーナードローって何?
さらにレベル下げてすまん。
0311デフォルトの名無しさんNGNG
オーナーがねドローすんの
0312デフォルトの名無しさんNGNG
>>309
Longhornでは可能ぽい
ttp://longhorn.msdn.microsoft.com/lhsdk/ref/ns/system.windows.forms/c/listview/e/drawitem.aspx

>>310
ユーザー独自描画みたいなもんだ。
デフォルトで描画されるコントロールとは違った外観をつくったりできる。
0313デフォルトの名無しさんNGNG
>>312
>デフォルトで描画されるコントロールとは違った外観をつくったりできる。

しかしながらその統一感のないインターフェイスに、PCビギナーは
戸惑ってソフトそのものを使えなくなったりする罠。
0314デフォルトの名無しさんNGNG
GetDeviceCaps(.hdc, PHYSICALOFFSETX)
みたいなことは、まだAPI使わないといけないんでしょうか?

「PrintPageEventArgs」あたりを中心に代替仕様を探していますが、
見つかりません。
これだけいろいろ揃ってるのにこれがないとは思えないんですが...
0315デフォルトの名無しさんNGNG
Xamlon - XAML Application Development for Today s .NET Platforms
http://www.xamlon.com/

Using Windows Forms Markup (WFML)
http://windowsforms.net/articles/wfml.aspx

MyXAML
http://www.myxaml.com/

もどき3つ
0316デフォルトの名無しさんNGNG
既存のコントロール(TextBoxとか)から派生させたクラスのdllを作成して、
VSのツールボックスに追加しようとしたら、
「○○.dllにはツールボックスに含めるコンポーネントは何もありません」
って怒られちゃった。

やっぱり、デザイナで使おうとすると何か特別な作り方してないと駄目なのかな。
既存のコントロール継承しているから、そこらへんもオッケーかなと甘いこと考えてたんだけど。
0317デフォルトの名無しさんNGNG
>>316
オッケーのはずだが
0318デフォルトの名無しさんNGNG
C#2003Standardを使ってるのですが、
キーワード検索してヘルプファイルを読もうとすると
毎回CDを挿入しろとかなんとかいうダイアログが出てきてしまいます。
これはセットアップし忘れた部分があるということでしょうか?
全てインストールした筈なんですけどね・・・
0319デフォルトの名無しさんNGNG
>>318
MSDNライブラリをセットアップしてないだけだろ
0320デフォルトの名無しさんNGNG
>>318
Officeでもある有名な問題
0321デフォルトの名無しさんNGNG
>>313
結局、余計なことしないでデフォ外観で作ったほうが早いし、
使う側にも戸惑いがないんだよね。('A`)

もしくはぜーんぶ独自描画で統一するか。
0322デフォルトの名無しさんNGNG
MDI 親フォームから、子フォームの公開されているメソッドを
スレッドで実行したいと思い、

m_Thread = new Thread(new ThreadStart(childForm.threadMethod()));
m_Thread.Start() ;

のように、親フォームに記述したのですが、

スレッド '<名前がありません>' (0xa00) はコード 0 (0x0) で終了しました。

のようにスレッドを開始できません。親フォームで子フォームに
書かれたメソッドをスレッドで実行させる事はできないのでしょうか?

もし可能であるなら方法をアドバイスして頂けるとうれしいです。
0323デフォルトの名無しさんNGNG
>>320 直し方を何卒
0324デフォルトの名無しさんNGNG
WebProg板とマルチポストです、すみません。

現在、ASP.NETからC#で書かれたコンソールアプリケーションを呼び出し、かつ二重起動を防止する、というアプリケーションを書いていますが、うまく動きません。呼び出すほうは
Process myProcess = new Process();
myProcess.StartInfo.FileName = "c:\exe\moner.exe";
myProcess.Start();
とやってうまく動いているのですが、これが動作しているかを判定することが出来ないのです。
(1)Process.GetProcessesByNameを使う
(2)Mutexを使う
の二通りを試しているのですが、(1)はどうやらAdminでないと動きません。かつ、Adminでも"moner"/"moner.exe"でプロセス名を検索できないようです。
(2)もやはりadmin権限が必要ですが、とりあえずは動いています。

不思議なのは、(2)で、上記のコードでASP.NETから起動したときだけ動かない、ということです。
起動コードを除いたASPXではちゃんとMutexを操作できますし、コンソールから起動したmoner.exeもやはりちゃんと動作します。
動かないのはASPXから上記のコードで呼び出したときだけなのです。

adminでなら動くということで、まず間違いなく権限/セキュリティの問題だとは思いますが、どこをいじればいいのかわかりません。
ユーザー偽装を最後の手段として、もしなにかご存知のことがありましたらアドバイスをいただければ幸いです。よろしくお願いいたします。
0325デフォルトの名無しさんNGNG
>>323
なにそつキタ━━━━━━(゚∀゚)━━━━━━ !!
0326324NGNG
>>324
っと、追伸です。
(2)が「動かない」ってのは、ASP.NETを動かしてる「ASPNET」ユーザがUserグループの権限しか持っていない場合です。
上にも書いたとおり、Adminグループ権限を与えればこちらの意図したとおりに動いています
0327324NGNG
>>324
追伸その2.

……ユーザー偽装も×でした(T_T)
0328デフォルトの名無しさんNGNG
>>324
ミューテックス生成/操作時にどんな例外がでてるのか調べるのが先決だと思う。
0329324NGNG
>>328
Just-In-Timeデバッガが動かないのでわかりません(T_T)

ということで多少事態が整理できました。Mutexのせい「だけ」ではなさそうです。WebProg板にも書きましたがちょっと整理します。

(1)Process.Startで起動は出来てます。
(2)中身も動いてます。引数のチェックや起動メッセージ表示(どこにも表示されないけど(^^;))は動いてます。
(3)DB接続もしくはMutexの生成で異常終了します。
(4)どーして落ちてるか、Just-In-Timeデバッガが動かないのでわかりません(T_T)

というところまでは整理できました。Admin権限で動く以上、セキュリティの問題だということはわかっているのですが……(T_T)
0330デフォルトの名無しさんNGNG
>>321
でも、標準コントロールって、ダサいんだよね。
当然出来るだろってことができないし・・・・。あ、俺もだ。。
0331デフォルトの名無しさんNGNG
Crypto Service Provider(CSP) がuser権限だと動かないんだよね・・・。
この前それではまった。
0332デフォルトの名無しさんNGNG
>>280
ワロタ
ネタ?
0333デフォルトの名無しさんNGNG
>>331user権限だと動かないんだよね
権限の問題ではないと思われ
0334名無しさん♯NGNG
面白かったのでリンク。

Performance Quiz
ttp://blogs.msdn.com/ricom/archive/2004/03/12/88715.aspx
0335デフォルトの名無しさんNGNG
>>329
デバッガがアタッチできなくても、catchしてログに書き込んでみればいいじゃん。
0336324NGNG
>>335
そのとおりです。ということで、とりあえず動くようにはなりました。

http://pc2.2ch.net/test/read.cgi/php/1040698263/554

を見ていただければ幸いです。……もっとも、まだ根本解決はしていませんが(T_T)
0337デフォルトの名無しさんNGNG
>>336
ログ取ったんなら例外の詳細くらい書けばいいのに。

俺はWS2003使ってるから同一かどうか自信がないが、
ローカルセキュリティポリシーに「グローバルオブジェクトの作成」って項目がある。
ここにASPNETを加えてやれば、動く"かも"しれない。あんまり自信はないけどな。
0338デフォルトの名無しさんNGNG
C#Builderを入手しC#の学習を始めて2週間です。ヘルプを読むとCopyメソッドでDataTableのコピーが出来ると
書いてあるのですが、期待通りの結果になりません。具体的には下記のようなプログラムです。

WinFormにdataTable1(TableNameはTable1、列数は5列)とdataTable2(TableNameはTable2、列数は5列)
を持つdataSet1を配置し、さらにdataGrid1,dataGrid2を配置して、DataSourceプロパティをdataSet1とし、
DataMemberプロパティをdataGrid1はTable1、dataGrid2はTable2に設定します。

その後、このようなコードを書きました。

  private void WinForm_Load(object sender, System.EventArgs e)
  {
    WinForm1 f1 = new WinForm1();

    DataRow workRow;
    workRow = dataTable1.NewRow();

    for (int i=0;i<=4;i++)
    {
        workRow[i]="TEST" + i.ToString();
    }
    dataTable1.Rows.Add(workRow);

    dataTable2 = this.dataTable1.Copy();
  }

実行すると、dataGrid1には"TEST0","TEST1","TEST2","TEST3","TEST4"と表示されるのですが、
dataGrid2には何も表示されません。

dataTable2にdataTable1の内容を丸ごとコピーしたいのですが、Copyメソッドでコピー出来てないみたいなのです。
どうすればdataTable2にdataTable1の内容をコピー出来るのでしょうか?
0339デフォルトの名無しさんNGNG
>>338
配列の次元が同じなら
dataTabel2 = dataTabel1;
でいけるはずだけど
0340デフォルトの名無しさんNGNG
>>339
アドバイスどうもありがとう御座います。実は挙動をもっと詳しく知るために、
ステップ実行で色々と監視していたら、重大な事に気付きました。

dataTable2 =dataTable1.Copy();

を実行すると、dataTable2.TableNameが"Table1"になりますね。だもんで、
dataGrid2.DataMemberをTable2に設定していても表示される筈がない訳で…

よく考えれば"コピー"だからTableNameもコピーされるんですが、気付いてません
でした。すみません。

ただ、不思議なことにデザイン時にdataGrid2.DataSourceをdataTable2に設定
しても表示されないのです。コード上で

    dataGrid2.SetDataBinding(dataTable2,"");

とすれば、表示されたのですが、なぜデザイン時にプロパティに設定しているにも
拘わらず、dataGrid2には表示されないのでしょう? dataGrid1は、SetDataBinding
しなくても表示しているだけに不思議でなりません。

どうしてなのでしょう?
0341324NGNG
>>337
……それも×でした(T_T) ちなみに例外の詳細はhttp://pc2.2ch.net/test/read.cgi/php/1040698263/553にあります。
が、またひとつ進展がありました。C#スレの方で何かご存知の方がいらっしゃればお答えいただければ幸いです。
以下、ダブルポストで申し訳ありませんが、同じ内容を書きます。

----------

558 名前:520 投稿日:04/03/15 14:45 ID:oIwZDs+7 oIwZDs+7
557
また少し状況が見えてきました。監査を実行しようとして、*.batを*.exeに書き換えたところ、今度は動いてしまったのです。
調べてみると、実行ディレクトリの指定で動く模様です。

……ということはもしかして、Process.Satrtで起動される(そして実行ディレクトリを指定しなかった)場合、*.aspxのありかとも*.exeのありかともまったく何の縁もゆかりもない場所で実行され、そのために権限エラーで落ちていた、ということなのでしょうか?
検証しようと思ってApplicationクラスで実行パスを表示させようとしたのですが、このクラス、System.Windowsに属しています(T_T)
コンソールアプリケーションで実行パスを調べる方法はないでしょうか?

----------

以上、よろしくお願いいたします。
0342デフォルトの名無しさんNGNG
http://www.geocities.co.jp/WallStreet-Stock/4371/liusuan/
0343デフォルトの名無しさんNGNG
>>341
System.AppDomain.Current.BaseDirectory。
\WINDOWS\Microsoft.NET\Framework\v1.1.4322 になってる悪寒。
0344デフォルトの名無しさんNGNG
C#はじめたいんだけど何のソフトがおすすめ?
0345デフォルトの名無しさんNGNG
>>344
開発に必要なソフトのことを言っているのか
どのようなソフトを作るのがいいのかが分からんな
0346デフォルトの名無しさんNGNG
>>344
.NET Framework SDK
0347デフォルトの名無しさんNGNG
質問です。
ArrayListを使うときに、その中に入っているobjectの型を保障したいのですが、
上手いやり方ありませんでしょうか?

カスタム属性を使うというのも考えたのですが、それ以外のやり方があれば教えてください。
0348デフォルトの名無しさんNGNG
>>347
ArrayListの派生を作るだけでは?
0349347NGNG
…ごめんなさい。
全然考えが及びませんでした。
thx a lot.
0350デフォルトの名無しさんNGNG
C#の話題から外れるっぽいけど、
SQL Serverに接続するためのパスワードなんかは、コード中に書いとくと、
分かる人が中間言語を覗いたら丸見えになっちゃいますよね?

それを防ぎたいときの常套手段ってどんなのなんでしょうか?

パスワード書いたテキストを暗号化したものをリソースとして含ませておいて、
実行時にそれを復号化して使うとかでしょうかね?
0351デフォルトの名無しさんNGNG
パスワードのハッシュを埋め込むとか
0352デフォルトの名無しさんNGNG
>>350
ユーザに入力させる…じゃダメなんだろな
気休め程度だが適当に暗号化した上でレジストリに置いとくとか?
0353350NGNG
レス、さんくすです。

>>351
うーん・・・この場合、ハッシュでは解決しないような・・・

>>352
>ユーザに入力させる…じゃダメなんだろな

はいw
「マンドクセー」の一言で拒絶されるシーンが目に浮かぶ・・・
もう、マンドクセー>>>>>セキュリティ意識、の世界なので・・・
パス書いた紙をディスプレイに張り紙されたら目も当てられないしw

ふーむ、レジストリという手もあるか。
0354デフォルトの名無しさんNGNG
>>353
パスワードを記憶するオプションを付ける。

使う使わないはユーザーの自由。
但しそれを使った場合、その責任は自分で取ってよね♥
0355デフォルトの名無しさんNGNG
>>354
利用者全員にDB接続のパスワードを配るの?

>>350
既存のDBは、接続に関してはそのへん考慮が足りないよねえ。
0356デフォルトの名無しさんNGNG
>>355
>既存のDBは、接続に関してはそのへん考慮が足りないよねえ。

いや、お前の考慮が足りないだけだと思う。
一体何のためにパスワードがあるんだ?
0357デフォルトの名無しさんNGNG
>>350
WindowsのユーザID・パスワードで接続させるとか、
("統合セキュリティ"で.NET Framework SDKドキュメントを検索)
外部ファイルにパスワードを保存して、NTFSのアクセス権で保護するとか。
0358名無しさん♯NGNG
Genericsのガイドラインキタヨー(゚∀゚)
ttp://blogs.msdn.com/kcwalina/archive/2004/03/15/89860.aspx
0359デフォルトの名無しさんNGNG
イツ ツカエルノ- チンチンチンチン
0360デフォルトの名無しさんNGNG
使いやすいタブコントロールはないかと探していたら
ttp://www.codeproject.com/cs/miscctrl/magictabcontrol.asp#xx706952xx
を見つけました。

ただ、デザイン時にタブページの内容をきりかえられないので、
画面設計が面倒かなと思っています。
(タブページが3ページあった時、1ページ目にはツールボックスから
コントロールを DnD できるが、2、3ページにできない)

Web の内容を読むとデザイン時にもできるような事が書いてあるように
読めるのですが、どなたかこのコントロールを使って、
デザイン時にタブページの内容を編集できている方は
いらっしゃいますか? もしいらっしゃればどうやればいいのか
教えてくださいませんか?
0361デフォルトの名無しさんNGNG
テキストボックスへの入力時に
99,999,999(通貨) とか 9999/99/99(日付) といった書式に
強制的にしたいのですが、その場合、textChanged等で
入力された値を毎回操作する以外の方法はあるのでしょうか?
0362デフォルトの名無しさんNGNG
>>318 ではないがその問題を今まで何度も経験したがまた起きた。
Officeなし環境でPowerPoint Viewerがある状態では何の問題もなし。
PowerPoint Viewerをアンインストしたらダイアログの嵐。
VSインストは時間かかりそうなのでPowerPoint Viewerを入れると問題が消えた。
別製品Office(というかインストーラが問題)に依存しまくるのはまったくわけわかんね。
0363デフォルトの名無しさんNGNG
LinkLabel を継承してカスタムコントールを作ろうとしています。

表示されるテキスト位置の X を少しだけずらしたいので、
そのように、DrawString で文字列を描画しました。

しかし、base.OnPaint (e); すると、自前で出力した文字列に
重なって、元の LinkLabel が出力している文字列がかぶります。

なので、base.OnPaint (e); をコメントアウトすると、今度は
自前で OnPaint に書いた内容しか描画されなくなってしまいます
(あたりまえだと思いますが)

ここで、テキストだけを自前で描画、それ以外を 元の LinkLabel で
描画のような都合のよい事はできないのでしょうか?

何かいい方法がありましたら教えてください。
0364デフォルトの名無しさんNGNG
変数名に _ (アンダースコア) をつけているプログラムをよくみます。
(C# に限った事ではないと思いますが)

この _ の付け方ですが、インスタンス変数の場合に付けている場合と、
インスタンス変数ではない場合に付けているケースを見るのですが、
一般的には _ ではじまる変数にはどのような意味を持たせているので
しょうか?
0365デフォルトの名無しさんNGNG
>>364
普通アンダーバーから始まる名前なんて使わないんだけど、どこに行けばよく見られるの?
C#の流儀ではそもそもアンダーバー自体使わないし。

C++では、ときどき private なメンバ変数の名前を _ からはじめる人がいる。
0366デフォルトの名無しさんNGNG
C++やってた人に良く見られる表現だね。
プロパティ作るのに漏れも使う。
0367デフォルトの名無しさんNGNG
@ITのC#入門では_つきの変数は一回だけでてきたな。
http://www.atmarkit.co.jp/fdotnet/csharp_abc2/csabc2_018/cs2_018_03.html#cs1808
これのprivate string _fileName;ってところ。
0368デフォルトの名無しさんNGNG
一言。
C++において、(基本的に)_で始まる名前は処理系に予約されている
為に、使ってはならない。
以上スレ違い。
0369デフォルトの名無しさんNGNG
>>366
漏れもそうだけど、framework自体が内部で、Itemとitemとか_itemとかやってるのデバッガなら丸見えだよな。
だから、おまえらもやれ
0370デフォルトの名無しさんNGNG
Javaから来た人・・・何もつけない
Delphiから来た人・・・「F」をつける
VisualC++から来た人・・・「m_」をつける
オレは「_」をつけることにしてるが。
0371デフォルトの名無しさんNGNG
>>368
それが通っちゃうC++処理系多いからなぁ。
Effective C++ かなんかで作者が嘆いてた気が。
↑この本の作者の流儀では、
privateメンバ変数には先頭じゃなくて末尾に _ を付ける。

>>370
俺は何も付けない。
その代わり、メンバを参照するときは必ず this. を付ける。
0372デフォルトの名無しさんNGNG
>>368
_hogeに拒絶反応を起こしてhoge_にしますた
0373デフォルトの名無しさんNGNG
私はVisualC++から入ってるのでメンバ変数はprefixはm_ですね。
最近は面倒であんまり付けなかったりしますが。

ところでこの話題はこっちに移動した方がより適切な気がしますけどどうでしょう?
コーディング規約 第2条
http://pc2.2ch.net/test/read.cgi/tech/1068752664/

あるいはこっちかな?
★★★コーディングマナー★★★
http://pc2.2ch.net/test/read.cgi/tech/1056508692/
0374デフォルトの名無しさんNGNG
_とかm_とか付けるぐらいならthis->付けるのが定石。何のためのthisだよ。
0375デフォルトの名無しさんNGNG
間違えた。this->じゃなくてthis.だったな。
0376デフォルトの名無しさんNGNG
>>364
>>374-375

.NET Framework ドキュメントの「名前付けのガイドライン/大文字と小文字の区別」を参照。

> 名前の混乱を避け、言語間の相互運用性を保証するために
> (中略)
> 同じコンテキストにおいて、大文字と小文字だけが異なる 2 つの名前を区別することはできません。

VB.NET のような、識別子の大文字と小文字を区別しない言語に合わせるため、
たとえ C# 言語的には問題がなくても、クラスの公開メンバ(protected を含む)については、
大文字小文字の区別だけで識別子を分けてはならない、という規則がある。

アセンブリに System.CLSCompliant 属性を true で付ける(CLS 準拠にする)と、
この規則に従っていない部分はコンパイルエラー(CS3005)になる。

このため、特にプロパティの実装では、あえてメンバ変数に m_ や _ を付けるのが慣習になっている模様。
0377デフォルトの名無しさんNGNG
質問します。
大きいBitmapから小さい部分BitmapをX、Y、Width、Heightを指定してコピーし、
その部分Bitmapを、GraphicsにX、Yを指定して貼り付けたいと思っています。
DrawImageで部分ビットマップを入れるのが良さそうだと思っていますが、
部分ビットマップを取得する方法がわかりません。
もしくは転送メソッドでも構いません。
どうやりますか?
0378デフォルトの名無しさんNGNG
>>377
DrawImageに
指定した位置に元のサイズで、指定した Image オブジェクトの指定した部分を描画します。
public void DrawImage(Image, int, int, Rectangle, GraphicsUnit);

って正に丁度のオーバーロードがある。
0379デフォルトの名無しさんNGNG
ありがとうございました
0380デフォルトの名無しさんNGNG
現在アプリで使用してるフォームのコレクションを取得する方法があったら教えて欲しいです。
VCLのFormsみたいのがありそうですが、見つけられませんでした。
0381デフォルトの名無しさんNGNG
フォームに表示されている内容をそのまま印刷したいのですが、
いまいち方法がわかりません。

できれば、一旦プレビュー画面を介したいと思っています。

どこか参考になるサイトか、ポインタで結構でもですので
方法があれば教えていただけるとうれしいです。
0382デフォルトの名無しさんNGNG
アルファブレンディングを自動でやってくれるクラスはないかね?
0383デフォルトの名無しさんNGNG
なぜにdoc/viewを止めちゃったのかな?>microsoftさん
自力でdoc/viewを実装するの面倒で仕方ないんだけど・・・
結局VC++に落ち着きそうな気がしてきた
0384デフォルトの名無しさんNGNG
>>380
自分でフォームの一覧管理するか、
API使うってのは?

>>381
なぜGoogleで
印刷
プレビュー
C#
てなキーワードで検索しようとせぬ。
0385380NGNG
>>384
そうですね。見つからないのでAPIで列挙しておきます。
0386デフォルトの名無しさんNGNG
C#っていうよりAPIなんで恐縮ですが,
他アプリケーションのタイトルバーの文字列をGetWindowTextで取得して,
修正してSetWindowTextで表示させたいのですが,
修正の際に,そのタイトルバーの全幅を知りたいのです.

他アクティブWindowのタイトルバーかフォームの全幅を取得する方法はないでしょうか?
0387デフォルトの名無しさんNGNG
>>386
http://www.gotdotnet.com/team/csharp/code/default.aspx
ここの Win32Window class は
0388デフォルトの名無しさんNGNG
PrintPreviewDialog ですが、プレビュー画面に表示している
内容が、ウインドウのリサイズなどの時にフリッカーがはげしいので
なんとかしたいと思っています。

Form などであれば ダブルバッファリングで対応できると思うのですが
PrintPreviewDialog の場合、どのように対応すべきかわかりません。

アドバイス頂けないでしょうか?
0389デフォルトの名無しさんNGNG
テキストボックスにコピペされないようにする方法ってないですかね?
0390デフォルトの名無しさんNGNG
.NET Frameworkって1.1から新しいバージョン出てないの?
0391デフォルトの名無しさんNGNG
使用できるシリアルポートを列挙したいのですがどうすればいいでしょうか?
1〜16まで順にopenしていく手もあるが、泥臭い
0392デフォルトの名無しさんNGNG
c#で60分の1秒単位、
または、それが駄目なら30分の1秒でも
10分の1秒でもいいのですが、
その単位で描画を行い、
その単位時間が過ぎたら、
描画を止めるのには、
日付取得メソッドを使って
時間の計算を自分でするしかないのでしょうか?
また、時間はどうやって計算したら良いのでしょうか?
0393デフォルトの名無しさんNGNG
>>392
Timerじゃだめなの?
0394デフォルトの名無しさんNGNG
c#builderのエディタでカーソルが行末より後ろに行くのを抑制したり、
行頭で←押して前の行の行末に移動するような設定ってあるんでしょうか?

0395デフォルトの名無しさんNGNG
>>390
1.1で何が足りないの?
0396デフォルトの名無しさんNGNG
>>393
はい。
Timerは自分も一応知ってるのですが、
具体的には、
Timerイベントで時間を取得して、
その後forループでまわして、
1ループごとに時間を取得して、
例えば、例えば、一定の時間過ぎたかどうかチェックすると言うのが一般的なのでしょうか?
0397デフォルトの名無しさんNGNG
取り合えずBalloonを付けて欲しい。

http://www.codeproject.com/cs/miscctrl/balloonnet.asp
はイマイチ・・・
0398デフォルトの名無しさんNGNG
GetTickCountって使えないの?
0399デフォルトの名無しさんNGNG
Environment.TickCountのことか?
0400デフォルトの名無しさんNGNG
>>395
物足りない
0401デフォルトの名無しさんNGNG
DateTime.Ticks
こっちの方がより精度が高いのでいいような気がしてきました。
まあ、そんなに細かい精度はいらないのですが、
それでも、最低の精度が500ミリ秒ってのは
ちょっと雑すぎる気もしたもので。

でも、本当はこう言うことをもっとしっかりとやるには
マルチスレッドとかで、
処理をするのが本当なんですよね。
自分にはそう言うスキルは無いのですが。
0402デフォルトの名無しさんNGNG
ListBox.MeasureItem イベント発生しないぞ、ゴルァ
DrawMode.OwnerDrawVariableにしてるぞゴルァ
0403デフォルトの名無しさんNGNG
相談です。

http://www.gihyo.co.jp/books/syoseki.php/4-7741-1484-7
この本で一通りC#の言語仕様を学び、次はVS.NETでGUIアプリに挑戦しようと思ってます。
しかしアプリ作った経験が無く、ノウハウがまったくありません。

何らかのアプリを実際に作りながらノウハウを学んでいくような解説本があれば教えてください。
またはみなさんが初めてアプリ作りを学んだときの学習方法を教えてください。
0404デフォルトの名無しさんNGNG
>>402
VS2002使ってませんか?
有名なバグですよ
0405デフォルトの名無しさんNGNG
>>403
簡単なGUIアプリならここらへんで

GotDotNet Japan Student レベル別学習コラム
http://www.gotdotnet.com/japan/student/levelcolumn.aspx
0406403NGNG
ほほう、いいですね!ココ。
0407ニャーニャーNGNG
みなさま、ちょいとばかし教えて下さい。
プログラム上で他のプロセス(例えばping)を起動、
その実行結果をテキストボックスにリアルタイムに表示させていくってな
ものを作りたいのですが、なかなかどうしてうまく行きません。
プロセス起動方法まではわかってるんですが、
ストリーム、標準出力うんぬんの処理がよくわかりましぇん。
終了後の結果ならテキストボックスに表示できるんですが、
リアルタイムでってのができないのですよね。
こんなんどう?とか、これ参考にして。なんて風にちょいと教えて下さい。
0408デフォルトの名無しさんNGNG
>>407
ストリームはどうせ死ぬほど出てくるんだからきちんと体得した方が良いよ。

TextBox textBox = new TextBox(); //この辺は普通はVSにコントロール貼り付け
Button button = new Button();

//別スレッドを使ってtextBoxに書く場合に必要
delegate void AppendText(string text);

private void button_Click(object sender, EventArgs e) {
   Process p = new Process();
   p.StartInfo.RedirectStandardOutput = true;
   p.StartInfo.UseShellExxecute = false;
   //以下p.StartInfo各種プロパティの設定省略
   p.Start();
   int output;
   while ((output = p.StandardOutput.Read()) != -1) {
      textBox.AppendText(((char)output).ToString());
//    別スレッドを作って書き込む場合は上の代わりにこちら
//    textBox.Invoke(new AppendText(Append), new object[]{((char)output).ToString()});
   }
}
//別スレッドとInvokeを使う場合の書き込み用メソッド
private void Append(string text) {
   textBox.AppendText(text);
}

ReadよりReadLineの方が良いかな?
0409デフォルトの名無しさんNGNG
C#を仕事で使っている人ってどれくらいいるのかな?
0410デフォルトの名無しさんNGNG
文字列間隔ってどうやってあけるの???
0411デフォルトの名無しさんNGNG
?
0412410NGNG
書き忘れ・・・

グラフィックオブジェクトを使って文字間隔をあけたいんですが、
どうすれば・・・
hogeをh o g eとかに指定した数値分間隔をあけたいんです
0413386NGNG
>>387
どうも有り難うございました.
その中のGetWindowRectを使ったら出来ました〜.
0414デフォルトの名無しさんNGNG
すみません。教えてください。
Graphics.DrawString()で、文字を出力するときに均等割りしたいのですが、
皆さんはどのようにしています?
0415デフォルトの名無しさんNGNG
動的プロパティに設定したプロパティが、
プログラム使用中に変更できないのですが・・・
これは、仕様でしょうか?

的外れなこと言ってたらスイマセン・・・。
0416415NGNG
的外れというか、具体的じゃないんで質問変更します。
415は、脳内あぼーんしちゃってください(汗

C#でモーダルウィンドウで構成ファイルを変更した後に、、
そこで設定した情報(今回の場合、checkBox2.checkedのbool)を、
構成ファイル(-.exe.config)に反映した後、
それを読み込んでもForm1側の設定が変更されていません。
何故でしょうか?
0417415NGNG
class Form1側
private void button1_Click(object sender, System.EventArgs e)
{
   Form2 ModalDlg = new Form2();
   ModalDlg.ShowDialog();

   ModalDlg.Dispose();
}
0418415NGNG
class Form2側 (usingでSystem.Xmlと、System.Configuration使用)
private void button1_Click(object sender, System.EventArgs e)
{

   //構成ファイルのパスを取得
   string configpath = Application.StartupPath + @"\test_1.exe.config";

   //構成ファイルをXMLファイルに読み込む
   XmlDocument doc = new XmlDocument();
   doc.Load(configpath);

   foreach (XmlNode n in doc["configuration"]["appSettings"])
   {
      if (n.Name == "add")
      {
         if (n.Attributes.GetNamedItem("key").Value == "Form1.TopMost")
            n.Attributes.GetNamedItem("value").Value = checkBox1.Checked.ToString();

      }
   }
0419415NGNG
private void Form2_Load(object sender, System.EventArgs e)
{
   checkBox1.Checked = bool.Parse(ConfigurationSettings.AppSettings["Form1.TopMost"]);
}

configファイル側
<?xml version="1.0" encoding="utf-8"?>
<configuration>
   <appSettings>
      <add key="Form1.TopMost" value="false" />
   </appSettings>
</configuration>

==================================================

これで全部です。
知っている方がいましたら、お願いします。
連続カキコすいません・・・。
0420デフォルトの名無しさんNGNG
Form2_Loadイベントのほうがbutton1_Clickイベントより
先に呼ばれるからでは?
Form2_Loadイベントで全て処理してみては?
0421415NGNG
わ、一部かけちゃってます・・・ここが、

class Form1側
private void button1_Click(object sender, System.EventArgs e)
{
   Form2 ModalDlg = new Form2();
   ModalDlg.ShowDialog();

   this.TopMost = bool.Parse(ConfigurationSettings.AppSettings["Form1.TopMost"]);

   ModalDlg.Dispose();
}

です。

>>420
えーと、Form2側でForm1.TopMostの構成ファイルの変更をし、
その結果を反映させたいので、
最低Form2_Lodeイベントが終わったあとじゃないと出来ないと思います・・・。

意味を読み違えていたらごめんなさい。
というか、説明下手でごめんなさい・・・。
0422名無しさん@LinuxザウルスNGNG
>>409
使ってるよ!
WindowsアプリとCOM Interopとか、ASP.NETの
Webアプリ案件がけっこうあるね

Windowsサービスとかノータッチデプロイメントとか
リモーティングもやってみたいが。。。


0423デフォルトの名無しさんNGNG
あの基本的なことなのですが、FCLってクラスライブラリなわけで
C#にもそれをさらに覆うクラスライブラリがあるのですか・・・?
0424デフォルトの名無しさんNGNG
Button button = new Button();
button.Click += new EventHandler(OnClick);

EventInfo clickevent = button.GetType().GetEvent("Click");
MethodInfo method = clickevent.GetRaiseMethod();

これでOnClickメソッドの情報を得たいんですが、nullが返ってきます。
どうもこれでは駄目なようなんですが、他に方法はありますか?
おねがいします。
0425デフォルトの名無しさんNGNG
素朴な疑問ですが、C#で授業してる学校ってありますか?
0426デフォルトの名無しさんNGNG
http://www.takaoka-nc.ac.jp/campuslife/kougi/h15/D25.htm
0427デフォルトの名無しさんNGNG
>>424
その場合GetType()時点でインスタンスの情報じゃなくて型そのものの情報になっちゃうから。
ちょっと調べたけどインスタンスの情報を取得するメソッドが見当たらないんだよな〜。

eventを宣言してるクラス内で
そのeventに関連付けられてるメソッドの一覧を返すメソッドなら書けるんだけど。
0428デフォルトの名無しさんNGNG
>>426
すげー××××っぽいのは気のせいか?
>授業科目名 ビジュアル・プログラミング基礎(C#.net Plus C++.netソフトウエア開発(基礎))
>授業の目的  知能ロボットや情報端末は,オブジェクト指向言語(言語名称の後ろに++が付いたもの)によって実現可能となった。

0429デフォルトの名無しさんNGNG
>>414
一文字ずつに分解してから、
スペースを入れるって地道な方法しかないんじゃないの?
0430デフォルトの名無しさんNGNG
GDi+をつかった描画ルーチンって、
相手のパソコンにGDI+が入ってないと駄目なんだよね。
あ、c#の場合はもともと、.netが入ってないと駄目だから、
.netが入ってる=GDI+が入ってるって事になるわけか。
0431デフォルトの名無しさんNGNG
>>430
そうでなきゃSystem.Windows.Forms全滅じゃんかw
0432デフォルトの名無しさんNGNG
GDI+でfpsとったので
一応報告するよ。
30fpsで50×50ピクセルの画像(1つのスプライトと考える。)
を100個前後描画した。

微妙だけど、、
どう、考えても遅いよね。
これじゃ、ファミコン並みのゲームも作れないんじゃ?
実際にゲームを作るとなったらもっと別の
処理ルーチンだって沢山必要だしな。

まあ、漏れのノートパソコンよりも、もっと上クラスのパソコンなら
GDI+で一応ファミコン並みの作品は作れる計算になるかな?
ちなみに、漏れのパソコンはペンティアム3で
933mヘルツで、256MRAMだよ。

やっぱりゲームやるなら最低はダイレクトxの
2Dドロー系くらいは使えってことかな?
0433デフォルトの名無しさんNGNG
>>415
無理、仕様
0434424NGNG
>>427
レスありがとうございます。

> そのeventに関連付けられてるメソッドの一覧を返すメソッドなら
おお!メソッド名だけわかればいいのでそれでもOKです。
ぜひ教えていただけないでしょうか。
0435デフォルトの名無しさんNGNG
>>415
構成ファイルは最初に読み込んだ時点からキャッシュされて使われるので、
再起動しないと変更は反映されない。
ASP.NETとかだと構成ファイルを書き換えると即座に強制再起動されるので
あまりよろしくない。
動的に変更が必要な情報は、構成ファイルじゃなくて
別のところに書くようにした方が良い。
0436415NGNG
>>433
>>435
なるほど・・・構成ファイルは再起動しない限り無理なんですね。
適当にテキストでもXMLでも作って、そこで読み書きしてみることにします。
ありがとうございました。
0437デフォルトの名無しさんNGNG
http://mylog.ishinao.net/id/580
ねえ、ここにさ、

>まあGDIもWindows 2000以降はDirectDrawを通して使っているらしいから、

って記述があるんだけど、これは嘘だよね。
漏れのxpなんだけどGDI+激遅だし。

GDIはダイレクトXとは違うよな。
0438デフォルトの名無しさんNGNG
WinFXでは統合されるんじゃないの
0439デフォルトの名無しさんNGNG
あ、要するに、
GDIは使ってるけど、
それが更にダイレクトXを呼んでいると言う構造だから
遅いってことかな?

なるほど。なら、矛盾は無いよな。
0440デフォルトの名無しさんNGNG
>>438
マジかよ!!
ならよ、GDI+でも超高速2D画像ができるってことか!?
ロングホーン以降は、、、?
それが本当ならすごいよな。
0441デフォルトの名無しさんNGNG
今からGDI+を使っておけばロングホーンになった時に自動的に速度UPされるのか!?
要するにロングホーンのGDI+は速くなるってことか?
0442デフォルトの名無しさんNGNG
なら、すごいよな。
0443デフォルトの名無しさんNGNG
結局ダイレクトドローを勉強する必要が
将来的には無くなって
GDI+だけ操作できれば
2D画像系は問題ないって方向へ行くのかな?
msはそこら辺をもっと解りやすくしてほしいな。
0444デフォルトの名無しさんNGNG
問題は
新たにロングホーンを買ったりアップデートしたりする人が
どれくらい居て、
今までどおりの人がどれくらいかってことだな。
0445デフォルトの名無しさんNGNG
ここみると微妙。っていうかGDIとDirect3Dは別物で同列に置いてあるね。
http://www.itmedia.co.jp/news/0310/29/l_avalon.jpg

ただWindowのイメージをテクスチャサーフェスに描画するという説明が(たしか)あったので
グラフィックボードのハードウェア支援は受けられるとは思うけど。
0446デフォルトの名無しさんNGNG
http://pc2.2ch.net/test/read.cgi/tech/1079765614/

そんなチミたちにこのスレ!

みんなで楽してハイクオリティーの2D同人レベルゲーム
を作りましょう!!
0447デフォルトの名無しさんNGNG
マウスボタンが押されたとき、シフトキーが押されているかどうかはどうやって知りますか?
0448デフォルトの名無しさんNGNG
それぞれのイベントで押したときに
押されてるフラグを真、離されたときに偽にする。

そのフラグはそのクラス共通のフィールドにする。

で、それぞれのクラスでマウスオンフラグとシフトキーオンフラグが
&&で真かどうかをif文で判定する。
0449デフォルトの名無しさんNGNG
(ModifierKeys & Keys.Shift) > 0
0450デフォルトの名無しさんNGNG
ロングホーンのGDI+はDirectXが統合されて速くなるのかって話だけど、
XPで遅いGDI+アプリをロングホーンのβ版で動かしてみたら?
0451デフォルトの名無しさんNGNG
>>434
public class Test {
   public event EventHandler TestEvent;
   public MethodInfo[] GetMethodsOfTestEvent() {
      if (this.TestEvent == null)
         return new MethodInfo[0];
      Delegate[] delegates = this.TestEvent.GetInvocationList();
      MethodInfo[] methods = new MethodInfo[delegates.Length];
      for (int i = 0; i < delegates.Length; i++)
         methods[i] = delegates[i].Methods;
      return methods;
   }
}
public class Entry {
   public static void Main() {
      Test test = new Test();
      test.TestEvent += new EventHandler(Hoge);
      foreach (MethodInfo info in test.GetMethodsOfTestEvent())
         Console.WriteLine(info);
   }
   public static void Hoge(object sender, EventArgs e) {}
}

結局の所eventはDelegateのラッパにすぎないわけで、
event宣言はMulticastDelegateクラスの派生クラスを暗黙的に作ることだから、
add_TestEventとremove_TestEvent以外は宣言したクラス内なら
普通にMulticastDelegateクラスのインスタンスとして使えるってことだ。
0452デフォルトの名無しさんNGNG
ダイレクトドロー系が残されたのは
.netだけなんだけど、
それはGDIが担当するからいずれそれに置き換えると言う
伏線か?
0453デフォルトの名無しさんNGNG
DDはD3Dに吸収された
0454デフォルトの名無しさんNGNG
>>429
スペースってのは、まずくない?
プロポーショナルだと、きっちり合わないし。
やっぱ、分解して文字ピッチを調整するのかな?
0455デフォルトの名無しさんNGNG
>>454
そういう意味での「スペース」(アスキーコード0x20のスペースではなく)だと言ってるんでしょう、おそらく。
0456デフォルトの名無しさんNGNG
WORDなら簡単なのにね。C#って以外に貧相なのね。
0457デフォルトの名無しさんNGNG
>event宣言はMulticastDelegateクラスの派生クラスを暗黙的に作ることだから、
違うと思うが…
0458デフォルトの名無しさんNGNG
ネットワーク上のサーバから,(この場合はWhoisですが)
byte[]をで読み込んで,
netStream.Read(bb, 0, bb.Length)
JISなのでJISに変換して,
msg = System.Text.Encoding.GetEncoding("iso-2022-jp").GetString(bb);
リッチテキストエディタに表示
rtbox_show.AppendText(msg);

以下のように微妙に化けます.
[登O?G/7nF|] [有効|8B] [状態] [最=*99?7] [住j] [Postal Address] [電話番f] [FAX番号(B]

コンソール上のTelnetでファイルにリダイレクト,nkfで文字コード変換の場合には,
きちんと見えるので,自分のコーディングに問題があると推測しています.

どのようにしたら良いのでしょうか?宜しくお願いします.
0459デフォルトの名無しさんNGNG
中途半端な状態なんじゃない?
0460デフォルトの名無しさんNGNG
byte[]に読まずにStreamReader使って変換すれば?
それかEncoder取得して変換するか。
0461458NGNG
事故レスです.解決しました.
バッファサイズで繰り返し読んでいたのが原因でした.
どうも申し訳ありません.

>>459
ある意味その通りでした・・・
0462デフォルトの名無しさんNGNG
>ある意味その通り
「まさにそのとおり」だと思うが…
0463デフォルトの名無しさんNGNG
>>456
frameworkの問題だと思うが、
確かにWORDとかEXCELで実現しているような機能はちゃんと提供してほしい。
0464デフォルトの名無しさんNGNG
結局、業務で使えるようなアプリを作ろうとすると、
たいていはAPIを利用しなきゃならないというのが残念だ。

それにしても、C#のコミュニティって少ないな・・・
0465デフォルトの名無しさんNGNG
C#ってWIN32API使うの面倒
業務で使えるかよ。こんな糞
C++,STL,MFCこれ最強
0466デフォルトの名無しさんNGNG
おまえどんな業務アプリつくってんだよ
0467デフォルトの名無しさんNGNG
解析シミュレートがメインですね
0468デフォルトの名無しさんNGNG
C#っていうより.NET Frameworkがしょぼいんだな。
俺はASP.NETやってるが、ほとんどフレームワーク頼みだからあれこれ大変だ。
0469デフォルトの名無しさんNGNG
C# で正規表現パターンを変数に格納する場合 " が入っているとエラーが出て
コンパイルできない。
この場合どうするの? \" でエスケープもできないよ。納品近いのに・・
0470デフォルトの名無しさんNGNG
>>469
@"" でごまかしてみる
0471最凶VB厨房NGNG
string s="\\\"3";
string sp="\"[1-9]";
Regex re=new Regex(sp);
Match m=re.Match(s);
Console.WriteLine(m.Value);
できるわけだが・・・
0472デフォルトの名無しさんNGNG
perlでヤレ
0473デフォルトの名無しさんNGNG
どうもです。

>>470 >>471 も試してみましたけど構文エラー

元の Perl で使っていた正規表現がこれ

(?:[^(\040)<>@,;:".\\\\\[\]\000-\037\x80-\xff]+(?![^(\040)<>@,;:"
.\\\\\[\]\000-\037\x80-\xff])|"[^\\\\\x80-\xff\n\015"]*(?:\\
\\[^\x80-\xff][^\\\\\x80-\xff\n\015"]*)*")(?:\.(?:[^(\040)<>@,;
:".\\\\\[\]\000-\037\x80-\xff]+(?![^(\040)<>@,;:".\\\\\[\]\
000-\037\x80-\xff])|"[^\\\\\x80-\xff\n\015"]*(?:\\\\[^\x80-\xff]
[^\\\\\x80-\xff\n\015"]*)*"))*@(?:[^(\040)<>@,;:".\\\\\[\]\000-
\037\x80-\xff]+(?![^(\040)<>@,;:".\\\\\[\]\000-\037\x80-\xff])|
\[(?:[^\\\\\x80-\xff\n\015\[\]]|\\\\[^\x80-\xff])*\])(?:\.(?:[^
(\040)<>@,;:".\\\\\[\]\000-\037\x80-\xff]+(?![^(\040)<>@,;:".\\\\\
[\]\000-\037\x80-\xff])|\[(?:[^\\\\\x80-\xff\n\015\[\]]|\\\\
[^\x80-\xff])*\]))*};

適当にぶったぎってあるけど、おひおひ

>>472
Perl からの転向組さ・・・C# でやらせるなよ
0474最凶VB厨房NGNG
>>473
こちらの環境ではできるので
他の部分でミスがあるのでは?
0475デフォルトの名無しさんNGNG
>473
こういう暗号は大嫌い・・・
誰か正規表現の分かりやすいバージョンを考え付かないかな?
高級言語を使う時代なのに・・・
0476デフォルトの名無しさんNGNG
>>474
深夜にレスありがとう!

でもおかしいなぁ、こっちでは

public static string MailRegex2 = @"〜上記パターン〜";

で構文エラー '"' が必要です。と出ちゃいます。
0477デフォルトの名無しさんNGNG
SDKのバージョンは?
0478デフォルトの名無しさんNGNG
>>477

SDK のバージョンは 1.1です。たぶん最新です。
0479最凶VB厨房NGNG
VC#なら
ツール→オプション

環境→フォントおよび色→表示項目で文字列を選択して
背景アイテムで色かえて確かめてみたら?
0480最凶VB厨房NGNG
元のPerlで使っていた正規表現は試してないかんね。
0481デフォルトの名無しさんNGNG
>>474

このパターンをコピペして動きましたか。

>>479
色を変えて試すとどうなるのでしょう?
実は VC# を3日前から使い始めたばかりで、よくわからないのです。
今まで Perl + エディタ + コマンドラインだったもので IDE さえ初めて・・・

>>480
Perl ではブンブン動いているんですよ。
0482最凶VB厨房NGNG
>>481
動かない。
@つきでは" は2ついるし。
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/csref/html/vclrfString.asp?frame=true

色を変えてどこまでが文字列として認識されているかを確認すべし。
0483デフォルトの名無しさんNGNG
preg_match("/(.*?)=\?iso-2022-jp\?B\?([^\?]+)\?=(.*)/i", rtrim($sbj), $regs)

これをC#でやるとどうなりますか?
0484最凶VB厨房NGNG
ここも一読した?
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/cpgenref/html/cpconregularexpressionslanguageelements.asp?frame=true
0485デフォルトの名無しさんNGNG
>>482 >>484
動きました!

結局パターン中の " を "" にしました。
>>482
の MSDN のリンク先に解説してあるのを読みました。

ありがとうございます!!
C# を触ってまだ 3日なので基本的な構文なども良く分かっていなかったので
みなさんにご迷惑をおかけしました。

実は私は営業の人間で趣味で Perl, JScript + DOM などを使っていたのですが
仕事の方で人が足りなくなり急遽投入されてしまいました。
「JScript やってるよね。JScript は .NET 環境で exe にコンパイルできるみたいだよ。」
はぁ。
「同じ .NET 環境だったら JScript より C# だよね。勉強になるよ。趣味にも生かせるし。」
はぁ。

というやり取りの結果いま仕事中です。

はあぁ。
0486デフォルトの名無しさんNGNG
職場の話等がしたければマ板へ。
0487デフォルトの名無しさんNGNG
正規表現で?がエスケープできません。
Regex r = new Regex("\?");  //エラー

いったいどうすれば…_| ̄|○
0488最凶VB厨房NGNG
正規表現としての文字列が\?
これをC#としての文字列にすると\\?
以上。
0489デフォルトの名無しさんNGNG
デキタ━━━━(゚∀゚)━━━━ッ!!
0490デフォルトの名無しさんNGNG
>>485
お前にVBのプロジェクトやるからその仕事よこせと
0491デフォルトの名無しさんNGNG
buttonを5*5に表示させようと思って
System.Windows.Forms.Button[5,5] という風に myButton を宣言しました。
ぐぐった結果、これを表示するのに
this.Controls.AddRange(myButton);
とする必要があるらしいことがわかりました。
しかし、そのサンプルと違い、私のmyButtonは [,] なので [] に変換することはできません。
どうしたらいいんですか?
0492デフォルトの名無しさんNGNG
クラスライブラリについての質問なんだが、TabPanelで選択されたタブ部分の色を変えたい場合ってどうすればよいの?
MSN Messanger風のタブのスタイルを使いたいんだが。
0493デフォルトの名無しさんNGNG
>>492
タブのパネル部分とタブ切り替え部分を同じ色にしたいの?
0494デフォルトの名無しさんNGNG
>>493
選んでるタブを強調したいんです。
で、タブの上についてる出っ張り部分の色を変えれないかと思ったんだが
出っ張り以外のところしか色が変わらないんです
0495デフォルトの名無しさんNGNG
>>494
タブの部分だけ色変えることは標準じゃできないよ。
overrideして自分で描画。
0496デフォルトの名無しさんNGNG
>>495
んなことくらい知ってるよ
実際どう描画するかを聞いてんじゃんかよ、ぼけ
氏ね
0497デフォルトの名無しさんNGNG
ぼけ
氏ね
0498デフォルトの名無しさんNGNG
フォントダイアログに一部のOpenTypeフォントが表示されないのですが、解決法を教えてください。
0499424NGNG
>>451
> 宣言したクラス内なら普通にMulticastDelegateクラスのインスタンスとして使える
なるほど!これは知りませんでした。その方法で何とか出来そう。
コード大変参考になります。
ありがとうございました。
0500デフォルトの名無しさんNGNG
>>496
こういう事じゃなくて?
private void tabControl_DrawItem(object sender, System.Windows.Forms.DrawItemEventArgs e)
{
TabControl control = (TabControl)sender;
TabPage tab = control.TabPages[e.Index];

StringFormat format = new StringFormat();
format.Alignment = StringAlignment.Center;
format.LineAlignment = StringAlignment.Center;
format.FormatFlags = StringFormatFlags.NoWrap;

if (e.State == DrawItemState.Selected)
{
e.Graphics.FillRectangle(SystemBrushes.Control, e.Bounds);
e.Graphics.DrawString(tab.Text, e.Font, SystemBrushes.ControlText, e.Bounds, format);
} else {
e.Graphics.FillRectangle(SystemBrushes.ControlDark, e.Bounds);
e.Graphics.DrawString(tab.Text, e.Font, SystemBrushes.ControlLightLight, e.Bounds, format);
}
}
0501デフォルトの名無しさんNGNG
まあ、出来たんならいいんだけど、
>>424 MethodInfo method = clickevent.GetRaiseMethod();
これを、clickevent.GetRaiseMethod(true)にしたら取れたっておちはない?
0502デフォルトの名無しさんNGNG
実行中に取得したTypeを元に、
動的にキャストする型を変えることってできるかな?
0503デフォルトの名無しさんNGNG
その型だとナニができるかわからないのにキャストしてどうすんのよ。
0504デフォルトの名無しさんNGNG
キャストした時に何型が返ってどうやってアクセスするのん…?
0505502NGNG
うーん、例えば、short、int、longのいずれかなんだけど、
どれが渡されるかは実行時まで分からなくて、
でも、やることは、それらが共通して持っているメソッドを使うので、
三通りのコードを書かないように済ませたいということです。
0506デフォルトの名無しさんNGNG
> それらが共通して持っているメソッド

具体的に何?
0507502NGNG
>>506
例えば、ToString()
0508デフォルトの名無しさんNGNG
>502=505
そこは普通メソッドをオーバーロードするように作るとこだろ。
(すまんがC#は今一覚えてないので、抽象メソッドとかどうなってるのか忘れたが……)
メソッドの中身の大枠は決まってて細部が違うんならTemplate Methodパターンが(・∀・)イイ!!
0509デフォルトの名無しさんNGNG
>>507
何のためにToStringがObjectで定義されてるんだか…
それとも、出してみた例が悪すぎただけか?
>>508
オーバーライドの「書き」間違いである事を祈る…
0510デフォルトの名無しさんNGNG
>>505
その辺の悩みはJavaが過去に通った道だったりする。
デザインパターンをグルっと追ってみると良いかも?
0511デフォルトの名無しさんNGNG
503や504の言ってる意味が理解できてないと見た。

>>507
どういうインターフェースなのかが予め分かってるじゃねーか。
だったらそのインターフェースにキャストすればいい。
その場合はSystem.ValueTypeが共通のインターフェースになる。
0512デフォルトの名無しさんNGNG
JavaはPrimitive Typeがobject派生じゃない、旧世代の言語なので
そのへんの統一を取るのが難しいですね。

しかしながらパフォーマンスを考慮すると、やっぱりprimitive型別に
overloadを用意する羽目になっちまいますが。
0513デフォルトの名無しさんNGNG
>>509
最初、objectにキャストしてやろうとしたんだけど、
objectの ToString には引数が渡せなくて・・・。
0514デフォルトの名無しさんNGNG
>>513
じゃIFormattableで。
0515デフォルトの名無しさんNGNG
てか、具体的な例にあることがしたいだけなのか
もっと一般的な話なのか良く分からんな…
書いてる事だけなら、shor, int, long なんて全部
longで扱っちゃったらいいんじゃ…とか
0516デフォルトの名無しさんNGNG
>しかしながらパフォーマンスを考慮すると、やっぱりprimitive型別に
>overloadを用意する羽目になっちまいますが。
どんなコードになるのか興味あるなあ(使う側が)…
型不明のprimitive型を何型に入れるの?
ってかoverloadは普通静的に型が分かってなきゃ使えんよね。
でも一つの(共通の)変数に入れるんだよね?
0517502NGNG
いろいろレスありがとう。

>>515
実際には、プリミティブ型のどれかが object型に入れられて渡されるんです。

なんとなく道が開けた感じがするので、今一度考え直してみます。
取り合えず、うまい方法を思いつくまで、型の数だけ分岐するコードで対処しときます。
0518デフォルトの名無しさんNGNG
>>516
予め型が分かっていて、その型に対する処理を静的に記述することで
パフォーマンスの向上が望めるならば、overloadしたメソッドを用意する
ことは意味があると思う。

使う側も、そのことを意識しているならば、共通のobject型に入れて
おくことはないだろう。意識してないならobjectのままでいいと思う。

要するにその使い分けをするかどうかだな。.NETではprimitive型も
object型としてそのまま扱えるので、とりあえずobject型として
突っ込むことができる。後からprimitive型に特殊化してもよい。
また、その際の書き直しが少なくて済む。
0519デフォルトの名無しさんNGNG
テキストボックスなんかに、現在編集中ならtrueを返すプロパティを加えたいんだけど、
"IsEditing"って名前はコーディング的にも、英語的にも妥当だと思う?
0520デフォルトの名無しさんNGNG
> 現在編集中なら

この条件がそもそも分かりにくい。
フォーカスが当たってるということ?
ユーザーがキーを押してるということ?
0521デフォルトの名無しさんNGNG
で、フォーカスがあるって事ならControl.Focusedがあるしな。
0522519NGNG
専用のフィールドを用意しておいて、
初期値状態では false で、
TextChangedイベントが発生すると true に設定、
LostFocusイベントが発生すると、編集終了とみなして false に設定、
編集をキャンセルするメソッド(実装予定)を実行すると false に設定、
編集を確定するメソッド(実装予定)を実行すると false に設定、

という具合。
0523デフォルトの名無しさんNGNG
IsEditingはDelphiのリストビューコントロールで、アイテムが編集中か
否かを表すプロパティとしても使用されているので適切な英語だろう。
0524デフォルトの名無しさんNGNG
1.ListBoxの項目を選択して編集ボタンをクリック
2.編集フォームを出してリストの内容を表示
3.編集フォームの内容を編集
4.OKボタンを押してメインフォームへ戻る

とした時、1で選択したリストを選択した状態にしたいのですが、
どうすればいいでしょうか?
0525デフォルトの名無しさんNGNG
>>524
面倒なら、ShowDialog()使えば?
0526デフォルトの名無しさんNGNG
>>523
ほうほう、そうなんだ。
じゃあ、堂々とそう名前付けします。
レスさんくす。

どうも英語に自信が無くて・・・
0527デフォルトの名無しさんNGNG
>>525
ShowDialog使ってます。DialogResultがCancelの時は問題ないのですが、
DialogResultがOKの時は、リストを更新しているので、
その後に選択項目をもう一度選択した状態にしたいのです。
0528508NGNG
>509
たはは。「覚え」間違い。とゆーか、
ちょっと時々ごっちゃになるねん。
わかってんねん、わかってんねんで? 引数が違うだけのやつがオーバーロード、
それがごっちゃに……
……
わかってんねんで?!
0529528NGNG
……ボケ損ねた。寒い……
0530デフォルトの名無しさんNGNG
FontFamily[]を取得した後、シンボル不可、等幅のみ、でフィルタリングできませんか?
0531デフォルトの名無しさんNGNG
質問です。

string a = null;
string b = "";

return (a == b);

がfalseになるのですが、aとbは何が違うのでしょうか?
bの空文字は空っぽなわけですからnullと同値だと思ってたのですが…
0532デフォルトの名無しさんNGNG
>>531
nullとぬるぽは同値ですが、
nullと""は同値ではありません。
0533デフォルトの名無しさんNGNG
難しい。どう使い分けるんだ??
0534デフォルトの名無しさんNGNG
nullは何もさしていない。
""は文字列オブジェクトをさしている。

nullは何もさしていない。
0は数値オブジェクトをさしている。
0535デフォルトの名無しさんNGNG
ちなみに私はOracleマスターです。

の一言があればウケが取れたんだがなー
0536デフォルトの名無しさんNGNG
つまり、""は数字の0と同じで、インド人もびっくりってことですね?
0537デフォルトの名無しさんNGNG
stringとStringはどう違うんやー
と言う疑問が以前ありました。
0538デフォルトの名無しさんNGNG
普通のstring型の配列をデータグリッドに表示させることは可能でしょうか?
0539560NGNG
string[,] listes = new string[10,10];
(listesにはすでにデータが入っているものとします。)

private void Button1_Click(object sender, System.EventArgs e)
{
int sel = listBox1.SelecttedIndex;

Form2 editForm = new Form2();

editForm.TextBox1.Text =listes[0, sel];
for (int i = 1; i <= listes.GetUpperBound(0); i++)
{
editForm.listBox1.Items.Add(listes[i,sel]);
}

editForm.ShowDialog();

editFormのタイトルやリストの編集処理

if (editForm.DialogResult == DialogResult.OK)
{
配列の更新などの処理
//リストの更新
for (int j = 0; j <= listes.GetUpperBound((1); j++)
{
listBox1.Items.Add(listes[0,j]);
}
}
editForm.Dispose();
}
0540560NGNG
>>539の続きです。

このような処理をした後にメインフォームのlistBox1.Items[sel]を
選択した状態、つまりeditFormを表示する前の状態にしたいのです。
何か良い方法はないでしょうか?

# 思いつくままに書いたので不備があるかもしれませんが、
# やりたい事を感じ取ってくれれば幸いです。

なお、ハンドルの560は間違えました。
>>524=>>527です。m(__)m
0541デフォルトの名無しさんNGNG
>>540
listBox1.SelectedIndex = sel;
いやまともに読んでないからsel+1かsel-1かしらんが。
0542デフォルトの名無しさんNGNG
>>540
変数作って選択されていた番号覚えておけばいいだけじゃない?
0543530NGNG
APIしかないのかな?
0544デフォルトの名無しさんNGNG
System.Reflection.MemberInfo によって
クラスのメンバの列挙はできたのですが、
それが static かどうかを判定する方法はありますか?
0545544NGNG
自己レス
MethodInfo の方にありました、失礼。

0546デフォルトの名無しさんNGNG
C言語でバイナリデータにアクセスするときに、
構造体とポインタを使う方法をよく使うと思うのですが、
このようなことをC#で、unsafeを使わないで行うにはどうしたらいいのでしょうか?

最初は、unsafeを使ってやろうとしたのですが、
構造体のメンバに配列を使いたかったのでうまくいかず挫折しました。
0547540NGNG
>>541さんの方法で出来ました。
しかし、まさかこんな方法で出来るとは…。
僕が勉強した本では、SelectedIndexはインデックス値を
取得するものとしか書いていなかったのでかなり驚きです。
そっか、逆に数値を入れるのか…。本当に思いもよらなかったです。
ここで教えてもらえなかったら、一生分からなかったような気がします。
一般的に、こういう疑問にぶつかった時って、
どうやって解決していくものなのでしょうか?
何かしらコツとかパターンとかあるのでしょうか?
はぁ...自信を無くしてきました…
0548デフォルトの名無しさんNGNG
>>546
どこかのメーリングリストで話題にあがってたけど、
確か結論は「BinaryReaderで一々読んでいく」だったと思う。
0549デフォルトの名無しさんNGNG
そりゃそうだべ。
クラスごとにシリアライザ書くべし。
0550デフォルトの名無しさんNGNG
>>547
>僕が勉強した本では、SelectedIndexはインデックス値を
>取得するものとしか書いていなかったのでかなり驚きです。
その本捨てようぜ。まあ冗談だけど、やっぱり本はとっかかりに過ぎない。
全ての事柄を薄っぺらい本なんかで解説できるはずもないんだから、
本だけで全てを学ぼうなんて無理。

>一般的に、こういう疑問にぶつかった時って、
>どうやって解決していくものなのでしょうか?
上で言ったように、本はとっかかりに過ぎないんだから、
新しいメソッドの存在を知ったらドキュメントを眺める。
ちゃんと書いてある。

>ListBox.SelectedIndex プロパティ
>ListBox 内で現在選択されている項目の 0 から始まるインデックス番号を取得または設定します。

取得または設定します。
~~~~~~~~~~~~~~~~~~~~~~~~
0551デフォルトの名無しさんNGNG
>>547
ヘルプに、そのプロパティが読み取り専用か、読み書き両用か書いてあるよ。
0552546NGNG
>>548, 549
なるほど、ありがとうございました。なんとかやってみます。
0553デフォルトの名無しさんNGNG
Borland C# Builderを使ってC#のプログラム書こうと思ってるんですが、
これにあった参考書を教えてください。
ペタペタやるのは初めてなもので。
0554デフォルトの名無しさんNGNG
>>553
C#Builderではじめる .NETプログラミング入門
http://www.shuwasystem.co.jp/cgi-bin/detail.cgi?isbn=4-7980-0668-8
0555デフォルトの名無しさんNGNG
>>554
ありがとうございます!
早速買ってみます。
0556540NGNG
>>550さん
>>551さん
レスありがとうございます。
勉強の仕方事態が分かっていないような感じですね。

>ListBox 内で現在選択されている項目の 0 から始まるインデックス番号を取得または設定します。
多分これを見てもSelectedIndexに数値を入れて選択状態にするとは
思い付かなかったと思います。(涙) この事実に凹んでしまいますが、
がんばってヘルプを眺めながらコツをつかむようにしたいと思います。

船を漕ぎ出したものの、海の大きさに黄昏れてしまいそうです。
0557デフォルトの名無しさんNGNG
DataGridコントロールのヘッダーの文字列だけを中央揃えにしたいのですが、独立して設定できないものでしょうか?
開発環境はVS.NET2003 C#です。
0558デフォルトの名無しさんNGNG
.NETアプリってクラックパッチあてられるの?
0559デフォルトの名無しさんNGNG
(゚Д゚)ハァ?
0560デフォルトの名無しさんNGNG
>>557
DataGridColumnStyleのAlignmentを変える
WinFormだとDataGrid→TableStyles→GridColumnStyles
にある目的のもののAlignmentプロパティ
0561198NGNG
いろいろいじってみたんだけどどこが悪いのか判りません・・・
ソースをアップするので教えてください。
ttp://up.isp.2ch.net/up/c21edefdccc0.zip
0562デフォルトの名無しさんNGNG
>>561
試してみたけど、ちゃんと動いたよ
0563デフォルトの名無しさんNGNG
>562
ということはサーバー側の問題なのかな・・・
0564デフォルトの名無しさんNGNG
C# で,テキストボックスに入力された文字列の,フリガナを取得したいので
すがやり方がさっぱりわかりません.ぐぐってみたのですが,それらしい
ソースを見つけられませんでした.

方法を御存知の方,ご教示くださいませんか?

希望はマネージドコードがいいのですが,アンマネージしか方法がないので
あれば,その方法でも助かります.よろしくお願いします.
0565デフォルトの名無しさんNGNG
こんにちはC#今はじめたばかりで何にもわかってないものなんですけど
親クラスのコンストラクタを呼び出すのってどうするのですか?
C++でいうと super() です
よろしくお願いします
0566565NGNG
ごめんなさい なんか勘違いしてました.
おまけに super() は Java ですね...
無駄に書き込みしてすみませんでした.
0567デフォルトの名無しさんNGNG
>>565
もうちょっと勉強してください
親クラスのコンストラクタは必ず呼び出されます
0568デフォルトの名無しさんNGNG
>557
>DataGridコントロールのヘッダーの文字列だけを中央揃えにしたいのですが
ヘッダーだけってのは、無理でないかな。ヘッダー名に空白でもつければ?
0569デフォルトの名無しさんNGNG
>>568
ありがとうございます。やはり簡単にはいかないのですね。(TT)
ヘッダー名に空白は、左詰の時はいいのですが、右詰の場合右端の空白は無視されてしまうようです。
MSの人たちは、誰もカッコ悪ーって思わなかったのかなぁ。
0570デフォルトの名無しさんNGNG
>>569
>>560 も読んでちょ。
0571デフォルトの名無しさんNGNG
>>567
お前一言多いよ。
どうして黙って教えてやれないんだ?
意地が悪い嫌われ者なのか?
0572デフォルトの名無しさんNGNG
>>570
ん、違ったか。失礼
0573最凶VB厨房NGNG
>>565
省略すると引数のないデフォルトコンストラクタが呼ばれる。
明示的に呼び出すには、
public コンストラクタの名前(string init):base(引数)//this()
{
//サブクラスのコンストラクタの内容。
}
ここでbase(引数)の部分をthis()にするとサブクラスのデフォルトコンストラクタを
呼び出せる。
ようだ。
0574デフォルトの名無しさんNGNG
C#でtimeGetTimeのような〜からのミリ秒を得るにはどのようにすれば良いのでしょうか?
DateTimeクラスから計算するということもできるのですが、何か他に
上手い手をご存知の方がいらっしゃいましたらお願い致します
0575デフォルトの名無しさんNGNG
いや無いよ。
timeGetTime関数つくればいいじゃん。
0576デフォルトの名無しさんNGNG
>>564
ぐぐったら出てきたよ。
ttp://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?forum=7&topic=7712

たまに記号が入っちゃうけど。
0577デフォルトの名無しさんNGNG
>>570
すみません。ありがとうございます。
560にあるGridColumnStylesを使用しても
HeaderのAlignmentは変更できないような気がしますが、私の知識不足かもしれません。
もし、できましたらもう少し教えていただけませんでしょうか?
サードパーティのアドインにはあるみたいなのですが・・・。m(__)m
0578574NGNG
>>575
ないんですか_| ̄|○
それではDateTimeから自分で作る事にしました
どうもありがとうございました
0579デフォルトの名無しさんNGNG
 クラスライブラリを作成している際、プリプロセッサ ディレクティブとでも言うのでしょうか
メソッドやプロパティ等に補足説明を記述していました。
このプロジェクトをビルドしてDLLを他のプロジェクトで参照した所、コーディング中に
先の補足説明が表示されませんでした。
 コンパイルの際に、バイナリには記述されないために参照先では表示されないと思うのですが、
やはり説明がないと不便で悲しいです。

この補足説明を表示させるにはどうすればよいのでしょうか?皆様のお知恵を拝借したいです。
0580名無しさん♯NGNG
うへー。pc2の過去ログ消滅だね。(´・ω・`)ショボーン

>>579
XMLドキュメントを出力して、DLLと同じディレクトリに置いておけばよいと思われ。
Hoge.dllならHoge.xmlという名前で。
0581名無しさん♯NGNG
あ、pc2をpc5にすれば過去スレも見れた。(・∀・)
早とちりスマソ。
0582デフォルトの名無しさんNGNG
579 名前:デフォルトの名無しさん 投稿日:04/03/25 13:55
MS ACCESSって、ADO.NETのバッチクエリ受け付けてくれるんだっけ?


580 名前:デフォルトの名無しさん 投稿日:04/03/25 16:13
C#(.NET)で、一番活発なメーリングリストってどこ?


581 名前:デフォルトの名無しさん 投稿日:04/03/25 16:16
メーリングリストというか
CodeProjectが最強。



582 名前:デフォルトの名無しさん 投稿日:04/03/25 16:21
かつて最強だったDevelopMentorも死に体に近いしな。


583 名前:デフォルトの名無しさん 投稿日:04/03/25 16:32
Finalizeメンバ関数とはどのようなものなのですか?


584 名前:デフォルトの名無しさん 投稿日:04/03/25 16:33
あとインターフェイスを多重継承することは出来るんですか?
0583デフォルトの名無しさんNGNG
585 名前:デフォルトの名無しさん 投稿日:04/03/25 17:26
VS 2003 .NET C# で開発を始めました。がんばって調べたのですが
どうしてもわからない事がありますのでお力を貸してください。

テキストボックスに入力される文字列の制限をする為に、
MaxLength を設定したのですが、MaxLength は、半角でも全角でも
文字数で制限してしまいます。

これを、文字数ではなくバイト数で制限をかける方法が
わからなくて困っています。

というのは、入力された値はその後、SQL Server に格納するのですが、
SQL Server の型が varchar(15) であれば、その部分にあたる
テキストボックスは、15バイトまで許可したい。
という事を行ないたい為です。
もしバイト数で制限する事ができない場合は、一般的にどのように
プログラムされているのでしょうか? よろしくお願いします。
0584デフォルトの名無しさんNGNG
586 名前:デフォルトの名無しさん 投稿日:04/03/25 18:24
>>585
入力された値に変更があったときのイベントを取得し、
そのときにバイト数のチェックを行う。
長ければ切るようにする。
っとやることは書いてみるが、
Java開発者なのでどのようなイベントか分からん。


587 名前:デフォルトの名無しさん 投稿日:04/03/25 21:27
>>585
System.Text.Encoding.GetEncoding("Shift_JIS").GetByteCount(this.textBox1.Text)

これで textBox1.Text を Shift_JIS エンコードするのに必要なバイト数が取得
できるよ

入力ごとにチェックするなら TextBox.TextChanged イベント。



588 名前:デフォルトの名無しさん 投稿日:04/03/25 21:31
>>583
Finalize は C# だと定義できないはず。
デストラクタを定義すると勝手に呼ばれる。

GC側の挙動を知りたいなら、ファイナライゼーションリストとか
リーチャブルキューを調べるか、『プログラミング .NET Framework』 に
詳しい。
0585デフォルトの名無しさんNGNG
589 名前:585 投稿日:04/03/25 21:53
>>587
ありがとうございます。入力された文字列のバイト数は頂いた
コードでバッチリなのですが、TextChanged の発生は、入力されてしまった
後なので、入力された文字を取り除かなければなりません。

そのやり方がわからないのと、クリップボードの内容を
コピペした場合、制限以上の文字数は切り取らないといけないのですが
そういった事も考慮しなくては、と思っています。

難しい。。。。アドバイスよろしくお願いします。


590 名前:587 投稿日:04/03/25 22:14
>>589
TextChanged イベントで、this.textBox1.Text = Encoding.GetString(
Encoding.GetBytes(this.textBox1.Text), 0, maxByteCount)
みたいな感じで文字数の切り取りはできますね。コピペにも耐えられます。

ただしキー入力のキャンセルをやらないと、テキストボックスの左端に
1文字入れると右端が1文字消えるという妙な挙動になります。

TextBox を継承したコントロールに作り込んでしまえば何とかなりそうですね。
0586デフォルトの名無しさんNGNG
591 名前:デフォルトの名無しさん 投稿日:04/03/25 22:32
プロパティにプロパティを変更できないってのは、どういう意味なんだろう・・・

592 名前:デフォルトの名無しさん 投稿日:04/03/25 22:32
「プロパティのプロパティ」だた

593 名前:デフォルトの名無しさん 投稿日:04/03/25 23:28
>>591
たとえばFormのSizeをいじりたいときに、
Form.Size.Height = 100;
と書いてはだめで、
Form.Size = new Size(0.100);
と書かなければならない。

これでわかるかな?

594 名前:デフォルトの名無しさん 投稿日:04/03/26 00:03
>>593
流れ見ないで反応するけどその例えは馬鹿みたいだな

595 名前:デフォルトの名無しさん 投稿日:04/03/26 01:19
>>594
流れがさっぱりわからないんだけど、
どんな例えなら馬鹿じゃないんだ?

596 名前:デフォルトの名無しさん 投稿日:04/03/26 01:36
>>595
ms-help://MS.VSCC.2003/MS.MSDNQTR.2003FEB.1041/cpref/html/frlrfSystemWindowsFormsControlClassSizeTopic.htm
横からだけどここ読めば馬鹿さが分かるのでは。
0587デフォルトの名無しさんNGNG
597 名前:デフォルトの名無しさん 投稿日:04/03/26 02:16
C# 2.0: Create Elegant Code with Anonymous Methods, Iterators, and Partial Classes -- MSDN Magazine, May 2004
http://msdn.microsoft.com/msdnmag/issues/04/05/C20/default.aspx

598 名前:デフォルトの名無しさん 投稿日:04/03/26 02:22
発売中
ttp://www.oreilly.co.jp/BOOK/progcsharp3v1/

599 名前:デフォルトの名無しさん 投稿日:04/03/26 03:46
>>596
Width とか Height を使えってこと?

600 名前:デフォルトの名無しさん 投稿日:04/03/26 03:48
>>596
ごめん、まじでわからん。
いや、…なんか見落としてるのか…俺?

601 名前:デフォルトの名無しさん 投稿日:04/03/26 03:50
うーん、>>593の書いてる事の意味って分かってるよね?

602 名前:デフォルトの名無しさん 投稿日:04/03/26 03:52
あ、600,601は595ね。

603 名前:デフォルトの名無しさん 投稿日:04/03/26 03:54
>>599
もしそうなら馬鹿はそっちだって言われそうだが…

604 名前:デフォルトの名無しさん 投稿日:04/03/26 03:59
なんどもすまん、そうか、MSDNの説明が悪いんだな。
よく読んでみたら確かにはっきり言って間違ってる。
0588デフォルトの名無しさんNGNG
605 名前:デフォルトの名無しさん 投稿日:04/03/26 04:55
何何?さっぱりわからん。何をもめてんだ?

606 名前:デフォルトの名無しさん 投稿日:04/03/26 06:10
プロパティってなんですか?getとかsetとか。

607 名前:デフォルトの名無しさん 投稿日:04/03/26 09:32
>>593はWigthがゼロになっているのが
そんなアホなって事じゃないのかな?

608 名前:594 投稿日:04/03/26 09:32
>>593
放置してスマン。

まず「Size」をいじりたい時と言い出して、「Height」をいじっているのが
意味が分からない。Heightをいじりたい時なら分かる。
それと正しい例として、カンマじゃなくてピリオドで書いているのがマヌケかな。

ちょっとツッコんだだけだよ。

609 名前:デフォルトの名無しさん 投稿日:04/03/26 09:39
>>597
英語スラスラ読めるようになりてえ・・・
これ全部読むのにどう頑張っても500時間はかかる・・・

610 名前:デフォルトの名無しさん 投稿日:04/03/26 10:27
>>609
プログラミング技術文書の頻出単語って大体決まってるから結構すぐ慣れるよ。
和訳とセットになってる文書(MSDN関連とか)を教材にがんがれ。
0589デフォルトの名無しさんNGNG
>>582-588
乙
0590デフォルトの名無しさんNGNG
C# で 文字列の ゼロパディングを行なう方法がわかりません。

"ABC" -> "0000ABC" のように指定桁になるまで 0 を埋めるのに
便利な関数があれば教えてください。
0591デフォルトの名無しさんNGNG
String.Format
でも調べろよ。ばか
0592デフォルトの名無しさんNGNG
>>590
String.PadLeft
0593デフォルトの名無しさんNGNG
C++で
HBITMAP hbmp = CreateCompatibleBitmap(hdcdisplay,16,16);
してRectangle()とかで描いたBITMAPから
ICONINFO ico;
ico.hbmColor=hbmp;
NOTIFYICONDATA hIcon=CreateIconIndirect(&ico);
Shell_NotifyIcon(NIM_ADD,&icdata);
としていたのをC#に移植したいのですがBITMAPからICONをにするほうほうが分かりません
0594593NGNG
× NOTIFYICONDATA hIcon=CreateIconIndirect(&ico);
○ NOTIFYICONDATA icdata;
  icdata.hIcon=hIcon=CreateIconIndirect(&ico);
0595デフォルトの名無しさんNGNG
>>593
どのレベルまで移植したいのかはともかくとして、
BitmapオブジェクトからIconオブジェクトなら
Icon icon = Icon.FromHandle(bitmap.GetHicon());
0596593NGNG
FromHandleがありましたか。見落としてました
ありがとうございます

593も594もミスだらけでだめぽ。バイトいってきます…
0597デフォルトの名無しさんNGNG
Passport 認証されている掲示板にデータをポストしたいのですが、
どうすればいいのでしょうか?
0598デフォルトの名無しさんNGNG
OnClickの使い方が皆目見当がつきません。
他のイベントが起きたときそこのイベント処理中でButtonインスタンスから
OnClickメソッドを実行すると基本クラスから呼び出せってエラーをコンパイラ
にはかれます。○| ̄|_
0599デフォルトの名無しさんNGNG
>>598
OnClickは呼ぶんじゃなくて呼ばれるもの。
0600デフォルトの名無しさんNGNG
>>599
そうだったんですか。
もう一度勉強しなおしてきます。
0601デフォルトの名無しさんNGNG
ちょっと相談なんだけど、ダイアログボックスを出したときに、
最初にフォーカスが当たるのがTextBoxやComboBoxだとキャレット消えるよね?
ツールバーやショートカットーキーで開くと何ともないけど、メニューの時だけ。
これってどうにか解決してる人いない?
0602デフォルトの名無しさんNGNG
>>601
私の所ではMainMenuからでもContextMenuからでも消えないようだが。
0603601NGNG
まじで?
ちょっと手順確認するよ。
メインフォーム以外にダイアログボックスのフォームを作る。
そこにキャレットを持つコントロールを置き、
タブ移動順で最初にフォーカスが当たるようにする。
あとはメインフォームからメニュークリックイベントで開く。
うちはOSが変わろうと言語が変わろうと絶対発生するんだけど環境依存かなぁ。
0604デフォルトの名無しさんNGNG
BorlandのC#BuilderとMicrosoftのVisualC#.NETってのは全く別物でしょうか?
前者をインストールしてC#始めようと思うのですが(ただだったので)、
入門書は後者のほうが多く、前者のものよりわかりやすい気がしたので、
前者の入門書を買おうと思ってるのですが、何かと不都合が生じますか?
入門書見た感じは似たような気がしたのですが、実際のところはどうでしょうか?
0605デフォルトの名無しさんNGNG
前者は後者のパクリなので、入門書に書いてあることはおおかた通ります。
0606デフォルトの名無しさんNGNG
>>604
前者のものよりわかりやすい気がして、どうして前者の入門書を買うの??
ってつっこみはさておき。
要は、内容次第だと思うが、初心者ならすなおに前者のものを買ったほうがいいと思うぞ。
0607デフォルトの名無しさんNGNG
 Win32APIの GetAsyncKeyState()関数
見たいなメソッドはc#では無いのでしょうか?
このメソッドは自分からキーボードの状態を調べに行くメソッドで、
通常のキーが押されてからイベントが発生して自分のプログラムが
対応するような形式とは逆のメソッドです。

これがあったら良いのですが、、、やっぱり無いですよね?
ヘルプでも全然見当たらないし、、、。そう言うメソッドは、、、。
0608デフォルトの名無しさんNGNG
G#相談室
0609デフォルトの名無しさんNGNG
WindowsアプリでTcp接続したサーバーからのデータ受信を別スレッドで行っています。
Windowsアプリは受信スレッド側にイベント登録して、データ到着イベントでデータ表示しようとしています。
受信スレッドで受け取ったデータはDataSetに格納して、DataGridのDataSourceにするのですが冷害が発生してしまいます。
例外の内容はスレッドがことなるコントロールを親にできませんでした。
しかたないので、Windowsフォーム側のタイマー処理でデータ到着を確認するようにして対応しました。
別スレッドで発生したデータをWindowsアプリで表示する場合には、どのようにするのが定石なんでしょうか?
0610デフォルトの名無しさんNGNG
>>607
能無しのボケが
C#ならそんなもん自分でつくれんだよ
0611デフォルトの名無しさんNGNG
>>605
>>606
どうもありがとうございます。
買いたいのは後者の間違いでした。
C#は初心者なので、おとなしく前者の買います。
0612デフォルトの名無しさんNGNG
>>609
Form.Invoke使え。
0613デフォルトの名無しさんNGNG
>>610
荒らさないでくださいね。
自分のスレに帰ってくださいね。
0614デフォルトの名無しさんNGNG
>>612
おおおっ!!
Form.Invokeでスレッド切り替えてFormを更新できるのか
感動したッス
0615デフォルトの名無しさんNGNG
>>607
そういうメソッドはP/Invokeで直接使う。
0616デフォルトの名無しさんNGNG
Form の Load イベントで処理するのと,コンストラクタで処理するのは
何か違いがありますか?

Form を new した後に,必ず show をするという前提があれば
Load でもコンストラクタでもいいような気がするのですが,

Form の Load イベントでやるべき事,ってどんな事がありますか?
0617デフォルトの名無しさんNGNG
>>616
ウィンドウハンドル(HWND)を使う処理。
コンストラクタの時点ではハンドルはNULL。
0618デフォルトの名無しさんNGNG
TextBoxに複数行(行数は任意)の文章を出力したいのですが、
改行文字を使っても改行されません。
MultiLineはTrueにしています。
どうすればいいのでしょうか。
0619最凶VB厨房NGNG
textBox1.Text="aaaa\r\nbbbbb\r\n";
改行できますが。
0620デフォルトの名無しさんNGNG
\r\n
0621デフォルトの名無しさんNGNG
>>619
>>620
改行は\r\nなんですか。
\nと思ってました。
どうもありがとうございました。
0622デフォルトの名無しさんNGNG
.exeはどうやって作るの?
0623デフォルトの名無しさんNGNG
>>622
拡張子に .exeを付ける。
0624デフォルトの名無しさんNGNG
>>622
Windowsアプリケーションとして作ればふつうにEXEになる。
0625デフォルトの名無しさんNGNG
>>624
ありがと!
どこにあるかがわかってなかった・・・。
フォルダ色々探してたら普通に見つかりました。
0626デフォルトの名無しさんNGNG
>>625
どういたしまして。
0627デフォルトの名無しさんNGNG
C#のおすすめの本ってなんでしょう?
0628デフォルトの名無しさんNGNG
>>627
誰にでも薦められる本となると、ちょっと難しいかもしれませんね。
大きな本屋さんへ行って実際に見比べて買ってみると良いんじゃないでしょうか?
0629デフォルトの名無しさんNGNG
いろいろ本屋見回ったんですが
当たり前なんでしょうけどみんな文法の解説なんですよね。
そうじゃなくてメモ帳を作るにはこのコントロール使って作るとか
そういう具体例?みたいなのを示した本ってないんですかね。
gotdotnetのサイトは知ってます。
0630デフォルトの名無しさんNGNG
フォームのKeyPreviewをtrueにしていても、
コンボボックスにフォーカス入るとフォームのキーイベントが発生しないんだけど、
これってバグ?
0631デフォルトの名無しさんNGNG
>>629
意外と、そういった本が無いんですよ。
ぼくもそういう本を探しているのですが・・・
ただ、フォームに配置してみれば大体の雰囲気がわかるので
あとはMSDN見れば何とかなりますからね。
逆に、今そういうのがあればヒットしそうなんですよね。
WEBにしろ本にしろ。
0632デフォルトの名無しさんNGNG
俺のところでは、コムボボックスのテキストが変ってもイベントが発生しない
0633デフォルトの名無しさんNGNG
イベント関係はどんでん返しが多いですよね。
よく悩まされます。
MSDNをくまなく見ないとわからないことが多いみたいです。
あっちにはこう書いてあったのにこっちには・・・なんてことが
結構あって苦しいです。
0634デフォルトの名無しさんNGNG
C#で作ったアプリって、WindowsならどのPCでも動かせるの?
0635デフォルトの名無しさんNGNG
>>634
すべてのPCで動くかという意味なら、無理です。
CE機で動くか?とか、98で動くか?とか言う意味なら
動きます。
0636デフォルトの名無しさんNGNG
>>634
.NET Frameworkが導入されている必要がある。
対象は Win98、Me、2000、XP、2003 Server。
0637デフォルトの名無しさんNGNG
>>635-636
ありがとうございました。
0638デフォルトの名無しさんNGNG
作ったアプリにマクロスクリプトを実装しようと思うんだけど、
DelphiのDMonkeyみたいにメジャーなものってある?
0639デフォルトの名無しさんNGNG
DMonkeyとは?
0640デフォルトの名無しさんNGNG
ぐふ・・・

DataViewって、DataSetで作成したリレーションは意味無くなっちゃうのね・・・
0641デフォルトの名無しさんNGNG
アセンブラに挫折した俺は、N88BASICでプログラミングに目覚めた。
Cになじめなかった俺は、VBに出会って一人前のプログラマになった。
新人はC++に苦戦していたが、C#に出会って目から鱗が落ちた。
0642デフォルトの名無しさんNGNG
DMonkey知らない?
http://www.google.com/search?num=50&hl=ja&lr=lang_ja&q=DMonkey
Delphiでアプリにマクロ機能つけるときはみんなこれ使うんだけどね。
C#っていうか、.NETでは何使ってるの?
0643デフォルトの名無しさんNGNG
textBoxに値を入力し、その値(int型)を処理に使いたいと思っています。
staticなメソッド内で使おうとしているのですが、textBoxの値をint型に変換しようとするとエラーが出ます。
どうすれば直るでしょうか。

public static int test()
{
int i = int.Parse(textBox.Text); // エラー
}

0644デフォルトの名無しさんNGNG
>>642
知らない

>>643
textBoxもstaticにする
0645デフォルトの名無しさんNGNG
System.Convert.ToInt64()
これ使え。多分いけるはずだ。
0646デフォルトの名無しさんNGNG
コンパイルのたびにノートンがdevenv.exeを警告してくるんですが、スクリプト遮断を
無効にするしかないんですか?
0647デフォルトの名無しさんNGNG
正直、VC#のデザイナを どこまで使って、自分でコードをどれだけ書くかっていうのが まずわからないんですけど。
Buttonを配列にしたらデザイナで 弄りにくいし。
メソッドやプロパティも手で書くのと、右クリックして追加するのと どう違うのかもわからない。
private string hoge;
public string Hoge { get{ return hoge; } set{ hoge = value; } }
とやる意味も分かりません。
わかりません。助けてください
0648デフォルトの名無しさんNGNG
>>647
> 正直、VC#のデザイナを どこまで使って、自分でコードをどれだけ書くかっていうのが まずわからないんですけど。
好きにすれば、としか言いようがない。

>  Buttonを配列にしたらデザイナで 弄りにくいし。
手でD&Dするのが面倒な数の規則的に整列したコントロールは配列で、とか。
Tagプロパティで制御するのも手(巧いことやらなきゃよけい面倒だろうが)。

>  メソッドやプロパティも手で書くのと、右クリックして追加するのと どう違うのかもわからない。
なにも違いはない。
私は一々ダイアログを使うより手で書いた方が早いから手で書いてるな。

>  private string hoge;
>  public string Hoge { get{ return hoge; } set{ hoge = value; } }
>  とやる意味も分かりません。
あとで弄るのが容易、とか。
(get {return hoge + "\r\n";}としたり、書き込み専用にしたり)
0649デフォルトの名無しさんNGNG
>>642
Windows Script Controlみたいなものか?
.NETでも同じようなのあると思うけど、
.NETが入っているということはC#コンパイラも入っているわけで、
アプリに自作マクロを登録→裏でコンパイル→コンパイルしたdllを使用
とかでもいいんじゃない?
0650デフォルトの名無しさんNGNG
ちょっと前のサーバー壊滅に伴って、
過去ログも全部消えてしまったのね、、、。
とほほ、、、。
いつか戻るのかな?
それは良いとして、マウスカーソルリソースファイルとか、
リソースを扱うのってどこら辺で勉強したら良いですかね?
ビットマップリソースとか、カーソルのグラフィックリソースとかは
全然簡単に扱えるのですが、
カーソルのクリック部分の位置をいじるのがどうもできないようなんですが、、、。
0651デフォルトの名無しさんNGNG
.NETの質問です。
System.Windows.Forms.TreeViewのTreeItemのチェック状態を不確定状態に設定するには
どうすればいいのでしょうか。(チェック付いているけど背景灰色のやつ)
現在はListViewを擬似的にTreeに見せかけて作っています。(ListViewの方では不確定状態にできる)
次期.NET FrameWorkにはそれらしいパラメータがあったんですが・・・。
なにか情報ありませんか?
0652デフォルトの名無しさんNGNG
あげてもあげても釣れない・・・
0653デフォルトの名無しさんNGNG
>>651
Tri-State TreeView Control
http://www.codeproject.com/cs/miscctrl/TriStateTreeViewSubmissio.asp
0654638NGNG
自分でも探してるけど、使えそうなモノはないねぇ。
0655デフォルトの名無しさんNGNG
Tips集とかで二重起動防止はよく見かけるのですが、
普通は二重起動防止した上で、既に起動してあるプロセスに情報送ります。
例えば起動パラメータにファイルを指定したらそれを起動してあるプロセスで開いたりとか。
どうやって通信したらいいですか?
0656デフォルトの名無しさんNGNG
.NETで作った sshクライアントが
マクロ機能持ってた記憶があるんだけど名前忘れちゃった・・
0657デフォルトの名無しさんNGNG
>>655
そこでリモーティングですよ……と思って調べてみたけどなんかさっぱりわかんねぇ。
自前でTcpClient/TcpListenerとBinaryFormatterでシリアライズ/デシリアライズするとか。


リモーティングの良い資料ってどっかにないっすか?
0658デフォルトの名無しさんNGNG
乱数生成のメソッドを作って、
そのメソッドをメインで100回呼び出します。
そのとき、発生される乱数を全部別にしたいのですが、
全部同じになってしまいます。
やり方を教えてください。
0659デフォルトの名無しさんNGNG
>>658
System.Random r = new System.Random();
for (int i = 0; i <100; i++)
   Console.WriteLine(r.Next());

でなにか問題があるって事?
0660デフォルトの名無しさんNGNG
>>658
全部同じになるのは乱数を出すメソッドを作り、
そのなかでいちいちRandomのインスタンスを作ってるからだろ。
シードとして渡してる時刻が同じなら返ってくる乱数も同じ。
乱数出すのに使ってるRandomはローカルではなく、staticかインスタンスフィールドに汁。

>そのとき、発生される乱数を全部別にしたいのですが、
ArrayListにはContains()という便利なメソッドがあり、C#にはwhileという便利な機能がある。
0661デフォルトの名無しさんNGNG
>>659
>>660
ありがとうございます。
>>660さんの指摘の通りでした。
RandomをStaticにしたらできました。

それにしても、C#は難しい。
Cのほうがよっぽど簡単な気がする。
0662デフォルトの名無しさんNGNG
>>661
>  それにしても、C#は難しい。
>  Cのほうがよっぽど簡単な気がする。

一度ちゃんとオブジェクト指向を身につけたらCには戻りたくなくなるよ。
0663デフォルトの名無しさんNGNG
>>662
そうなんですか。
確かにオブジェクト指向ってのが難しいです。
頑張ります。
0664デフォルトの名無しさんNGNG
>>646
ノートン対策してもまたすぐに違うところで警告でてくる。
結局ノートン使うのやめるのが一番早かった。
0665デフォルトの名無しさんNGNG
Windowsのファイル名やパス名の上限を知るにはどうしたらいいんでしょうか?
C++だと、stdlib.hに_MAX_FNAMEのような形で定義されていたんですが・・・・

それらしい名前空間を探ってみましたが、なかなか見つからなくて困っています。
0666デフォルトの名無しさんNGNG
>>646
>>664

devenv.exeを許可にしてあげたら二度と出てこないと思うが。
0667デフォルトの名無しさんNGNG
入力欄としてtextBoxを二つ用意します。
textBox1とtextBox2です。
プログラムを動かしたとき、最初にカーソルが乗っているのがtextBox1で、
タブキーを押したときにtextBox2にカーソルが切り替わります。
この順序を逆にするにはどうすればいいのでしょうか。
0668デフォルトの名無しさんNGNG
>>667
Control.TabIndex
0669デフォルトの名無しさんNGNG
>>668
物知りですね!
ありがとう!
0670デフォルトの名無しさんNGNG
物知りって・・・w
0671デフォルトの名無しさんNGNG
cygwin で使ってる ssh を c#プログラムから操作したいと考えてます。
sshのプロセスをスタートするところまではよいのですが、
パスワードの入力などがどうしてもプログラムからうまくいっていません。

Process.StandardInput.WriteLine(pass)をつかってパスワードを
入力しようと考えているのですが。。

そもそも、ssh起動後のパスワードの入力を促す文字列
「〜 password:」

が、Process.StandardOutputで読み取れません。
ログイン後の文字列は読み取れるのですが。。

c#プログラムからcygwinのsshを操作してログインさせる方法を
教えて下さい。よろしくお願いいたします。。
0672デフォルトの名無しさんNGNG
>>671
どうもsshの Password: は標準出力には出てないらしいな。
標準エラーか、あるいはコンソール直か。
標準エラーならがんばってリダイレクトすればいけるんじゃないか。
0673デフォルトの名無しさんNGNG
っと。Process.StandardErrorがちゃんとあった。
こっちからも取れないんだったらコンソール直指定だろうから
Password: を取り込むのは難しげかねぇ。
0674デフォルトの名無しさんNGNG
sshのソース見ると、/dev/ttyに書き出しているようでした。
ウィンドウズにどう移植されているか解りませんが、
標準入出力・エラー出力 以外の文字は取り込めないんでしょうか?
0675デフォルトの名無しさんNGNG
任意の文字列を指定された文字コード、指定されたバイト数でトリムし、なおかつ
マルチバイト文字が中途半端にならないようにするような関数を作るにはどうすればいい?
例)
文字列="ABCあいうえおかきく"

文字コード=UTF8、バイト数=16を指定されたときの出力="ABCあいうえ"
文字コード=UTF16、バイト数=16を指定されたときの出力="ABCあいうえお"
文字コード=SJIS、バイト数=16をしていされたときの出力="ABCあいうえおか"
0676デフォルトの名無しさんNGNG
C#版 STL ってありますか?
0677デフォルトの名無しさんNGNG
>>675
汎用的なのは無理じゃない?
Encoding.GetEncoding("Shift_jis").GetString(new byte[]{0x82})
が空文字列を返さない以上。

>>676
System.Collectionsとかで代用できるよ多分。
0678デフォルトの名無しさんNGNG
なにかPictureBoxに大きめの絵を貼り付け、
その上に小さめのPictureBoxを配置している場合で
小さい方に貼り付けた絵の余白を透明処理して
大きいほうの絵を表示させる、ってことができるでしょうか?
0679デフォルトの名無しさんNGNG
>>655
自分がやった時は、うまい手が見つからなかったから、APIのSendMessage
使って逃げた。
0680デフォルトの名無しさんNGNG
>>678
できるよ。
消したい絵のカラーを透明色に指定すれば良いんだよ。
透明色にするためのそう言うメソッドとかあるし。
0681655だけどNGNG
SendMessageでコマンドラインのstring送れますか?
プロセス違うとポインタがどこ指してるのか怪しくなると思うんだけど。
0682デフォルトの名無しさんNGNG
VSで造れるインストーラって、.NET Framework自体もインストールしてくれるの?
0683デフォルトの名無しさんNGNG
>>682
ttp://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/vsintro7/html/vxtskaddingnetframeworklaunchcondition.asp
0684デフォルトの名無しさんNGNG
C#で関数ポインタってどうやって取得すればいいんでしょう?


0685デフォルトの名無しさんNGNG
>>684
デリゲート
0686デフォルトの名無しさんNGNG
デリゲートでどうやってポインタを取得するんですか?
0687デフォルトの名無しさんNGNG
>>686
デリゲートがポインタそのもの。
で、具体的には何をやりたいのさ。
0688デフォルトの名無しさんNGNG
サブクラス化って奴をC#でやろうと思ったんですが
自前のプロシージャアドレスを渡す術が見つからないのです。
0689デフォルトの名無しさんNGNG
>>688
具体的という言葉の意味をしらんのか。
大体C#で必要なことなのかそれ。
0690デフォルトの名無しさんNGNG
ドラッグしている間だけ特定のコントロール上のみ移動可能、みたいな
カーソルの移動制限を付ける方法がなにかあるでしょうか?
0691デフォルトの名無しさんNGNG
>>689
えぇ?
だからサブクラス化するときにプロシージャのアドレス渡す必要があるっしょ?
サブクラス化って手法の意味しらんのか。
大体必要じゃないならきかんだろぼけ。
0692デフォルトの名無しさんNGNG
>>691
プロシージャのアドレスを渡す代わりに出利ゲートを渡す
プロシージャのアドレスを記憶しておく代わりに出利ゲートを記憶する
0693デフォルトの名無しさんNGNG
>>691
漏れが知ってるサブクラス化の手法とやらでは
プロシージャのアドレスを渡す必要はないのだが、
具体的にどんな状況でそれが
必要になるのかご高説賜れないだろうか。
0694デフォルトの名無しさんNGNG
二重起動を防止し、コマンドラインを既存プロセスに渡す(VB)
http://www.codeproject.com/vb/net/singleinstance.asp
0695679NGNG
>>681
送り先のウインドウハンドルは同じくAPIのFindWindowでクラス名とウイン
ドウタイトルを指定して特定します。クラス名はあらかじめGetClassName
で調べておきます。送信する文字列はStringBuilderに格納しておいて
SendMessage(FindWindow(クラス名,ウインドウタイトル),
    WM_SETTEXT,0,送信する文字列);
てな感じで文字列を送信することができるはずです。
0696デフォルトの名無しさんNGNG
VBで作ったActiveX DLLをC#のフォームから呼び出したら
「モードレスフォームは表示できません」って出てるんですが
どうやって回避すればよいのでしょうか?

C#のメインフォームはモードレスであることは確認したのですが…
0697デフォルトの名無しさんNGNG
SetWindowLongでプロシージャのアドレス再設定する以外に方法あるのか・・・
知らなかったよ。
でも質問の内容の答え知らないならスルーしてくれんだろうか。

元々
"C#"
で
"関数のアドレスを取得する方法はありませんか?"
って具体的に聞いてるのだけど。何に使うのかとか、C#での必要性とか語りはじめたら
長文になるっしょ・・・・

>>692
デリゲートのような機能を欲してるわけではないので。
でもThx.
0698デフォルトの名無しさんNGNG
>>690
WinAPI に ClipCursor なんてのがあるが、C# は知らん。
0699デフォルトの名無しさんNGNG
.NETにないコントロールをサブクラス化したいんだろ
0700693NGNG
>>697
>って具体的に聞いてるのだけど。何に使うのかとか、C#での必要性とか語りはじめたら
>長文になるっしょ・・・・
何に使うのかがわからんと答えようがないから聞かれてるんだろぼけ。
どんな目的のために"関数のアドレスを取得する"必要があるのかで手段が異なる。

>デリゲートのような機能を欲してるわけではないので。
デリゲートで事足りる。
APIではLONG型だからといって必ずしも、C#でも
Int32やIntPtr宣言する必要があるとは限らない。
アンマネージとの付き合い方を勉強しなおして
「サブクラス化するときにプロシージャのアドレス渡す必要がある」とか
言っちゃうその頑迷な頭をほぐしてこい。
0701デフォルトの名無しさんNGNG
Perlのpack,unpackのような処理をC#で行いたいのですが。
0702デフォルトの名無しさんNGNG
>>697
WndProc のオーバーライドね。

で、Delegate 宣言しておいてその関数を API に渡すことで、関数ポインタ取得の
代わりにするか、unsafe で & オペレータを使うか。
0703デフォルトの名無しさんNGNG
>>701
ようわからんが、
System.Text.Encoding.ASCII.GetString(byte[])
System.Text.Encoding.ASCII.GetBytes(string)
あたり?
ちなみに単に基数の変換なら(2進数>10進数とか)
System.Convert.ToString(int, int)
System.Convert.ToInt32(string, int)
0704名無しNGNG
教えてください。
WinXP ProにてC#を勉強したいと思ってます。
ASP.NET Webアプリケーションを作成しようとすると
ASP.NET Ver1.1が実行されてません というメッセージが出ます。
ASP。NETをダウンロードすればこの問題は解決しますか?
それとも他に何か問題があるんでしょうか?
0705デフォルトの名無しさんNGNG
分かっちゃいるが
お前の態度が
気に入らない
0706デフォルトの名無しさんNGNG
>>704
C#.net2003スタンダードが1万くらいだから、これ買えばよいと思う。
C#をやるなら、ASP.netより普通にWindows.Formから入ればいいと思うが。
Net1.1はWindowsUpdateから落とせるはず。
ASP.netはProのIISがインストールされてる必要あり。
0707デフォルトの名無しさんNGNG
ヘルプっちゅうのかMSDNっていうのか、
それだけdwonload出来るのでしゅか?
0708デフォルトの名無しさんNGNG
>>707
まず日本語と英語を勉強しようや。
0709デフォルトの名無しさんNGNG
>>702
しつこいんだはげ。でもさんくす。
>>702
あなたにもさんくす。
0710デフォルトの名無しさんNGNG
>>709
落ち着け。
0711ひろNGNG
メニューの開くからダイアログBOXを表示して
ファイルを開いて表示させたいのですが
openFileDialog1.ShowDialog();
と入力しダイアログBOXは表示出来たのですが
そのあとピクチャBOXに表示する処理が分かりません。
どなたかご指導願います;;
0712デフォルトの名無しさんNGNG
>>711
ここでお勉強。
ttp://ukamen.hp.infoseek.co.jp/CSmenu.htm
0713デフォルトの名無しさんNGNG
Bitmap bmp=new Bitmap(16,16);
Graphics g=Graphics.FromImage(bmp);
g.FillRectangle(Brushes.Black,0,0,16,16);
g.DrawLine(Pens.White,0,0,16,i++%16);// static int i=0;
IntPtr hico=bmp.GetHicon();
Icon ico=Icon.FromHandle(hico);
notifyIcon1.Icon=ico;
ico.Dispose();
DeleteObject(hico);
g.Dispose();
bmp.Dispose();

を繰り返しながらタスクモニタ見るとGDIオブジェクトもりもり消費するんですが
どこがまずいですか?
0714デフォルトの名無しさんNGNG
>>706
>>704が勉強する為だけならC#Builder Personalで
充分だと思ったりするんだがどうでしょ?

いやまぁ、.NET Framework SDKとメモ帳だけでも
いいんだろうけどね、15年前の俺なら兎も角、今と
なっては気の利いたRAD環境が無いと駄目だわ俺…
0715デフォルトの名無しさんNGNG
っていうか、C#って勉強以外に用途あったっけ?
0716デフォルトの名無しさんNGNG
>>715
っていうか、勉強って用途なのか笑った。
0717デフォルトの名無しさんNGNG
クラスのインスタンスが同一かどうかを調べる方法がわかりません。
Cだと、 if( &instance_A == &instance_B ) のようにアドレスを区別することで
区別できると思うのですが、C# ではどうやったらいいのでしょうか?
0718717NGNG
すいません。解決しますた。_| ̄|○
0719デフォルトの名無しさんNGNG
自己解決するんならはじめから書くなアホ
0720デフォルトの名無しさんNGNG
>>719はスルーよろ。
0721デフォルトの名無しさんNGNG
>>718
ちなみにReferenceEqualsと==どちらを使った?
0722デフォルトの名無しさんNGNG
ComboBoxのドロップダウンリスト部分の各行を一段下にずらす方法はないでしょうか?

と言うのも、オーナー描画でリスト部分をカラム分けしてみたんですが、
せっかくだからカラムヘッダーを表示させようとして、つまってしまいました。
0723デフォルトの名無しさんNGNG
Application.EnableVisualStyles();
を適用しているフォームに設定した
notifyIconのショートカットから
openFileDialogを呼び出すと
ヴィジュアルスタイルが適用されません。
仕様なのでしょうか?
何か対策方法があれば教えてください。
m(_._)m
0724デフォルトの名無しさんNGNG
マニフェスト書け
0725デフォルトの名無しさんNGNG
参考
ttp://dobon.net/vb/dotnet/control/xpstyle.html
0726723NGNG
>>723です。
レスありがとうございます。
無事マニフェストで解決できました。
m(_._)m
0727723NGNG
何回もすいません。
>>723で書いたように
notifyIconのショートカットから、
openFileDialogを呼び出すと、
モードレスっていうんですか?
Showメソッドで呼び出したような動きになります。
これも仕様なのでしょうか?

だとすれば実装しない方がいいのかなぁ…。
フォームのTopMostをtrueにしている場合つらいです。
0728デフォルトの名無しさんNGNG
>>727
Formの方にNotifyIcon絡みのプロパティがないことから分かるように、
内部的に別プロセスで動いてるからねー。
Invokeでも無理だし。
0729727NGNG
>>728さん、レスありがとうございます。
やはり仕様ですか。
>内部的に別プロセスで動いてるからねー。
なるほどです。
フォームを閉じた後でもアイコンだけ残っていることが
あるのですが、これもそう言った事からと納得しました。
0730デフォルトの名無しさんNGNG
そういうときはメインのフォームにパブリックメソッドを作り、
アイコン側からメソッドを呼ぶ。
メソッドがダイアログを開く。
とやればいいんじゃない?試してないけど。
0731デフォルトの名無しさんNGNG
C#でDLLを作る方法がわかりません。簡単な方法がありましたら
教えて下さい。お願いします。
0732デフォルトの名無しさんNGNG
>>730
VSのIDEを使ってる場合、たいていは
NotifyIconのイベントハンドラはFormのメソッドなわけだが。
0733デフォルトの名無しさんNGNG
>731
MSDNライブラリ見れ
0734727NGNG
>>730さん
>>732さんの言うようにopenMainMenu_Click(sender,e);と、
メインメニューの「開く」イベントハンドラを呼んでいます。
で、直接openFileDialog.ShowDialog();としてみたのですが、
動作は同じでした。
0735デフォルトの名無しさんNGNG
Form.Activateしてもだめ?
0736デフォルトの名無しさんNGNG
だめ
0737デフォルトの名無しさんNGNG
defineで定数切れないみたいですが、
なにか変わりになる方法ってありますか?
0738デフォルトの名無しさんNGNG
切るって何だ?

数値、enum、stringならconst
それ以外ならstaticフィールド
0739デフォルトの名無しさんNGNG
c# builderPersonal download edition を落としてきたんですが、
これで開発したアプリって他のPCでも起動できます?
0740デフォルトの名無しさんNGNG
>>739
他のPCに.NET Framework実行環境をインストールすれば
起動出来る。
0741デフォルトの名無しさんNGNG
>>733
ありがとうございます。MSDNを昨日は見てみたのですが
それらしきものが発見できず見落としていたようです。
0742デフォルトの名無しさんNGNG
>>740
おお、そうなんですか。
dobon.net/vb/dotnet/links/freedotnetide.html
に、作成したあらゆるものを配布できないようだとあったので、
混乱してしまいました。

ありがとうございました。
0743デフォルトの名無しさんNGNG
>>742
あ〜、確かにライセンスに

>※無償で提供するPersonalのダウンロード版では、商業開発および作成したプログラムの第三者への配布はできません。

って書いてるね。
じゃ無理だね。
0744デフォルトの名無しさんNGNG
tabControl1に動的に作ったTabPageを、マウスのmiddleボタンを押されたときにマウス座標のTabPageをRemoveしたいんですがやり方がわかりませんでした。
今は変わりに
tabControl1.TabPages.Remove(tabControl1.SelectedTab);
でやってるんですがマウス座標のTabPageをRemoveする方法を教えてほしいです。
お願いします。
0745デフォルトの名無しさんNGNG
>>734
openFileDialog.ShowDialog(this);は?
0746デフォルトの名無しさんNGNG
フォームやパネルの上を可動のコントロールの位置を
終了時に記憶させ、再起動時に終了時の位置に表示することができるでしょうか?
0747デフォルトの名無しさんNGNG
>>746
自前でiniファイルとかに終了時の設定を書き出し、起動時に読み込んで設定する。
レジストリに書き出しても良いし。
0748デフォルトの名無しさんNGNG
>>746
XMLでやりましょう

.NET Framework におけるアプリケーション設定の永続化
http://www.microsoft.com/japan/msdn/net/general/persistappsettnet.asp
0749デフォルトの名無しさんNGNG
C#の使い方がだいぶ分かってきたから、今C++やJavaと
速度比較(ベンチマーク)を取らせて見ている。

一次元配列や実数を扱う計算はC++の半分かそれ以上の
速度は出るみたいだが、整数を扱わせるとかなり遅い。
Javaよりはかなり速い。JITコンパイラが効いている。

メモリリークがないのはJava同様素晴らしいと感じた。
メモリはバカ喰いだがJavaとどっこいどっこいか。

一番困るのはunsafeでついついポインタに手を出したくなる
所。それからC++のコンテナやSTLに相当するものがまだまだ
貧弱だ。

Win32とのインターフェースが面倒くせー。しかし使えるだけ
増しとしよう。糞Javaに比べれば。

というわけで業務で使えと言われたら使うが、個人的には
あまり魅力を感じない。でもC++よりは使いやすいから初心者
はC++をパスしてC#に行くようになるんだろうなー。
0750デフォルトの名無しさんNGNG
しかしやはり正規表現クラスやStringTokenは魅力的だ。
C++だとboostを使わないとライブラリとしてリンクしないと
いけない。

但しManeged C++として.Netで使うならばC++でも利用で
きる。しかし速度は遅くなる。うーむ。
0751デフォルトの名無しさんNGNG
日記でつか?
0752デフォルトの名無しさんNGNG
このスレは日記に決めました。
0753デフォルトの名無しさんNGNG
>JITコンパイラが効
ってどういういみ?
0754デフォルトの名無しさんNGNG
>>753
ネイティブコードは速い、って意味じゃね
0755デフォルトの名無しさんNGNG
>>745さん
レスありがとうございます。ばっちりオッケーでした。
いまいち原理が分かっていなかったりするのですが、
これから調べてみます。ありがとうございました。
0756デフォルトの名無しさんNGNG
まあJAVAでもJITコンパイルしてるわけだが。
0757デフォルトの名無しさんNGNG
さーてRegexクラスでも使ってCGIを書くか。
0758デフォルトの名無しさんNGNG
このスレは日記に決めました。
0759デフォルトの名無しさんNGNG
ウィンドウズメッセージを処理する非表示ウィンドウって作れますか?
自分がやってみたところ、ShowしないとWndProcが働かない、Showすると邪魔って感じです。
0760デフォルトの名無しさんNGNG
>>755
モーダルで表示されてる状態でもNotifyIconから
コンテキストメニューが表示できたりしてないかい。

>>759
NativeWindowとか。
0761755NGNG
>>760さん
思いっきり表示してます。
しかも選択できてたりします。^^;;
完成したと思っていたのに、こんなところに穴があったとは…。
とりあえずNotifyIconに設定したショートカットメニューの
問題のある箇所のEnabledプロパティを設定して回避しました。
ありがとうございました。
0762デフォルトの名無しさんNGNG
C++では定数みたいなのを#define hoge 0x04 てな感じで書けたけど、C#では
public const int hoge=4; みたいに書くの? C#では#defineで値を入れられないって
MSDNに書いてあったんだけど。
0763デフォルトの名無しさんNGNG
まあそんなかんじ。
0764デフォルトの名無しさんNGNG
質問いいですか?たくさんあるんで申し訳ないですが

(1) C# じゃ C++ と enum の書式が違うんですか?
どうしてもエラーになってしまうんですが。
# C++はかじった程度なので、自分の方が間違っているに 300ペリカ賭けときますね

(2) プログラムバージョンってどうやって取得するんでしょうか?
「ヘルプ(H)/バージョン情報(V)...」 みたいなの作りたいです。
あと設定の方法も教えてもらえれば幸いです。

(3) .NETの言語は、中間言語にコンパイルしますが、
プログラム中に、何かにアクセスする時に必要になるようなパスワードを
書いておくときに、今までのC++などでのソフトと比べて 危なくないですか?
0765デフォルトの名無しさんNGNG
> (3) .NETの言語は、中間言語にコンパイルしますが、
> プログラム中に、何かにアクセスする時に必要になるようなパスワードを
> 書いておくときに、今までのC++などでのソフトと比べて 危なくないですか?
んなもん、中間言語は関係ない。普通に書いたらC++でも同じように危ない。
0766デフォルトの名無しさんNGNG
>>764
>  (1) C# じゃ C++ と enum の書式が違うんですか?
>  どうしてもエラーになってしまうんですが。
>  # C++はかじった程度なので、自分の方が間違っているに 300ペリカ賭けときますね

ならヘルプを見ろよと思うけれども一例。

enum Hoge { A = 1, B = 2, C = 4, D = 8}
Hoge Foo = Hoge.A;
0767デフォルトの名無しさんNGNG
>>764
> (2) プログラムバージョンってどうやって取得するんでしょうか?
> 「ヘルプ(H)/バージョン情報(V)...」 みたいなの作りたいです。
> あと設定の方法も教えてもらえれば幸いです。

AssemblyInfo.csのAssemblyVersionでバージョン設定。
Application.ProductVersionでバージョン取得。
0768デフォルトの名無しさんNGNG
スクリプト処理のために二つの画像を重ね合わせて
加減算させることってできますか?
0769デフォルトの名無しさんNGNG
少なくとも力任せに1ピクセルずつ加減算させることはできるな。
0770デフォルトの名無しさんNGNG
具体的には・・・?
0771デフォルトの名無しさんNGNG
public Color Bitmap.GetPixel(int x, int y);
public void Bitmap.SetPixel(int x. int y, Color color);
0772デフォルトの名無しさんNGNG
ArrayList に自前のオブジェクトを入れているのだけれど、ArrayList のインデクサが
Object 型しか返さないので ArrayList を継承した自前オブジェクトを作ったけど
インデクサがうまく出来ないよ。

MyClass myObject = new MyClass();
MyArrayList myList = new MyArrayList();

myList.Add( myObject );

Console.WriteLine( myList[ 0 ].MyProperty );

public class MyArrayList : ArrayList
{
public new MyClass this[ int index ]
{
get
{
return this[ index ];
}
}
}

これだとコンパイルは通るけどランタイムエラーで
System.StackOverflowException がでちゃうよ〜。
0773デフォルトの名無しさんNGNG
>>772
return (MyClass)base[index];
0774デフォルトの名無しさんNGNG
ImageList内に設定した画像の順番を入れ替えることって
できますか?
0775デフォルトの名無しさんNGNG
>>772
ArrayListでなくCollectionBase使おうか。
0776デフォルトの名無しさんNGNG
>>773
ありがとん。できました。

>>775
こっちもみてみます。
0777デフォルトの名無しさんNGNG
+=を使ってイベントハンドラを指定するのに、
動的にやっていると、二重に入ったりしませんか?
既に割り当てられていれば+=しない、みたいな書き方は出来ないですか?
0778デフォルトの名無しさんNGNG
ツールバーボタン上にカーソルを動かしたとき、
ステータスバーにヒントを出したいのですが、
どのボタンの上にいるか特定する方法を教えてください。
0779デフォルトの名無しさんNGNG
>>777
イベントは外部からは触らせないようにできてるのでおそらく無理。

そのイベントを持つクラスの側で、eventをaddとremoveとデリゲートで
チェックすればできるかもしらない。
0780デフォルトの名無しさんNGNG
>>778
MouseMoveとかMouseHoverで

foreach (ToolBarButton b in toolBar.Buttons)
{
   if (b.Rectangle.Contains(x, y))
      return b;
}
0781デフォルトの名無しさんNGNG
>>777
私も始めはイベントハンドラを動的に追加削除してたけど、
今は始めに全部追加してから各イベントハンドラ毎に
フラグを立て降ろしでチェックするようにしてる。
0782デフォルトの名無しさんNGNG
>>780
できました!感謝!
それにしても標準ツールバーは不便ですね。
0783デフォルトの名無しさんNGNG
MS製アプリは独自描画が多くてコモンコントロールなんて使わない。
自社で使う気のないツールバー、コモンダイアログ、メニューなど、.NETでは糞。
かといって自社で使う気のコントロールを.NETで公開しない。
せめてIDEを公開したらIDEと同じインターフェイスを作れるコントロールを用意して欲しい。
0784デフォルトの名無しさんNGNG
そんなの見た目だけじゃん
0785デフォルトの名無しさんNGNG
PropertyGridとか。
0786デフォルトの名無しさんNGNG
見た目はあきらめてオーナードロー、
しかし動作はあきらめてWin32というわけにはなぁ。
0787デフォルトの名無しさんNGNG
DoDragDrop中に右クリックでキャンセルしたいのですが、
どこに書けばいいですか?
0788デフォルトの名無しさんNGNG
mp3のタグ情報を得るにはどう書けばいいですか?
0789デフォルトの名無しさんNGNG
>>788
shell32.dllを使う方法が挙げられてるな。
ttp://www.vector.co.jp/vpack/filearea/data/writing/dic/name/index.html
0790デフォルトの名無しさんNGNG
っとリンクミス
ttp://www.codeproject.com/csharp/ShellID3TagReader.asp?target=id3
0791デフォルトの名無しさんNGNG
>>789
サンスク
0792デフォルトの名無しさんNGNG
タブコントロールの外観をフラットボタンにすると、
ダブルクリックイベントがダブルクリックで発生せず、
もう一回クリックすると発生します。
解決法を知っている方がいたら教えてください。
0793デフォルトの名無しさんNGNG
Panelの縁をPaintイベントで書き、その中のコントロールをDock=Fillにしたいのですが、
中のコントロールがPanelいっぱいに広がって、縁を上書きしてしまいます。
縁部分の内側までしか大きくならないように制限する方法を教えてください。
0794デフォルトの名無しさんNGNG
>>793
Panelの大きさが変化したら、その一回り小さい大きさを中のコントロールに設定しる。
もちろんDockはFillじゃだめ。
0795793NGNG
DockじゃなくてAnchorいじれってことですよね
0796デフォルトの名無しさんNGNG
このスレを見たことでC#厨のれべるの低さがよくわかりました。
0797793NGNG
>>794-795
それじゃダメです。
作ったコントロールを使う側が、使い方を考えなきゃいけないのはよくないからです。
0798デフォルトの名無しさんNGNG
>>793
DockPadding
0799デフォルトの名無しさんNGNG
文字列からHTMLタグを消去するメソッドって無いんでしょうか?
0800デフォルトの名無しさんNGNG
>799
そんなぁベンリなものは無い
HTMLタグも文字列ということを認識してくだはい
0801デフォルトの名無しさんNGNG
>>799
string result = System.Text.RegularExpressions.Regex.Replace(input, @"<[^>]+>", "");
0802デフォルトの名無しさんNGNG
>>800
無いならコード書くまでだが・・・
.netの売りってクラスライブラリの充実だと思ってたのに、
web系はあまり力入れてないのかな。
0803デフォルトの名無しさんNGNG
と思ったら、正規表現でこんな簡単に出来てしまうのか。
ありがとう801
0804デフォルトの名無しさんNGNG
>>799はPHP使い
0805デフォルトの名無しさんNGNG
>>799
Perlを使えばできるよ。
このスレにいるC#厨はアンチUNIXな無知な厨が多いから
このスレで聞いても無駄だよ。
0806デフォルトの名無しさんNGNG
>>801
HTMLにJavaScriptコードがかかれていると誤爆する。

>>802
HTMLパーサーを使えばいい。具体的にどれかは知らないがActiveXでもあるので.NETにもあるはず。
IEコンポーネント(WebBrowser)相当のオブジェクトとかで検索していけば見つかると思う。
DOMオブジェクトを取得してinnerTextプロパティとかで取得することになるのかな?
0807デフォルトの名無しさんNGNG
>>805
PerlスレでC#のでのやり方を聞かれたいの?w
どうせC#でも使える正規表現でのやり方か、
C#でも使えるHTMLパーサーでのやり方でしょ。
C#を知らないのならじゃま。帰った帰った。
0808デフォルトの名無しさんNGNG
C#にもJavaでPerlライクな処理をできるJakarta OROのC#版があればいいのにね
0809デフォルトの名無しさんNGNG
C#厨は短気だなあ・・・
0810デフォルトの名無しさんNGNG
>>808
あったとしてもHTMLにJavaScriptコードの不等号が含まれている場合は無理。
どうしてもほしけりゃPerl.NET経由でライブラリを作ればいい。
J#を使うという手もあるかもね。

>>809
は? どう見てもPerl厨はじゃまでしょ?
それを指摘したぐらいで・・・。どちらが短気なんだか。
0811デフォルトの名無しさんNGNG
>>807
連中の危機感の裏返しだ。
察してやれ。

危機なのは別にC#のせいじゃないけど。
0812デフォルトの名無しさんNGNG
>>805
> Perlを使えばできるよ。
で、君が言いたいPerlを使う場合のやり方は何?
もったいぶったのだから、C#使いが知らないような
すごいやり方を教えてくれるのだろう?
0813デフォルトの名無しさんNGNG
祝! 復活記念!

C♯って死滅しちゃうの? Part18
http://pc3.2ch.net/test/read.cgi/prog/1081738694/

C#スレ復活おめでどう。
0814デフォルトの名無しさんNGNG
マイクロソフトのTCO調査は本当に信用できるか?
http://pc5.2ch.net/test/read.cgi/tech/1081730818/

これを見ているとMSがJ2EEと.NETとを比較した例も信用できないんだよね。
かといって第三者の比較結果もないから、
間違いだと言い切れないところが悔しい所だけど。
0815デフォルトの名無しさんNGNG
コピペでスレを荒らすドトネト厨
0816デフォルトの名無しさんNGNG
PictureBoxのサイズをフォームみたいに
ドラッグアンドドロップで変更することってできますか?
0817デフォルトの名無しさんNGNG
>>816
標準では、DockやAnchorを使ってFormに追従させるしか無いんじゃないかな。
0818デフォルトの名無しさんNGNG
>>816
もちろん
0819デフォルトの名無しさんNGNG
>>814
ドトネト厨、そういうレスをコピペするなよ。
自分の仲間のスレを荒らしてどうするんだよ
0820デフォルトの名無しさんNGNG
ImageListの完全な複製の仕方を教えていただけませんか?
まんまイコールではだめみたいです。
0821デフォルトの名無しさんNGNG
ActiveDirectoryから現在ログインしているユーザの
ユーザIDを取るにはどうすればいいの?
0822デフォルトの名無しさんNGNG
例えば、ファイル名がHoge.bmpで、ユーザーの入力がHOGE.BMPだった場合、
ディスクにある名前と同じケースに修正する方法を教えてください。
0823デフォルトの名無しさんNGNG
>>822
状況がわからんが、両方ToLower()で比較して等しければuserInput = fileNameとしてやればいいんじゃないかね。
0824デフォルトの名無しさんNGNG
任意の整数の数列を打たせて実行した時、
三ケタごとにカンマを入れるようにしたいのですが
なにとぞ良い知恵をお願いします。ポインタでこんがらがってます。
0825デフォルトの名無しさんNGNG
>>824
int a = 2134;
Console.WriteLine(a.ToString("n0"));
0826デフォルトの名無しさんNGNG
>>821
Sambaを使う。
0827デフォルトの名無しさんNGNG
ビットマップやイメージオブジェクトの特定の色の部分を
別の色で置き換えしたいのですが、どうやればいいのでしょうか?
0828デフォルトの名無しさんNGNG
>>827
BitmapならSetPixelで。
0829デフォルトの名無しさんNGNG
お礼がないのは解決してないから?
0830デフォルトの名無しさんNGNG
さあねえ
0831デフォルトの名無しさんNGNG
>>826
玄箱を買えば解決するよ。
0832デフォルトの名無しさんNGNG
複数のオブジェクトを連続でクリックして、
その脇に何番目にクリックしたかの数字を
ツールチップみたいにちっこく表示させたいのですが、
何かいい方法がないでしょうか・・・?
0833デフォルトの名無しさんNGNG
DataGridコントロールで、行数が増えた時に
自動的に縦スクロールバーが登場してくれる
ようにしたいんですがどうしたらいいんでしょう?
0834デフォルトの名無しさんNGNG
>>832
動的にLabelを作るとか。
Labelを継承した適当なコントロールの方が良いかな。
タイマを内蔵して一定時間後に自動的に消えるコントロールとか。

>>833
System.Windows.Forms.DataGridなのかSystem.Web.UI.WebControls.DataGridなのかどっちだ。
0835833NGNG
>>834
System.Windows.Forms.DataGridです、スマソ。
0836デフォルトの名無しさんNGNG
>>835
デフォルトでスクロールバーが出るはずだけど?
つかスクロールバーを出さなくさせることこそできるのか?
0837デフォルトの名無しさんNGNG
ttp://dobon.net/vb/dotnet/graphics/scrollimage.html
でスクロールバーを付けて画像を表示しました。
そこでスクロールバーを触らずに
表示されてる領域を動かしたいんだけど
どうすればいい?
0838デフォルトの名無しさんNGNG
>>837
Panel.AutoScrollPosition
0839デフォルトの名無しさんNGNG
System.Windows.Forms.DataGridのセルのひとつを
編集不可にしたり、色を変えたりしたいのですが
どうすればいいんでしょうか?
0840デフォルトの名無しさんNGNG
>>839
DataGridTextBoxColumnを継承したクラスを作って、
CommitやPaintTextをオーバーライドして希望の処理を追加。
あとはDataGridTableStyleクラスの解説を良く読んでDataGridにスタイル設定。
0841 NGNG
エクスプローラのように、ファイルの拡張子から
種類を取得するにはどうしたらいいですか?

例)
ビットマップ イメージ
Microsoft Word 文書
0842デフォルトの名無しさんNGNG
>>841
public static void Main(string[] args) {
   const uint SHGFI_TYPENAME = 0x400U;
   SHFILEINFO info;
   string path = @"c:\test.doc";
   if (SHGetFileInfo(path, 0, out info, (uint)Marshal.SizeOf(typeof(SHFILEINFO)), SHGFI_TYPENAME) == IntPtr.Zero)
      w("error");
   else
      Console.WriteLine(info.szTypeName);
}

[DllImport("shell32.dll", CharSet=CharSet.Auto)]
public static extern IntPtr SHGetFileInfo(string path, int attributes, out SHFILEINFO info, uint infoSize, uint flags);

[StructLayout (LayoutKind.Sequential, CharSet=CharSet.Auto)]
public struct SHFILEINFO {
   public IntPtr hIcon;
   public int iIcon;
   public int dwAttributes;
   [MarshalAs(UnmanagedType.ByValTStr, SizeConst=260)]
   public string szDisplayName;
   [MarshalAs(UnmanagedType.ByValTStr, SizeConst=80)]
   public string szTypeName;
}

ところで個人的にはWin32APIの構造体とかのメンバの表記をそのまま書くのは嫌いだ。
szTypeNameじゃなくてTypeNameと書きたい。
0843デフォルトの名無しさんNGNG
おっと、
else
   w("error");
は
else
   Console.WriteLine("error");
だな。
0844 NGNG
>>842
サンクス!
0845デフォルトの名無しさんNGNG
別のスレで質問してみたんだけど
なんとなくスレ違いな気がしたのでこっちで質問です
マルチポストになってしまって申し訳ない

C#で書いたアプリを配布する時のインストーラなんだけど
アプリのインストール時に
MDACと.NET Frameworkも自動でインストールできるようにしたいんだけど
やり方わかる人居ない?
.NET Frameworkは何とかできるようになったんだけど...
マージモジュールが何たらって書いてあるんだけどいまいち良くわからんです
0846デフォルトの名無しさんNGNG
>>845
ダウンロードの詳細 : Visual Studio .NET 2003 Bootstrapper
http://www.microsoft.com/downloads/details.aspx?FamilyID=627921a0-d9e7-43d6-a293-72f9c370bd19&displaylang=ja
0847デフォルトの名無しさんNGNG
>>842
>szTypeNameじゃなくてTypeNameと書きたい。
同意。

つか、.NETで使うなら同じ名前にする必要はない気がする
0848デフォルトの名無しさんNGNG
同じ名前の構造体を作るが、別にプロパティで簡単な名前を付け、
マーシャリングを行うgetとsetを書く。
0849デフォルトの名無しさんNGNG
>>848
それ(・∀・)イイ!
0850デフォルトの名無しさんNGNG
tryの中でreturnしちゃった場合、finallyはどうなりますか?
catchの中でreturnしちゃった場合、finallyはどうなりますか?
0851デフォルトの名無しさんNGNG
>>850
必ず(returnする前に)実行される。
0852デフォルトの名無しさんNGNG
チェックボックスと、それに対応するテキストボックスがあり、
チェックボックスのCheckedプロパティの状態と
対応するテキストボックスをEnableプロパティを同期したいのです。

しかし上のような例のものが大量にある場合、
各チェックボックスのイベントで
this.TextBox2.Enable = this.CheckBox2.Checked;
とずらずら書いていくのは大変です。

共通のメソッドで、どのチェックボックスの
Checkedプロパティが変化したのかを判断し、
対応するテキストボックスのEnableプロパティに反映させるには
どういった手法をとれば良いのでしょうか?
0853デフォルトの名無しさんNGNG
初心者ならsenderかTagだろうな。
もうちょっとがんばればIExtenderProviderで。
0854デフォルトの名無しさんNGNG
>>852
senderで呼び出したオブジェクトを特定して、後はtagを上手に使えばOK
TextBoxやCheckBoxを配列にしてその添え字にtagを利用する。
0855デフォルトの名無しさんNGNG
>>854
senderを使えばTagの出番は無いような。
0856850NGNG
わかりません。

try
{
...
return Hoge(fileStream);
}
finally
{
fileStream.Close();
}

ストリームを読むHoge()を呼んでreturnする場合、
Hoge()を実行してからfinallyに逝きますか?それともfinallyが先ですか?
0857デフォルトの名無しさんNGNG
>>856
それくらい自分で試そうよ。
0858デフォルトの名無しさんNGNG
>>856
using System;
public class Test {
  static int test2() {
    Console.WriteLine("test2");
    return 2;
  }
  static int test1() {
    try {
      Console.WriteLine("try");
      return test2();
    } catch (Exception) {
    } finally {
      Console.WriteLine("finally");
    }
    return 5;
  }
  static void Main() {
    Console.WriteLine(test1());
  }
}
---- 実行結果 ----
try
test2
finally
2
0859850NGNG
大変参考になりました。
0860845NGNG
>>846
ありがとう
何とか出来そうな気がしてやってみてるんだけど...
やっぱり良くわからんです

MDACのインストールに関しては
起動条件を設定して
インストール時にメッセージを出して
ユーザにインストールを促す方法と
必要であれば自動でインストールしてしまう方法の
2通りのやり方があるってことなのかな?

できれば自動でインストールできるようにしたいのだけど
可能ならもう少し教えてもらえませんか?
0861デフォルトの名無しさんNGNG
昨日DataGridコントロールについて質問した者です。
スクロールバーの問題は解決したのですが、
ユーザーがグリッドに入力したものをプログラム内で
取得したいのですが、dataGrid[1,1]のようにしたところ
InvalidOperationException例外が発生して、DataTableに
連結されていないDataGridから読み取ることはできないという
エラーメッセージが発生したのですが、これの原因はなんでしょう?
0862デフォルトの名無しさんNGNG
Crystal Reportsってメジャーなソフトなのかと思ったら、解説サイトとか極端に少ないね。
別に、国内ではメジャーでも無いのかね・・・
0863デフォルトの名無しさんNGNG
>>862
それなりにメジャーでは在ると思うけど
VBとかにも昔からバンドルされてたしね
ただ、自分の周りでは使ってる人はほとんどいなかったけどね
最近の、それも製品版はどうなのかわからないけど
昔のバンドルされてた奴はカナリ使いにくかった
0864デフォルトの名無しさんNGNG
VSでコンパイルして300KBくらいのバイナリが出来るのに、
コマンドラインでcscを使うと50KBのバイナリになりました。
できあがったモノはまったく同じように動作しているようです。
一体何がこのようなサイズ差をもたらしたんですか?
オプションはこれだけです。
/t:library
/out:bin\make\foo.dll
/optimize+
*.cs
0865デフォルトの名無しさんNGNG
>>862
自分でコード書いたほうが、結局見通しがよくて好きなのだが・・・。
Crystalに限らず帳票ツール使っている?
0866デフォルトの名無しさんNGNG
>>865
帳票ツールはWingReportが結構お気に入り
基本的に単票形式のツールなので
自由度が高い
全部自分でコードを書くとなると罫線とかのデザイン部分は
結構(カナリ)負荷が大きくなるんだけど
その部分だけはツールに任せるみたいな感じで使えるのが良いと思う

まぁ好みの問題かもしれないけどね
0867デフォルトの名無しさんNGNG
onPaintイベントの無いコントロール(ツールバーやメインメニュー)の
外観を独自に描写するにはどうすればいいでしょうか?
0868デフォルトの名無しさんNGNG
TextBoxなどで、文字カーソルを挿入から上書き状態に変える方法ってないですかね。
0869デフォルトの名無しさんNGNG
>>867
MainMenuやContextMenuは
MenuItemの派生クラスでOwnerDrawをtrueにした上でOnMeasureItem&OnDrawItemをオーバーライド。

ToolBarは普通にControlから派生してるけど?
0870デフォルトの名無しさんNGNG
>>869
ありがとうございます!
早速試してみます。
0871デフォルトの名無しさんNGNG
クラスウィザードにイベントの追加がないんですが、どうやって書くんですか?
0872デフォルトの名無しさんNGNG
>>871
もちろん手で書く。
一々クラスウィザード使うだなんて非効率な。
0873デフォルトの名無しさんNGNG
指定したパスがファイルなのフォルダなのか区別するメソッドを持つクラスってありますかね?
例えば

string path1 = @"C:\Windows";

if (Hoge.IsFile(path) == true)
{
 MessageBox.Show(paht + "はファイルです");
}
else
{
 MessageBox.Show(paht + "はフォルダです");
}

みたいな感じで。この場合は「フォルダです」表示になりますね。
URLクラスに"IsFile"というメソッドがあるんですが、これは違うみたいです。
0874デフォルトの名無しさんNGNG
>>873
File.Exists()とDirectory.Exists()使うしか無いと思う。
まあFileクラスやDirectoryクラスのメソッドでtry-catchでもいいけど。
0875デフォルトの名無しさんNGNG
>>873
System.IOのFileInfoクラスのAttributesプロパティで
FileAttributes.Directoryの値を持っているか

System.IOのFileクラスのGetAttributesプロパティで
得られたFileAttributesがFileAttributes.Directoryの値を
持っているか
0876873NGNG
ありがとうございます。
AttributesでOKでした。

Attributesから値を取り出すには&でマスクする必要があるんですね。
最初はそれが分からず、混乱してしまいました。
0877デフォルトの名無しさんNGNG
右クリからのコンテキストメニューのイベントで、
メニュー項目でなく右クリックしたオブジェクトの情報をsenderにして
発生させることはできますか?
0878デフォルトの名無しさんNGNG
>>877
それはsenderの役目ではないので、
((ListView)(((MenuItem)sender).GetContextMenu.SourceControl)).SelectedItem
などで取得しましょう。
0879デフォルトの名無しさんNGNG
> ((ListView)(((MenuItem)sender).GetContextMenu.SourceControl)).SelectedItem

あ、ちょっと間違い。
((ListView)(((MenuItem)sender).GetContextMenu().SourceControl)).SelectedItems[0]
0880デフォルトの名無しさんNGNG
メニューをオーナードローしているのですが、
サブメニューの三角マークを勝手に描画されて困っています。
コレを描画させない方法を教えてください。
0881デフォルトの名無しさんNGNG
>>880
少なくともManagedの範囲じゃ無理だな。
多分Win32APIでも無理じゃないかな。
0882デフォルトの名無しさんNGNG
>878
あんがと(*^ー゚)ノ
0883デフォルトの名無しさんNGNG
参照しているアセンブリのバージョンが違っているとき、
必要としているアセンブリとそのバージョン一覧を表示死体のですが、
そのアセンブリも開発中なのでバージョンアップが頻繁で、
リテラルで持つのは抵抗があります。
なんとか、そういう情報をズバっと取得できないかな?
0884デフォルトの名無しさんNGNG
現在スマートクライアントを作成しています。
そのなかでDrag&Dropをしたいのですが、コントロールの
AllowDropプロパティをtrueにすると、それだけでエラーが
出てしまいます。
これをうまく回避する方法はないでしょうか。
あと、Focusメソッドでコントロールにフォーカスを渡したときも
実行時エラーとなってしまいます。

スマートクライアントって凄いですね。でもこのエラーは
よくわかりません・・・

どなたか解決方法をお教えください。
よろしくお願いいたします。
0885デフォルトの名無しさんNGNG
>>883
いいやり方は思いつかないので原始的に。

アセンブリ名でファイル検索、
見つかったらアセンブリかどうかをチェックしてリフレクションで取得。

ちなみにアセンブリのチェックについてはここ参照。
http://blogs.msdn.com/suzcook/archive/2004/03/17/91715.aspx
0886885NGNG
必要なアセンブリ一覧は Assembly.GetReferencedAssemblies で。
0887名無しさん♯NGNG
こりゃあすげぇわ。( ゚д゚)ポカーン

http://pinvoke.net/
0888デフォルトの名無しさんNGNG
フォームの背景に画像を使ってるんですが、
メニューバーの部分だけ背景画像が表示されません。
メニューバーの背景を透過、あるいは描写するにはどうしたらよいでしょうか?
オーナードローするしかないでしょうか?
0889デフォルトの名無しさんNGNG
>>887
怪しげなサイトかと思ったら、ほんとにすごいですね。
英語なのでどうでも良いんですが。
0890デフォルトの名無しさんNGNG
>>887
日本語で書き込んでもいいのでしょうか?
0891デフォルトの名無しさんNGNG
>>890
UTF-8だから書けるね。
0892デフォルトの名無しさんNGNG
親フォーム ParentForm において、

ChildForm c = new ChildForm();
c.Show();

のように子フォームを表示しています。MDI というわけではないです。

で、その子フォーム(ChildForm c) が閉じられた時に、閉じられた事を
親フォームが関知して処理を行ないたいのですが、どのようにしたら実現できるのか
方法がわかりません。

delegate や event など調べてみましたがどう使っていいのか
いまいち理解できませんでした。

上記機能を実現する方法をアドバイス頂けないでしょうか?
0893デフォルトの名無しさんNGNG
>>892
c.Closed += new EventHandler(ChildFormClosed);
として、
private void ChildFormClosed(object sender, EventArgs e) {
}
0894892NGNG
>>893 できました。
なんか自分が情けなくなってきました(w
ありがとうございました。
0895デフォルトの名無しさんNGNG
データベースに連結しているフォームで、レコードが更新されるときに
入力値の検証をさせるのって意外と難しいですね。
タイミングばっちりのイベントはあるんだけど、それをキャンセルさせる手段が無い・・・。
0896デフォルトの名無しさんNGNG
>>895
ん?ValidatingイベントでCancelEventArgsが飛んで来ない?
0897デフォルトの名無しさんNGNG
リストボックスのアイテムにコンボボックスを埋め込むにはどうしたらいいのでしょうか?
0898デフォルトの名無しさんNGNG
こんにちは。

マルチディスプレイ用スクリーンセーバーを作成したいのですが、
マルチディスプレイ以前にスクリーンセーバーの作り方が全く
解りません←おぃ

C#でスクリーンセーバーを作るためのヒントとなるようなサイトを
ご存知の方がいましたらお教えください。
よろしくお願いいたします。

あ、あとマルチディスプレイについても・・・(汗

できたら必ずフリーで公開いたしまする・・・
0899デフォルトの名無しさんNGNG
実行ファイルの拡張子EXEをSCRに変えるだけ。
ブツはそれぞれ好きなように実装しろよ。
0900デフォルトの名無しさんNGNG
>>898
System.Windows.Forms.Screen
0901デフォルトの名無しさんNGNG
>899

どちらかといえば実装の方でサンプル等あれば助かります。
(プレビュー部分とか起動状態とか・・・)

>900

感謝です!
なるほど、それぞれのスクリーンと、合成したスクリーンが得られるんですね。
マルチディスプレイの設定を色々変えて試してみます。

0902デフォルトの名無しさんNGNG
あぅ、合成したスクリーンではありませんでした。
相対座標ですね。
ふむふむ・・
0903デフォルトの名無しさんNGNG
自らが、/debugオプションでビルドされたかどうかを判断し、
実行時の動作を変えたいのですが、どうやって知るのがいいのでしょうか?
0904デフォルトの名無しさんNGNG
>>903

#if DEBUG
MessageBox.Show("これはデバッグ版です");
#endif

とか
0905デフォルトの名無しさんNGNG
因みにcsc.exeでコンパイルする場合/d:DEBUGオプションが必要。
つか/debugかどうかじゃなくて/d:DEBUGかどうかを判断するんだけど。
0906903NGNG
いろいろ調べたんですが、デバッグ版かどうかではなく、
デバッガがつながっているかで判断させることにしました。
ありがとうございました。
0907デフォルトの名無しさんNGNG
Visual Stuido .NET 2003 + C# です.

とあるクラスに

public enum Fields
{
// 略
}

とあり,クラスライブラリとして dll を作成しています.

その dll を別のプロジェクトで参照設定しているのですが,
オブジェクトブラウザやインテリセンスで Fields があらわれません.
インテリセンスを無視してコードを書くと Fields を参照している部分も
問題なくコンパイルが通ります.

で,参照設定において該当 dll のローカルコピー の true/false をカチカチ
きりかえたりすると,その後,見えなかった Fields などがインテリセンス
やオブジェクトブラウザで見えるようになります.

ただ,このプロジェクトを一度閉じ,再度開くと,やはり Fields などが
見えてきません.

これは何に原因があるか,解決方法があれば,
御存知のかた,教えて頂けないでしょうか?
0908デフォルトの名無しさんNGNG
NUnit使ってる人いる?
ここに使い方載ってるけど上から4つめのスクリーンショットが
あるとこに書いてある
-----------------------------------------------------------------
ServerAppの名前をダブルクリックし、選択されたコンポーネントの部分に
ServerAppの名前があることを確認してから[OK]ボタンをクリックする。
-----------------------------------------------------------------
ってのができん。
アセンブリを参照するにはdll拡張子を指定する必要があるとかダイアログが出る。
どうしたらいいんだ・・・
0909デフォルトの名無しさんNGNG
>>908
VSの制限で、参照設定できるManagedProjectはDLLのみである、らしい。
どうにもヘルプの記述が見当たらないんだが。
//もちろんcsc.exeでコンパイルするときに/r:hoge.exeは有効。
だからServerAppをクラスライブラリにしてやればいい、んだが。

なんか解決策でもあるのかね。
0910908NGNG
んー、それだと、実際アプリを動かそうと思ったら
dllを動かすためのプロジェクトも作ることになるよね・・・
そもそも、このサイトでは、普通のアプリプロジェクトで
できるような風に書いてあるけど、
書いたヤツちゃんと試したのかと問いつめたい。
0911デフォルトの名無しさんNGNG
実際アプリを動かすときにプロジェクトのプロパティ、出力の種類をいじってやればなんとかなることはなる。
0912908NGNG
それやった覚えあるような・・・
でも、テストとアプリの実行繰り返す度に毎回やらないとダメじゃなかったけ?
0913デフォルトの名無しさんNGNG
DateTimeに、文字列なり、数値なり、それが日付として正しい値かどうか調べるメソッドって無いですよね?
コンストラクタやパースで例外ひろうやり方だと、遅くって・・・
0914デフォルトの名無しさんNGNG
>>913
ホント例外って遅いよね。
メソッドないなら自力で実装すれば?
0915デフォルトの名無しさんNGNG
#がどうのというよりオブジェクト指向の質問なんだが、
例えばフォームを継承したビュークラスと実際に計算を
行う計算クラスを作った場合、入力された値のフォーマットチェックとか
は普通どっちのクラスでするものなんだ?
0916デフォルトの名無しさんNGNG
>>915
通常は計算クラスにのみ記述する。
その理由はその計算クラスを別の場面で再利用することを考えてみれば分かると思う。

ちなみに数値入力のみ可能なテキストボックスとかの場合では
「ビュー」でもチェックしていると考えることも出来る。

結局のところ、まずはドキュメントクラスでチェックしろということです。
0917デフォルトの名無しさんNGNG
>>915
計算って数値計算のこと?
だったら計算機能のインターフェイスは数値型になるだろうから、
文字列のフォーマット云々のチェックはフォーム側になる。
0918デフォルトの名無しさんNGNG
>>913
Regexでなんとかならんかな。例外よりは速いと思うが。
0919デフォルトの名無しさんNGNG
しょーもない質問でスマソ
C++で作ったクラスをC#から呼び出すにはどうすればいいのでしょうか?
ちなみにマネージドC++とかは使ってなく、STLのみを使用しています。
0920デフォルトの名無しさんNGNG
enum ShortCutを全部ComboBoxに並べて選ばせたいんだけど、
設計時ではなく、実行時にリストアップする方法を教えてください。
0921デフォルトの名無しさんNGNG
DLLなら、「DllImportAttribute」つかえばいいよ。
詳しくはMSDNみればのってるよ。
0922デフォルトの名無しさんNGNG
>>920
Shortut[] shortcuts = (Shortcut[])Enum.GetValues(typrof(Shortcut));
0923デフォルトの名無しさんNGNG
>>922
こういうの見るとC#最高だなと思う。
JAVAとかでもできるんだっけ?
0924デフォルトの名無しさんNGNG
Javaにはそもそもenumがない。
あっ。パクったんだっけ?
0925デフォルトの名無しさんNGNG
すいません、上でマルチモニタについて質問した者です。
Screen.AllScreensですべてのモニタ情報が得られるのですが、
一個多く得られてしまいます。
これって何を表しているのでしょうか。
初心者質問で申し訳ありませんが、どなたかお教えください。
よろしくお願いいたします。
0926デフォルトの名無しさんNGNG
>>925
私のシングルモニタな環境では1つしか返ってこないが。

ttp://www.atmarkit.co.jp/fdotnet/dotnettips/003screen/screen.html
飽くまで論理的な云々って話も載ってるな。
0927デフォルトの名無しさんNGNG
二つの個々のモニタと両方を合わせた広大な一つの仮想モニタとか?
モニタを二つに区別して考える必要が無い場合とかを考えるとありかも。
0928920NGNG
>>922さん、できました。あとはKeysにしてstringにしておなかいっぱいでした。
ありがとうございます!
0929864NGNG
VSでデバッグして、リリース版をコマンドラインで、という感じでいいんでしょうかね。
なにかわかる方よろしくお願いします。
0930デフォルトの名無しさんNGNG
>>929
vsのコード最適化はデフォでDebugでFalse、ReleaseでTrueだから
0931864NGNG
Releaseビルドに比べて圧倒的に小さいということだったんですが、
説明不足ですみません。
やっぱりVS持ってるのにわざわざコマンドラインでビルドしてみる人もいないってことですかね。
だとしたら、みなさん一度やってみてはいかがですか?
本当にあり得ないほど小さくなりますよ。
0932デフォルトの名無しさんNGNG
VS.NET 2003 proをインストール中に、エラーが発生してインストールが出来ません。
エラー1933というものが出て
ファイルを更新出来ませんでした〜
というメッセージが出ます。
MSのHPにいっても、VS.NETの対策が出ていませんでした。
どなたか原因わかるかたご教授お願いします。
0933デフォルトの名無しさんNGNG
スレ違いだ!
0934デフォルトの名無しさんNGNG
>>932
http://pc5.2ch.net/test/read.cgi/tech/1078134703/
0935デフォルトの名無しさんNGNG
結果が同一で過程が異なるいくつかのメソッドを比較して、
どの方法が一番速いか測定する方法を教えてください。
0936デフォルトの名無しさんNGNG
>>935
ttp://homepage3.nifty.com/midori_no_bike/CS/sample.html#165
0937デフォルトの名無しさんNGNG
デジカメのサムネイル画像情報を取り出したいと考えています。
ファイルの中で画像のある場所はわかったので、
以下のような感じでやってみたのですがうまくいきませんでした。

ストリームから一部抜き出して画像表示する方法をお教えください。
よろしくお願いいたします。


if(openFileDialog1.ShowDialog() == DialogResult.OK)
{
Stream myStream;
myStream=openFileDialog1.OpenFile();

myStream.Seek(0x2001,SeekOrigin.Begin);  //ここでアドレスを指定

pictureBox1.Image = Image.FromStream(myStream);

myStream.Close();

}
0938デフォルトの名無しさんNGNG
>>937
一旦MemoryStreamにその部分だけ書き出す。
0939デフォルトの名無しさんNGNG
http://headlines.yahoo.co.jp/hl?a=20040426-00000001-imp-sci
0940937NGNG
>938

うっ、確かに・・・やってみます。
ちなみに上のはDelphi的な使い方でした。

あと、.NETのImageにExifを簡単に読み出す機能があるのですが、
これって当たり前と言えば当たり前の気がするのですがImageに読み込める
ファイル形式じゃないと使えないのでしょうか。

いやデジカメのファイルがExifに対応した独自形式(RAW)なので、
Exifを簡単に読み出せそうで読み出せないむずがゆさが・・・

うー




0941デフォルトの名無しさんNGNG
Iビームの位置の位置ってどうやって取得するんでしょうか。
0942デフォルトの名無しさんNGNG
う、変な文章になってしまった。
入力補佐でコンボボックスをIビームの位置に出したいんですが、リッチテキストの
Iビームの位置の取得方法がわかりません。

よろしくお願いします。
0943デフォルトの名無しさんNGNG
>>942
>  Iビームの位置の取得方法がわかりません。
Iビームって言うと要するにマウスカーソルのことだけど、
そうじゃなくてキャレットだよね?

キャレット関係は.NET Frameworkはどうも弱いんだよね。
Win32APIのGetCaretPosを使うのがいいのかな。
0944デフォルトの名無しさんNGNG
>>943
やってみます。ありがとうございました。
0945デフォルトの名無しさんNGNG
す、すいません、
byte配列に入っている値を、double型に変換するのはどうしたらよいのでしょうか・・・
基礎的な質問ですいません・・・
0946デフォルトの名無しさんNGNG
>>945
キャストしたら。
0947デフォルトの名無しさんNGNG
byteからdoubleなら暗黙に型変換してくれるけどな。
0948デフォルトの名無しさんNGNG
byte配列の配列中の8バイトをdoubleに変換したいのです。

byte>文字列変換でいうところの
string s= Encoding.ASCII.GetString(b,0,8);

みたいな感じです。
0949デフォルトの名無しさんNGNG
>>945
System.BitConverter
0950デフォルトの名無しさんNGNG
それです!
ありがとうございました!

あと初心者質問連続で申し訳ないのですが、あるStreamから別のStreamへ部分を
コピーする方法はどうしたら良いのでしょうか。
0951デフォルトの名無しさんNGNG
んなもんReadしてWriteするだけだろ
0952デフォルトの名無しさんNGNG
質問です

stringの配列にデータを格納してたんですが、印刷しようとすると文字化けるんです。
おそらくUTF-8になってるんですが、
これをstringのままシフトJISに変換できませんでしょうか?
0953デフォルトの名無しさんNGNG
>>952
string型は内部的にUnicode。
なんか他のところが間違えてるんじゃない?
0954デフォルトの名無しさんNGNG
他のとこ…
上記のデータをデータグリッドに表示させる場合は、別に文字化けなんてしないんですがねぇ。
ぬー。

ということは、プリンタクラスのほうでしょうか?
0955デフォルトの名無しさんNGNG
http://www.gotdotnet.com/japan/student/column/firststep/firststep2.aspx
ここを読みながらC#を学んでいる途中なのですが、
Windowsフォームにメニューバーを追加するのはどうすればいいのでしょうか?
ツールボックスの「MainMenu」をD&Dして「新規作成」「編集」などを作ってみて、
その後ビルドすると反映されてなく、メニューバーが存在しません。
どなたか、メニューバーを追加する方法を教えていただけないでしょうか?
よろしくお願いします。
0956デフォルトの名無しさんNGNG
>>955
>  ツールボックスの「MainMenu」をD&Dして「新規作成」「編集」などを作ってみて、
作るって何をどう?

MainMenuをD&D>「ここへ入力」に文字列入力>ビルド
0957950NGNG
ストリームのコピーなんですが、もちっとスマートな
方法ないですか・・・?


byte[] bc=new byte[256];

int mi=(int)Math.Floor((double)copysize/256);


fromStream.Seek(startpos,SeekOrigin.Begin);

for (int i=0;i<=mi-1;i++)
{
fromStream.Read(bc,0,256);
toStream.Write(bc,0,256);
}


fromStream.Read(bc,0,(int)(thumbsize-mi*256));
toStream.Write(bc,0,(int)(thumbsize-mi*256));
0958950NGNG
あ、thumbsizeはcopysizeの間違いです
0959955NGNG
>>956
まさにそのとおりに文字列を入力してやってみました。
舌足らずですいません。
VS.NETのスクリーンショットです。
どこかがおかしいのでしょうか?
ttp://up.nm78.com/data/up002612.jpg
0960デフォルトの名無しさんNGNG
>>957

int read;

while ((read = fromStream.Read(bc, 0, bc.Length)) != 0)
 toStream.Write(bc, 0. read);
0961デフォルトの名無しさんNGNG
>>957
byte[] bc = new byte[copysize]じゃ駄目なのか……?
0962デフォルトの名無しさんNGNG
以前お聞きしたのですが、レスがなかったのと、
未だに解決していないのでもう一度書かせてください。
DataTable内にAutoIncrementプロパティをtrueに設定している列があります。
(仮にIDNOとする)
このDataTableをClearしてもう一度Fillすると
IDNO列に自動で割り当てられる値がどんどん増えていってしまい困っています。
再読込する毎に1から振り直したいのです。
どうすればいいでしょうか?
よろしくお願いします。
0963名無しさん♯NGNG
次スレどぞー
http://pc5.2ch.net/test/read.cgi/tech/1083066815/l50
0964デフォルトの名無しさんNGNG
>>962
どうせ元データベースのAutoIncrementと全然違うナンバー振られるんだから、
あんま気にしてもしょうがない。
0965デフォルトの名無しさんNGNG
dexplorer.exeで「言語のフィルタ」を使ってC#のコードだけ表示にしても
別ページに行ったり更新したりすると元の全言語表示に戻ってしまいます。
常にC#のコードだけ表示したいんですけどどうすればいいんですか?
0966デフォルトの名無しさんNGNG
VSを使わないで他のアプリからcscコマンドを呼んでコンパイルさせたいのですが
ソースや参照が数百もある場合どうすればいいでしょうか?
Cで言うところのmakefileはC#ではどのような仕組みなのでしょうか?
0967デフォルトの名無しさんNGNG
>>966
nmake.exeならcscでも使えるけど?
Microsoft.CSharp.Compilerクラスもあるけどさ。
0968デフォルトの名無しさんNGNG
質問です。
MFCで作成したCWndから派生させたウインドウを
WindowsFormに貼り付けることは可能でしょうか?
0969968NGNG
次スレたってるようなのでそちらで質問します。
0970デフォルトの名無しさんNGNG
>>966
というか、makefile自体はCの物じゃないし、
どの言語、ときに言語以外にも使えるツール。
0971デフォルトの名無しさんNGNG
埋め
0972デフォルトの名無しさんNGNG
埋め
0973デフォルトの名無しさんNGNG
楳
0974デフォルトの名無しさんNGNG
ぬるぽ



ぬるぽ
0975デフォルトの名無しさんNGNG
C#のサイトを検索するとギターのサイトがいっぱいでてくるね
0976デフォルトの名無しさんNGNG
とあるツールでbmp吐き出して、別のツールで減色して、
またまた別のツールでgif圧縮とかやったことあるなぁ…makefileで
0977デフォルトの名無しさんNGNG

  ( ・∀・)   | | ガッ
 と    )    | |
   Y /ノ    人
    / )    <  >__Λ∩
  _/し' //. V`Д´)/ ←>>974
 (_フ彡        /
0978デフォルトの名無しさんNGNG
Mutexで複数起動を制限してるとき、
SocketやTcpClientインスタンスが他からの送信をAcceptすると
何故かその時点でMutexの所有権を放棄してしまう。
0979デフォルトの名無しさんNGNG
ぬるぽするとガッって、意味わかんね。何が楽しいの?
0980デフォルトの名無しさんNGNG
試験的にポートスキャナを実装したいんですが
GUI部分は置いておいて
ネットワーク部分はどんなクラスを使ったらいいか
見当もつきません。どなたかお知恵を!
0981デフォルトの名無しさんNGNG
Socketつかっとけ
0982デフォルトの名無しさんNGNG
>>981
アドバイスありがとうございます。
0983デフォルトの名無しさんNGNG
>>979
少なくともム板でやるようなことじゃないね。ム板で叩いてるのはただのアホ。
0984デフォルトの名無しさんNGNG
.NetってFTPのライブラリって標準では無いですよね?
これだ!っていうFTPライブラリを知っている人がいたら教えてください。
やっぱ自作しか無いんですかね?
0985デフォルトの名無しさんNGNG
>>984
困ったときのcodeproject.

ttp://www.codeproject.com/csharp/ftp.asp
0986デフォルトの名無しさんNGNG
>>984
http://gotdotnet.com/community/usersamples/Default.aspx?query=ftp&SortDirection=Desc&SortColumnName=Rating&Page=1&Size=25
(サインイン必要かも)

次期バージョンは標準装備。
0987984NGNG
>>985
>>986
ありがとうございます!

次期バージョンでは標準ですか、やっぱ要望が大きかったのかな。
0988デフォルトの名無しさんNGNG
POP3もホスィ…
0989デフォルトの名無しさんNGNG
埋め
0990デフォルトの名無しさんNGNG
もういくつ埋めると
0991デフォルトの名無しさんNGNG
C#ver.2?
0992デフォルトの名無しさんNGNG
埋め
0993デフォルトの名無しさんNGNG
う
0994デフォルトの名無しさんNGNG
ま
0995デフォルトの名無しさんNGNG
まんこ
0996デフォルトの名無しさんNGNG
トータスヘッズ!
トータスヘッズ!
トータスヘッズ!
0997デフォルトの名無しさんNGNG
記念カキコ v(^-^=)
0998デフォルトの名無しさんNGNG
 
0999デフォルトの名無しさんNGNG
test test
1000デフォルトの名無しさんNGNG
& 
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。