ふらっとC♯, C#(初心者用) Part9
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2006/09/10(日) 11:27:27「どんなにくだらないC#プログラミングに関する発言でも誰かが優しくレスをしてくれるスレッド」です。
ほかのスレッドでは恐ろしくて書き込めないような低レベル、もしくは質問者自身なんだか意味がよく分からない質問など、
勇気をもって書き込んでください。
内容に応じて、他スレ・他板へ行くことを勧められる、あるいは誘導される場合がありますがご了承下さい。
前スレッドはこちら
http://pc8.2ch.net/test/read.cgi/tech/1148310124 (Part8)
http://pc8.2ch.net/test/read.cgi/tech/1141458468/l50 (Part7)
http://pc8.2ch.net/test/read.cgi/tech/1122001458/l50 (Part6)
http://pc8.2ch.net/test/read.cgi/tech/1065196964/l50 (Part5)
http://pc2.2ch.net/test/read.cgi/tech/1059028988/l50 (Part4)
http://pc2.2ch.net/tech/kako/1047/10472/1047210828.html (Part3)
http://pc2.2ch.net/tech/kako/1035/10358/1035895873.html (Part2)
http://pc2.2ch.net/tech/kako/1023/10237/1023766485.html
C♯, C#相談室 Part34
http://pc8.2ch.net/test/read.cgi/tech/1157549657/
0002デフォルトの名無しさん
2006/09/10(日) 11:28:03http://www.microsoft.com/japan/msdn/vstudio/express/vcsharp/
.NET Framework SDK (2.0)
http://msdn2.microsoft.com/ja-jp/library/ms310244.aspx
MSDN Visual C# Express Edition フォーラム
http://forums.microsoft.com/msdn-ja/ShowForum.aspx?ForumID=187&SiteID=7
Visual Studio ユーザーグループ
http://vsug.jp/
@IT Insider.NET
http://www.atmarkit.co.jp/fdotnet/index.html
Insider.NET 会議室 ディレクトリ
http://www.atmarkit.co.jp/fdotnet/index/bbs/index.html
宇宙仮面の C# プログラミング / C# Programming
http://ukamen.hp.infoseek.co.jp/
WisdomSoft C#入門
http://wisdom.sakura.ne.jp/programming/cs/index.html
WisdomSoft Microsoft .NET入門
http://black.sakura.ne.jp/~third/system/msnet/msnet.html
どっとねっとふぁん
http://dotnetfan.org/
緑のバイク 初めてのC# 〜 覚え書き 〜
http://homepage3.nifty.com/midori_no_bike/CS/
どぼん!の .NET Tips
http://dobon.net/vb/dotnet/
.NET のつぼ
http://park16.wakwak.com/~mimi/dotnet/top.html
0003デフォルトの名無しさん
2006/09/10(日) 11:33:01http://www.borland.com/jp/products/csharpbuilder/index.html
Turbo C#
http://www.turboexplorer.com/csharp
.NET Framework 1.1 製品ドキュメント
http://www.microsoft.com/japan/msdn/library/ja/netstart/html/sdkstart.asp
0004デフォルトの名無しさん
2006/09/10(日) 12:09:06C#で他のプロセスがロック(使用している)ファイルを読み込もうとすると例外でエラーになってしまう
のですが、これを読み込むにはどうしたら良いのでしょうか?
>>1
スレ立て乙
0005デフォルトの名無しさん
2006/09/10(日) 12:13:460006デフォルトの名無しさん
2006/09/10(日) 13:53:07この @ はどういう意味なんでしょうか?
0007デフォルトの名無しさん
2006/09/10(日) 14:03:040008デフォルトの名無しさん
2006/09/10(日) 14:03:350009デフォルトの名無しさん
2006/09/10(日) 14:03:38object はキーワードなんでキーワード以外の使い方をするには @ をつける
0010デフォルトの名無しさん
2006/09/10(日) 14:24:40納得しました。
/チラシの裏
試しに delegate void A(object @object); というデリゲートを宣言したところ
IAsyncResult A.BeginInvoke(object @object, AsyncResult callback, object @object)
というシグネチャのメソッドが生成されました。
/チラシの裏
0011デフォルトの名無しさん
2006/09/10(日) 14:44:53やばくない?
0012デフォルトの名無しさん
2006/09/10(日) 14:48:440013デフォルトの名無しさん
2006/09/10(日) 18:32:15Btn1.PerformClick();
任意の名前のボタンを押した時の動作をシミュレートするために、
上記のようにしたのですが、コンパイルは通るのですが、
実行時に、実体がどうのこうのと怒られます。
何か間違ってますか。環境は2.0です。
0014デフォルトの名無しさん
2006/09/10(日) 18:36:580015デフォルトの名無しさん
2006/09/10(日) 18:44:14本当にその名前であってるか?
>14
VBのを書き換えてるのかも。
0016デフォルトの名無しさん
2006/09/10(日) 18:59:05struct{
int id;
string name;
}hoge;
hoge h[] = {{0,"hoge0"},{1,"hoge1"} }
みたいな
組み込みの型の配列ならできたんですが、
ユーザ定義型のやり方がわかりません・・・
001713
2006/09/10(日) 19:04:06Button ButtonTmp = (Button)this.Controls["OperationButton" + this.OperationNumber.ToString()];
ButtonTmp.PerformClick();
ボタン名が OperationButton1〜OperationButton10 まであって、
OperationNumberが保持してる番号によって押すボタンを変えたく、こう書きました。
デバッグ時のエラーは、15さんがおっしゃるように、
「NullReferenceExceptionはハンドルされませんでした。
オブジェクト参照がオブジェクト インスタンスに設定されていません。」
と出ます。
念のため、ボタン名に変数を使わず直接指定しても同じエラーになりました。
0018デフォルトの名無しさん
2006/09/10(日) 19:08:00struct Hoge {
int id;
string name;
public Hoge(int id_, string name_){
id = id_; name = name_;
}
}
Hoge[] h = new Hoge[] {
new Hoge(0, "hoge0"),
new Hoge(1, "hoge1"),
};
002013
2006/09/10(日) 19:18:01パネル内にあるコントロールは Controls["controlaname"] ではなく、
Controls.Findメソッドを使うとのことでした。
0021デフォルトの名無しさん
2006/09/10(日) 20:21:02引数名にアンダーバーとか付けて区別するのはルール違反だろ
メンバ変数の方に付けるか、
public Hoge(int id, string name)
{
this.id = id; this.name = name;
}
にするべき
0022デフォルトの名無しさん
2006/09/10(日) 22:29:160023デフォルトの名無しさん
2006/09/11(月) 11:09:52C++ の頃はよくそんなのやったんだけどね。
メンバ変数に id ってのがあったら、コンストラクタの引数で id を使えなくなるから。
それに、メンバ変数の頭に m_ つけたり、末尾に _ 付けるってのもよくやってた。
でもやっぱ、C# 的には this.id = id; ってすべきだと思う。
0024デフォルトの名無しさん
2006/09/11(月) 11:14:54>public Hoge(int id, string name)
のidを icとかにタイプミスしても大丈夫?
0025デフォルトの名無しさん
2006/09/11(月) 11:21:440027デフォルトの名無しさん
2006/09/11(月) 13:37:03ログとして、外部ファイルに出力するというプログラムを作成しています。
ttp://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=166&forum=7&11
上記などを参考にプログラム自体はどうにか動いたのですが、
3日ぐらい使用していると、外部ファイルに出力してくれない状態になってしまいます。
デバッグをしようにも、バグが起きるまでかなり時間がかかりますので、
ずっとデバッガを走らせておくのも、大変な状態です。
大変不躾なお願いではありますが、ソース一式を下記にアップロードしましたので、
どなたかバグ箇所の指摘にお力をお貸しいただけませんでしょうか。
ttp://www.42ch.net/UploaderSmall/source/1157948930.zip
0029デフォルトの名無しさん
2006/09/11(月) 14:06:31else if (msg.Msg == WM_CHANGECBCHAIN)
{
if( (IntPtr)msg.WParam == this.NextHandle )
this.NextHandle = (IntPtr)msg.LParam;
else if ( NextHandle != IntPtr.Zero )
SendMessage(NextHandle, msg.Msg, msg.WParam, msg.LParam);
return;
}
じゃね?
0030デフォルトの名無しさん
2006/09/11(月) 14:22:180031デフォルトの名無しさん
2006/09/11(月) 18:43:46さっそくコードを取り込んでデバッグしてみます。
0032デフォルトの名無しさん
2006/09/11(月) 22:20:110033デフォルトの名無しさん
2006/09/11(月) 22:21:52くっつけて1つのファイルにしたいのか
0034デフォルトの名無しさん
2006/09/11(月) 22:24:220035デフォルトの名無しさん
2006/09/11(月) 22:25:34分からないのでpictureboxを並べて表示させてましたがそこから先で扱いが分からないので一枚として扱いたいです。
0036デフォルトの名無しさん
2006/09/11(月) 22:27:41そのGraphicsオブジェクトを取得してDrawImage
0037デフォルトの名無しさん
2006/09/11(月) 22:33:08調べながらなんとかしてみます。ありがとうございます。
0038デフォルトの名無しさん
2006/09/11(月) 23:23:24連結したGraphicsオブジェクトをPictureBoxに表示させるにはどうすればよいのでしょうか。
GraphicsオブジェクトをBitmapにするのもわからないし。
勉強不足でほんとすいません。
0039デフォルトの名無しさん
2006/09/11(月) 23:26:290040デフォルトの名無しさん
2006/09/11(月) 23:27:15でっかいBitmapから Graphicオブジェクト作成 Graphic.fromImageだっけ?
0041デフォルトの名無しさん
2006/09/11(月) 23:29:27絵じゃないよ。
0042デフォルトの名無しさん
2006/09/11(月) 23:33:49Bitmap でかいやつ = new Bitmap(サイズサイズ);
Bitmap 小さいの = new Bitmap(なんか);
Graphics g = Graphics.FromImage(でかいやつ);→グラフィックスにしてるつもり
g.DrawImage(ちいさいの, 位置);→でかいグラフィックスに小さいのをならべたつもり
そっから先が。というかそもそも間違ってるのかも。
0043デフォルトの名無しさん
2006/09/11(月) 23:34:33必要な回数だけDrawImageを繰り返す。
0044デフォルトの名無しさん
2006/09/11(月) 23:36:31picturebox.Image=でっかいbmp;
refresh();
0045デフォルトの名無しさん
2006/09/11(月) 23:37:25Graphics.FromImage は Image を Graphics に変換するんじゃなくて
《Image に描画するための Graphics オブジェクトを作成する》 んだぞ?
004631からずっと
2006/09/11(月) 23:42:43ImageとGraphicsの違いってか意味が分かってなかった。
ほんとありがとうございます。
VC触って4日目なんですがオブジェクト?とかその当りをちゃんと勉強します。ほんとどうもです!
0047デフォルトの名無しさん
2006/09/11(月) 23:48:250048デフォルトの名無しさん
2006/09/11(月) 23:50:50004931からずっと
2006/09/11(月) 23:51:06すいませんC#でした。無料らしいから落とした。C#の方が新しいぽいからC#にした。よしなんか作ろうと思って手探りでやってみた。助けてもらったありがとう\(^o^)/ヤルゼ
0050デフォルトの名無しさん
2006/09/11(月) 23:56:08初めて間もないのに君は才能あるな。
CS-Boyと名乗りなさいw
0051デフォルトの名無しさん
2006/09/12(火) 00:03:01と無粋なレスをしてみる
0052ぼよん
2006/09/12(火) 00:12:16どうやってらできるんでしょうかね?
標準のライブラリとかなさそうですしネットで検索しても見つかりません。
0053デフォルトの名無しさん
2006/09/12(火) 00:14:14そのとおりにファイルに出力。
0054デフォルトの名無しさん
2006/09/12(火) 00:18:160055ぼよん
2006/09/12(火) 00:27:13泣きそうです。
地味にやってみます。
0056デフォルトの名無しさん
2006/09/12(火) 00:50:27ダミーgif(フレーム設定済み)をフリーウエアで作る
以下 自作アプリ
読み込んで書き換え
保存
読み込む
フレーム変える
書き換え保存
以下繰り返す。
0057デフォルトの名無しさん
2006/09/12(火) 02:19:35MainFormで作成したテキストボックスに、
MainFormとは異なるクラス(クラス名:Class)で得られた値を
表示したいと思っています。
Classで得られた値をMainFormに返してテキストボックスに
表示すればいいと思うのですが、一つのメソッドで
複数回テキストボックスに表示したいため、
テキストボックスの変数をメソッドに渡すことを考えました。
private TextBox txt; // TextBox
// MainForm.cs
private MainForm(){
Method(txt);
}
// Class.cs
private Method(TextBox txt)
{
TextBox.Text += "aaa"; <-ここで止まる
TextBox.Text += "bbb";
}
以上のように作ったとき、Method内で処理が止まりました。
他クラスで得た値をTextBoxに表示するにはどのようにするのが
よろしいでしょうか?
0058デフォルトの名無しさん
2006/09/12(火) 02:28:390059デフォルトの名無しさん
2006/09/12(火) 02:30:28つっこむところはたくさんあるな。酔っぱらってる俺でいいならつっこむぞ。
・TextBoxの名前にtxtはやめとけ。普通文字列かと思うだろうが。
・MainForm()内の Method(txt) は
Class.csに記述されたクラスのMethod(TextBox txt )を呼んでないぞ。
仮にそちらをClass1とすると、
Class1 class1 = new Class1();
とインスタンス化してから
class1.Method(..)と呼ばないといけないぞ。
しかもClass1のMethodをpublicにしないといけないぞ。
・Class.csのMethod(TextBox txt) だけど、引数として渡したTextBoxを使ってないぞ。
private Method(TextBox txt)
{
txt.Text += "aaa";
txt.Text += "bbb";
}
としないと意味がないぞ。
・Textプロパティを二度変更してるけど、意味がないぞ。後の値になるだけだぞ。
006059
2006/09/12(火) 02:32:080061デフォルトの名無しさん
2006/09/12(火) 02:35:540062デフォルトの名無しさん
2006/09/12(火) 02:35:58というより、コンパイルが止まったんだろ?
そうだと言ってくれ。
0063デフォルトの名無しさん
2006/09/12(火) 02:41:22[1] OtherClass に public string[] Text プロパティだかメソッドだかを用意してアクセス
[2] MainClass のインスタンスを OtherClass に渡して MainClass.SetText(string[] texs) を呼ぶ
[3] イベントでも使う
とりあえず3種類。どれでも好きなの使え
0064デフォルトの名無しさん
2006/09/12(火) 02:43:33{
private MainForm() //←これMainFormクラスのコンストラクタだっりする?
{
//つーかコントロールの初期化してないってもありえるぞ
Class1 class1 = new Class1();
class1.Method(txt);
}
}
-----------
class Class1
{
public void Method(TextBox txt)
{
txt.Text += "aaa";
txt.Text += "bbb";
}
}
……だぞ。
>>63
そういうレベルの話じゃないと思うぞ。
0065デフォルトの名無しさん
2006/09/12(火) 03:56:400066デフォルトの名無しさん
2006/09/12(火) 04:03:330067デフォルトの名無しさん
2006/09/12(火) 06:38:47信者はついていってるのか?
0068デフォルトの名無しさん
2006/09/12(火) 06:39:42006957
2006/09/12(火) 17:56:22申し訳ございません、簡略して書きすぎてしまいました。
実際のコードでは、以下のようにしています。
63さん、ありがとうございます。[1]か[2]の方法で考えてみます。
[3]のイベントを使う方法については、調べてみます。
class MainForm.csのクラス
public MainForm(){ // コンストラクタ
InitializeComponent(); // テキストボックスの初期化
}
private void btn_textbox(object sender, EventArgs e){
Class class1 = new Class();
class1.method(txt); // txtはテキストボックスに当てた変数
}
class Class
{
public Class(){ // コンストラクタ
}
public void method(TextBox txt){
txt.Text += "aaa";
txt.Text += "bbb";
}
}
0070デフォルトの名無しさん
2006/09/12(火) 19:17:380071デフォルトの名無しさん
2006/09/12(火) 19:46:110072デフォルトの名無しさん
2006/09/12(火) 20:24:030073デフォルトの名無しさん
2006/09/12(火) 20:40:40と適当言ってみる
0074デフォルトの名無しさん
2006/09/12(火) 20:43:270075デフォルトの名無しさん
2006/09/12(火) 20:46:410076デフォルトの名無しさん
2006/09/12(火) 20:48:540077デフォルトの名無しさん
2006/09/12(火) 21:07:510078デフォルトの名無しさん
2006/09/12(火) 21:09:280079デフォルトの名無しさん
2006/09/12(火) 21:23:04メインの方でAppendTextすればいいだけじゃないの?
0080デフォルトの名無しさん
2006/09/13(水) 21:50:560081デフォルトの名無しさん
2006/09/13(水) 21:52:310082デフォルトの名無しさん
2006/09/13(水) 22:06:32Point p = pictureBox1.PointToClient( Control.MousePosition );
0083デフォルトの名無しさん
2006/09/13(水) 22:22:12>>81
すいませんありがとうございますm(__)m
0084デフォルトの名無しさん
2006/09/14(木) 00:45:44VC#ならその辺まで入れれば候補確定すんじゃね?w
0085デフォルトの名無しさん
2006/09/14(木) 03:07:16項目内特定の文字列の色を変えるにはどのライブラリを使えばいいんでしょうか?
リストビューだと項目内全部色が変わるので
0086デフォルトの名無しさん
2006/09/14(木) 03:10:140088デフォルトの名無しさん
2006/09/14(木) 03:19:33オーナードロー。
0089デフォルトの名無しさん
2006/09/14(木) 05:52:24009032
2006/09/14(木) 14:21:00複数の画像をマウスで自由に移動させれるようにしたいのですがどうすればよいでしょうか。
パズルというか福笑いのようなものをイメージしているのですが。
0091デフォルトの名無しさん
2006/09/14(木) 14:31:09ゲームの本読んでべんきょうしてね。
009232
2006/09/14(木) 14:33:480093デフォルトの名無しさん
2006/09/14(木) 14:39:15マウスのボタン押した場所に動かせる画像があるか調べる。(座標の比較)
あったらその中の一番上の画像を選択したと記録。
マウスのボタンを放したら画像選択を取り消し。
選択中にボタン押したままマウス移動したら選択画像の移動処理。
0094デフォルトの名無しさん
2006/09/14(木) 20:34:37ttp://www.codeproject.com/cs/media/Motion_Detection.asp
このプログラムがおもしろいなーと思ったのですが、
JPEG画像の取り込みの機構からよくわかりません。
それだけ抜き出そうとして、ここ2日くらいやってるんですけど、
うまくいきません。
誰か教えていただけませんか??
0095デフォルトの名無しさん
2006/09/14(木) 20:42:03VS2005で使われているように、(Ctrl+W)+(Ctrl+W)でWebヘルプ起動という
ような感じにショートカットキーを設定したいのですが、どうしたらいいですか?
0096デフォルトの名無しさん
2006/09/14(木) 20:45:480097デフォルトの名無しさん
2006/09/14(木) 21:09:23やっぱりそれしかありませんか…
ありがとうございました。
0098デフォルトの名無しさん
2006/09/15(金) 09:03:29あるクラス(関数?)から「品名1、品名2」(topic)についての
「名称、数量、値段」(item)の数値が吐き出されてくるんですが
これをlistviewにDetail表示するために
文字列を結合して
"名称:数量:値段:名称:数量:値段"
のような文字列にし
作った文字列をtopicの数ごと分割、さらにitemごと分割して表示するクラスに渡して表示していたのですが
もっと上手な表示方法ありませんでしょうか・・・・
↓こんな表にしたいんです
┏━━━┳━━━┳━━┳━━┓
┃ ┃名称 ┃数量┃値段┃
┣━━━╋━━━╋━━╋━━┫
┃品名1 ┃りんご ┃10 ┃1000┃
┃品名2 ┃みかん┃30 ┃1500┃
┗━━━┻━━━┻━━┻━━┛
わかりにくくて申し訳ありませんが、よろしくおねがいします
0099デフォルトの名無しさん
2006/09/15(金) 09:20:20データの件数は可変or固定?
0100デフォルトの名無しさん
2006/09/15(金) 10:18:18「あるクラス」は実は取ってつけた物で、よくわからないんです
string[] topic = {"品名1"、"品名2"};
string[] item = {"名称"、"数量"、"値段"};
としたとき「あるクラス」から吐き出されるものは
品名1の名称
品名1の数量
品名1の値段
品名2の名称
品名2の数量
品名2の値段
という順で一つづつstringになって出てきます。
string[] item = {"名称"、"数量"、"値段"、"在庫"};
とすれば
品名1の名称
品名1の数量
品名1の値段
品名1の在庫
品名2の名称
・
・
となります。
データの件数はtopic×itemの数になります。
0101デフォルトの名無しさん
2006/09/15(金) 10:39:06> という順で一つづつstringになって出てきます。
というのはstring[]が返ってくんの?
それとも何かメソッドを呼ぶたびに毎回違うstringの値が返ってくるとか?
0102デフォルトの名無しさん
2006/09/15(金) 10:54:29string[] topic →┏━━━━┓
string[] item ┃blackbox┃
┗━━━━┛
0103デフォルトの名無しさん
2006/09/15(金) 10:56:06データ受信コールバック(?)とかコメントされているだけで
中身に関してはDLLくっ付けただけなのでよくわからないんですが・・・・
string[] topic →┏━━━━┓→string string string........
string[] item ┃blackbox ┃ string string string string stringいっぱい
┗━━━━┛
こんな感じになってるみたいです
0104デフォルトの名無しさん
2006/09/15(金) 11:16:15メソッドのシグニチャはどうなってんだ
string[] Method( string[] topic, string[]item )
なのか?
とりあえず糞仕様なことは確か
0105デフォルトの名無しさん
2006/09/15(金) 11:31:12C#の用語で語ってくれ
自分なりに咀嚼した解説は不要
そして目的を明確にしろ
>>98を見るところでは、こういう処理をしたいと思うのだがどうか
1.あるクラスから値を受け取る ← あるクラスとやらの仕様は変更できない
2.受け取った値を整形する ← この処理の効率化を知りたい
3.ListViewに表示するクラスに2の値を渡す ← このクラスは変更できるのか?
まずこれを明確にしろ
・あるクラスとやらの戻り値の型
・あるクラスとやらから戻ってくる値のサンプル
・上記で言う3のクラスに渡すための方法と、型、値のサンプル
・ListViewに表示するためのクラスは変更できるのか
断片的な処理と目的だけを書いてもコミュニケーションは成り立たない
自分自身が理解で規定無いのであれば、少なくとも我々との共通言語である C# ベースで語ってくれ
0106デフォルトの名無しさん
2006/09/15(金) 12:25:47>2.受け取った値を整形する ← この処理の効率化を知りたい
>3.ListViewに表示するクラスに2の値を渡す ← このクラスは変更できるのか?
内容がわからないため変更できないのは1番だけです
2、3番に関してはこれから改良にするにあたって
無くなっても変わってもかまわないと考えています。
>・あるクラスとやらの戻り値の型
string型で返ってきます
>・あるクラスとやらから戻ってくる値のサンプル
>>100のような順番に文字列が出てくるだけです
0107デフォルトの名無しさん
2006/09/15(金) 12:34:49なぜこんなことしてるんですか?
0108デフォルトの名無しさん
2006/09/15(金) 12:45:36一つづつ出てくる値をlistviewに表示していく方法がわからなかったもので、
一度全ての値を結合させて、また分割して一気にlistviewに表示してました。
でも、もっとよい方法があればなぁと思ってここにきました
0109デフォルトの名無しさん
2006/09/15(金) 12:50:07結合して分割して・・って、単純にそれを省けばいいんじゃないの?
0110デフォルトの名無しさん
2006/09/15(金) 12:54:32そうなんですが、
listviewに表示する際には配列で1行分渡さなきゃならないんじゃないかと理解していたもので。
しかも文字列が個別に出てきちゃうもんだからどうしたもんかと
0111デフォルトの名無しさん
2006/09/15(金) 13:02:31> >・あるクラスとやらの戻り値の型
> string型で返ってきます
と
> >・あるクラスとやらから戻ってくる値のサンプル
> >>100のような順番に文字列が出てくるだけです
は、一致しませんが
string型であってstring[]じゃないんだよな?
そうなると>>104の推測とも違う
一体どういう処理になるんだ?
とりあえずそのクラスから文字列を引き出してDebugに書き出すだけのコードを書け
I/OのIがハッキリしないのにOに至る処理なんてアドバイスできない
0112デフォルトの名無しさん
2006/09/15(金) 13:03:26ということは今はその理解は改まったということだよね?
それなら何の問題が?
取得した文字列を結合せずに1つずつ表示していけばいいんじゃないの
0113デフォルトの名無しさん
2006/09/15(金) 13:05:36話はそれからだ
0114デフォルトの名無しさん
2006/09/15(金) 13:13:39CALLBACK MyCallBack(string ReturnValue)
じゃないかな
0115デフォルトの名無しさん
2006/09/15(金) 13:14:440117デフォルトの名無しさん
2006/09/15(金) 13:16:42>>88
0118デフォルトの名無しさん
2006/09/15(金) 13:17:20だろ多分。
0120デフォルトの名無しさん
2006/09/15(金) 13:21:29Wha'dya mean 'Library'?
012185
2006/09/15(金) 13:22:46what r u say meaning it is lib
0122デフォルトの名無しさん
2006/09/15(金) 13:23:13オーナードロって自分で描画コードを実装するって事だよ。
クライアント領域クリアしてデータを分析して、それにあった文字を好きな色で描画するだけ。
お前書けんの?
012385
2006/09/15(金) 13:25:33描画コード?
そんな難しいのじゃなくて標準ではないのですか?
リストビューに特定の文字列だけ色変えれるようなやつ
なんでこんなすごく頻繁に使う機能がついてないのかねー
0124デフォルトの名無しさん
2006/09/15(金) 13:27:250125デフォルトの名無しさん
2006/09/15(金) 13:28:27知らない。
アクセスも昔、特定行だけ色変えることができなかった。
以上で終了。
012685
2006/09/15(金) 13:30:09来るスレ間違えたみたい
他スレで同じ質問するけどマルチとか言わないでね
0127デフォルトの名無しさん
2006/09/15(金) 13:34:30嵐ねえw
そっち行ったらここのスレを貼っといてね
ここで嵐にあいましたってw
012898
2006/09/15(金) 13:38:31そうなんです
だから値を吐き出す関数の部分よくわからなくって・・・・
0129デフォルトの名無しさん
2006/09/15(金) 13:44:16とりあえず格納用のオブジェクト作ってコレクションに収納じゃだめ?
0130デフォルトの名無しさん
2006/09/15(金) 15:32:34関数の扱いが分からないのか、取得した文字列の操作が分からないのか、ListView処理の定石を知りたいのか、ハッキリしてくれ
いくら初心者向けのスレとはいえ、流れがあまりに幼稚すぎる
0131デフォルトの名無しさん
2006/09/15(金) 15:41:32特定の文字だけ色を変えるListViewインタフェースなんて見たこと無いな
頻繁に出てくるってくらいなら、分かりやすい例を教えてよ
単に結果をリストっぽく出したいならWebBrowserコントロールでHTML表示したら?
コピペもできるし親切でいいじゃん
Expression使えばListViewに近い動作にもできるし
013298
2006/09/15(金) 15:52:48関数の中身はDDE使って値を取ってきてくれるDLLをくっつけたので変えようがないと思うんです
stringでたくさん吐き出されてくる文字列を
どのようにして>>98のようにlistviewに表示すればエレガントですか
と質問変えたほうがいいかもわかりません・・・・
013385
2006/09/15(金) 15:54:53リストアップだけだと、検索文字列がどこにあるか、
ちょっと探さないとだめじゃないですか
すぐに見つけやすいように、文字の色もしくはバックグラウンドの色を変えたいんですよね
その方が便利だと思いませんか?
htmlって・・そんなダサいのはやりたくないな
0134デフォルトの名無しさん
2006/09/15(金) 16:02:07どのようにして listview に表示しているのか、まったく想像できないんですが……
0135デフォルトの名無しさん
2006/09/15(金) 16:02:16>>112や>>129はだめなの?
0137デフォルトの名無しさん
2006/09/15(金) 16:14:10> すぐに見つけやすいように、文字の色もしくはバックグラウンドの色を変えたいんですよね
> その方が便利だと思いませんか?
はい、便利です
ただし、ユーザ側の利便性と、開発者の利便性を同列にしないこと
> htmlって・・そんなダサいのはやりたくないな
ユーザが便利であることが重要であり、開発者のエゴは心の奥にしまって置いてください
どうしてもオーナードローもHTMLもイヤだというならWPFでも検討してください
まだ正式版じゃないですが
0138デフォルトの名無しさん
2006/09/15(金) 16:43:12結局ListViewの使い方がわからないのね。
ListViewItem item = new ListViewItem("text1");
item.SubItems.Add("text2");
item.SubItems.Add("text3");
lv.Items.Add(item);
0139デフォルトの名無しさん
2006/09/15(金) 16:57:530140デフォルトの名無しさん
2006/09/16(土) 01:01:57あるファイルが更新されたらされた分だけテキストボックスに表示するという
linuxのtailコマンドのようなプログラムを作っています。
ファイルサイズが変わったタイミングでファイルをSystem.IO.StreamReaderで
読み込みその内容をテキストボックスに書き出すというやり方で作ろうと思うの
ですが、前回ファイルの最後まで表示したら、次にファイルが更新された時は
前回のファイルの最後だった位置から読み込みを開始したいのですが、
StreamReaderではそれはできないのでしょうか?
開発環境はVS2005 EE です。
わかる方いらっしゃいましたら宜しくお願いいたします。
0142デフォルトの名無しさん
2006/09/16(土) 01:08:540143デフォルトの名無しさん
2006/09/16(土) 01:11:47あ、StreamReaderでできるんですね。
ありがとうございます。
StreamReaderで読み込んでいる位置を取得する方法と、
特定の位置から読み込みを開始する方法がわからないので、
できればそこの部分をご教授頂けるとありがたいです。
0144デフォルトの名無しさん
2006/09/16(土) 01:21:49Stream での読み込み位置の取得・設定方法は分かるか?
0146デフォルトの名無しさん
2006/09/16(土) 02:00:07StreamReader.BaseStream.Seek()
0147デフォルトの名無しさん
2006/09/16(土) 02:02:59StreamReaderのBaseStream.Positionをファイル読んだ後に保存して、次にファイル読む前にそれを設定してやればいい。
StreamReader.BaseStreamとFileStream.Positionを調べてくれ。
0148デフォルトの名無しさん
2006/09/16(土) 02:26:44System.IO.FileStream fs = new System.IO.FileStream();
fs.Seek(0, SeekOrigin.Begin);
0150デフォルトの名無しさん
2006/09/16(土) 21:48:57ListViewItemConverter について語りたかったのかな?
0151デフォルトの名無しさん
2006/09/17(日) 13:48:31リッチテストボックス内の特定の文字を探し出して色を変えたりする
方法はわかったのですが、テキストボックス内に追加するときに色を
指定する方法ってないのでしょうか?
append時に色を引数に指定できたりしたら便利なのですが。
どなたか宜しくお願いいたします。
0152デフォルトの名無しさん
2006/09/17(日) 15:28:45AppendTextはTextBoxBaseから継承しているのでRichTextBox独自の機能はサポートしていません
RichTextBoxを継承してAppendTextのRTF版を実装してはいかがでしょうか
0153デフォルトの名無しさん
2006/09/17(日) 19:45:48プログラム上からcsc.exeのあるパスを取得したいのですが、どうしたらいいでしょうか?
やはり自分で検索を掛けるしかないのでしょうか?
0154デフォルトの名無しさん
2006/09/17(日) 19:59:070155デフォルトの名無しさん
2006/09/17(日) 20:17:590156デフォルトの名無しさん
2006/09/17(日) 20:22:25コンパイルしたいんなら>>154かMicrosoft.Build.Tasks.Csc(2.0のみ)を使えば?
0157デフォルトの名無しさん
2006/09/17(日) 20:22:31それだと、適用できないコンパイラオプションがあるみたいで、
どうもうまくいかないのですが…
0158デフォルトの名無しさん
2006/09/17(日) 20:23:38何のオプションが指定できないの?
0159デフォルトの名無しさん
2006/09/17(日) 20:44:16取得できました!ありがとうございました。
>>158
Microsoft.CSharpでコンパイルし始めたのがずいぶんと前なので
詳しくは覚えていないのですが、リソースファイルとか
アイコンの設定などが出来なかったような気がします。
0160デフォルトの名無しさん
2006/09/17(日) 21:24:120161デフォルトの名無しさん
2006/09/18(月) 10:21:42よく入門本に書いて有るとおりに、単純にフォームにデータセットのテーブルをドラッグして見たのですが
ナビゲータボタンを操作しても一向にデータの追加も、更新が行われません。
ほかには一行もコードを書いていない状態でこれなんですが、いったいどこが悪くてこうなっているのか
ご存じの型教えてください。
0162デフォルトの名無しさん
2006/09/18(月) 10:31:48入門書の手順どおりやってますのレベルなら、
VS2003と2005でいろいろ違うから、
その入門書の対象としてるバージョンと自分の環境を合わせとけ。
0163デフォルトの名無しさん
2006/09/18(月) 10:37:320164デフォルトの名無しさん
2006/09/18(月) 10:48:42一応環境は合わせています
>>163
秀和の入門書ですけど、この記述によるとこれだけで単純に入力や更新削除は出来ると
記載されて居るんですがGUIしか作っていない状況なんですか?
0165デフォルトの名無しさん
2006/09/18(月) 11:46:41以下のC#コードを実行すると、3行目がコメントアウトしている/いないにかからず、
A1.bmpとA2.bmp は同じファイルになります。
Bitmap BitmapA = new Bitmap(@"C:\A.jpg");
BitmapA.Save(@"C:\A1.bmp", System.Drawing.Imaging.ImageFormat.Bmp);
// Bitmap BitmapB= new Bitmap(100, 100);
BitmapA.Save(@"C:\A2.bmp", System.Drawing.Imaging.ImageFormat.Bmp);
ところが、A.jpgの横幅が奇数ドットの時?は3行目がコメントアウトしているか
していないかで違うファイルができてしまいます。
(画像は同じに見えるがcmpすると違う)
これってやっぱり.NETのバグなんでしょうか?
ちなみにA.jpgは http://www.watch.impress.co.jp/av/docs/20060313/ceb8_06.jpg です。
0166165
2006/09/18(月) 11:51:37× 3行目がコメントアウトしているか していないかで違うファイルができてしまいます。
○ 3行目をコメントアウトしていると同一ファイル、していないと違うファイルができてしまいます。
0167デフォルトの名無しさん
2006/09/18(月) 12:00:16まず本に書いてある手順通りにやってみてよ
「できます」「やれます」ってキャッチコピーだけ見て質問してない?
0168デフォルトの名無しさん
2006/09/18(月) 18:14:39手順を知らずに解決できるのはエスパーです。
0169デフォルトの名無しさん
2006/09/18(月) 18:27:06コンパイルしましょう。
0170デフォルトの名無しさん
2006/09/18(月) 18:30:36デバッグ開始だろ?
0171デフォルトの名無しさん
2006/09/18(月) 18:44:11>以下のC#コードを実行すると、3行目がコメントアウトしている/いないにかからず、
>A1.bmpとA2.bmp は同じファイルになります。
これが正常な動作
>ところが、A.jpgの横幅が奇数ドットの時?は3行目がコメントアウトしているか
>していないかで違うファイルができてしまいます。
これが本当ならバグ
0172デフォルトの名無しさん
2006/09/18(月) 19:12:09C#2005でちょろっとやってみたが、確かにそうなった。GDI+のバグだろう。
ちなみに二回目のSaveの前にBitmapB.Dispose()したら2つのBitmapは同じになった。
0173165
2006/09/18(月) 22:09:41レスありがとうございます。
やっぱりバグですか・・・
今作っているソフトではSaveでファイルに保存するのではなく
MemoryStreamに保存してそこから画像のハッシュ値を生成しているので
1bitでも違ってしまうと致命的なんですよね・・・
使い終わったBitmapはすぐDispose()するようにしてみます。
ありがとうございました。
0174デフォルトの名無しさん
2006/09/19(火) 03:28:51海外のサイトで似たような事例見たことあるけど、物理処理とのタイミングが合わずに発生するバグだった気がする
そこではSleepなどで時間を置くことで対処していたが、Disposeで対処できるならそっちのが良いと思う
0175デフォルトの名無しさん
2006/09/19(火) 03:32:59Bitmap クラスの Save メソッドでファイル サイズが縮小されない
http://support.microsoft.com/kb/312119/ja
0176165
2006/09/19(火) 04:49:11レスありがとうございます。
ソースを見直して使い終わったリソースはすぐDispose()するようにしてもだめで、
ビットマップ生成後Sleepを入れてみてもだめで(念のためSleepとDoEventsをforで何度も繰り返すようにしてみたがだめ)
結局、画像を読み込んだビットマップ Bmp_org に対して Bitmap tmp=new Bitmap(Bmp_org) として
このtmpからハッシュを作成するとなぜだかうまくいきました。
なぜうまくいくのかよくわからないのでちょっと怖いのですが、趣味で作っているソフトなんで
まあこれでよしとします。
ありがとうございました。
0177デフォルトの名無しさん
2006/09/19(火) 12:47:18よろしいですが?
0178デフォルトの名無しさん
2006/09/19(火) 12:50:19マイクロソフト カスタマーインフォメーションセンター - ホーム
http://www.microsoft.com/japan/customer/
0179デフォルトの名無しさん
2006/09/19(火) 13:00:54答が見つかるかどうかは保証できないが
0180デフォルトの名無しさん
2006/09/19(火) 13:12:15ほんとうですか。ありがとうございます。
普段自分で調べてるのでほとんど2ちゃんねるとか使ったことないので
でも、今回ばかりはほんと急ぎで調べている時間がないので
助けて頂きたんです。よろしくおねがいします
0181デフォルトの名無しさん
2006/09/19(火) 14:29:370182デフォルトの名無しさん
2006/09/19(火) 16:05:36どうせここまで引っ張った質問も@ITあたりで見つけた結論が面倒なやつだろ
「disposeすれば大丈夫なんですか?」みたいな
もしくは結果がバグ起因でKBにも載ってるやつとか
>>177
では質問をどうぞ
0183デフォルトの名無しさん
2006/09/19(火) 17:04:10CとC++とWin32でプログラム組んだことはあるんですが
今度、.netでWindowsアプリ作ることになりました。
C++で書く場合、どうすればいいでしょうか?
とりあえず .net Framework2.0 を入れてみました。
あとは.netのリファレンスとSDKがあれば
作れますか?
C++で作るならC#のコンパイラ?は必要ないですよね
0184デフォルトの名無しさん
2006/09/19(火) 17:06:570185デフォルトの名無しさん
2006/09/19(火) 17:10:49レスありがとうございます。
それはいわゆるIDEですよね?
それがないと作ることは不可能ですか?
もしできても、相当苦労するってことでしょうか?
0186デフォルトの名無しさん
2006/09/19(火) 17:48:40無くてもいけるよ。フリーのIDEもあるし
メモ帳でもいいし
苦労するねー。特にGUI作る場合。
0187デフォルトの名無しさん
2006/09/19(火) 17:49:16想定して作られたライブラリだからな
0188デフォルトの名無しさん
2006/09/19(火) 18:02:03例えばコントロールの描画に、自作の描画を「追加」する場合、
(A)OnPaintメソッドをオーバーライドする(メソッド内でbase.OnPaint呼ぶ)
(B)Paintイベントハンドラに自作描画関数を追加する
という2種類の方法があると思うのですが、この2つの使い分けがよく分かりません。
多分、大抵は結果としては同じだけど、何か特別な場合はこちらを選ぶべきとか、
再利用性を考えるとこちらにすべきとか、ケースによって使い分けがあるように
思うのですが、経験が浅いため想像がつきません。
どういったケースにどちらを使うべきとか、両者の違いを簡単に解説して頂けたらと。。
0189デフォルトの名無しさん
2006/09/19(火) 18:23:54コントロールを継承してその中に自作の描画処理を追加した場合、そのコントロール全てでその描画が適用される
コントロールのイベントに自作の描画処理を追加した場合、そのイベントでのみ描画が適用される
同じ描画処理を使いまわしたいなら前者、一つだけに描画したいなら後者
0190デフォルトの名無しさん
2006/09/19(火) 18:28:44(A)はなんらかのコントロールを継承したクラスで定義する。
base.OnPaint(つまり継承元のOnPaint)の前後に好きな処理を追加できる。
またbase.OnPaintを呼ばなければ完全に描画をコントロールできたりする。
実際、Paintイベント自体がbase.OnPaint()を遡って行った先の
Control.OnPaint()でファイアされてる。
特定のコントロールインスタンスだけにイベント付けたいならPaintを追加する。
そのクラスなら全部イベント発生させたいならOnPaintを定義する。
0191デフォルトの名無しさん
2006/09/19(火) 18:46:18自分はエディタとcsc.exeでやってる。
0192デフォルトの名無しさん
2006/09/19(火) 18:55:050193デフォルトの名無しさん
2006/09/19(火) 19:14:370194183
2006/09/19(火) 19:41:19すれ違いですいません。
とりあえず、できそうです。
みなさんありがとうございました。
0195デフォルトの名無しさん
2006/09/19(火) 20:28:45ビットマップの横バイト数が4の倍数でないとき、各ラインのパディン
グでゴミが入るのは、Windows的には「そういうもの」だと思ってたけ
ど。
ファイルごとハッシュ計算するのが間違いでしょ。
0196177
2006/09/19(火) 20:59:55今から首釣ってきます。
さようなら
0197デフォルトの名無しさん
2006/09/19(火) 21:27:12釣り乙
0198183
2006/09/19(火) 21:30:17for Microsoft(R) Windows(R) 2005 Framework version 2.0.50727
を使ってコマンドラインでC#のコードをコンパイルしたいのですが、
なかなかうまくいきません。
ウィンドウをひとつ表示させるためのコードと
コンパイル時に必要なオプションを教えてください
0199183
2006/09/19(火) 21:36:370200188
2006/09/20(水) 07:56:58大変分かりやすかったです。ありがとうございました。
0201デフォルトの名無しさん
2006/09/22(金) 02:08:18ただ、このdllの戻り値がHRESULT型や引数にBSTRを使っており、
どのようにこれらの型を使えるようになるのかわかりません。
例えば、HRESULT method(BSTR str1, BSTR str2)というのは、
Dllimportの下にどのように書けばいいのでしょうか?
おそらく、COMを使うための書き方があるのだと思うのですが、
わかりません。 教えていただけたら幸いです。
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Runtime.InteropServices;
namespace TEST
{ public partial class TEST : Form
{
[DllImport("TESTDLL.dll")] // TESTDLL.dllが使いたいdll(COM)
// この部分にどのように宣言していいのかわかりません。
public TEST(){
InitializeComponent(); }
private void btn_method_Click(object sender, EventArgs e)
{ // この中にdll関数を使いたい }
} }
0202デフォルトの名無しさん
2006/09/22(金) 02:20:200203デフォルトの名無しさん
2006/09/22(金) 02:21:39そのDLLが間違いなくCOMならDllImportでなくてCOM Interopを使う。
プロジェクトの参照設定
0204201
2006/09/22(金) 02:30:30プロジェクトの参照設定でdllを登録してみました。
そうすると、BSTR→string, HRESULT→voidというように
各メソッドの引数が変わったように思います。
なるべく、HRESULTの型など、オリジナルのまま(といえばいいのかな?)
を使いたいと思っていますが無理でしょうか・・・?
0205デフォルトの名無しさん
2006/09/22(金) 02:33:23ふつうに method("a", "b"); てな感じで。
でもそれdllじゃなくてCOMオブジェクトのメソッドでそ?
CoCreateInstance から自前でやれるんじゃなかったら参照の追加で作られるラッパに
頼るのがいいと思うけど。
0206デフォルトの名無しさん
2006/09/22(金) 02:34:11BSTRをそのまま扱いたいってどういう場面?
0207201
2006/09/22(金) 02:45:02ありがとうございます。
CoCreateInstanceを自前でやりたいと思っております・・・
ただ、みなさんの話が私にはまだ高度すぎて、よくわかっておりません。
COMを扱うこと自体初めてでとまどっております。
206さん、
そのまま扱いたい理由として、BSTR→stringなど、ラッパによって
引数が変わることにより、動作などが異なるかなっていう安直な
考えをしてしまったためです。HRESUT→voidになったら、HRESULT
を返さないから、HRESULTを返すメソッドが成功かどうかわからない
かと思って。
0208デフォルトの名無しさん
2006/09/22(金) 02:49:08string は BSTR にマーシャリングされるし、
S_OK 以外が帰ってくるような場合には ComException がスローされる。
たぶん
0209デフォルトの名無しさん
2006/09/22(金) 02:49:27HRESULTがvoidになるのではなく、HRESULTでエラーが帰ってきた場合はCOMException例外になる。
COMExceptionのErrCodeでHRESULTの値は参照できる。
0210デフォルトの名無しさん
2006/09/22(金) 02:51:18ここから自前でやりたいならVC++2005をお勧めする。
0211デフォルトの名無しさん
2006/09/22(金) 02:53:540212デフォルトの名無しさん
2006/09/22(金) 02:54:47MarshaクラスとSystem.Runtime.InteropService 以下のクラスを調べればOK。
ネイティブのBSTRとかHRESULTとかは基本的にIntPtrで宣言しておいて、
string -> BSTR は Marshal.StringToBstr とか。使い終わったら Marshal.FreeBstr。
記憶で書いてるので多少違ってるかもしれないけど。
個人的には時間の無駄だと思う(言葉遣い悪くてごめん)。
0213201
2006/09/22(金) 03:07:39ご返信ありがとうございます。
「マーシャリング」とかIntPtr型をやはりしっかり理解していないように
思います。このような状態で質問してしまって申し訳ございません。
勉強します。
212さんがおっしゃるとおり、CoCreateInstanceを行うのは時間の無駄?
になるのかもしれません。C#の習得にはよいのかもしれませんが・・・
まずは「参照の追加」をして、このdllを使用したいと思います。
ちなみにHRESULT→void型になったのメソッドのエラー検出は、
try-catchを使ってCOMExceptionを検出するというので正しいでしょうか?
0214デフォルトの名無しさん
2006/09/22(金) 06:04:14どうしたらいいですか?
struct st{
char a[50];
char b[30];
}
↑のような感じのstructにしたいんですけど、エラーが出てしまいます。。
コラム数が多いので、st.a =....みたいなカタチはさけたいです。。
よろしくお願いします。
0215デフォルトの名無しさん
2006/09/22(金) 09:35:04struct st{
char[] a;
char[] b;
public st(int size_a, int size_b){
a = new char[size_a];
b = new char[size_b];
}
}
st s = new st(50, 50);
0216デフォルトの名無しさん
2006/09/22(金) 11:22:38データをbyte[]に読み込んでそれを単純にstructにしたいんだろうが、
固定長の配列が定義できないのだろうか?
よくわからんのでヒントになるかどうかわからん。
[MarshalAs(UnmanagedType.ByValArray,SizeConst=50)]
public char[] a;
0217デフォルトの名無しさん
2006/09/22(金) 11:52:41フォーカスがある間、一時的にTextAlignが変更される仕様の
TextBoxを作ろうとしてます。
例えば、通常は左寄せで、入力中だけ右寄せに変わり、フォーカスが
他へ移ると左寄せに戻ります。
//Sample
void TextBox1Leave(object sender, System.EventArgs e)
{
this.textBox1.TextAlign = HorizontalAlignment.Left;
}
void TextBox1Enter(object sender, System.EventArgs e)
{
this.textBox1.TextAlign = HorizontalAlignment.Right;
}
しかしこれを実行し[Tab]キーで移動しようとすると、
Leave時に、(TextAlignを左寄せに変更しようとして?)フォーカスが
他へ移動せずこのTextBoxに戻ってしまいます。
それが原因で、再度Enterイベントが発生してTextAlignが右寄せに戻って
しまうどころか、[Tab]キーでのフォーカス移動さえできません。
Leave時に、フォーカスが他へ移動しつつTextAlignを変更できる方法や
解決策はないでしょうか?
0218デフォルトの名無しさん
2006/09/22(金) 12:31:510219デフォルトの名無しさん
2006/09/22(金) 12:35:090220デフォルトの名無しさん
2006/09/22(金) 13:14:27{
private bool CancelFocus;
protected override void OnGotFocus( EventArgs e )
{
if( this.CancelFocus )
return;
this.CancelFocus = true;
this.TextAlign = HorizontalAlignment.Right;
this.CancelFocus = false;
base.OnGotFocus( e );
}
protected override void OnLostFocus( EventArgs e )
{
if( this.CancelFocus )
return;
this.CancelFocus = true;
this.TextAlign = HorizontalAlignment.Left;
this.CancelFocus = false;
base.OnLostFocus( e );
}
}
0221デフォルトの名無しさん
2006/09/22(金) 14:02:21実行すると DOS窓が出て来てしまう……orz
どなたか回避方法を教えてください m(._.)m
0222217
2006/09/22(金) 14:05:13思い通りの動作になりますね…。
うーん、なぜ。
とりあえず実現できると分かり、ほっとしました。ありがとうございました。
LostFocus使えば、CancelFocus使わなくても動くっぽいですね。
LostFocusは使用があまり好まれないみたいですが、動作上はLeaveと何が違うんだろ…。
0223デフォルトの名無しさん
2006/09/22(金) 14:22:07電卓のコントロールが表示されません。
ソリューションエクスプローラからドラッグアンドドロップすれば、ツールボックスに
登録されるとのことですが、追加できません。
使用方法を教えて下さい。
0224デフォルトの名無しさん
2006/09/22(金) 14:27:45それと、そのコンポーネントをデザイナで編集用に開いてるときは表示されないよ
0225デフォルトの名無しさん
2006/09/22(金) 14:31:33レスありがとうございます。
>IConponentかControlから(間接でも可)継承してる?
していません。
>それと、そのコンポーネントをデザイナで編集用に開いてるときは表示されないよ
電卓は別ソリューションでビルド済み(ライブラリの参照のみ)なので開いていません。
0226デフォルトの名無しさん
2006/09/22(金) 14:38:510227デフォルトの名無しさん
2006/09/22(金) 14:40:35そのクラスは何者?
どうやって表示してるの?
0228デフォルトの名無しさん
2006/09/22(金) 14:45:080230デフォルトの名無しさん
2006/09/22(金) 14:50:54∧∧
ヽ(・ω・)/ ズコー
\(.\ ノ
、ハ,,、  ̄
 ̄
0231デフォルトの名無しさん
2006/09/22(金) 14:51:220232デフォルトの名無しさん
2006/09/22(金) 14:58:28言い方が正しくありませんでした。
電卓コンポーネントは、電卓プロジェクト(ウインドウズライブラリ)内に作成したフォームでは使用可能です。
0233デフォルトの名無しさん
2006/09/22(金) 15:27:350234デフォルトの名無しさん
2006/09/22(金) 15:39:58大変ありがとうございます。
ツールボックスへの追加ができました。
皆様、お忙しい中アドバイスありがとうございました。
0235222=217
2006/09/22(金) 15:56:38>LostFocus使えば、CancelFocus使わなくても動くっぽいですね。
というのは間違いで、CancelFocusの判定は必要でした。
0236デフォルトの名無しさん
2006/09/22(金) 19:08:36HttpWebRequest req = (HttpWebRequest) WebRequest.Create("https://gmail.google.com/gmail/feed/atom");
req.Credentials = new NetworkCredential("(UserName)", "(Password)");
req.GetResponse();
↑このコード、何か問題ありますか?(;´Д`)
0237デフォルトの名無しさん
2006/09/22(金) 22:46:15C#でデスクトップにドッキングするものを作る事は可能でしょうか?。またドッキングしている
ように見えるアプリはサイズと配置を調整しているだけなのでしょうか?。
0238デフォルトの名無しさん
2006/09/22(金) 23:06:38タスクバーみたいなやつ?
ならSHAppBarMessageでググれ
0239デフォルトの名無しさん
2006/09/22(金) 23:17:48調べてきました。タスクバーに関連する情報を収得できる事はわかりましたがタスクバーもどき?を
作るのとは少し違う感じがしました。使い方を知らないだけかも^^;。
今日は遅いのでまた明日詳しく調べてみたいと思います。
ありがとうございました。
0240デフォルトの名無しさん
2006/09/22(金) 23:26:50レスありがとうございます。
初期化で入れる方法もありますよね!
>>216
レスありがとうございます。
エラーはSyntax error, bad array declarator. To declare a managed array the rank specifier precedes the variable's identifier
だそうです。。。
>データをbyte[]に読み込んでそれを単純にstructにしたいんだろうが、
そのとおりです。本当はchar[]に読み込んでやりたいんですけど;
Marshal、よくわからないんですけど、なるほど、そういうやり方もあるんですね。
ptrToStructureは使えますか?
教えてちゃんでごめんなさいm(__)m
ググってもよくわからなかったんで(^^;
0241デフォルトの名無しさん
2006/09/22(金) 23:32:38タスクバーにドッキングするバーならBandObject
0242236
2006/09/22(金) 23:54:44なぜだああああ!!!!。・゚・(ノД`)・゚・。
0243デフォルトの名無しさん
2006/09/23(土) 00:24:57ttp://hp.vector.co.jp/authors/VA016117/appbar.html
俺は一番上に引っかかったんだが…うーん?
0244デフォルトの名無しさん
2006/09/23(土) 00:42:25Cを一通り勉強したあと、C#の勉強を始めたんだが、
「C#によるプログラミングWindows」ってどうかな?
Amazonでの評価は良かったんだけど、
オブジェクトも含め、全てのコードを自分で書くっていうスタイルが珍しい。
まず言語を集中して覚えたほうが良いのかな。
この本を読み終えればそれなりの力はつくのかな?
読み終えた人の感想が聞きたい。
0245デフォルトの名無しさん
2006/09/23(土) 01:32:000246デフォルトの名無しさん
2006/09/23(土) 06:09:030247デフォルトの名無しさん
2006/09/23(土) 06:16:260248デフォルトの名無しさん
2006/09/23(土) 06:23:05動いてしまえばネイティブとあんまり変わらん。
0249デフォルトの名無しさん
2006/09/23(土) 06:44:060250デフォルトの名無しさん
2006/09/23(土) 07:09:36string program = @"C:\Windows\System32\CMD.EXE";
string argument = @"/c dir c:\windows /p";
Process extProcess = new Process();
extProcess.StartInfo.FileName = program;
extProcess.StartInfo.Arguments = argument;
extProcess.Start();
0251デフォルトの名無しさん
2006/09/23(土) 07:19:50待ってくれる。
0252デフォルトの名無しさん
2006/09/23(土) 07:20:12○WaitForExit
0254デフォルトの名無しさん
2006/09/23(土) 08:25:190255デフォルトの名無しさん
2006/09/23(土) 11:54:02C# スレでその質問して、悪い返事が返ってくるわけねぇじゃん。
0256デフォルトの名無しさん
2006/09/23(土) 13:16:010257デフォルトの名無しさん
2006/09/23(土) 13:42:09AutoEllipsisプロパティがないみたいです。
等幅フォントを使用しているので、省略記号(...)が非常にうざいです。
文字列がはみ出す分は単に表示されないだけでよいのですが、どうしたらいいでしょうか。
0258デフォルトの名無しさん
2006/09/23(土) 14:11:08WrapModeかんちゃら
0259デフォルトの名無しさん
2006/09/23(土) 14:26:200260デフォルトの名無しさん
2006/09/23(土) 14:30:480261257
2006/09/23(土) 14:56:51WrapMode=true で、折り返しになり省略記号な消えたので良い具合なのですが、
折り返された2行目の文字が下から微妙に見えてしまいます。
これを見えなくしたいのですが…。
行高さやフォントの大きさは仕様上変更できず、
またPaddingで上を空けて文字を下げるようにすると、ちょっと文字が下がりすぎの
ように見えるし、フォーカス時の点線枠もPadding分下がってしまいます。
0262デフォルトの名無しさん
2006/09/23(土) 15:06:310264デフォルトの名無しさん
2006/09/23(土) 17:39:410265デフォルトの名無しさん
2006/09/23(土) 22:38:48コンソールアプリで勉強したほうが身に付くのかな?
0266デフォルトの名無しさん
2006/09/23(土) 22:45:160267デフォルトの名無しさん
2006/09/23(土) 22:49:53ま、私自身は Hello World から始めるべきだという考えだがね。
0268デフォルトの名無しさん
2006/09/23(土) 23:28:38俺的にはWinプログラミング推奨。
先にイベントドリブン方式に慣れてからコンソールやった方がいいかなと。
0269デフォルトの名無しさん
2006/09/24(日) 00:54:19という設計は間違っていますか?
やりたいのは、非同期スレッドから入力用のダイアログを表示したいってことなんですが、
Invoke で表示すると、NotifyIcon からのメッセージが何故か処理できなくなってしまいまして orz
0270デフォルトの名無しさん
2006/09/24(日) 00:58:08今現在、どの程度知識があるかによって変わってくると思う。
プログラム初めての場合、GUIプログラム特有のイベントドリブンも一緒に理解しないといけないので、
コンソールアプリの方が、動きを追うのが楽なので C# の習得に注力できるのでよいと思う。
C#をある程度知っている or JavaやC++などのプログラム経験があるなどの場合、GUIプログラムを
やっても、問題ないと思う。
まぁ、実際はモチベーションの違いでなんとでもなるけどね。
モチベーションが高ければ、覚えることがいっぱいあっても何とかなるもんだし。
0271デフォルトの名無しさん
2006/09/24(日) 01:13:36状況が見えない
0272デフォルトの名無しさん
2006/09/24(日) 01:17:39GUI アプリで別スレッド作って HttpWebRequest.GetResponse
ただし 401 出たら認証ダイアログ出したい
そんだけ
0273デフォルトの名無しさん
2006/09/24(日) 01:24:110274デフォルトの名無しさん
2006/09/24(日) 01:31:010275デフォルトの名無しさん
2006/09/24(日) 02:03:06そのままウインドウメッセージ?
それともメソッド実行?
0276デフォルトの名無しさん
2006/09/24(日) 02:12:32すいません。言い忘れてたことが (;´Д`)
別スレッドから BeginInvoke 用いて呼び出したメソッド内で MessageBox を表示していたのですが、
表示している最中に NotifyIcon をクリックするなどしてイベントを発生させると……その時点でソフトが固まる現象がありまして。
その関連で、Invoke とモーダルダイアログは相性悪いのかな、と思ったのですが……
0277デフォルトの名無しさん
2006/09/24(日) 04:32:09したいのですがどうすればいいのでしょうか?
お気に入りの .urlファイルのfaviconのアドレス(例えば IconFile=http://www.youtube.com/favicon.ico)
に直リンクするのか?それともインターネットキャッシュから取ってくるのか?
多分一回見たやつはキャッシュからとると思うけど判別方法とか分かりません。
ていうかキャッシュのicon全部favicon.icoって名前なのにどうやって判別してるか
わかんないし・・
しかもそのicoファイルをimageListに加えるのかとかtreeViewにどうやってimageIndex指定
するのかも分からない・・・
助言お願いします。
あと、お気に入りに加え履歴も作りたいのですが、treeViewを二つ作るのか、
ひとつのtreeViewの中身を入れ替えるのかどちらがいいんでしょうか?
どうぞよろしくおねがいします。
0278デフォルトの名無しさん
2006/09/24(日) 06:26:40スレッドやメッセージループをよく理解してないに10バーツ。
>別スレッドから BeginInvoke 用いて呼び出したメソッド内で MessageBox を表示していたのですが、
>表示している最中に NotifyIcon をクリックするなどしてイベントを発生させると……その時点でソフトが固まる現象がありまして。
それは問題なく動く。
回答がほしいなら再現性のあるコードをアップしたほうが早い。長いようならアップローダつかってな。
0279デフォルトの名無しさん
2006/09/24(日) 10:47:23自分でダウンロードして自分でキャッシュしたらええやん
>imageListに加える
imageList.Add( icon );するだけ
>treeViewにどうやってimageIndex指定するのか
treeView.ImageList = this.imageList;して
treeViewNode.ImageIndex/ImageKeyを設定するだけ
まず使いたいコントロールのドキュメント見ろ。話はそれからだ
>treeViewを二つ作るのか、
>ひとつのtreeViewの中身を入れ替えるのかどちらがいいんでしょうか?
入れ換えるのが非効率なら2つ作れ
まあ基底クラス作って2つ派生しろ
0280デフォルトの名無しさん
2006/09/24(日) 10:47:53○imageList.Images.Add( icon );するだけ
0281デフォルトの名無しさん
2006/09/24(日) 17:06:55表示されているmonthcalender から月の最初の日と最後の日を取得するにはどうしたらいいのでしょうか?
0282デフォルトの名無しさん
2006/09/24(日) 17:31:09DaysOfMonth かなんかそんな感じのプロパティかメソッドかが DateTime にある
0283デフォルトの名無しさん
2006/09/24(日) 17:36:33行数が少ないとき(スクロールの必要がないとき)は勝手に消えます。
これを常に表示するようにしたいのですが、方法はあるでしょうか。
もちろんスクロールの必要がないときに表示しても機能的に意味がないのですが、
デザイン上の都合です。
0284201
2006/09/24(日) 18:39:58質問していた者です。
戻り値のHRESULTについて、S_OK以外の戻り値を
COMExceptionでcatchしようとしたのですが、全く例外処理が
走りません。わざとS_OK以外を返すようにメソッドを使ったとしても。
COMの例外処理を行うにはまだ何が処理、設定が必要なのでしょうか?
1. COMオブジェクト「仮名:COMObj」を「参照の追加」のCOMで追加
→HRESULT型を返すメソッドがvoid型になる。HRESULT型の戻り値がほしい
2. 以下のコードを記述
...using一部省略
using ComObject // 追加したCOMオブジェクト
using System.Runtime.InteropServices;
namespace COMCall
{ public partial class COMCall : Form
{
ComClass comtest = new ComClass(); // CobObj内のクラス
public COMCall(){InitializeComponent();} // コンストラクタ
private void btn_on_Click(object sender, EventArgs e){
try{
comtest.ComMethod(); // ComMethod()はCOMObj内のメソッド
return;
}
catch(COMException ee){ //このcatchにどうしても飛ばない
int intError = ee.ErrorCode;
} } } }
0285デフォルトの名無しさん
2006/09/24(日) 18:52:28それか C#相談室かどこか。
0286269
2006/09/24(日) 18:54:25解決解決。よかったよかった (*ノ∀`)
……本当にごめん orz
0287デフォルトの名無しさん
2006/09/24(日) 19:01:30こんにちは。ちょっと質問なのですが
lamermelculo.comというエロ動画、エロ写真のサイトで見かけたのですが
http://www.lamermelculo.com/imagenes/webs/040706/berberecho.jpg
これはいったい人体のどの部分で男なのか?女なのか?わかりますか?
いまふっと思ったが元男性が性転換手術で女性器を持ちピアスをしてるとか?
0288(^-^) ◆MONSOON/qo
2006/09/24(日) 19:07:53脱腸している図
0289デフォルトの名無しさん
2006/09/24(日) 22:19:570290デフォルトの名無しさん
2006/09/24(日) 22:24:150291デフォルトの名無しさん
2006/09/24(日) 23:00:110292デフォルトの名無しさん
2006/09/24(日) 23:57:41ListViewでアイテムのクイック時 Ctrlキー を押してクイックした時と
同じように選択したいのですが、どのようにすれば良いのでしょうか?
ちょうどListBoxのSelectionModeのMultiSimpleの機能です。
お願いします。
0293デフォルトの名無しさん
2006/09/25(月) 00:19:450294292
2006/09/25(月) 00:26:20MultiSelectも試したのですが、MultiSelectですと複数選択するときに
Ctrlキーを押しながらクイックしなければ選択することが出来ませんでした。
したい事は、Ctrlキーを押さなくてもクイックで複数選択出来るようにしたいのです。
0295デフォルトの名無しさん
2006/09/25(月) 00:36:360296デフォルトの名無しさん
2006/09/25(月) 17:33:12string str = "hoge";
としたあと
return "" +str;
とするのは一体どういう事をしてるんでしょうか?
return str;と同じ意味なんでしょうか?
0297デフォルトの名無しさん
2006/09/25(月) 17:38:07writer.WriteByte((byte)trackBar2.Value);
writer.WriteByte((byte)trackBar3.Value);
writer.WriteByte((byte)trackBar4.Value);
writer.WriteByte((byte)trackBar5.Value);
writer.WriteByte((byte)trackBar6.Value);
writer.WriteByte((byte)trackBar7.Value);
writer.WriteByte((byte)trackBar8.Value);
writer.WriteByte((byte)trackBar9.Value);
...............................
writer.WriteByte((byte)trackBar99.Value);
writer.WriteByte((byte)trackBar100.Value);
このプログラムもっと簡潔にできますか?
それとも上記みたいにベタ書きするしかないんでしょうか?
>>296
そういうのはじめて見ました。
return str;と同じだと思うけど(一般人意見)
0298デフォルトの名無しさん
2006/09/25(月) 17:38:53strがnullだった場合にnullを返さないために
return "" + str;
とすることはある。
"" + null == ""
だから。
0299デフォルトの名無しさん
2006/09/25(月) 17:41:52trackBarをあらかじめ配列やリストにぶちこんでおいて
for/foreachで回す
0301298
2006/09/25(月) 19:01:54Cだとnull==""だったと思うんですがC#だと別のものとして扱われるんでしょうか?
もし同じだとしたらstrがnullの時
return ""+str;としても
結局return null+null;となってreturn str;つまりreturn null;
としたのと同じことになってしまうと思うんですが・・・
0302296
2006/09/25(月) 19:03:39298じゃなくて296です
0303デフォルトの名無しさん
2006/09/25(月) 19:09:32NULL → 0
C#
null + "" → ""
0304デフォルトの名無しさん
2006/09/25(月) 19:16:17""[0] == NULL
0305デフォルトの名無しさん
2006/09/25(月) 20:42:23まあ、百聞は一見にしかず
string text01 = null;
string text02 = null;
Console.WriteLine(text01 + text02 == "");
0306296
2006/09/25(月) 21:05:50つまり
null一つのとき→”文字”であって”文字列”ではない。だからtext01==""は偽になる
null+nullやnull+""のとき→null+nullだとnull文字を連結したことで文字列になり真になる
null+""だと文字列にnullに文字列を足すので当然文字列になり真になる
という考えでいいんでしょうか・
0307デフォルトの名無しさん
2006/09/25(月) 21:11:41ちがいます
0308デフォルトの名無しさん
2006/09/25(月) 21:16:34ま、良いや。答え教えちゃうか。>>305 のコードをコンパイルすると
ldnull
stloc.0
ldnull
stloc.1
ldloc.0
ldloc.1
call string [mscorlib]System.String::Concat(string, string)
ldstr ""
call bool [mscorlib]System.String::op_Equality(string, string)
call void [mscorlib]System.Console::WriteLine(bool)
これを逆コンパイルすると
string text1 = null;
string text2 = null;
Console.WriteLine(String.Concat(text1, text2) == "");
分かったなら、続きは自分で調べろ。
0309デフォルトの名無しさん
2006/09/25(月) 21:29:23えらい偉そうやなw
思わずレスしてもうたでww
0310デフォルトの名無しさん
2006/09/25(月) 21:38:09……いや、レスした後に口調変だなーと自分でも感じてたり(´・ω・`)
0311デフォルトの名無しさん
2006/09/25(月) 22:25:44http://msdn2.microsoft.com/ja-jp/library/a6d350wd.aspx
このメソッドは null を String.Empty 、すなわち "" として扱う。
よって、 "" と "" を足したことになり、 "" が帰る。
null と null は足せない。
+ 演算子で連結した時に文字列が含まれた場合のみ、String.Concatに変換される。
null は文字列でも文字でもない。インスタンスがないことを表す。
0312デフォルトの名無しさん
2006/09/25(月) 22:35:14>null と null は足せない。
((string)null) + null みたいなのは可能だけどね。
0313デフォルトの名無しさん
2006/09/25(月) 22:42:490314デフォルトの名無しさん
2006/09/25(月) 22:45:59片方がnullならもう片方を返す様に実装されてる。
0315デフォルトの名無しさん
2006/09/25(月) 23:34:15仕様で決まっているのならともかく
0316デフォルトの名無しさん
2006/09/26(火) 00:22:02>Empty 文字列は、任意の null 引数の代わりに使用されます。
ドキュメントには、こんな文面が
0317デフォルトの名無しさん
2006/09/26(火) 01:15:34文字列の連結に+演算子を使うと
string hoge = "うほっ";
int foo = 1919;
0721 + foo + hoge + 69
とかでややこしくなるからString.ConcatかStringBuilderを使うようにしている
0318デフォルトの名無しさん
2006/09/26(火) 01:21:490319デフォルトの名無しさん
2006/09/26(火) 01:54:13{
}
と
if(true)
{
};
にはどういう違いがあるんでしょうか?
0320デフォルトの名無しさん
2006/09/26(火) 02:24:06;は何もしない無のステートメント
{}だけでひとつのステートメント
0321デフォルトの名無しさん
2006/09/26(火) 02:54:490322デフォルトの名無しさん
2006/09/26(火) 02:55:330323デフォルトの名無しさん
2006/09/26(火) 11:54:13>trackBarをあらかじめ配列やリストにぶちこんでおいて
>for/foreachで回す
んーだけど
配列やリストにぶちこむ時にべた書きになってしまいませんか?
コントロールとか全てそうなんですが、
trackBar##.Value
##の部分を変数扱いにできる手法がないものかと(^_^;
0324デフォルトの名無しさん
2006/09/26(火) 11:57:31しようとしているのですが、
Delegate void SetTextCallback(String text);
が「無効なトークン 'void' が クラス、構造体またはインターフェイスのメンバ宣言で使用されています。」
とエラーになってしまいます。これはどうしてなのでしょうか?。
0325デフォルトの名無しさん
2006/09/26(火) 12:34:40あっなんかコントロールを配列にする手法があることに気付きました。
0326デフォルトの名無しさん
2006/09/26(火) 13:11:40delegate void SetTextCallback(String text);
0327デフォルトの名無しさん
2006/09/26(火) 13:16:42先頭が小文字だったのですね
ありがとうございます
0328デフォルトの名無しさん
2006/09/26(火) 16:17:37スレッド側でAcceptTcpClient()した場合にフォームを閉じ(×ボタンを押しても)ても
終了しないのですが、これを終了させるにはどうしたら良いのでしょうか?。
Leaveイベントを拾ってソケットを閉じれるのかと考えて試してみたのですがイベントを
拾う事ができませんでした。
0329328
2006/09/26(火) 16:25:21すいません
0330デフォルトの名無しさん
2006/09/26(火) 16:25:29GDIオブジェクト数の取得方法がわからない・・・
C++ではGetGuiResourcesというので取得出来るらしいけど、C#で似たようなのはないのだろうか
0331デフォルトの名無しさん
2006/09/26(火) 16:33:09ttp://pinvoke.net/default.aspx/user32/GetGuiResources.html
0332デフォルトの名無しさん
2006/09/26(火) 16:50:48thx
おかげで何とかなりそうです
今度は「アクセスが拒否されました。」とExceptionを返されたりもしているけど・・
0333デフォルトの名無しさん
2006/09/26(火) 17:11:16何かソフトを作ってみようと思うのですがC#の前にCやC++をしっかり覚えた方がいいのでしょうか?
プロンプトでしか動かないのでやる気が落ちてきています。
二つとも半年程勉強しました。
何かオススメの書籍などもありましたらお願いします。
0334デフォルトの名無しさん
2006/09/26(火) 17:22:120335デフォルトの名無しさん
2006/09/26(火) 20:03:07お好きなように。突き放しているわけではなくて、モチベーションを
保つことのほうが大事だから。
書籍に関してはC#に限っていえばMSの環境なので
「書籍」に限らず、ネット上に腐るほどあるしMSDNが最高に心強いし、
そもそもIDE優秀でわけ解らなくても書けてしまう。
0336デフォルトの名無しさん
2006/09/26(火) 20:29:38ListViewItem[] items = new ListViewItem[10]; では当然エラーになってしまいます・・・。
0337デフォルトの名無しさん
2006/09/26(火) 20:33:390338デフォルトの名無しさん
2006/09/26(火) 20:35:16別バージョン混じっているかスレ違い
0339デフォルトの名無しさん
2006/09/26(火) 20:39:16List<ListViewItem> items = new List<ListViewItem>();
あるいは
ArrayList items = new ArrayList();
0340デフォルトの名無しさん
2006/09/26(火) 20:58:14やっぱりそうなんだ
自分のコードがダサいのが原因かと思ってたけど
0341336
2006/09/26(火) 20:58:54List<ListViewItem>を使った場合には new ListViewItem()の書き方も変わるのでしょうか?
List<ListViewItem> items = new List<ListViewItem>();
int index = 0;
items[index] = new ListViewItem(DateTime.Now.ToString("M/d H:m:s")); ← ここでエラーになる
MessageBox.Show("dd");
0342デフォルトの名無しさん
2006/09/26(火) 21:04:42List<ListViewItem> items = new List<ListViewItem>();
items.Add( new ListViewItem( DateTime.Now.ToString("M/d H:m:s") ) );
0343デフォルトの名無しさん
2006/09/26(火) 21:10:30MSDNで、
System.Collections.Generic.List<T> クラス
を引いてみな。
0344デフォルトの名無しさん
2006/09/26(火) 21:40:11せめて内容ぐらい書けよ。
// 今回はそれ以前の問題だが。
0345デフォルトの名無しさん
2006/09/27(水) 01:34:39form01 を作成したスレッドを thread01、バックグラウンドスレッドを thread02 としたとき、
1: thread01 が thread02.Abort
2: thread02 が ResetAbort ⇒ form01.Invoke を使ってちょっとした処理を
なことをしているんですが、Invoke 呼び出し時に thread01 と thread02 がともに busy に orz
thread01 が thread02.Join なんてしていれば busy になることは明らかなんですけど、
デバッガで確認しても、Abort 直後に thread01 はメインループに戻っているんで……
何か、Invoke 呼び出し時の注意点はありましたっけ?
あるいは、マルチスレッドをデバッグするときの注意点とか。
0346デフォルトの名無しさん
2006/09/27(水) 01:45:06Thread.Abort()/ResetAbort()を使うべからず
0347デフォルトの名無しさん
2006/09/27(水) 01:48:51他のメソッドも使うなばっかり
0348デフォルトの名無しさん
2006/09/27(水) 01:59:49あー。やっぱり使わない方が良いっスか……(´・ω・`)
了解なり。別の方法を考えますー
0349デフォルトの名無しさん
2006/09/27(水) 07:33:30hitarea列挙体があるのはわかったのですが値が取得できず困っていまつ
0350デフォルトの名無しさん
2006/09/27(水) 07:47:180351デフォルトの名無しさん
2006/09/27(水) 17:52:190352デフォルトの名無しさん
2006/09/27(水) 19:30:490353デフォルトの名無しさん
2006/09/27(水) 20:23:03Expressで勉強の身だから、使えるツールがないお…ツールなくても
テストスイート作る方法ってあるますけ?
0354デフォルトの名無しさん
2006/09/27(水) 20:30:20NUnit-GUIは別にVS拡張使えなくても動くぞ。
テストプロジェクトをクラスライブラリで作って
スタートアップにNUnit-GUIを指定するだけ。
グリーンバー見るためにTestDrivenじゃなくこっち
使ってるやつも多い感じ。俺もな。
0355354
2006/09/27(水) 20:31:250356デフォルトの名無しさん
2006/09/27(水) 21:05:40ありがとうございました!
0357デフォルトの名無しさん
2006/09/28(木) 01:09:450358デフォルトの名無しさん
2006/09/28(木) 09:32:43全てのユーザに対して読み書きの権限を設定したいのだけど、
どうすればいい? Unix系の777の状態にしたい。
よろしくお願いします。
0359デフォルトの名無しさん
2006/09/28(木) 10:27:01http://msdn2.microsoft.com/ja-jp/library/system.security.accesscontrol.directorysecurity.aspx
とりあえずのテスト用ならFileSystemRights.FullControlを使えばいいんじゃないかと。
0360デフォルトの名無しさん
2006/09/28(木) 11:10:03例えばこういう感じに呼び出すとします
hoge.aspx
↓
hoge.dll の Page_Load() 関数
↓
複数のdllや関数
↓
foo.dll の foo() 関数
この中の foo() 関数内で、大本の hoge.dll の「hoge」の部分を取得したいと思っています
System.Reflection.Assemblyのメソッドあたりがどうかと思いましたが、GetCallingAssemblyやGetExecutingAssemblyでは思った値がとれませんでした
ご存知の方教えてください
0361デフォルトの名無しさん
2006/09/28(木) 12:35:26サンクス。
一度見たページなんだが、理解できなかった。
もういっぺんガンガル。
0362デフォルトの名無しさん
2006/09/28(木) 16:38:20JavaのCollections#unmodifiableMapにあたるものです。
0363デフォルトの名無しさん
2006/09/28(木) 18:34:12.netの案件も増えたし…
0364デフォルトの名無しさん
2006/09/28(木) 18:59:37privateだろうがprotectedだろうがメソッド呼びまくれる?
0365デフォルトの名無しさん
2006/09/29(金) 15:44:53たとえば、↓のようにアクセスをするときに
string test;
test = label1.Text;
test = label2.Text;
test = label3.Text;
「label?.Text」の数字の部分だけ置き換えて
for文などで繰り返し処理したいのですが可能でしょうか?
0366デフォルトの名無しさん
2006/09/29(金) 15:48:080367365
2006/09/29(金) 15:59:01開発環境は Microsoft Visual C# 2005 を使っていますが
デザイナの画面で Form上に配置したLabelを配列化することができるのでしょうか?
それとも、コードの方で配列宣言して一つ一つ Form上の表示位置を指定
すればいいという意味でしょうか?
0368デフォルトの名無しさん
2006/09/29(金) 16:11:01コードで既存のコントロールにアクセスできるでしょうが。
Label[] labels = new Label[]{ this.label1, this.label2, ... this.label999 };
for( int i=0; i<labels.Length; i++ )
{
test = labels[i].Text;
}
0369デフォルトの名無しさん
2006/09/29(金) 16:14:59デザイナで配置したLabelとかのコントロールは
そのFormクラスのフィールドですよ
0371デフォルトの名無しさん
2006/09/29(金) 16:39:47ReadToEndで読み込むと改行が\r\nという文字列になります。
ここまでは別に良いのですが、
clStr.Replace("\\r\\n", "\n");
と変換を試みても効果がありません。
なぜでしょうか?
0372デフォルトの名無しさん
2006/09/29(金) 16:45:58clStr.Replace("\r\n", "\n");
0373365
2006/09/29(金) 16:46:35やっぱり解決してませんでした。
配列を初期化するところでラベルの数だけ並べて書くのが面倒です。
この部分もループに出来ませんか?
0374デフォルトの名無しさん
2006/09/29(金) 16:50:13clStr= clStr.Replace("\r\n", "\n");
でした。
失礼しました。
0375デフォルトの名無しさん
2006/09/29(金) 16:54:13何が解決していないと?
面倒ならやめちまえ、と言いたいが……
List<Label> labels = new List<Label>();
foreach( Control control in this.Controls )
{
if( control is Label )
labels.Add( (Label)control );
}
0376365
2006/09/29(金) 16:57:40365です
>>373とは別人です……
>>373さん、便乗質問は(少なくとも当方は)構いませんが
同一人物ぽくしないでください
0377デフォルトの名無しさん
2006/09/29(金) 18:49:32>>375のようにforeachで回すと考え付くと言う流れを
閃いたときの嬉しさはプログラマーの醍醐味
0378デフォルトの名無しさん
2006/09/29(金) 19:40:580379デフォルトの名無しさん
2006/09/29(金) 19:44:51それだけのためにクラス作るのもあほか・・・。
0380デフォルトの名無しさん
2006/09/29(金) 20:14:59Visual Studio 2005でC#を使ってプログラムをしているのですが、
Windowsのタイムゾーンのロケールを変更するプログラムを作りたいのです。
String time = TimeZone.CurrentTimeZone.StandardName;
で現在のタイムゾーンを取得することはできるみたいですが、
変更する時はどうすればいいでしょうか?
やはりAPIを使うしかないですか?
初心者ですみませんが、どなたかよろしくお願いします。
0381デフォルトの名無しさん
2006/09/29(金) 20:18:53識別できるようにTag に何か書いておけばいいんじゃないだろうか。
0382デフォルトの名無しさん
2006/09/29(金) 20:56:53API 使うしかないね。
0383デフォルトの名無しさん
2006/09/29(金) 22:20:270384デフォルトの名無しさん
2006/09/29(金) 22:22:180385デフォルトの名無しさん
2006/09/29(金) 22:27:580386デフォルトの名無しさん
2006/09/30(土) 01:45:270387デフォルトの名無しさん
2006/09/30(土) 01:49:50386 が実現できるかは知らない
0388デフォルトの名無しさん
2006/09/30(土) 01:50:48AとB、CとDのように2つのグループに分けることは可能?
パネル上に別のコンテナを載せその中にラジオボタンを配置すれば可能だけど、
そうしなくても済む方法があれば教えてほしい。
0389デフォルトの名無しさん
2006/09/30(土) 01:59:280390デフォルトの名無しさん
2006/09/30(土) 02:06:580391デフォルトの名無しさん
2006/09/30(土) 03:16:12やったことないけど。
0392デフォルトの名無しさん
2006/09/30(土) 09:37:29CPad for C#.NET2.31 と Microsoft.NET Framework SDK 1.0a (1.1と2.0も入れてます)
をインストールしたんですが、CPadで使用するコンパイラ(csc.exe)
を見つけることができず立ち往生しています。
1.0aのBinフォルダ内のcorvars.batを実行してから、コマンドプロンプトで
cscを実行できるようになり、以下のファイルをコンパイル(csc test1.cs)してやると
成功するのですが、CPadからコンパイルするにはどういう設定をすれば良いか、
偉い人教えてください。
// メモ帳で作成し、test1.csで保存
using System;
class test1
{
public static void Main()
{
Console.Write("これは、テストです。 \n");
}
}
0393デフォルトの名無しさん
2006/09/30(土) 09:39:390394デフォルトの名無しさん
2006/09/30(土) 09:50:570395デフォルトの名無しさん
2006/09/30(土) 09:54:51Windowsの検索でいくら探しても、csc.exeというファイルが存在しないんです。
ド素人なので、もう少し噛み砕いて教えていただけないでしょうか。お願いします。
0396デフォルトの名無しさん
2006/09/30(土) 10:00:24以下にあるよ。%windir% は XP なら c:\windows な
SDK は program files の方に入るからちょっとややこしいが。
0397デフォルトの名無しさん
2006/09/30(土) 10:08:34お騒がせしました。感謝致します。
0398388
2006/09/30(土) 11:06:01レスありがとう。
TabStopを設定してもだめだった。
Checkedを設定するときにTabStopも強制的に変更されるようだ。
「グループの先頭」のようなプロパティがあれば、
いちいちグループごとにコンテナを用意しなくていいのにと思った。
そういったものがVC++6.0にあったような記憶が。勘違いかもしれないが。
0399デフォルトの名無しさん
2006/09/30(土) 11:09:06Visual C# Expressを使えばいいのに
なんでわざわざ…
0400デフォルトの名無しさん
2006/09/30(土) 11:11:050401デフォルトの名無しさん
2006/09/30(土) 11:16:33// 私は主にテキストエディタ使ってる身で CPad とやらがどうかは知らんが
0402デフォルトの名無しさん
2006/09/30(土) 11:18:55気持ちは分かるけど、
本腰入れてプログラミングするときには、起動遅くてもVSの補助機能が魅力だし、
逆にさらったソース見るとかだけなら秀丸とかのエディタで十分な気が。
0403デフォルトの名無しさん
2006/09/30(土) 11:22:12しかも2001年で更新止まってるしw
そんなの使うなよw
0404デフォルトの名無しさん
2006/09/30(土) 11:59:41PSDKインストールしたらどうなる?
F1のヘルプブラウザからAPIとかCOMとか見れるようになる?
0405デフォルトの名無しさん
2006/09/30(土) 12:18:030406392
2006/09/30(土) 13:14:59ちょっと自分には敷居が高い気がしました。(マシン的には重くないです。)
で、メモ帳で書いて、コマンドプロンプトからコンパイル&実行を試したわけです。
そして、メモ帳で書くより専用エディタの方が色分けしてくれるから・・・という理由で、CPadへ。
使い勝手がよく、エディタ内でコンパイル&実行ができるので、自分には合ってると思いました。
みなさんは、やっぱりVSを使ってるんですか?
0407デフォルトの名無しさん
2006/09/30(土) 13:20:050408デフォルトの名無しさん
2006/09/30(土) 13:23:58はいいすぎかもしれんが。
0409デフォルトの名無しさん
2006/09/30(土) 13:25:150410デフォルトの名無しさん
2006/09/30(土) 13:31:210411392
2006/09/30(土) 13:35:44コードは表示されるけど、デバッグ開始ボタンが押せないので、テストできないんです。
それで、VSは自分には無理だ。。。と思ったんです。
ちなみに、「同時に覚えるC++,Java,C言語」という本を見ながら、C#も試しているところです。
0412デフォルトの名無しさん
2006/09/30(土) 13:42:10test1.csをそのプロジェクトに追加すればOK
0413デフォルトの名無しさん
2006/09/30(土) 13:42:12言語やツールに何を使ってもプログラミングなどできんぞ。
0414392
2006/09/30(土) 13:47:13>>412 プロジェクトに追加したらデバッグ開始ボタンを押せるようになりました。でも、ビルドエラーが。Mainに波線が入っているので、やり直してみます。
0415デフォルトの名無しさん
2006/09/30(土) 14:01:070416デフォルトの名無しさん
2006/09/30(土) 14:26:28良書を与えれば小学生でも自力で調べて微積の勉強くらい出来そうなもんだけどな。
全ての小学生ができるとはいわないけど。
日本ではその機会が与えられないだけで。
C# とか VS に関する資料はウェブ上探せば腐るほどある。
0417392
2006/09/30(土) 14:54:29それを言っちゃ、このスレの存在意義が無いのでは?
優れた参考書が本屋に捨てるほどあるから、学校も予備校もいらんよ。というのと同じような・・・ orz
>このスレッドは
>「どんなにくだらないC#プログラミングに関する発言でも誰かが優しくレスをしてくれるスレッド」です。
>ほかのスレッドでは恐ろしくて書き込めないような低レベル、もしくは質問者自身なんだか意味がよく分からない質問など、
>勇気をもって書き込んでください。
0418デフォルトの名無しさん
2006/09/30(土) 14:56:48優れた参考書を買ってから、それを持って塾に池。
手ぶらで学校や予備校に通うなよ(;´Д`)
0419392
2006/09/30(土) 15:01:12ここがいちばん初心者向けなスレだと思ったんですが・・・orz
0420デフォルトの名無しさん
2006/09/30(土) 15:11:24本を見れば理解できることを、なぜわざわざ聞くのかと小一時間
0421デフォルトの名無しさん
2006/09/30(土) 15:14:150422デフォルトの名無しさん
2006/09/30(土) 15:15:11使いこなせてないのもあるが、
コード自動生成がどうも気持ち悪くてしょうがないのと
オートフォーマットで{の前に必ずスペースを付けやがるのが困る。
(オプションが見つからない)
つか勉強なら一から自分でゴリゴリ書いていった方が覚えると思ふ。
0423デフォルトの名無しさん
2006/09/30(土) 15:23:50リアル厨房か工房くらいと見受けられるが、
C# 云々関係なく1つアドバイスするなら、
このスレや、C# に関する質問に限らず、世の中全般の話、
>>421 の言葉を肝に銘じておけ。
言わなくていい発言はしない方がいいんだよ。
0424デフォルトの名無しさん
2006/09/30(土) 15:23:58できるのは、どう頑張ってもわからない所や気になったところを休み時間にクラスメイトに質問するような程度。
ttp://www.atmarkit.co.jp/fdotnet/index/all/category.html
よく出てくる参考書
「改訂版 C#入門」から始めれ
0426392
2006/09/30(土) 15:30:46>このスレッドは
>「どんなにくだらないC#プログラミングに関する発言でも誰かが優しくレスをしてくれるスレッド」です。
>ほかのスレッドでは恐ろしくて書き込めないような低レベル、もしくは質問者自身なんだか意味がよく分からない質問など、
>勇気をもって書き込んでください。
これは釣り?
0427デフォルトの名無しさん
2006/09/30(土) 15:35:39・自動生成しない
・オートフォーマットしない
でいいんでは?
0428デフォルトの名無しさん
2006/09/30(土) 15:38:56要は秀丸に慣れてるからw
プログラミング経験は殆どスクリプト言語でIDEは殆ど使ったこと無かったし。
0429デフォルトの名無しさん
2006/09/30(土) 16:26:01名前入力用の別ダイアログを開いてOKボタンを押したら入力された名前を拾いたいと
考えているのですがどうしたら宜しいのでしょうか?。
名前入力にはテキストボックスを使用しています。
Login login = new Login();
if (login.ShowDialog() == DialogResult.OK)
{
string nick = login.nick; ← こういう感じの事をやりたいのです
}
0430デフォルトの名無しさん
2006/09/30(土) 16:30:57みたいだねw
スレタイに「初心者用」って入ってるから、自分は初心者だと名乗ったら怒られるというのもねw
0431392
2006/09/30(土) 16:42:23ド初心者としては、こんなふうに思います。
・マジレスが欲しい。
・答えられないなら流して。煽らないで。
・上級者は他所で質問して。
・本を読んでもその行間が理解できない、ということを分かって欲しい。
・プロなあなたもド初心者の時期があったはず。
0432デフォルトの名無しさん
2006/09/30(土) 16:45:43継承とかを使わずにコンポーネントを拡張する方法を思いついたので嬉しくてつい。
必要な拡張を取捨選択できるのも良いなと思うんですが、どうでしょう。
/* コントロールのドラッグでフォームを移動させるプラグイン */
public class FormMover_Plugin{
private Control Target;
private Form Mover;
private Point PrevPos;
public FormMover_Plugin(Control Target,Form Mover){
this.Target = Target;
this.Mover = Mover;
Target.MouseDown += new MouseEventHandler(this.OnMouseDown);
Target.MouseMove += new MouseEventHandler(this.OnMouseMove);
}
private void OnMouseDown(object sender, MouseEventArgs e){
PrevPos = new Point(e.X, e.Y);
PrevPos = Mover.PointToScreen(PrevPos);
}
private void OnMouseMove(object sender, MouseEventArgs e){
Point pta = new Point(e.X, e.Y);
pta = Mover.PointToScreen(pta);
if ((e.Button & MouseButtons.Left) == MouseButtons.Left && PrevPos != pta){
Mover.Location = new Point(Mover.Location.X + pta.X - PrevPos.X,Mover.Location.Y + pta.Y - PrevPos.Y);
PrevPos = pta;
}
}
}
0433432
2006/09/30(土) 16:48:23Loginにpublic string nick_strを定義。
OKボタンクリック時のイベントにテキストボックスの値をnick_strに代入。
呼び出し元からnick_strを参照
0434430
2006/09/30(土) 17:06:01味方したけど。一応マジレスしておく。
「初心者」だと名乗ったことそのものが叩かれた原因じゃなくて。
"初心者の癖に噛み付いてきた"ってところだね。
要するに、教えを請う立場の態度じゃなかったということ。
実世界と同じでしょ?
0435デフォルトの名無しさん
2006/09/30(土) 17:13:44> ・マジレスが欲しい。
できる限りしてる。
本とかドキュメントにそのまま書いてある事は別。
> ・答えられないなら流して。煽らないで。
大抵は質問内容が答えを導くのに不足している。
だから聞き返す。
> ・上級者は他所で質問して。
特にこのスレに上級者が行うような質問ってのは無いように思うが。
専門性の問題はあるにせよ。
> ・本を読んでもその行間が理解できない、ということを分かって欲しい。
その理解できない行間を質問すればいい。
行そのものに書かれてる事まで聞くな。
> ・プロなあなたもド初心者の時期があったはず。
だから何?
0436392
2006/09/30(土) 17:15:34”初心者の癖に・・・”というのは、よく分かります。
実世界でも、自分が回答する立場のスレでも、よく感じることですからね。
0437デフォルトの名無しさん
2006/09/30(土) 17:16:15取りあえずお前の考えがこのスレ住人の総意とか思っちゃってませんか?
0438デフォルトの名無しさん
2006/09/30(土) 17:17:36>>>401
>気持ちは分かるけど、
>本腰入れてプログラミングするときには、起動遅くてもVSの補助機能が魅力だし、
>逆にさらったソース見るとかだけなら秀丸とかのエディタで十分な気が。
余計なお世話だな。キレてるのもしかしてこいつ?
0439392
2006/09/30(土) 17:18:26>できる限りしてる。
という言葉に優しさを感じました。なるべくピンポイントに質問できるように努力しようと思います。
0440デフォルトの名無しさん
2006/09/30(土) 17:19:55いんや、そう言う立ち位置の回答者もいるってだけのこと。
0441デフォルトの名無しさん
2006/09/30(土) 17:20:50おまえマゾか?普通これだけメタ糞に言われたら腹が立つもんだが。
0442デフォルトの名無しさん
2006/09/30(土) 17:22:09じゃあ少し黙ってくれ。正直うるさい。
0444デフォルトの名無しさん
2006/09/30(土) 17:24:55こんなネットの匿名掲示板で必死にならないでさ。
0445392
2006/09/30(土) 17:29:04プログラミングは昨夜始めたばかりなので、まだ専門学校へ行くとか、そこまで具体的に考えてないんです。
あくまで、趣味の一つとして始めましたから。(こういうこと言うと、プロに叱られそうですが。)
いつか時間があるときに、専門学校へ行きたいとは思ってるんですけどねぇ。
0446デフォルトの名無しさん
2006/09/30(土) 17:31:44初心者にも便利で親切な機能がテンコ盛りな環境が
タダで提供されてるんだからそれを使え。
0447デフォルトの名無しさん
2006/09/30(土) 17:31:520448デフォルトの名無しさん
2006/09/30(土) 17:39:59こういう場合、あれこれレスしたりせず、
↓の URL 貼って流すせばいいんだった。
技術系メーリングリストで質問するときのパターン・ランゲージ
http://www.hyuki.com/writing/techask.html
メーリングリストと入ってるけど、掲示板でも同様だと思う。
これ読ませるの、質問者のためにもなると思うし。
0449デフォルトの名無しさん
2006/09/30(土) 17:45:10偉そうに。
0450デフォルトの名無しさん
2006/09/30(土) 17:48:040451デフォルトの名無しさん
2006/09/30(土) 17:49:30今度から素直にVC#2005EEを使うことにします。特殊環境じゃ、回答者側も困りますもんね。
>>447
確かに、ただの趣味ですから、特に切迫しているわけではないです・・・ orz
>>448
ざっと読みました。他スレで回答側を演じているので、質問スレの掟は人並みには理解してるつもりですが、
自分が質問側になると、なぜか冷静さを失ってしまうんですよねぇ。
0452デフォルトの名無しさん
2006/09/30(土) 17:51:280453392
2006/09/30(土) 17:52:08他スレでコテ無し回答し、ここでコテ付け忘れ。
まるで449が自分のような状況になってる(笑)
ちなみに、451=392です。449は自分じゃないです。
といっても信じてもらえない位置関係。
0454392
2006/09/30(土) 17:53:370455デフォルトの名無しさん
2006/09/30(土) 17:54:21エンタープライズって・・・金持ってるなぁ。
0456デフォルトの名無しさん
2006/09/30(土) 17:57:37うるさい黙れ氏ね
0457デフォルトの名無しさん
2006/09/30(土) 17:58:35>>433
ありがとうございます
逆の事をやろうとして苦労していました
0458392
2006/09/30(土) 18:00:36コテ無し回答したら、大当たり。ってオチですね(笑)
そろそろスレ汚しを終わりにします。ほんと、失礼しました。
楽しかったです。
0459デフォルトの名無しさん
2006/09/30(土) 18:09:04リッチテキストの足し算ってどうすればいいのですか?
普通のテキストと違って+しても足してくれないし…
0460デフォルトの名無しさん
2006/09/30(土) 18:24:38>> ・プロなあなたもド初心者の時期があったはず。
>だから何?
435のこの返答は参考にしたいと思った。他山の石としてだが。
0461デフォルトの名無しさん
2006/09/30(土) 19:25:17むちゃくちゃな方向に勝手に行き、そこで詰まってから質問。
初心者が難しい環境でうまくいかないのは当たり前。
誰かが VC# 使えって言ったのがファイナルアンサー。
あとはVC#の本を買ってきて1冊通して読むなり、ネットを十分に
回ってから次の質問をすれば問題ない。
ピアノの初心者が、両手でひこうとしたら難しくて私にはできませんでした。
だから片手でひくことにしましたって言って片手でうまくひく方法を質問してる
ようなもの。そりゃ片手でうまくひく人だっているし、練習になるかもしれない
けど普通しない。
0462デフォルトの名無しさん
2006/09/30(土) 19:51:37ListBoxで SelectionMode = SelectionMode.MultipleExtended にしているのですが、
すべての項目を選択状態にすればどうすればよいのでしょう。
for (int i = 0; i < lb.Items.Count; ++i) { lb.SelectedIndex = i; }
とすると、最後の項目しか選択されません。(SelectionMode.MultipleSimpleならうまくいくのですが)。
for (int i = 0; i < lb.Items.Count; ++i) { lb.SetSelected(i, true); }
でも同様でした。
#lb.SelectedIndex = i; で選択項目に追加されるのは仕様としてどうなんでしょうね・・・
0463デフォルトの名無しさん
2006/09/30(土) 19:58:00RichTextBox の Text プロパティで良いのか?
それなら AppendText 使えばいいが。
0464デフォルトの名無しさん
2006/09/30(土) 20:01:20どっちでもすべて選択されるけど。何か余計なことしてないか?
0465462
2006/09/30(土) 20:10:44すみません、その通りでした。
KeyDownイベントで Ctrl+A が押されたら全選択する というように書いていたのですが、
押されたAがそのまま送られて、Aで始まる項目(それがたまたま最後の項目だった)を選択していたようです。
KeyEventArgs.SupressKeyPress を true に設定したらちゃんと動きました。
MultipleSimpleでうまく動作していたのは、フォーカスが移っても選択状態が変わらない仕様だったためのようです。
どうもありがとうございました。
0467デフォルトの名無しさん
2006/09/30(土) 22:27:38自前で RTF 解析して付け加える必要があるな。
付け加えるだけならそう面倒でもないと思う。
0468デフォルトの名無しさん
2006/09/30(土) 22:41:10やはり解析しないと駄目ですか orz
rtfの仕様調べてメソッド作ってみます。
ありがとうございました。
0469デフォルトの名無しさん
2006/10/01(日) 07:48:54口だけで、1行もソースは出せないんですね。
あたまでっかちくん。
0470デフォルトの名無しさん
2006/10/01(日) 08:06:520471デフォルトの名無しさん
2006/10/02(月) 16:14:390472デフォルトの名無しさん
2006/10/03(火) 17:01:180473デフォルトの名無しさん
2006/10/03(火) 17:54:39ちっさいままなんですが、どうすれば元の大きさに戻せるのでしょうか?
0474デフォルトの名無しさん
2006/10/03(火) 17:58:07熱湯をかけて3分待つ
0475デフォルトの名無しさん
2006/10/03(火) 18:17:30もうちょっと具体的な情報を出してくれないと474みたいにさぶいレスしかつかないよ。
そもそもC#の話なのかい?
0476デフォルトの名無しさん
2006/10/03(火) 18:58:560477デフォルトの名無しさん
2006/10/03(火) 20:44:06MFCだと、CPropertyPageを継承したりしてやるのが普通なようなんですが、
.NETでは、TabControlを使うのが普通でしょうか?
他に方法はありますでしょうか?
0478デフォルトの名無しさん
2006/10/03(火) 21:14:080479デフォルトの名無しさん
2006/10/03(火) 21:17:25実は、MFCのプログラムを.NETに移植しているのです・・・
問題無さそうなので、TabControlでやってみます。
0480デフォルトの名無しさん
2006/10/03(火) 21:22:09Array.Copyで処理時間が掛かってしまって悩んでいます。
これに代替する処理ってありますか?
取り急ぎで申し訳ありませんが、どなたかご教授下さい。
ちなみに処理は以下のようになっています。
for (int i = 0; i < splitNum; i++)
{
string[] array = new string[arraySize];
Array.Copy(item.Data.ToArray(), i * dataSize, array, 0, array.Length);
temp.Data.AddRange(array);
}
0481デフォルトの名無しさん
2006/10/03(火) 22:09:370482デフォルトの名無しさん
2006/10/03(火) 22:14:40本当に Array.Copy() に時間がかかっているのか?
item.Data.ToArray() とか temp.Data.AddRange(array); とかの方じゃないの?
ちゃんと調べた?
0483デフォルトの名無しさん
2006/10/03(火) 22:15:22ListViewの選択中のアイテムのテキストを配列に入れるだけで
もの凄く時間がかかるんだけど、何か上手い方法はないですか
string[] texts = new string[this.ListView.SelectedItems.Count];
for(int i = 0; i < this.ListView.SelectedItems.Count; i++){
texts[i] = this.ListView.SelectedItems[i].Text;
}
0484デフォルトの名無しさん
2006/10/03(火) 22:15:24item.Data.ToArray()
はループの外にだせないの?
0485デフォルトの名無しさん
2006/10/03(火) 22:27:49毎回 SelectedItems を参照するのは拙い気がする
一度 ListView.SelectedListViewItemCollection に受けたらどう?
0486デフォルトの名無しさん
2006/10/03(火) 22:30:29プロパティに何度もアクセスしてるからじゃね
たとえば500アイテムで
int i = 0;
foreach( ListViewItem item in this.listView1.SelectedItems )
{
str[i++] = item.Text;
}
なら0.04sec(デバッグモード)で終わった。
>>483だと5sec(デバッグモード)。
0487483
2006/10/03(火) 22:32:53助かりました。
0488デフォルトの名無しさん
2006/10/03(火) 22:53:28もしくは、それについてのサイトとかでもいいです。
検索条件とかでもいいです。
お願いします。
0489デフォルトの名無しさん
2006/10/03(火) 22:54:11俺も最初そう思って調べてみたのだが、SelectedItems をローカル変数にしてもほとんど差は
出ないようだ。
486 のように foreach で回した方がダントツ早い。
もしかしたら、インデックスアクセスが遅いのかもな。
俺の環境では、1000アイテム追加して、1個おきに500アイテム選択した状態だと、リリースビルドでは
483 のコード: 465ms
下記のコード: 460ms
486 のコード: 4ms
string[] texts = new string[this.listView1.SelectedItems.Count];
ListView.SelectedListViewItemCollection items = listView1.SelectedItems;
for(int i = 0; i < items.Count; i++ ) {
texts[i] = items[i].Text;
}
ちなみに、上記のコードで i を items.Count - 1 からデクリメントさせてみたが大して変化なかった。
0490デフォルトの名無しさん
2006/10/03(火) 23:24:20DLL マーシャリング
とかかな?
0491デフォルトの名無しさん
2006/10/03(火) 23:25:01MFCのマルチウィンドウのように、一つの親Formに複数の子Formを入れるようにするには
どうすればよいのでしょうか?
0492デフォルトの名無しさん
2006/10/03(火) 23:27:150493デフォルトの名無しさん
2006/10/03(火) 23:37:090494デフォルトの名無しさん
2006/10/03(火) 23:37:54C++/CLIを使うか、ネイティブのDLLの関数をC#からDllImportで呼び出す
0495デフォルトの名無しさん
2006/10/03(火) 23:43:40実行時にはインライン化されるんでローカル変数に保持しても変わらない。
インデックスによる参照は内部的にLVM_GETNEXTITEMをインデックス回分呼んでるみたいだね。
遅くなるのも当然。
0496473
2006/10/04(水) 09:01:23すみません
C#です
あるFormにClientSizeとLocationを設定しています。
それでそのフォームを最小化(タスクバーに収めた状態)にして
もっかい使おうとそのタスクバーのFormをクリックすると
元の大きさではなくて、Formのバーだけの状態になってしまうのです。
なにか設定が必要なのかと思い質問をしました。
0497デフォルトの名無しさん
2006/10/04(水) 10:39:310498デフォルトの名無しさん
2006/10/04(水) 11:01:59サイズの保存はFormを閉じる時で
取得はFomをロードするときに勝手にやってくれているようなのです
とりあえず最小化中には自分で設定とかはしてないです
0499デフォルトの名無しさん
2006/10/04(水) 11:07:14多分簡単なミスなんだろうけど
ソースを見てみないと無駄にレスを消費するだけ
どうしても解決したいならどっかに上げて
0500デフォルトの名無しさん
2006/10/04(水) 11:38:10これでいいのか分かりませんが
http://vipup.sakura.ne.jp/512kb/upload.htmlの512kb_3311.txtにうぷしました
新規にファイルを作ってFormのサイズとロケーションを設定しただけのものですが
同じような現象が出ます
0501デフォルトの名無しさん
2006/10/04(水) 13:24:59元のフォームを開いたコードの後で処理すればいいんだけどね・・・
0502デフォルトの名無しさん
2006/10/04(水) 13:33:05DataSourceUpdateMode.OnPropertyChanged
が非常に気になる
0503デフォルトの名無しさん
2006/10/04(水) 13:36:08回避方法わかりますか?
System.IO.Directory.GetFiles()のところで
エラー:System.UnauthorizedAccessException はハンドルされませんでした。
0504デフォルトの名無しさん
2006/10/04(水) 14:38:07private SaveFileDialog mSaveFileDialog = new SaveFileDialog();
ファイルを開くのダイアログのインスタンスは
private OpenFileDialog mOpenFileDialog = new OpenFileDialog();
ですが、普通のメッセージボックスダイアログのインスタンスは
なんていうネーミングでしょうか?
やりたい事はOKボタンのダイアログボックスをインスタンスを作って出力したいのです。
0505デフォルトの名無しさん
2006/10/04(水) 15:12:030506デフォルトの名無しさん
2006/10/04(水) 15:34:50ドライブのアクセス権で拒否されてるんじゃない?
try catchでくくるしかないのかな?
>>504
MessageBoxはインスタンス作れないから
インスタンスが欲しけりゃ自分でフォームから作るしかなさ
0507デフォルトの名無しさん
2006/10/04(水) 16:06:33お願いしますm(__)m
0508503
2006/10/04(水) 19:21:40そうなのか�d
0509デフォルトの名無しさん
2006/10/04(水) 20:41:06ファイルから読み込まれるデータ(数値)が
そのときによっていくつになるわからないので、
ラベルの長さをlong型の最大桁数にしようと思うんですけど、
long型の最大桁数がわかりません。ちなみに、long型は符号付きです。
誰か教えてください。お願いします
0510デフォルトの名無しさん
2006/10/04(水) 20:50:04MessageBoxクラスを自分で作ったら一緒だ。
0511デフォルトの名無しさん
2006/10/04(水) 20:59:17>>2
ここは、人工知能検索エンジンではない
0512デフォルトの名無しさん
2006/10/04(水) 21:04:410513デフォルトの名無しさん
2006/10/05(木) 01:48:03どうすればいいでしょうか?
http://forums.microsoft.com/MSDN-JA/ShowPost.aspx?PostID=646802&SiteID=7
ここを見つけて参考にしたのですが、カスタムコントロールという項目が無くてさっぱりです・・。
0514デフォルトの名無しさん
2006/10/05(木) 02:10:020515デフォルトの名無しさん
2006/10/05(木) 02:15:51そのURL先に書いてある通り。
class MyButton : Button
{
public MyButton()
: base()
{
this.SetStyle( ControlStyles.Selectable, false );
}
}
を貼り付けてビルド→ツールボックスにMyButtonが表示される
→ポトペタ→(゚д゚)ウシー
0516デフォルトの名無しさん
2006/10/05(木) 02:54:45回避方法わかる人います?
0517デフォルトの名無しさん
2006/10/05(木) 03:02:400518デフォルトの名無しさん
2006/10/05(木) 03:06:110519デフォルトの名無しさん
2006/10/05(木) 03:27:26ありがとうございます。ただどこに貼り付ければいいのでしょうか?
Form1に貼り付けてビルドしましたがツールボックスに出てきませぬ・・・
0520519
2006/10/05(木) 03:31:26ありがとうございました。
0521500
2006/10/05(木) 08:45:570522デフォルトの名無しさん
2006/10/05(木) 10:16:22このメソッド初めて知った。いま初めてゲイツをわずかに尊敬した。
0523デフォルトの名無しさん
2006/10/05(木) 10:27:360524デフォルトの名無しさん
2006/10/05(木) 10:35:32WM_DISPLAYCHANGE
0525523
2006/10/05(木) 10:42:08ありがとうございます!!
0526デフォルトの名無しさん
2006/10/05(木) 12:22:10フォルダ丸ごと上げて再現できるようにしてみれば?
0527507
2006/10/05(木) 16:01:32自己レスですが、WindowsメッセージのWM_SYSCOMMANDを拾えば
スクリーンセーバーを抑止できると以下のURLに書いてますが、
実際スクリーンセーバーがかかっても検知しません。
何故でしょうか??
ちなみにサスペンドモードに入る時はWM_POWERBROADCASTを検知できています。
ttp://support.microsoft.com/default.aspx?scid=kb%3Bja%3B403844
0528デフォルトの名無しさん
2006/10/05(木) 16:05:140529デフォルトの名無しさん
2006/10/05(木) 16:06:31画面のプロパティ スクリンーセーバ パスワードによる保護
が有効になってると動作しないことは確認したことがある
対処方法は白根
0530507
2006/10/05(木) 17:42:53>>528
Windowsメッセージを取得する用にオーバーライドした
protected override void WndProc(ref Message m)
自体が発生しません。
サスペンドの時は上記は発生するのですが・・・。
よって、SC_SCREENSAVEは拾えていませんです。
0532デフォルトの名無しさん
2006/10/05(木) 18:16:04すぐに元に戻ってしまうのですが、戻らないようにできますでしょうか?
VC++6から移植していて、全体にVC++6より大きくなってしまうので困ります。
0533デフォルトの名無しさん
2006/10/05(木) 18:32:34AutoSize
0534デフォルトの名無しさん
2006/10/05(木) 18:41:19どうもありがとうございます。これで、サイズを変えられます。
0535デフォルトの名無しさん
2006/10/05(木) 20:34:39文章の最後に改行が入ってる場合の削除方法はどのようにすればエレガントにできますでしょうか?
-----------
1
2
3
4
-----------
↑うまくいく
-----------
1
2
3
4
-----------
↑くまった
0536デフォルトの名無しさん
2006/10/05(木) 20:39:11List<string>に全部ぶち込んで最終行が改行だったらRemove
0537デフォルトの名無しさん
2006/10/05(木) 20:56:18{
return line.Length > 0;
} );
0538532
2006/10/05(木) 22:40:04入力文字数とか同じにするには、大きなサイズ必要になりますね。
時間がかかるので、.NETでやり易いように作ります。
それと、画面描画が遅くて、徐々に描いているのが目で見て分かるのですが、
これは何とか一気に表示できるようになりませんでしょうか?
(VS2005が遅いのとたまに落ちるのも困ります。)
0539デフォルトの名無しさん
2006/10/05(木) 23:01:270540デフォルトの名無しさん
2006/10/06(金) 00:06:04userコントロールでラベル20個*150コントロールぐらい出して、
更新してるときつい。
やってることは株の価格更新。
0541デフォルトの名無しさん
2006/10/06(金) 00:15:490542デフォルトの名無しさん
2006/10/06(金) 00:16:55VS2003 C#でプログラムを作りました。
右クリックしたときにコンテキストメニューの表示をすることはできたのですが、
最小化して、タスクバー上にあるプログラムを右クリックしても
コンテキストメニューが表示されません。
コンテキストメニューを表示するにはどうしたらいいのでしょうか?
0543デフォルトの名無しさん
2006/10/06(金) 00:25:34こうしたら良いのではないでしょうか
ttp://www.google.com/search?num=50&hl=ja&lr=lang_ja&ie=UTF-8&oe=sjis&q=%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0%E3%83%A1%E3%83%8B%E3%83%A5%E3%83%BC%20%E5%A4%89%E6%9B%B4
0544デフォルトの名無しさん
2006/10/06(金) 00:26:19しかも、Javaよりいい感じだし。
0545デフォルトの名無しさん
2006/10/06(金) 00:37:15ウインドウを3000個同時に表示しているのと同じだから。
遅くて当たり前。
0546デフォルトの名無しさん
2006/10/06(金) 00:38:21ああシェアウェア厨か。アホ。そんなんで金取ろうっていうのか。
0547デフォルトの名無しさん
2006/10/06(金) 00:47:53そういうことはWPFとかになってからやってください(>_<)
0549デフォルトの名無しさん
2006/10/06(金) 01:27:490550デフォルトの名無しさん
2006/10/06(金) 04:09:46ウィンドウをぐりぐりリサイズするとにょろにょろ付いてくる。
0551デフォルトの名無しさん
2006/10/06(金) 07:20:04調べてみたのですが、初心者なもので・・・
c#でどう使えばいいか・・・
0552デフォルトの名無しさん
2006/10/06(金) 10:13:57Application.Run(new Form1());として作成したウィンドウに対して、逐次計算をして
出た座標に点を出力したいのですが、ここで作られたGraphicsオブジェクトをどうやって
取得すればいいのかわからず困っています。ちなみにForm1クラスとはWindowsアプリ
ケーションを作るときにデフォルトで作られるクラスです。
要領を得ない質問ですが、意図を汲み取って理解していただける方どなたか教えて頂けませんでしょうか。
0554デフォルトの名無しさん
2006/10/06(金) 12:23:12C++ならキャストかユニオンでいいのですが・・・C#だとどうやって実現すればいいのか解りません。
教えて下さい(;_;)
0555デフォルトの名無しさん
2006/10/06(金) 12:33:36unsafe状態でキャストでok
0556デフォルトの名無しさん
2006/10/06(金) 12:43:06マネージ型の変数アドレス、サイズを取得できません、みたいに蹴られるんだ。
初心者でスマン、アドバイス下さい(;_;)
0557デフォルトの名無しさん
2006/10/06(金) 12:52:20Form の Graphics に書いたものは取得できません。
自前で Bitmap を用意して、そこに描画して Form の Paint イベント
(および必要なら適当なタイミング)で画面に書くようにするのが良いでしょう。
0558デフォルトの名無しさん
2006/10/06(金) 12:53:12GraphicsクラスのパブリックメソッドのFrom〜
と言うのがいくつかあるからそれを使う。
またはOnPaintメソッドをオーバーライドして引数のGrapficsを使う。
個人的にはPictureBox貼り付けて、
そのイメージからFromImageで作ったほうがいいと思う。
0559デフォルトの名無しさん
2006/10/06(金) 12:55:340560デフォルトの名無しさん
2006/10/06(金) 12:57:25描画が必要なとき。
ウインドウサイズの変更や重なった部分の再表示など。
0561デフォルトの名無しさん
2006/10/06(金) 13:00:53たとえばWin32APIで有名なLOGFONT構造体を受信したとして、
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Auto)]
public class LOGFONT
{
public int lfHeight;
public int lfWidth;
public int lfEscapement;
public int lfOrientation;
public FontWeight lfWeight;
[MarshalAs(UnmanagedType.U1)]
public bool lfItalic;
[MarshalAs(UnmanagedType.U1)]
public bool lfUnderline;
[MarshalAs(UnmanagedType.U1)]
public bool lfStrikeOut;
public FontCharSet lfCharSet;
public FontPrecision lfOutPrecision;
public FontClipPrecision lfClipPrecision;
public FontQuality lfQuality;
public FontPitchAndFamily lfPitchAndFamily;
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 32)]
public string lfFaceName;
}
}
と定義して、
LOGFONT f;
fixed(byte* p = recvBuf) { f = *(LOGFONT*) p; }
てな感じじゃない?
0562デフォルトの名無しさん
2006/10/06(金) 13:01:51WM_PAINT
0563デフォルトの名無しさん
2006/10/06(金) 13:02:56ありがとうございます。
ちなみに使い方としては
Graphics g = Graphics.FromImage(image);
という事でいいんでしょうか?
もう一つお聞きしたいのですが、イメージをどのウィンドウのどこに貼り付けるという
指定はどうすればいいのでしょう。
初歩的な質問ばかりですいませんが教えていただけませんでしょうか。
0564デフォルトの名無しさん
2006/10/06(金) 13:06:24Visual Studio使ってないの?
0565デフォルトの名無しさん
2006/10/06(金) 13:08:21そうです。
using (Graphics g = Graphics.FromImage(..)) { 描画. }という感じにすることが多いです。
>イメージをどのウィンドウのどこに貼り付けるという指定はどうすればいいのでしょう。
Form に Panel を置いて、そのPanel のペイントイベントで描画するのが簡単だと思います。
一度描画したらあまり変更しないものならば、Paintイベントは使わないで Panel の
BackgroundImage にそのイメージをセットしてしまってもよいかもしれません。
この場合Panel ではなくPictureBoxでもOKです。
0566デフォルトの名無しさん
2006/10/06(金) 14:23:04tabControlのプロパティにそれらしいのは見つかりませんでした
普通のボタンを乗せてみようと思ったのですが、タブが多くなると出る左右ボタンがタブの弾の右端に出るため、被ってしまいます
オーナードローや自作コントロールは複雑そうなので手が出せません
こういう設定できる、そういうコントロールがある(できれば無料)、など情報ありましたら教えてください
0567デフォルトの名無しさん
2006/10/06(金) 14:23:57>イメージをどのウィンドウのどこに貼り付けるという
>指定はどうすればいいのでしょう。
質問の意図がわかりません。
貼り付けるっていうのは描画することでしょうか?それともコントロールを
貼り付けると言う意味でしょうか?
0568デフォルトの名無しさん
2006/10/06(金) 16:12:35どの部分のことを言ってるのか分からない
まあタブにいろいろ機能付けたいなら自作するしかない
わたしは自作したけど、人様に見せられるようなものじゃないしw
フリーのタブコントロールなんてあんまり見かけないなぁ。
0569デフォルトの名無しさん
2006/10/06(金) 16:20:57ありがとうございました。
>>567
ある処理を行なって座標の位置を算出し、その処理が終わるたびにウィンドウにその
座標の位置に点を出力したいのです。
もし、お分かりになるのでしたら教えていただけませんでしょうか?
0570デフォルトの名無しさん
2006/10/06(金) 16:31:06GraphicsのDraw〜系のメソッド使えば?
DrawLine使うとかね。
もしくはBitmapのSetPixelとか。
0571デフォルトの名無しさん
2006/10/06(金) 16:32:06→PictureBox.Imageにそのビットマップを設定
0572デフォルトの名無しさん
2006/10/06(金) 16:33:22図書室にC#の本ないの?
0573デフォルトの名無しさん
2006/10/06(金) 17:05:49UNIX系のC/C++プログラミングしかやったことが無いものでwindowsプログラミング
は全くわからないのです。教科書を読んでみてもOnPaintをオーバーライドしていつ
のまにか呼び出されてどこからともなくPaintEventArgsオブジェクトを取得して
ウィンドウに書き込みを行なっていたり、自分には理解がついて行きません・・・orz
0574デフォルトの名無しさん
2006/10/06(金) 17:08:17サイドパーティ製のしか無いのかな??
0575デフォルトの名無しさん
2006/10/06(金) 17:50:16よけいなことは気にしない
パターン学習でおk
0576デフォルトの名無しさん
2006/10/06(金) 18:03:31とりあえず、OnPaintでやってるようにpaintEventArgsオブジェクトをmainで
扱えれば後はPenオブジェクトを呼んでなんとかできると思うのですが、それ
はできないんでしょうか。
メインプログラムをOnPaintに書き込んだら異様に処理が重くなって断念しました。
もしかして、座標の変数が変更されるたびに逐一描写してるのでしょうか。
いずれにしても、どうすればいいのやら手詰まりです。。。
0577デフォルトの名無しさん
2006/10/06(金) 18:15:27自分でループを持って好きなときに描画したいなら、Paintは使わずに、
Control#CreateGraphicsでGraphicsオブジェクトを取得して直接描画すればいい
0578デフォルトの名無しさん
2006/10/06(金) 18:29:35OnPaintで色々作業するってことは
WM_PAINTが来たときにプロシージャのなかで色々作業することと同じですよ?
重くなって当たり前。
でもOnPaintでやらないってことは、Invalidateされたら消えるってことですよ?
0579デフォルトの名無しさん
2006/10/06(金) 18:30:55DataGridView
0580デフォルトの名無しさん
2006/10/06(金) 18:40:48Application.Run(new Form1());
Bitmap bmp = new Bitmap(@"hoge.bmp");
Graphics g = this.CreateGraphics();
g.DrawImage(bmp, 5, 5, bmp.Width, bmp.Height);
という感じでしょうか?
これをProgram.csで書いたらthis.CreateGraphicsが無いと
言われてしまいました。
0581デフォルトの名無しさん
2006/10/06(金) 18:43:37いや、UNIX系しかやったことが無いもので。
その上UNIX用のGUI用ライブラリのGTKも使った事が無いです。
0582デフォルトの名無しさん
2006/10/06(金) 18:46:30で出来ない?
だめならパネルはっつけてthis.panel1.CreateGraphics()
0583デフォルトの名無しさん
2006/10/06(金) 18:57:46静的でないフィールド、メソッド、またはプロパティ
'System.Windows.Forms.Control.CreateGraphics()'
で、オブジェクト参照が必要です。
というエラーが出てしまいました。
パネルはGUIデザイナで貼り付ければいいんでしょうか。
0584デフォルトの名無しさん
2006/10/06(金) 19:06:15でもMainにだらだら書くのはよくないから、
Form1#Run()とか定義してその中にMainの代わりを書けば
MainはForm1 form1 = new Form1();form1.Run();だけで
0585デフォルトの名無しさん
2006/10/06(金) 23:15:58悪いこと言わないから本かって呼んだほうがいいよ。
あと Visual Studioの基本は勉強しようね。
0586デフォルトの名無しさん
2006/10/07(土) 08:52:31falseにしたあとControl.BackColorを変更してもだめでした。
グレイアウトさせないようにするにはどうすればいいのでしょうか?
0587デフォルトの名無しさん
2006/10/07(土) 11:15:420588デフォルトの名無しさん
2006/10/07(土) 11:25:54UserPaint
>>587
現象は発生しなかった。
環境の問題じゃ?
0589デフォルトの名無しさん
2006/10/07(土) 14:47:11だからフォルダ丸ごと上げてみって
デバッグできるようにしないと
環境としか言いようがないって
0590デフォルトの名無しさん
2006/10/08(日) 00:40:37フォルダうpできるうpローダーありますかね?
フォルダを圧縮して解凍すると、C#で読み込むときにエラー出るんですけど・・・。
というより、この前うpしたものも、新規formにアプリケーション設定でLocationとClientSizeを
設定して、Closingイベントに保存のコード書いただけのものなんですが・・・
どなたか同じような状態になる方いませんか?
うちにあるPC3台とも同じになるんですけど・・・
というより、FormにClientSizeの設定をした直後から最小化して
元に戻そうとするとバーだけになるようです・・・
0591デフォルトの名無しさん
2006/10/08(日) 01:28:15FormのLocationとClientSizeにアプリケーション設定をバインドしたときの話だよな。
なるよ。
0592デフォルトの名無しさん
2006/10/08(日) 02:58:23なりますか!?
元の大きさに戻すにはどうすればいいんですか?
0593デフォルトの名無しさん
2006/10/08(日) 04:23:540594デフォルトの名無しさん
2006/10/08(日) 04:37:44ボディには変化はないんじゃないかな
0595デフォルトの名無しさん
2006/10/08(日) 04:38:430596デフォルトの名無しさん
2006/10/08(日) 05:08:19ヘッダーってどうすればいいんでしょうか??
Set-cookie: ??
0597デフォルトの名無しさん
2006/10/08(日) 05:12:190598デフォルトの名無しさん
2006/10/08(日) 05:18:32わざわざ再現さすのがめんどくさいから
フォルダうpすれば?といっているのでは
>フォルダを圧縮して解凍すると、C#で読み込むときにエラー出るんですけど・・・。
なぜ?なんか不具合の全てが環境のせいのような??
0599デフォルトの名無しさん
2006/10/08(日) 05:28:33取ってきたcookieにbeのログインIDと認証コード付加するわけですよね?
cookie取ってきたとき、Set-cookie:PON=〜〜〜みたいになってたような気がしたんですが・・・
0600デフォルトの名無しさん
2006/10/08(日) 05:46:23LocationとClientSize(またはSize)をバインドすると色々おかしくなるのでバインドをやめてコードで取得、設定する。
Form_Load(またはコンストラクタのInitializeComponentの後)でSettingsのプロパティからFormのプロパティに代入。
最小化または最大化してるときの値を保存してしまうとまずいのでWindowStateがNormalのときだけ
Form_ClosingのSave()の前にFormのプロパティからSettingsのプロパティに代入。
0601デフォルトの名無しさん
2006/10/08(日) 10:01:46ありがとうございます
よく理解できてませんがorz
色々調べて頑張ってみます!
0602デフォルトの名無しさん
2006/10/08(日) 12:34:24be のクッキーを CookieContainer に入れて HttpWebRequest.Cookie に
それでクッキー処理はOKのはず
0603デフォルトの名無しさん
2006/10/08(日) 12:51:25サンクスです
感謝します
0604C ◆.6Hqkk7dyk
2006/10/09(月) 00:19:02製作に行き詰ったので質問します。
I/OデバイスのON OFFを 32ビットintに割り当てて使用します。
つまり一個の変数でOutPut CH0 から CH31を制御するわけです。
CH0 と CH2を出力するためには0が29個続いて下位3bitを101とします。つまり 5を引数に渡します。
Outputを変更するさいに、このintを引数として出力メソッドを実行するわけです。
Output(int);
で、OFFだったビットをONにしたら必ず5秒後にOFFにしなくてはならない仕様なんです。
つまり下の様な動きになります。
時間
0(S) CH0がONする Output(1)を実行
1
2 CH2がONする Output(5)を実行
3
4
5 CH0をOFFにする Output(4)を実行
6
7 CH2をOFFにする Output(0)を実行
あるCHのOutputがOnで5秒のカウントが始まってる最中に同じCHのOutputイベントが発生したら
5秒のカウントが初期化されて、最後にイベントが発生したときから5秒後にOFFします。
Output各ビットに タイマーを割り当てなくては実現できないでしょうか?
32ビットなので32個タイマーを割り当てることになってしまい、あまり綺麗ではないので
いい実装の方法のヒントをいただけたらうれしいです。
0605デフォルトの名無しさん
2006/10/09(月) 01:08:00オンしたときDateTime+5秒を記録。
ループ用Thread1個作る。
ThreadでDateTime見て過ぎていればOutput変更
ループ。
もしくはQue使う。
0606デフォルトの名無しさん
2006/10/09(月) 01:34:090607デフォルトの名無しさん
2006/10/09(月) 01:55:53さっそくレスいただきありがとうございます。
DateTime.Now + 5秒を記録ですかー。
なるほど。
ラダープログラム使えば実装超簡単なんですけどね(^^;
C#でやる意味がわかんないー(T_T)
0608C ◆.6Hqkk7dyk
2006/10/09(月) 01:56:480609デフォルトの名無しさん
2006/10/09(月) 11:56:25SelectionStartとSelectionLengthを指定してやっているので
テキストが長くなるとハイライトでちらついてしまいます。
ハイライト無く奇麗に描画する方法ってありますか??
検索しても色分けのコードはあってもちらつきをなくす方法を見つけられませんでした。
0610デフォルトの名無しさん
2006/10/09(月) 11:59:370611デフォルトの名無しさん
2006/10/09(月) 12:28:29http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=16008&forum=7
0612609
2006/10/09(月) 13:21:55できました。ありがとうございました。
BeginUpdateして色変えてEndUpdateしただけだと文字が欠けたりするので
Refleshかけているけどこれでいいのかな。
0613デフォルトの名無しさん
2006/10/09(月) 19:41:44データベースにbyte[]型でeml形式のメールデータが格納されています。
現在はこれをBinaryWriterでファイルに書き出して手動で読み込んでいるのですが、プログラム内でプレビューする機能をつけたいなと考えています。
BinaryWriterの出力をテキストボックスに書き出そうと試みてあえなく挫折してしまいました。
byte[]からstringに変換するには文字コードの判別等から自前でやらないといかんということでしょうか。
なにか指針を頂ければと思います。
0614デフォルトの名無しさん
2006/10/09(月) 19:46:31System.Text.Encoding.GetString
0615デフォルトの名無しさん
2006/10/09(月) 19:55:580616デフォルトの名無しさん
2006/10/09(月) 20:16:11レスありがとうございます。下記のサンプルを見つけて試してみました。
http://dobon.net/vb/dotnet/string/getencoding.html
試してみましたが、JIS,SJIS,EUC全てにおいて日本語が表示されません。
なんででそ...。
0617デフォルトの名無しさん
2006/10/09(月) 21:11:11そーすうp
0618デフォルトの名無しさん
2006/10/09(月) 21:50:520619デフォルトの名無しさん
2006/10/09(月) 21:56:020620デフォルトの名無しさん
2006/10/09(月) 22:01:170621デフォルトの名無しさん
2006/10/09(月) 22:56:200622616
2006/10/09(月) 22:56:59ただ今帰宅しました。
ソースは職場にあるので(つっても数行ですよ)明日うpします。
>>618
「MIME」がわからなかったんで調べてみました。
>「Multipurpose Internet Mail Extensions」の略。「マイム」と読む。
>日本語など非ASCIIで表現される言語、音声、画像、動画等のファイルをメールで扱うための、ASCII文字列へのエンコード方式の規格。
>ヘッダ、ヘッダのパラメータ、本文、添付ファイルごとに、MIMEとしての扱いがRFCで規定されている。
自分はMS Outlookで使われてる拡張子emlの保存形式のことをさしてたのです。
分かりにくくてすみません。
0623デフォルトの名無しさん
2006/10/09(月) 22:59:230624デフォルトの名無しさん
2006/10/09(月) 23:29:34Javaを使うより幸せです。
0625デフォルトの名無しさん
2006/10/09(月) 23:31:05いま、JavaをやめてC#に移ろうかマジで考えているんです。
よろ。
0626デフォルトの名無しさん
2006/10/09(月) 23:40:39札束風呂に美女と一緒に入りたいのなら、迷わず C# を選ぶべきです。
0627デフォルトの名無しさん
2006/10/09(月) 23:42:310628デフォルトの名無しさん
2006/10/09(月) 23:47:470629デフォルトの名無しさん
2006/10/10(火) 00:17:560630デフォルトの名無しさん
2006/10/10(火) 00:33:000631デフォルトの名無しさん
2006/10/10(火) 00:42:130632デフォルトの名無しさん
2006/10/10(火) 00:59:480633デフォルトの名無しさん
2006/10/10(火) 01:03:380634デフォルトの名無しさん
2006/10/10(火) 01:48:49一応入れてる。
0635デフォルトの名無しさん
2006/10/10(火) 02:01:500636デフォルトの名無しさん
2006/10/10(火) 02:06:12monoはネイティブコンパイラの間違いだろ?
0637デフォルトの名無しさん
2006/10/10(火) 02:09:01てか、.NET Framework のクローンなんだし、
そりゃ .NET Framework の中間コード吐く。
>>636
わざとだろ。
0638デフォルトの名無しさん
2006/10/10(火) 02:29:12開発環境はついて来ないの?
0639デフォルトの名無しさん
2006/10/10(火) 04:26:200640デフォルトの名無しさん
2006/10/10(火) 08:08:03IntPtr じゃ駄目なん
0641デフォルトの名無しさん
2006/10/10(火) 08:10:590642デフォルトの名無しさん
2006/10/10(火) 09:17:11VisualStudio2005 StandardEditionを持っており、
FrameWorkを同梱したインストーラを作成したいと思うのですが、
どの手順で作成すればいいのでしょうか?
(標準で作成ツールがある??)
0643デフォルトの名無しさん
2006/10/10(火) 11:35:30良いのでしょうか?
delegate void WIWT();
Invoke(new WIWT(ListViewItem fiwt = listView1.FindItemWithText(ml.Groups["title"].Value)));
0644デフォルトの名無しさん
2006/10/10(火) 11:45:500645643
2006/10/10(火) 12:14:34お返事、ありがとうございます。
色々と試してみたのですが無効な引数が含まれていますとエラーになってしまいます。
Invoke(delegate() { listView1.Focus(); });
Invoke(delegate() { });
'System.Windows.Forms.Control.Invoke(System.Delegate)' に最も適しているオーバーロード メソッドには無効な引数がいくつか含まれています。
0646デフォルトの名無しさん
2006/10/10(火) 12:44:24あと確実にファイナライザが呼ばれる保証が付く。
継承元のCriticalFinalizerObjectだかを参照
0647デフォルトの名無しさん
2006/10/10(火) 15:26:56delegate ListViewItem WIWT();
ListViewItem fiwt = (ListViewItem)Invoke(new WIWT(delegate() { return listView1.FindItemWithText(ml.Groups["title"].Value); }));
0648デフォルトの名無しさん
2006/10/10(火) 17:42:18RichTextBoxを継承したコントロールを作り、Changeイベントが発生する度に正規表現で語句を抽出して設定することはできました
しかし、ファイルのサイズが大きくなったり、着色するパターンを増やしたりすると処理がどんどん遅くなっていきます
毎回全テキストを対象に処理しているせいだと思うのですが、編集後に適切な処理範囲を特定するアルゴリズムが思いつきません
編集した箇所を特定し、その前後のセンテンスを探してその範囲で再着色とか考えたのですが、書式が入り混じっていると処理の範囲を特定することが難しく、うまいことできません。
高機能なテキストエディタでも実装されていることが多い処理なので、何か有名なアルゴリズムがあるのでしょうか?
もしくは簡単に実装できるライブラリとかあるのでしょうか?
ご存知の方がおりましたら、御教授願います
0649デフォルトの名無しさん
2006/10/10(火) 17:44:00標準では、Labelとかが左詰になってしまいます。
右詰にする方法はありませんでしょうか?
よろしくお願いします。
0650デフォルトの名無しさん
2006/10/10(火) 18:26:22表示している部分だけ描画すればいいんでは?
>>649
左端に空のLabel作ってそいつのSpringをtrue、でどうか。
0652648
2006/10/10(火) 18:35:40RichTextBoxでデフォルトでクリッピングしてくれないのでしょうか?
あと、説明不足でしたが、書式の変更ロジックは描画とは別にしており、それ単体が遅いことが判明しています
そこではテキストを正規表現で検索し、書式を変更する関数を発行してRTFを修正しています
直接RTFを書き換えようかとも思いましたが、RTF自体を学習するのが大変そうなので躊躇しております
この部分がボトルネックなのですが、いい改善策が見つかりません
今いくつか案を考えていて
・RTFを直接操作する
・RTF以外で書式情報を持ち、描画時に対応する(オーナードローはC++/SDK時代でやめたかったのですが・・・)
・Code Projectなどで探す
中々思うように行きません
0654デフォルトの名無しさん
2006/10/11(水) 09:57:36で、実行してみると、FrameWork2.0をネットからダウンロードしようとするんですが、
これを既にダウンロードしたファイルからインストールさせるにはどうすればいいのでしょうか?
起動条件の"InstallUrl"を消してもダウンロードしようとします。
0655デフォルトの名無しさん
2006/10/11(水) 12:16:140656デフォルトの名無しさん
2006/10/11(水) 12:22:390657デフォルトの名無しさん
2006/10/11(水) 12:24:32プロジェクトのプロパティ → 必須コンポーネント → アプリケーションと同じ場所から(ry
0658656
2006/10/11(水) 12:25:05剰余演算がありました
0659デフォルトの名無しさん
2006/10/11(水) 13:24:02再描画のメソッドはフォームAにPublicとして定義してますが、フォームBのOwnerプロパティを探しても見つかりません。
なにか勘違いしているでしょうか。教えてください。
0660デフォルトの名無しさん
2006/10/11(水) 13:31:09そのイベントハンドラとしてAの再描画メソッドを登録した方がいい気がする
0662デフォルトの名無しさん
2006/10/11(水) 15:45:36フォームB b = Owner as フォームB
b.再描画();
0663デフォルトの名無しさん
2006/10/11(水) 17:17:03グレーでなく青色になってしまいす。
以下のコードのどこが悪いでしょうか?
img = new Bitmap("test.jpg");
for (int i = 0; i < img.Height; i++)
{
for (int j = 0; j < img.Width; j++)
{
Byte R = img.GetPixel(j,i).R;
Byte G = img.GetPixel(j,i).G;
Byte B = img.GetPixel(j,i).B;
//グレースケールへの変換
double p = (0.299 * R + 0.587 * G + 0.114 * B);
px = (int)p;
img.SetPixel(j, i, Color.FromArgb(px));
}
}
Graphics g = pictureBox1.CreateGraphics();
g.DrawImage(img,60,10);
0664デフォルトの名無しさん
2006/10/11(水) 17:17:42((フォームA)Owner).再描画();
0665デフォルトの名無しさん
2006/10/11(水) 17:20:08実際に数値表示してみてわからないようであれば、
駄目だね。
Argbって何かわかってないだろ?
0666デフォルトの名無しさん
2006/10/11(水) 17:24:37R 赤要素 0〜255
G 緑要素 0〜255
B 青要素 0〜255
Aは無視しといて
白色 RGB(255,255,255))
灰色 RGB(px、px、px)
黒色 RGB( 0,0,0)
青色 RGB( 0,0,255)
0667デフォルトの名無しさん
2006/10/11(水) 17:36:35それ、できても使い物にならないくらい遅いよ
Bitmap.LockBitsとかを使って危ない感じの処理をしたほうがいいよ
0668デフォルトの名無しさん
2006/10/11(水) 17:38:23SDKのヘルプにサンプルがあると思うけど・・・
0669659
2006/10/11(水) 17:44:22>>660
オライリーのイベントの項をざっと読んでみたのですが、頭が混乱してしまいました。
私にはまだまだ精進が必要のようです。
おっしゃるようにした方がよさそうだという雰囲気は伝わってまいりますが…。
>>664さんのご指摘のように、キャストをすることによってさしあたっての動作をさせることができました。
0670デフォルトの名無しさん
2006/10/11(水) 19:12:490671デフォルトの名無しさん
2006/10/11(水) 21:45:54C,C++では結構見かけるんですが。
0672デフォルトの名無しさん
2006/10/11(水) 21:55:550673デフォルトの名無しさん
2006/10/11(水) 21:57:08簡単に移植できるだろ。
それともMSILに最適化されたソースが欲しいって事か?
0674デフォルトの名無しさん
2006/10/11(水) 21:58:57http://www.ele.kanagawa-it.ac.jp/~tachibana/H16_Paper_Abstract/yamaguchi.pdf#search=%22C%23%20FFT%22
0675デフォルトの名無しさん
2006/10/11(水) 23:03:460676デフォルトの名無しさん
2006/10/12(木) 04:32:21卒論がこんなレベルでいいのか
0677デフォルトの名無しさん
2006/10/12(木) 10:18:42逆はTimeSpanつかって書いたのですが、なんか泥臭くて。
0678デフォルトの名無しさん
2006/10/12(木) 10:40:24DateTime dt = new DateTime(1970, 1, 1).AddSeconds(雲丹刻).ToLocalTime();
0679デフォルトの名無しさん
2006/10/12(木) 10:59:54ありがとうございました。スッキリしました。
0680デフォルトの名無しさん
2006/10/12(木) 17:35:46これは卒論本体じゃない。
0681デフォルトの名無しさん
2006/10/12(木) 18:01:54とはいえ、結論を言ってるだろう?
0682デフォルトの名無しさん
2006/10/12(木) 18:09:57多分、定例発表会かなんかの発表用の資料。
OHPとかでやらなかった?
0683682
2006/10/12(木) 18:14:22レベル低いのか別に本研究あるのか???
0684682
2006/10/12(木) 18:17:17神奈川工科大学恐るべし。
0685デフォルトの名無しさん
2006/10/12(木) 19:01:30ビルドはできて正常に動作もするのですが、削除したタブにあった
ボタンなどの変数を削除するとどうしても、GUIエディタでエラーが出ます。
どうしたら直せるでしょうか?
0686デフォルトの名無しさん
2006/10/12(木) 19:05:11デザイナの読み込み時に 1 つ以上のエラーが発生しました。エラーは以下に一覧表示されます。コードの変更が必要なエラーもありますが、プロジェクトを再度ビルドすると解決できるエラーもあります。
致命的なエラーです。 (HRESULT からの例外: 0x8000FFFF (E_UNEXPECTED))
非表示
場所 EnvDTE.CodeFunction.GetStartPoint(vsCMPart Part)
場所 Microsoft.VisualC.CppCodeParser.OnMethodPopulateStatements(Object sender, EventArgs e)
場所 System.CodeDom.CodeMemberMethod.get_Statements()
場所 System.ComponentModel.Design.Serialization.TypeCodeDomSerializer.Deserialize(IDesignerSerializationManager manager, CodeTypeDeclaration declaration)
場所 System.ComponentModel.Design.Serialization.CodeDomDesignerLoader.PerformLoad(IDesignerSerializationManager manager)
場所 Microsoft.VisualStudio.Design.Serialization.CodeDom.VSCodeDomDesignerLoader.PerformLoad(IDesignerSerializationManager serializationManager)
場所 System.ComponentModel.Design.Serialization.BasicDesignerLoader.BeginLoad(IDesignerLoaderHost host)
0687デフォルトの名無しさん
2006/10/12(木) 19:24:07VS2005を再起動すると、このボタンとかの変数を消しても
GUIエディタでエラーが出なくなりました。
VS2005起動時に、GUIを作るので時間がかかっているのと関係ありそうですね。
0688デフォルトの名無しさん
2006/10/12(木) 20:27:28や、知ってるよ。ウチはパワポだったけど。
ただ要旨をみれば卒論の内容もおのずと知れてくると。。
まぁ、俺の卒論も修論もひどかったけどね。
理論物理なんて高尚な学問は当時の俺には無理だったよ。
今は本当に後悔してるっつーか、もう一度やらせれ。
0689デフォルトの名無しさん
2006/10/12(木) 23:17:22日本語が入って驚いたのですがC#では当たり前なのでしょうか?
0690デフォルトの名無しさん
2006/10/12(木) 23:19:31あたりまえ 『ではないが』 可能
0691デフォルトの名無しさん
2006/10/12(木) 23:49:16戻り値
path がルート ディレクトリを示す場合、path または null 参照 (Visual Basic では Nothing) の
ディレクトリ情報を含む String は空の文字列 ("") または null 参照 (Visual Basic では Nothing) です。
path にディレクトリ情報が含まれていない場合は、String.Empty を返します。
英語の方もよく分からん(;´Д`)
Return Value
A String containing directory information for path, or a null reference (Nothing in Visual Basic)
if path denotes a root directory, is the empty string (""), or is a null reference (Nothing in Visual Basic).
Returns String.Empty if path does not contain directory information.
0692デフォルトの名無しさん
2006/10/13(金) 00:38:31もしそうであるならばご教示願えれば。
0693デフォルトの名無しさん
2006/10/13(金) 01:52:25C#のソースがUnicodeになったので、
ShiftJIS 2byte目の「\」との衝突を気にしなくて済むようになったから。
0694デフォルトの名無しさん
2006/10/13(金) 02:30:06そういう時代なのかね
0695デフォルトの名無しさん
2006/10/13(金) 04:13:24データグリッドを使ってファイル内容を表示したいのですが、
ループを使ってるためか、他の画面にフォーカスを当てたり、画面をクリックすると
画面が固まってしまいます。ループの間、画面を切り替えても
うまくずっと表示させる方法はありませんか?
以下がだいたいのコードです。
dsGrid.Tables.Add("CSV");
dsGrid.Tables["CSV"].Columns.Add("#");
dsGrid.Tables["CSV"].Columns.Add("field1");
dsGrid.Tables["CSV"].Columns.Add("field2");
dataGrid1.SetDataBinding(dsGrid, "CSV");
for(int i=0;i<10000;i++){
DataRow rowGrid = dsGrid.Tables["CSV"].NewRow();
rowGrid[0] = i;
rowGrid[1] = i;
rowGrid[2] = i;
dataGrid1.Update();
}
よろしくお願いします。
0696デフォルトの名無しさん
2006/10/13(金) 04:16:41ループをスレッドにしたら?
0697デフォルトの名無しさん
2006/10/13(金) 04:23:14Application.DoEvents();
0698デフォルトの名無しさん
2006/10/13(金) 05:46:34Application.DoEvents();を入れたら、動きました!
どうもありがとう!!
0699デフォルトの名無しさん
2006/10/13(金) 13:35:58時は、例えば5回ループ回る毎に一回DoEvents()を処理するように
したりすると速くなる事もある。
0700デフォルトの名無しさん
2006/10/13(金) 14:06:150701デフォルトの名無しさん
2006/10/13(金) 14:33:14時間のかかる処理の進行状況を表示する
http://dobon.net/vb/dotnet/programing/displayprogress.html
時間のかかる処理をユーザーが停止できるようにする
http://dobon.net/vb/dotnet/programing/abortprocess.html
関連してこの辺を読むと賢くなれそう。
自分は今までDoEventsを知らなかったので常にスレッドを使ってたよ...。
.NET Framework 2.0のBackgroundWorkerは割とお手軽だた。
0702デフォルトの名無しさん
2006/10/13(金) 15:08:21英語の方はよくわかると思うが。直訳はしにくいが和約はこうだ。
戻り値
(パスがディレクトリ情報を含む場合には)パスのディレクトリ情報を格納した文字列(を返します)。
パスが空文字列または null (VB の場合には Nothing)の場合には、 null (VBの場合は Nothing)(を返します)。
パスがディレクトリ情報を含まない場合には空文字列を返します。
0703デフォルトの名無しさん
2006/10/13(金) 15:10:41重いとか軽いとかもそうだけど、>>700が言うように DoEvents でメニューだされたり
他の何かのボタン押して処理を開始されたりとかそういう心配もした方がいい。
使ってほしくないボタンはEnable=false にしておくとか。
(Multithread の場合も同じだけど)
0704デフォルトの名無しさん
2006/10/13(金) 15:18:40日本語でおk
0705デフォルトの名無しさん
2006/10/13(金) 15:23:55{
}
これだと毎回listview.items.Countを実行している事になり遅くなるのでしょうか?
0706デフォルトの名無しさん
2006/10/13(金) 15:32:54どの辺がわからない?
ってのはともかく、漏れはもう真面目に答えるのはやめることにする。
お前のせいだ。
0707デフォルトの名無しさん
2006/10/13(金) 16:54:06じゃあ、代わりに俺が真面目に突っ込んでおくか。
・「pathがルートディレクトリを示す場合」(nullを返す)が抜けてる。
・「path」はパラメータ名なのでpathのままの方がいい。
あとはそれでいいと思うよ。
でも、実際は(.NET2.0でしか試してないが)pathが空文字列の時は
ArgumentExceptionになるんだけどね。
0708デフォルトの名無しさん
2006/10/13(金) 17:04:52たぶんコンパイル時にインライン展開されるから問題ない
ちなみに、配列の場合はLengthプロパティで毎回アクセスした方が最適化が効いて速くなるらしい
0709デフォルトの名無しさん
2006/10/13(金) 17:08:08ルートディレクトリってすなわち空文字列じゃん。
いや事実関係はともかく、元の英文では。
0710デフォルトの名無しさん
2006/10/13(金) 17:11:45漏れは「毎回LVM_GETITEMCOUNTが送られる」に1票。
その程度でさほど遅くはならないと思うけどね。
0711デフォルトの名無しさん
2006/10/13(金) 17:13:16んなわけねーだろw
if path denotes a root directory, (if path) is the empty string , or (if path) is a null reference
だろーが。実際"C:\\"渡せばnull返ってくるし。
0712デフォルトの名無しさん
2006/10/13(金) 17:22:110713デフォルトの名無しさん
2006/10/13(金) 17:32:22送ってないっぽい
0714デフォルトの名無しさん
2006/10/13(金) 18:05:23遅レスだが、画像処理なら、
http://www.codeproject.com/cs/media/csharpgraphicfilters11.asp
が参考になるな。
0715デフォルトの名無しさん
2006/10/13(金) 18:39:37画像全体、もしくは部分を透過処理(FormのOpacityみたいな)する方法ありますか?
0716デフォルトの名無しさん
2006/10/13(金) 18:51:48http://dobon.net/vb/dotnet/graphics/hadeinimage.html
反転やグレイスケール化もColorMatrixの値を変えれば簡単に出来る。
0717714
2006/10/13(金) 19:54:00↓のMultimedia=>GDI+
に他の画像処理の例が
http://www.codeproject.com/script/Articles/list_articles.asp?userid=6556
0718デフォルトの名無しさん
2006/10/13(金) 22:30:17ためになります!
ほんとにありがとう!
勉強します^^
0719デフォルトの名無しさん
2006/10/14(土) 00:05:38C#を使おう。
みんなM$に取り込まれよう。
0720デフォルトの名無しさん
2006/10/14(土) 08:12:14クリックされた場合にどちらのListViewでクリックされたのか調べる方法はないのでしょうか?。
private void log_del ToolStripMenuItem_Click(object sender, EventArgs e)
{
}
0721デフォルトの名無しさん
2006/10/14(土) 08:49:210722デフォルトの名無しさん
2006/10/14(土) 09:28:37ありがとうございます。
SourceControl.Nameでコントロール名を収得する事が出来ました。
ここから更にSourceControl.Name.items.clear();という意味合いの処理を行う事は可能でしょうか?。
0723デフォルトの名無しさん
2006/10/14(土) 09:41:10SourceControlを適当な型にキャストしてやれば
0724デフォルトの名無しさん
2006/10/14(土) 10:01:53ありがとうございます。
また1つ勉強になりました。
ListView lv = (ListView)cm1.SourceControl;
lv.Items.Clear();
0725デフォルトの名無しさん
2006/10/14(土) 10:28:19正規表現を使うべきなのでしょうか?。
string a = "あかおあぁお";
string[] word = {"あ","い","う"};
foreach(string w in word){
if (a.IndexOf(w) > -1)
{
//hit
break;
}
};
0726デフォルトの名無しさん
2006/10/14(土) 11:30:510727デフォルトの名無しさん
2006/10/14(土) 13:36:41wordをchar[]にしてa.IndexOfAny(word)
0728デフォルトの名無しさん
2006/10/14(土) 14:17:56自分で考えたのは見えないRichTextBoxを大量に用意する方法ですが、
さすがにこれはいけてないなと思いまして。
0729デフォルトの名無しさん
2006/10/14(土) 14:50:23中途半端な書き方をしてすいません。string[] word = {"ああ","いい","うう"};で実際は複数文字のワードなので
char[]だと使えません。
0730デフォルトの名無しさん
2006/10/14(土) 15:16:32自分の好きなほうで。
0731デフォルトの名無しさん
2006/10/14(土) 21:15:25addだとindexになるのですがこれを任意のキーにしたいのです。
List<ListView> lv = new List<ListView>();
foreach (ListViewItem item in listView_list.Items)
{
lv.Add(new ListView());
}
0732デフォルトの名無しさん
2006/10/14(土) 21:16:36初めに、VS2005C#で2.0ヴァージョンを作りました。
次に、VS.NETで1.1バージョンを作りたいのですが、
プロジェクトファイルははそのまま利用できるわけではないようです。
VS.NETでVS2005のプロジェクトをビルドする方法はありますか?
0733デフォルトの名無しさん
2006/10/14(土) 21:20:37っつか両方で動かしたいなら順番逆のが楽だろ。
0734デフォルトの名無しさん
2006/10/14(土) 21:21:13コードが意味不明だが Dictionary<TKey, TValue> があるだろ
>>732
手順を逆にしろよ
0735デフォルトの名無しさん
2006/10/14(土) 21:26:21そのコードの意味がよくわからん
Dictionary<ListViewItem, ListView> lv = new Dictionary<ListViewItem, ListViewItem>();
foreach (ListViewItem item in listView_list.Items)
{
lv.Add(item, new ListView())
}
こういうこと?
0736735
2006/10/14(土) 21:29:04○new Dictionary<ListViewItem, ListView>()
被った…
0737731
2006/10/14(土) 21:59:29ありがとうございます。
Dictionaryの存在をはじめて知りました・・・。
Dictionary<string, ListView> lv = new Dictionary<string, ListView>();
とする事でやりたい事が出来そうです。
0738デフォルトの名無しさん
2006/10/14(土) 22:03:180739デフォルトの名無しさん
2006/10/14(土) 22:45:24DataSet.Clear()の後、RejectChanges()で元に戻らない。
両Methodにはそんな記述はない。バグなんだろうか?
0740デフォルトの名無しさん
2006/10/14(土) 23:26:11入れると消えてしまうものだという認識でいいのかな・・・
ListViewItem item = new ListViewItem("abc");
this.listView1.Items.Insert(0, item);
this.listView2.Items.Insert(0, item);
0741デフォルトの名無しさん
2006/10/14(土) 23:31:12ListViewItem.ListView プロパティは何を返せばいいんだ
0742740
2006/10/14(土) 23:31:28複製しなければならないのかかわからない
0743デフォルトの名無しさん
2006/10/14(土) 23:31:330744740
2006/10/14(土) 23:37:31消えてなくなるわけではなくて同じプロパティを共有しようとしたから怒られた
という事なのでしょうか?。ListViewItemはListViewに関連付けられた唯一無二
のアイテムという事になるという事で合っていますか?。
0745デフォルトの名無しさん
2006/10/14(土) 23:46:43ListViewやListViewItemがそういう仕様だから勝手に怒ってるだけ
string abc = "abc";
this.listView1.Items.Insert(0, new ListViewItem(abc));
this.listView2.Items.Insert(0, new ListViewItem(abc));
これではダメ?
0747デフォルトの名無しさん
2006/10/15(日) 02:40:22むしろできたらびっくりだと思うが…
0748デフォルトの名無しさん
2006/10/15(日) 02:48:42知ってて書いてる?
前回 DataSet.AcceptChanges を呼び出した以降にこのデータセットに対して行われたすべての変更をロールバックします。
0749デフォルトの名無しさん
2006/10/15(日) 03:04:54「行」に対する「変更」、が対象であって、それ以外は変更とはみなさない。
分かりにくいってか、記述があいまいだとは俺も思うよ。
でも普通に考えたらできないと思うだろ。Clearだぜ。消去だぜ。
現在の状態も含めてきれいさっぱりだ。
Clearを元に戻せるってことは、全データを保持し続けるってことだぞ。
こっちのが普通に違和感あるだろ。
ついでに言うと、行のRemoveの方も変更ではなく行自体の消去。
0750デフォルトの名無しさん
2006/10/15(日) 03:10:06いや>>748はMSDNのコピペな訳だが・・・
0751デフォルトの名無しさん
2006/10/15(日) 03:11:40その記述を、そのように受け取る、という意味の「そう受け取る」だよ
いや、確かに分かりにくかったな。
0752デフォルトの名無しさん
2006/10/15(日) 03:49:050753デフォルトの名無しさん
2006/10/15(日) 09:33:12xml["key"]が存在するかどうか調べる方法はありますでしょうか?。
XmlDocument xml = new XmlDocument();
xml.Load(url);
if (xml["key"]){
//xml["key"]があれば実行する
}
0754デフォルトの名無しさん
2006/10/15(日) 09:37:350755デフォルトの名無しさん
2006/10/15(日) 11:07:09Clear()がTRUNCATEと同等なら一文記述すべきだよな>MSDN
とりあえずサンクス
RejectChanges()の使いどころが判らない似非PGですた
0756デフォルトの名無しさん
2006/10/15(日) 13:32:30nullで良かったです・・・俺の頭は悪いです・・・。
true falseみたいにnullの反対はあるのでしょうか?。
0757デフォルトの名無しさん
2006/10/15(日) 13:37:53XPathとか使わないん?
0758デフォルトの名無しさん
2006/10/15(日) 13:39:310759756
2006/10/15(日) 13:50:46}
0760756
2006/10/15(日) 13:52:33頭が悪すぎました-;
0761デフォルトの名無しさん
2006/10/15(日) 13:55:200762デフォルトの名無しさん
2006/10/15(日) 13:56:34この調子だと、ありとあらゆることをここで質問することになりそうだ。
0763デフォルトの名無しさん
2006/10/15(日) 14:06:05でもXmlNodeやXmlElementではそういうオーバーロードはされてないってこったね。
※まあ普通はやらないが。
0764デフォルトの名無しさん
2006/10/15(日) 14:08:390765デフォルトの名無しさん
2006/10/15(日) 21:33:50ThreadStartに渡すメソッドに、引数を渡す方法が分かりません。
func(int x)
があったとし、
ThreadStart ts = new ThreadStart(func(x))
で、エラーになります。
0766デフォルトの名無しさん
2006/10/15(日) 21:38:25new ThreadStart(func);
0767デフォルトの名無しさん
2006/10/15(日) 21:40:14ぶっちゃけ【ない】
非同期デリゲートあるいは ThreadPool が使用できるのなら、そっちを使うのもあり。
0768デフォルトの名無しさん
2006/10/15(日) 21:41:390769デフォルトの名無しさん
2006/10/15(日) 21:41:58余計にわかりにくい
0770デフォルトの名無しさん
2006/10/15(日) 21:43:33みたいなことが書いていたので、作成中のプログラムを書き直したのですが、ほかにも「負荷軽減での常識」のようなものはありますか?
また、どれぐらい違うのかも調べたいので、精度の高い計測方法を教えていただけると助かります。
0771デフォルトの名無しさん
2006/10/15(日) 21:50:14負荷軽減の常識
ttp://www.microsoft.com/japan/msdn/enterprise/pag/scalenetchapt05.asp
精度の高い計測方法
ttp://www.microsoft.com/japan/msdn/enterprise/pag/scalenethowto13.aspx
0772デフォルトの名無しさん
2006/10/15(日) 21:52:29>>765
.NET 2.0 なら ParameterizedThreadStart 使うオーバーロードが追加されたがね。
0773デフォルトの名無しさん
2006/10/15(日) 21:53:00勘違い?
0774デフォルトの名無しさん
2006/10/15(日) 21:55:06Stopwatchとか
0775770
2006/10/15(日) 21:59:50ありがとうございます
結構ありますね;;
CLRプロファイラは難しそうなので、もう少し調べてみます
>>772
実装する前に計測・比較するよう心がけます
>>774
私の環境は1.1なので使用できません;;
0776デフォルトの名無しさん
2006/10/15(日) 22:08:14>実装する前に計測・比較するよう心がけます
実装してから計測するように。で、もっとも重い部分からチューンするのが定石。
【最適化の定石は、最適化をしないこと】
0777デフォルトの名無しさん
2006/10/15(日) 22:18:43MSDNのParameterizedThreadStartで、こういう解説が有る。
>ParameterizedThreadStart デリゲートおよび Thread.Start(Object) メソッドをオーバーロードすると
>データをスレッド プロシージャに簡単に渡せるようになりますが、この方法はすべてのオブジェクトを
> Thread.Start(Object) に渡すことができるため、タイプ セーフではありません。より信頼性の高い
>方法でスレッド プロシージャにデータを渡すには、スレッド プロシージャとデータ フィールドの両方を
>ワーカー オブジェクトに格納します。詳細については、「スレッドを作成し、開始時にデータを渡す」を
>参照してください。
要するに、
class FuncClass
{
public int x;
public void func() {}
}
というクラスで、予めxに値を設定しておけば。
そのままfunc()の中で、this.x として使えるってこと。
0778デフォルトの名無しさん
2006/10/15(日) 23:25:05代わりにQueryPerformanceCounterでも使っとけ。
0779デフォルトの名無しさん
2006/10/16(月) 09:19:50SP2を落としてもSP2がないといわれるんですがどうしたらいいですか?
0780デフォルトの名無しさん
2006/10/16(月) 09:32:160781デフォルトの名無しさん
2006/10/16(月) 16:47:47作成済みのドロップダウンメニューが開かなくなりました。
どうしたらまた、開くようになりますでしょうか?
一応これでも開発はできますが、効率が良くないので何とかしたいです。
0782デフォルトの名無しさん
2006/10/16(月) 16:54:05そのへん明確にして出直してきなさい。全般的に意味不明。
0783デフォルトの名無しさん
2006/10/16(月) 17:15:40ComboBox の DropDownLost か、ContextMenu の間違いだと思うんだけど……
0784デフォルトの名無しさん
2006/10/16(月) 17:41:03これは、開発環境(VS)の話です。
フォームデザイナでMenuStripを貼り付けると、メニューを追加する位置に、
"ここへ入力"と言うのができて、"ファイル(&F)"とか入力していけるのですが、
メニューの一度入力した部分を、フォームデザイナで修正しようとしても
新規に追加する右端にしか入力できなくなりました。
インターネットエクスプローラで言うと、下のようなのが入力してあった場合、
新規作成(N)でのクリックのイベントとかをフォームデザイナから入力したくても、
開けないので、入力できないと言う状態です。
("ファイル(F)|編集(E)|..."しか見れず、メニューの右端(IEではヘルプの右)
への追加しかできない。)
ファイル(F)|編集(E)
-----------|----------
新規作成(N)|切り取り(T)
開く(O) |コピー(C)
...
以前はできたような気がするのですが、できなくなりました。
0785デフォルトの名無しさん
2006/10/16(月) 17:46:36入力したものから即座に消えていくのか。
それとも、何かした場合に消えるのか。
0786デフォルトの名無しさん
2006/10/16(月) 17:55:30試してないんだけどDataTable.Rows.Clear()だとどうなるの?
0787デフォルトの名無しさん
2006/10/16(月) 18:09:080788781
2006/10/16(月) 18:09:27いいえ消えるのではないです。そもそも何も入力できません。
新規にプロジェクトを作って試してみるとフォームエディタで入力できました。
今作っているのは、90画面以上有るのが、関係しているのかもしれません。
解決できそうに無いので、諦めます。
0789デフォルトの名無しさん
2006/10/16(月) 18:17:23VS再起動すれば大概なおるけど。
つか、プロパティウインドゥから編集したほうが早くないかね。そんなに困るかな。
0790781
2006/10/16(月) 19:44:34再起動で普通に修正できるようになりました。
メニューの場合、プロパティウィンドウのItemsから、別ウィンドウを開き、
下の項目の設定をしますが、そこでは
各項目のイベントの処理を設定できないので少々不便です。
0792デフォルトの名無しさん
2006/10/16(月) 19:56:4290画面って……。いったい何が90もあるのか。
0793デフォルトの名無しさん
2006/10/16(月) 20:11:390794デフォルトの名無しさん
2006/10/16(月) 20:13:580795デフォルトの名無しさん
2006/10/16(月) 20:17:46いや・・・まさかね・・・そんな事がある訳がないよね
0796デフォルトの名無しさん
2006/10/16(月) 21:11:04それをWebbrowserに表示させたいのですがどうすればいいでしょうか?
WebRequestとCredentialでログインはできるのですが、
その後どうWebbrowserに表示させればいいのかが分かりません。
0797781
2006/10/16(月) 21:11:23(原因不明ですが、どうもお騒がせしました。)
ちなみに、メニューがあるのは、数画面です。
VSのおかげか普通のWebシステムよりかなり簡単に画面が作れますね。
もしかすると、ASP.NET辺りだとサクサク開発ができるかも知れませんが。
0798デフォルトの名無しさん
2006/10/16(月) 23:15:19俺の「先輩」は画面の再描画用に、ラベルだけ変えた同一機能のフォームを...
0799デフォルトの名無しさん
2006/10/16(月) 23:56:26先輩は S藤って名前じゃ…
0800デフォルトの名無しさん
2006/10/17(火) 17:16:370801デフォルトの名無しさん
2006/10/18(水) 00:02:350802デフォルトの名無しさん
2006/10/18(水) 11:07:06そのPCは都合でXP SP2にバージョンアップ出来ず、framework 2.0を入れることができません。
無理やりにでも、このPC上で2.0アプリを動かせませんか。
ネイティブイメージジェネレータ(Ngen.exe)というのが、ネイティブのキャッシュを実行できるらしいので、
そのキャッシュを強引に実行ファイルとしてコピーできるソフトとか、そんなのtんdねえhgyふじこlp;@
0803デフォルトの名無しさん
2006/10/18(水) 11:34:161.1 を強制的に 2.0 で動かすのはよくやるが、その逆は経験なくてね。すまぬ。
0804デフォルトの名無しさん
2006/10/18(水) 11:46:54そこを解決してSP2にすることで、無駄な努力をしなくて済むかもよ
0805デフォルトの名無しさん
2006/10/18(水) 11:51:520806デフォルトの名無しさん
2006/10/18(水) 11:56:491枚のフォームに90個のユーザーコントロールを貼れという意味かとおもいます。
0807802
2006/10/18(水) 14:21:51>>804 そのPCでメインに使ってるソフトがSP2では動作しないためです。全てはこのうんこソフトのせいです。
0808デフォルトの名無しさん
2006/10/18(水) 16:28:23そのうんこソフトの名前は?
対処法とかパッチとか知ってる人がいるかもよ
つか、VirtualPCにXPSP1a環境作ってそのソフトだけ動かしたほうが良くね?
SP1aのサポートも間もなく終わるし、今やSP2じゃないとダメってソフトの方が多いし
0809デフォルトの名無しさん
2006/10/18(水) 18:03:250810デフォルトの名無しさん
2006/10/18(水) 18:09:210811デフォルトの名無しさん
2006/10/18(水) 18:15:12それから取得したGraphicsオブジェクトを返したいのです。
別に、Bitmapオブジェクトを直接返してそのDisposeは呼び出す側に任せてもいいんですけど
0812デフォルトの名無しさん
2006/10/18(水) 18:17:100813デフォルトの名無しさん
2006/10/18(水) 18:43:03sealed
>>811
GetHdcしてHDCへのポインタとっといて、
GetDCBrushColorとかでHDCが生きてるか調べればいいんじゃないかな。
よく分からんが。
0814デフォルトの名無しさん
2006/10/18(水) 19:39:24漏れはリソースの廃棄を呼び出し側に任せたくない時は、
クロージャを使って、ロジックをひっくり返してる。
class Foo
{
public delegate void PaintHandler(Graphics graphics);
public void Paint(PaintHandler paintHandler)
{
using (Bitmap bitmap = new Bitmap(...))
{
using (Graphics graphics = Graphics.FromImage(bitmap))
{
paintHandler(graphics);
}
}
}
}
// 以下呼び出し側
Foo foo = new Foo();
foo.Paint(
delegate(Graphics graphics)
{
...
}
);
0815デフォルトの名無しさん
2006/10/18(水) 19:44:51上みたいな書き方は、クロージャの使える言語なら定石だ。
せっかくC#も匿名delegateが使えるようになったのだから、がんがん使ってる。
0816デフォルトの名無しさん
2006/10/18(水) 22:20:430817デフォルトの名無しさん
2006/10/18(水) 22:29:39>GraphicsオブジェクトがDisposeされたことを即座に知る方法はありますか?
という要件自体出てこないような気がする。
0818デフォルトの名無しさん
2006/10/18(水) 23:03:040819デフォルトの名無しさん
2006/10/19(木) 13:03:00呼び出し元がdelegateメソッドに変数を渡すケースを想像して欲しい。
匿名でなければ、メンバ変数などのよりスコープの広い領域に変数を置かなければならなくなる。
コールバックメソッドとクロージャは違う。
0820デフォルトの名無しさん
2006/10/19(木) 23:43:270821デフォルトの名無しさん
2006/10/20(金) 01:07:25FieldInfoは取得OKなんですが、
Object targetなどInvokeMemberに渡す引数がよくわかりません
0822デフォルトの名無しさん
2006/10/20(金) 01:27:55typeof(クラス名).InvokeMember("フィールド名", BindingFlags.GetField | BindingFlags.Static | BindingFlags.NonPublic, null, null, null)
0823デフォルトの名無しさん
2006/10/20(金) 01:40:15これでばっちり取れました
ありがとうございました
0824デフォルトの名無しさん
2006/10/20(金) 02:19:22C# スマクラ開発です。
3層構造でプログラムを組んでいるのですが
DB更新時にUSERIDを画面側からセットしてあげようと思っています。
結局画面側→ウェブサービス→ビジネスロジック
と、userIDを引数で渡すしかしょうがないんでしょうか?
引数でしか処理できないようだったら、今後のことを考えてユーザ情報の構造体みたいなのを1つ
引数として渡したいと思うのですが
その場合、そのclassをどこにおけばいいんだろう、と思ってしまいました。
すごい初心者な質問ですが、いい案はありますでしょうか?
0825デフォルトの名無しさん
2006/10/20(金) 02:33:48WS-Security 辺り使うか
いっそForm認証流用してCookieで渡すか
0826デフォルトの名無しさん
2006/10/20(金) 03:30:12{
public int Field;
}
と
public class Class
{
private int field;
public int Field
{
get{ return field; }
set{ field = value; }
}
}
とでは何が違いますか?
また、わざわざ後者のほうで書くメリットはありますか?
0827デフォルトの名無しさん
2006/10/20(金) 04:02:03一般にプロパティのメリットとしては、
・値get時/set時に条件を設けることができる
・値setする箇所を一元化できて、値の追跡を容易にする
・えー、↓あとよろしく
0828デフォルトの名無しさん
2006/10/20(金) 04:10:48つまりわざわざ後者で書いてる場合は、後で何か処理を付け足すつもりだとか、
そういう意味でしょうか?
0829デフォルトの名無しさん
2006/10/20(金) 04:22:26フィールドをパブリックにするな、という
MSのデザインガイドラインがあるから、かもね。
以下、引用。
[パブリックまたは保護されたインスタンス フィールドは提供しないでください。]
パブリック フィールドとプロテクト フィールドは適切にバージョン管理されず、
またコード アクセス セキュリティ要求によって保護されません。
パブリックに参照可能なフィールドを使用する代わりにプライベート フィールドを使用し、
それをプロパティを通じて公開してください。
http://msdn2.microsoft.com/ja-jp/library/ms229057.aspx
あとオブジェクト指向がうんちゃら、とかカプセル化がかんたら、とか
あるのかもよー
詳しくは↓が教えてくれるよ
0830デフォルトの名無しさん
2006/10/20(金) 04:34:42│ ヽ( ,_ノ`)ノ 残念 私のおいなりさんだ
│ へノ /
└→ ω ノ
>
自分でやってりゃ世話ねーなー
MSのを翻訳すると、
そのクラスを継承とかしたときに、
フィールドだとそのままだけど
プロパティなら違う動作させられる、とか、
アクセス権をきちんと設定できる、とか
そういうことじゃないかなー
ごめんよー酔っぱらっててなー
べつに、そのときしか使わないっていうなら、
パブリックなフィールドでもいい気はするよねー
0831デフォルトの名無しさん
2006/10/20(金) 04:42:05では、sealedでもしてない限りプロパティを使ったほうが無難ですね。
即席プログラム以外はちゃんとプロパティ使うようにします。
詳しい解説ありがとうございました。
0832デフォルトの名無しさん
2006/10/20(金) 11:46:49プログラム起動時、データセットにFillするのにかなり時間がかかります。
この余計な時間を無くすために、プログラムを起動する前に(例えばOSの起動時に)、
別プログラムによりFillしておいてそれを利用するなんてことはできますか。
0833デフォルトの名無しさん
2006/10/20(金) 13:17:07どう速くするかを考える前に、どうして遅いのか原因を調べないと。
いくつのテーブルからどの程度の数のレコードを読み込んでるの?
0834デフォルトの名無しさん
2006/10/20(金) 18:14:01for( int i = 0 ; i < 100 ; i++ )
{
hoge.Add(null);
}
hoge[45] = new Unko();
はできるのに
ArrayList hoge = new ArrayList();
hoge.Capacity = 100;
hoge[45] = new Unko();
ができないのは何故でしょうか
0835デフォルトの名無しさん
2006/10/20(金) 18:22:16ArrayListは配列と違って要素数やインデックスを気にせずにどんどんぶち込んでいけるのがウリ
0836デフォルトの名無しさん
2006/10/20(金) 19:07:400837デフォルトの名無しさん
2006/10/20(金) 21:43:48仕様だからしようがない。ところで上のforループは、
ArrayList hoge = ArrayLisy.Repeat( null, count);
と書けるみたいだよ。
0838デフォルトの名無しさん
2006/10/20(金) 23:58:25thx
配列つかわないで、かわりにArrayListつかってるんだけど
あまりよろしくないのかな
0839デフォルトの名無しさん
2006/10/21(土) 00:04:37個数が決まってるなら配列、動的に追加するなら ArrayList/List<T>
任意のキーを使うなら Hashtable/Dictionary<TKey, TValue>
0840デフォルトの名無しさん
2006/10/21(土) 00:05:29用途に応じて使い分ければいいんじゃない?
0841デフォルトの名無しさん
2006/10/21(土) 08:59:13子フォームから親フォームの値を参照するのに、
↓-----親フォーム(Form1)-----↓
public string f1_Text; //これを子フォームから参照
public Form1(){//コンストラクタ
this.f1_text = "Form1です。";
Form2 f2 = new Form2();
f2.MdiParent = this;
f2.Show();
}
↓-----子フォーム(Form2)-----↓
public Form2(){//コンストラクタ
MessageBox.Show("親フォームは、" + ((Form1)(this.MdiParent)).f1_text);
}
とすると、ビルドは通るのですが、
Form2のMessageBox.Showで NullReferenceException が発生します。
何が間違ってますか。
0842841
2006/10/21(土) 09:03:350843デフォルトの名無しさん
2006/10/21(土) 09:07:51コンストラクタとはなんでしょうか?
どこで呼ばれてるかわかる?
0844デフォルトの名無しさん
2006/10/21(土) 09:29:47http://www.google.co.jp/search?sourceid=navclient&hl=ja&ie=UTF-8&rls=GGLG,GGLG:2006-38,GGLG:ja&q=%E3%82%B3%E3%83%B3%E3%82%B9%E3%83%88%E3%83%A9%E3%82%AF%E3%82%BF
0845デフォルトの名無しさん
2006/10/21(土) 11:40:48親 Form は、こんな処理しているんだよね……
Form child = new Form2();
child.MidParent = this;
0846デフォルトの名無しさん
2006/10/21(土) 12:04:07どうしてもコンストラクタで処理したい場合、AppDomain経由にする?
0847デフォルトの名無しさん
2006/10/21(土) 12:13:330848デフォルトの名無しさん
2006/10/21(土) 12:14:32それはわかってるお・・・
ちょっと気になったんだお(´・ω・`)
0849デフォルトの名無しさん
2006/10/21(土) 12:14:410850デフォルトの名無しさん
2006/10/21(土) 12:43:54�dですお
0851デフォルトの名無しさん
2006/10/21(土) 13:31:210852デフォルトの名無しさん
2006/10/21(土) 16:19:44UTF-8で処理してると思えば なんでもありなんだろうけど
private void アイテムチェック(string アイテムネーム)
{
int カウンタ, ID;
DateTime 今日の日付;
....
}
0853デフォルトの名無しさん
2006/10/21(土) 16:21:15日本語で書いたら可読性が増すかというと微妙な気もするんですが
皆さんは日本語使ってます?
0854デフォルトの名無しさん
2006/10/21(土) 16:22:050855デフォルトの名無しさん
2006/10/21(土) 16:30:29読みやすい
インテリセンスもそれなりに機能している
(変換が確定したところで働く)
私の場合はメリット>>デメリット
小学校から英語学習があったらなぁ・・・
0856デフォルトの名無しさん
2006/10/21(土) 19:14:59日本語NGの環境で、辞書みたり考え込んじゃうようなものだったら、
この環境では日本語にしてる
0857852
2006/10/21(土) 19:30:08しかし慣れてないと一瞬コメントに見えてしまう
色分けはされてても……
英単語を考える労力がないからいいのか
IMEの切り替えが煩雑なのも……
0858デフォルトの名無しさん
2006/10/21(土) 22:49:17放置されていますなw
実行順にならべると、
public Form1(){//コンストラクタ
this.f1_text = "Form1です。"
Form2 f2 = new Form2();
//以下は new Form2() で実行されます。
public Form2(){//コンストラクタ
MessageBox.Show("親フォームは、" + ((Form1)(this.MdiParent)).f1_text);
}
//戻る。
f2.MdiParent = this;
f2.Show();
}
ここでおかしいのはMessageBox.Show時の
this.MdiParentは何なのかということ…
0859デフォルトの名無しさん
2006/10/21(土) 23:31:11まじ?
例えば、NativeWindowなネストクラスつくるとき、
親のコンストラクタ内でNativeWindowなクラスのコンストラクタに
親のthis渡したりしたらまずい?
ハンドル渡せばいいのかな?
0860デフォルトの名無しさん
2006/10/21(土) 23:37:070861デフォルトの名無しさん
2006/10/21(土) 23:38:50そんなガイドラインあるの?
0862デフォルトの名無しさん
2006/10/21(土) 23:44:22その場合は this 渡して HandleCreated / HandleDestroyed でアタッチ/デタッチするのがベターかな。
this 渡しちゃ駄目ってんなら、IContainer.Add が使いづらいじゃないか。
0863デフォルトの名無しさん
2006/10/21(土) 23:47:12メンバは初期化されてないかもしれんが
0864デフォルトの名無しさん
2006/10/22(日) 00:17:02コンストラクタでなくてもそういう状況は当然起こるので
仕方ないってところだろ。
コンポーネント思考は、そういうなんていうか完全主義みたいな感覚とは
やや相容れないところがある。
0865デフォルトの名無しさん
2006/10/22(日) 00:18:31インスタンスはできていない、というのが考え方としては正しいと思うよ。
言いたいことはわかるし、それに文句言う気もないんだけど。
0866デフォルトの名無しさん
2006/10/22(日) 01:07:240867デフォルトの名無しさん
2006/10/23(月) 21:07:49押されたキーに対応する文字を得るにはどうすればいいですか。
アルファベットキーとかなら出来るけども、記号の場合、
片っ端から分岐して判別するのはあまりにもだし、
WndProcをoverrideしてWM_CHAR捕まえるればいいのかなと思ったけど、
それだとListViewの場合インクリメンタルサーチでカーソルが動いてしまう。
かといってProcessCmdKeyでreturn true;するとWM_CHARが起こらない…。
0868デフォルトの名無しさん
2006/10/23(月) 21:14:42まあ色々諦めれ。
0869デフォルトの名無しさん
2006/10/23(月) 21:41:25その辺りの挙動は C# と C++ では異なっています。
http://msdn.microsoft.com/msdnmag/issues/04/11/CQA/
C++ 側の仕様の方が厳密で論理的だけれども、C# のも単純で悪くない。
0870867
2006/10/23(月) 21:44:36使い方が良く分からん…がこれでいけるかな
0871867
2006/10/23(月) 23:25:53[DllImport("user32", EntryPoint = "ToUnicode", CharSet = CharSet.Auto)]
public static extern int ToUnicode(int wVirtKey, int wScanCode, ref byte[] lpKeyState, string pwszBuff, int cchBuff, int wFlags);
[DllImport("user32.dll", EntryPoint = "GetKeyboardState", CharSet = CharSet.Auto)]
public static extern int GetKeyboardState(byte[] lpKeyState);
protected override bool ProcessCmdKey(ref Message msg, Keys keyData){
System.Text.StringBuilder sb = new System.Text.StringBuilder(256);
byte[] keyState = new byte[256];
GetKeyboardState(keyState);
ToUnicode((uint)msg.WParam, 0, keyState, sb, 256, 0);
MessageBox.Show(sb.ToString());
return true;
}
0872デフォルトの名無しさん
2006/10/24(火) 06:41:43Form1からだと上手くいくのに、Form1から呼び出したあるフォーム上では以下のようなエラーが出ます
'System.Threading.ThreadStateException' のハンドルされていない例外が system.windows.forms.dll で発生しました。
追加情報 : OLE が呼び出される前に、現在のスレッドが Single Thread Apartment (STA) モードに設定されていなければなりません。
Main 関数に STAThreadAttribute が設定されていることを確認してください。
Form1から呼び出したフォームでも、上手くいくものと、上記のエラーが出るものがありましたが、原因がまったくわかりません
どうすればいいんでしょうか?
0873デフォルトの名無しさん
2006/10/24(火) 07:15:530874デフォルトの名無しさん
2006/10/24(火) 07:32:02これは値を返しているのですよね?
オーバーヘッドを生じないために、ポインタのようにして返すことはできないのですか?
0875872
2006/10/24(火) 07:45:48すいません。書き方がまずかったです
エラーに対する具体的な対処がわからないんです
Main関数の上には[STAThread]がついてるんですが、これは関係ないんでしょうか?
0876デフォルトの名無しさん
2006/10/24(火) 07:57:33配列は参照型ですよ
0877デフォルトの名無しさん
2006/10/24(火) 08:02:23> 現在のスレッドが
別スレッド使ってんだろ?
Thread クラスのメンバ調べれ。
ちなみに Thread クラス使ったスレッドしかサポートできない。
そうでなきゃ Control.Invoke 使ってメインスレッドにやらす。
0878デフォルトの名無しさん
2006/10/24(火) 09:28:29プロパティ値セットが、デザイナ画面のプロパティウインドウから行われたのか、
コードから行われたのかを判定する方法はありますか?
DesignMode判定だけでは不十分なので。。
0879デフォルトの名無しさん
2006/10/24(火) 09:33:02質問には答えられない訳だが・・・
何故それが必要なのか教えてくれるか?
0880デフォルトの名無しさん
2006/10/24(火) 11:20:57あるカスタムコントロールに、P1 と P2 の2つのプロパティがあるとして、
デザイン画面のプロパティウインドウ上で P1 に値を入れると、
自動的に P2 にも特定の値が入るようにしています。
ただ、この P2 の値は、P1 の値に応じて必ず入れるべき値というわけじゃなく、
単にデザインの効率を上げるためによく使用される値を自動で入れているだけであって、
あとからいくらでも P2 の値を変えることができます。
で、このコントロールを使ったとき、以下のような場合に不都合が出ます。
あるフォームのデザイナ上で、このコントロールを貼り付け、
プロパティウインドウから P1 の初期値を設定します。
するとそれに応じて P2 の値も変わります。(※ここまでは問題なし)
ここで、今作りたいコントロールは P2 の値は既定値(値なし)のままで良く
自動で変更された P2 をプロパティウインドウから元の空欄に戻したとします。
すると当然、デザイナにより作成された InitializeComponent() 内には、
P1 の値をセットするコードだけが記述され、P2 に関しては何も書かれません(規定値だから)。
この状態で、一旦ビルドを行います。そして改めてデザイナ上から P2 の値を見てみると、
空欄にしたはずの P2 が、P1により自動設定された値に戻っています。
よくよく考えれば、InitializeComponent() 内で P1 の値のみセットし、P2 には何もセットしてない
わけだから、こうなってしまうのは当然なのですが。。
というわけで、この InitializeComponent() 内では(つまりコードでは) 自動セットを無効にし、
プロパティウインドウからセットしたときだけ自動セットさせたいのです。
InitializeComponent() はデザイン画面で行われるので DesignMode判定では駄目だし、
OnHandleCreated を使用して判定しても、フォーム側の InitializeComponent() では
既にコントロールのハンドルが作成された後なので駄目でした。
0881デフォルトの名無しさん
2006/10/24(火) 12:50:43これは、VS2005にもありますでしょうか?
また、VC++6では、ツールバー全体で一つのbmpファイルになっていましたが
VS2005ではbmpファイル一つずつ別々に扱うのでしょうか?
0882デフォルトの名無しさん
2006/10/24(火) 13:34:25作成された後なので駄目でした。 まで読んだ。
0883デフォルトの名無しさん
2006/10/24(火) 13:39:32・ない
2005にはToolStripというものはあるが
・ImageList.AddStrip()
0884デフォルトの名無しさん
2006/10/24(火) 13:41:06ImageList.ImageCollection.AddStrip()
0885デフォルトの名無しさん
2006/10/24(火) 13:57:35どうもありがとうございます。
調べてて無さそうだと思ってましたが諦めがつきました。
0886デフォルトの名無しさん
2006/10/24(火) 14:06:39たぶんで申し訳ないが。
(フォーム1から起動するフォームをフォーム2と記載する)
ヘルプ(Clipboardについて)を見る限り、Main関数と同一のスレッドでしか
使えないんじゃないのかな。つまりここで使えるのはフォーム1のみ
フォーム2は別スレッドになるから、デリゲートで処理をフォーム1に委譲するしかないと思われる。
だいたいこんな流れになるかな。こまかいところは勘弁。
class フォーム1{
public func(int a1,int a2) [
やりたい処理
}
}
// デリゲートの宣言
public delegate void delgfunc(int a1, int a2);
class フォーム2{
public aaa()
{
// デリゲートの作成
delgfunc f2func= new delgfunc(フォーム1.func);
// 同期呼び出し
フォーム1.Invoke(f2func, new object[] {int a1,int a2});
}
}
マルチスレッドの解説
http://www.atmarkit.co.jp/fdotnet/mthread/index/index.html
デリゲート部
http://www.atmarkit.co.jp/fdotnet/mthread/mthread02/mthread02_03.html
マルチスレッドの解説
http://codezine.jp/a/article.aspx?aid=144
デリゲート部
http://codezine.jp/a/article.aspx?aid=139#form
0887デフォルトの名無しさん
2006/10/24(火) 14:23:50MenuStripでどうしてもあのVS2005風スタイルじゃなくてWin標準の見た目でやりたくて、
MenuStripのRenderModeをSystemにしたんだけど、あのダサさは何とかならないん?
やっぱり自分でRenderer作らなきゃいけない?
ちなみにMainMenu使えっていうのはなし。理由はMainMenuだと動かせないから。
0888デフォルトの名無しさん
2006/10/24(火) 14:41:50でもRenderer作るなんてそんなに大変じゃないでしょう。
ProfessionalRendererあたりから派生させるんだっけ?
0889デフォルトの名無しさん
2006/10/24(火) 14:45:10とりあえずSystemRendererあたりいぢってみる。
0890デフォルトの名無しさん
2006/10/24(火) 14:45:49とりあえずSystemRendererあたりいぢってみる。
0892デフォルトの名無しさん
2006/10/24(火) 14:46:590893デフォルトの名無しさん
2006/10/24(火) 15:03:30Form1でForm2のインスタンス生成していれば同一スレッド。
一応二つForm作って試したけど両方とも正常に動く。
>>877の書き込みが正しい。
0894887
2006/10/24(火) 15:56:450895886
2006/10/24(火) 16:17:21新規にソース打って確認したけど、
確かに、勝手に脳内変換してたもより。
コントロール毎に別スレッドになる物と思ってた。
以上迷惑かけた方 m(_ _)m
0896デフォルトの名無しさん
2006/10/24(火) 17:39:59知ってるだろうけど、別スレッドだろうがApartmentState.STAが定義されてれば動くおw
0897872
2006/10/24(火) 18:38:03>>877さんのおっしゃるとおりでした
buttonHoge_Click(〜〜)
{
//処理
new Thread(new ThreadStart(ShowForm)).Start();
//処理
}
private void ShowForm()
{
Form form=new Form();
form.ShowDialog();
}
上記の書き方でエラーが出ていたのですが、スレッドを立ち上げずに統合したらうまくいきました
ありがとうございましたm(_ _)m
0898デフォルトの名無しさん
2006/10/24(火) 18:56:07Threadを使用したのは理由があるんじゃないか?
Thread t = new Thread(new ThreadStart(ShowForm));
t.SetApartmentState(ApartmentState.STA);
t.Start();
0899デフォルトの名無しさん
2006/10/24(火) 19:03:06>>896がうまくいくか試して見れ
0900デフォルトの名無しさん
2006/10/24(火) 19:54:52何か(パフォーマンスとか)利点とかはありますか
class Pattern{
public bool IsMatch(string target){}
}
class Pattern{
public static bool IsMatch(Pattern pattern, string target){}
}
0901デフォルトの名無しさん
2006/10/24(火) 20:30:57と思ったら、staticの方が速かったりするんだな
***************
loop 100000000 times.
Method1: 00:00:01.0937500
Method2: 00:00:00.6718750
Result: -00:00:00.4218750
Method2 is faster
*******************
private long Method1( long l )
{
return l++;
}
private static long Method2( long l )
{
return l++;
}
なんで?
0902デフォルトの名無しさん
2006/10/24(火) 20:55:19{
private long Method1( long l )
{
return l++;
}
private static long Method2(Sample sample, long l)
{
return l++;
}
}
これだと両者の差は誤差程度になったよ
インスタンスメソッドの呼び出しは暗に関数にインスタンス参照を渡してるんじゃないのかな
0903デフォルトの名無しさん
2006/10/24(火) 21:26:36デバッグ用の仕込みのために妙に遅くなることがある。
一方最適化すると、コンパイル時と実行時に最適化がかかって、呼んだはずのメソッドがインライン化されたり、
処理が省略されたりすることがある。
0904デフォルトの名無しさん
2006/10/24(火) 22:10:38違うイメージにしている物を見たのですが、あれはどのようにすれば
実現可能ですか?
0905デフォルトの名無しさん
2006/10/24(火) 22:16:490906872
2006/10/24(火) 22:18:01すいません
横着してここにはThreadクラスで書きましたが、実際には引数を渡したかったのでThreadPoolを使用していたので、試すことが出来ません
一応引数を無くし、Threadクラスで呼び出してみましたが、なぜかApartmentStateをSTAした場合はもちろん、
未設定でも>>872のようなエラーは出ず、正常に動作しました
マルチスレッドといってもThreadPoolでのみ失敗するようです
0907デフォルトの名無しさん
2006/10/24(火) 23:38:22VisualStyleを変えるってなんだ…?
よくわからないので勉強してきます orz
0908デフォルトの名無しさん
2006/10/25(水) 06:06:11横着 マルチスレッド ThreadPool ApartmentState
これ全部ググっておく事を勧める
0909デフォルトの名無しさん
2006/10/25(水) 11:47:37次の条件に一致する情報は見つかりませんでした。
検索キーワード:横着 マルチスレッド ThreadPool ApartmentState
0910デフォルトの名無しさん
2006/10/25(水) 12:36:53まず日本語の勉強から始めようか
0912デフォルトの名無しさん
2006/10/25(水) 19:37:31ま、ThreadPool 内のスレッドが MTA ってだけなんだけどな。
0913デフォルトの名無しさん
2006/10/25(水) 20:08:370914デフォルトの名無しさん
2006/10/25(水) 20:39:14ttp://www.google.com/search?num=50&hl=ja&ie=Shift_JIS&oe=Shift_JIS&safe=off&q=%92m%82%E7%82%F1%82%AA%82%C8%28%60%A5%83%D6%A5%81L%29&lr=lang_ja
0916デフォルトの名無しさん
2006/10/25(水) 21:29:17使った後に Dispose せずに放置していいの?
0917デフォルトの名無しさん
2006/10/25(水) 21:52:350918デフォルトの名無しさん
2006/10/25(水) 23:23:01.NETの学習は時間の無駄です
0919デフォルトの名無しさん
2006/10/25(水) 23:43:15.NETの学習は時間の無駄です
0920デフォルトの名無しさん
2006/10/26(木) 00:14:41.NETの学習は時間の無駄です
0921デフォルトの名無しさん
2006/10/26(木) 00:29:57.NETの学習は時間の無駄です
0922デフォルトの名無しさん
2006/10/26(木) 00:36:43.NETの学習は時間の無駄です
0923デフォルトの名無しさん
2006/10/26(木) 01:28:300924デフォルトの名無しさん
2006/10/26(木) 14:55:31ユーザのパス文字列入力でツリーを開いたりしたいのですが、FolderBrowserDialogは継承できないためフォームを置くことすらできません。
何か良い方法はありませんか?
0925デフォルトの名無しさん
2006/10/26(木) 14:57:140926デフォルトの名無しさん
2006/10/26(木) 17:31:310927デフォルトの名無しさん
2006/10/26(木) 17:50:460928デフォルトの名無しさん
2006/10/26(木) 18:19:39結構簡単にできそうだけど面倒くさそう
カスタマイズできるやつ作って公開してクレクレ
0929924
2006/10/26(木) 19:42:07ありがとうございます。
SHBrowseForFolderとかラップとかでググったらこんなのを見つけました。
ttp://support.microsoft.com/default.aspx?scid=kb;ja;JP306285
C#だと検索ワードとして#が無視されるのをどうにかして欲しいですね。。。
0930デフォルトの名無しさん
2006/10/26(木) 20:40:480931デフォルトの名無しさん
2006/10/26(木) 20:53:03逆汗
0932デフォルトの名無しさん
2006/10/26(木) 21:17:22インライン展開されるのはJITコンパイルの時
だから逆汗しても無駄
0933デフォルトの名無しさん
2006/10/26(木) 21:52:450934デフォルトの名無しさん
2006/10/26(木) 21:58:560935デフォルトの名無しさん
2006/10/26(木) 22:02:43たぶんJITコンパイラのほうが賢いよ
0936デフォルトの名無しさん
2006/10/27(金) 01:17:32これを回避する良い方法はありませんか?
一応、今現在の↓みたいな xml だと、IE でも途中までしか表示されませんが……これをスキップするにはどうすればいいのかな、と。
ttp://b.hatena.ne.jp/hotentry?mode=rss
0937デフォルトの名無しさん
2006/10/27(金) 07:20:34そのドキュメントに限って言えば一旦 Encoding クラス使って String にしてから StringReader 経由で読めばいいと思うけど。
0938デフォルトの名無しさん
2006/10/27(金) 07:35:48どの文字かまで追ってないけどXMLの禁則文字が入ってるだけじゃね?
><&は< > &に置き換え
あぁ、タグ名かも知れんな・・・
"XML 禁則"でぐぐってくだちぃ
0939デフォルトの名無しさん
2006/10/27(金) 07:52:31ちなみにこのドキュメントは一バイト化けてて正しい UTF-8 じゃなくなってる。
0940デフォルトの名無しさん
2006/10/27(金) 08:01:12そうだったけかw
嘘情報申し訳ない
0941デフォルトの名無しさん
2006/10/27(金) 08:40:15無理だと思う
DOM経由で書き込めば禁則文字は勝手に変換してくれるんじゃなかったっけ?
なぜにそんな事態がおきるの?
0942デフォルトの名無しさん
2006/10/27(金) 09:56:59using System.Xml;
using System.Net;
using System.Text;
using (WebClient wc = new WebClient())
{
XmlDocument doc = new XmlDocument();
doc.LoadXml(Encoding.UTF8.GetString(wc.DownloadData("http://b.hatena.ne.jp/hotentry?mode=rss")));
}
例外は起きないが望むDOMができているかは知らない。
0943デフォルトの名無しさん
2006/10/27(金) 10:06:03別のフォルダにおいたDLLファイルを利用するにはどうしたらいいのですか?
- hoge.exe (ファイル)
+ dll (フォルダ)
- hoge1.dll (ファイル)
- hoge2.dll (ファイル)
みたいな感じにしたいのですが
0944デフォルトの名無しさん
2006/10/27(金) 10:15:57http://msdn2.microsoft.com/ja-jp/library/4191fzwb.aspx
0946デフォルトの名無しさん
2006/10/27(金) 14:24:45行う方法が有りますでしょうか?
調べた感じでは、文字数は、MaxLengthで制限できるようですが、
数値などをチェックする方法は特別に用意はされておらず、
KeyPressイベントとかでソースコードでチェックする必要が有りそうです。
0947デフォルトの名無しさん
2006/10/27(金) 17:21:13ただし組み合わせで制限するならコードでやる。
数値チェックってMaskedTextBoxでやってるの?
またNumericUpDownを使う手もあるが
0948デフォルトの名無しさん
2006/10/27(金) 17:24:120949デフォルトの名無しさん
2006/10/27(金) 17:33:01Validating イベントみたいなものか?
0950949
2006/10/27(金) 17:42:47これだなMFCのDDV_関数は
ttp://msdn2.microsoft.com/ja-jp/library/k48w5b23.aspx
ないので作れが正解でしょうか?
おしえてエロイ人!
0951946
2006/10/27(金) 20:59:24TextBoxに数字しか入力できないようにする
http://dobon.net/vb/dotnet/control/numerictextbox.html
TextBoxにペースト(貼り付け)できないようにする
http://dobon.net/vb/dotnet/control/disablepaste.html
TextBoxに入力されたパスワード文字をマスクする
http://dobon.net/vb/dotnet/control/tbpasswordchar.html
ComboBoxのテキストをユーザーが編集できないようにする
http://dobon.net/vb/dotnet/control/comboboxstyle.html
とりあえず普通に、イベントでチェックするみたいです。
共通で使えるツール的なクラスを作ることもできますけど(自分はそうする)。
DDV_関数の一覧はこのへんかな
http://msdn2.microsoft.com/ja-jp/library/hs9c81ss.aspx
0952デフォルトの名無しさん
2006/10/27(金) 23:20:27その対処が同じな場合、もっと簡略的な書き方ってないですか?
try
{
i = int.Parse(s);
}
catch (FormatException fe)
{
i = 100;
}
catch(OverflowException oe)
{
i = 100;
}
↑を例えば↓のような感じで、
try
{
i = int.Parse(s);
}
catch (FormatException fe,OverflowException oe)
{
i = 100;
}
0953デフォルトの名無しさん
2006/10/27(金) 23:22:240955デフォルトの名無しさん
2006/10/27(金) 23:33:22{
i = int.Parse(s);
}
catch ( Exception e )
{
if( e is FormatException || e is OverflowException )
i = 100;
else
throw e;
}
たぶん単なるサンプルとしてだしたんだと思うけど
TryParse ってのあるよ。一応。
0956952
2006/10/28(土) 00:50:15おっなるほど。
参考になります。
int.Parseはいつもは
i = intTryParse(s)?int.Parse(s):100;
ってしてます。お気使いありが�d。
0957952
2006/10/28(土) 02:11:30なに勘違いしてんだか...
0958デフォルトの名無しさん
2006/10/28(土) 02:19:050959デフォルトの名無しさん
2006/10/28(土) 07:06:59× throw e;
○ throw;
0960デフォルトの名無しさん
2006/10/28(土) 11:24:29"C#"
0961デフォルトの名無しさん
2006/10/28(土) 11:40:55ト(大文字)を画面表示するプログラムを作成したいんですけど・・・
。例えば,「1」が入力された場合には「A」を,「10」が入力された場
合には「J」を画面に表示するようなプログラムで。あと、0 以下,あ
るいは27 以上の数字が入力された場合には再入力できるようにしたい
んです。ただし,if やswitch を用いて26 種類の分岐を作ってはいけ
ないんですけど、まったくわからなくて・・・誰か教えてくれませんか
???
0962デフォルトの名無しさん
2006/10/28(土) 11:45:10ていうかそんなのも思いつかないのなら辞めちまえ。
0963デフォルトの名無しさん
2006/10/28(土) 11:45:51あとは考えれ
0964デフォルトの名無しさん
2006/10/28(土) 11:51:060965デフォルトの名無しさん
2006/10/28(土) 12:02:37ASCIIコードならそれでいいけど、C#の文字コードはUNIコードだから
マルチバイトじゃないかい?
0966デフォルトの名無しさん
2006/10/28(土) 12:05:10それ禁じ手
MSDNにも書いてあるよ
0967デフォルトの名無しさん
2006/10/28(土) 12:07:01Graphic←Image←Bitmapはメソッドありましたが、
その逆とか、ビットマップのピクセルへのアクセス、
加工をする方法か、解説したページがあれば教えてください。
0968デフォルトの名無しさん
2006/10/28(土) 12:10:19Graphics→Image/Bitmapはそもそも両者は全くの別物だから考え方がおかしい
ピクセルへのアクセスはLockBitsでぐぐれ
0969デフォルトの名無しさん
2006/10/28(土) 12:13:22ありがとうございます
0970デフォルトの名無しさん
2006/10/28(土) 14:22:40>加工をする方法か、解説したページがあれば教えてください。
>>714,717
0971デフォルトの名無しさん
2006/10/28(土) 22:57:00ああそうだな
で何がまずいんだ?
0972デフォルトの名無しさん
2006/10/28(土) 23:23:50だから1文字が2バイト
0973デフォルトの名無しさん
2006/10/28(土) 23:25:260974デフォルトの名無しさん
2006/10/28(土) 23:27:02C#2.0以降ならArrayListよりList<T>が推奨とさ。
0975初心者
2006/10/28(土) 23:37:48他の.exeファイル実行できるようにどうすればいいですか??
0976デフォルトの名無しさん
2006/10/28(土) 23:38:53ここはC#スレって事を教えてあげる
0977デフォルトの名無しさん
2006/10/28(土) 23:43:560979デフォルトの名無しさん
2006/10/29(日) 04:24:28次スレを立ててくれたら考えとく
0980デフォルトの名無しさん
2006/10/29(日) 06:52:06http://game10.2ch.net/test/read.cgi/ghard/1162063002/
0981デフォルトの名無しさん
2006/10/29(日) 08:22:260982デフォルトの名無しさん
2006/10/29(日) 10:19:510983デフォルトの名無しさん
2006/10/29(日) 10:59:012バイトになると文字列になるからワンクッション入れないと。
余分なものが入るから学校での学習向けじゃない。
試験が筆記試験で動かなくていいんなら関係ないけど。
0984デフォルトの名無しさん
2006/10/29(日) 11:02:39へー ( ´∀`)
0985デフォルトの名無しさん
2006/10/29(日) 12:23:00おまえはいったい何を言ってる??
0986デフォルトの名無しさん
2006/10/29(日) 12:25:47学生は手を動かせ
0987デフォルトの名無しさん
2006/10/29(日) 12:32:592つを同時にLockしようとしたらすでにロックされていると出たんで、
Lockbitは同時にはひとつしかできないってことですよね?
0988デフォルトの名無しさん
2006/10/29(日) 14:02:29C言語でもやっとけ
0989デフォルトの名無しさん
2006/10/29(日) 14:55:110990987
2006/10/29(日) 15:00:05こんな感じの使ってMarshal.Copyで2つのbitmapを取り出してるのに
どちらも同じデータが入ってる・・・・
キャプチャした画面は明らかに変化してるのにそれを拾えてない。
画面には反映されるのにImageには反映されないのかな。
pictureBox1.Image = (Image)Start;
これをやった後にStartが変更されても
Imageが変更されてないのは、コピーが作られているからでしょうが、
Graphics.FromImage()で作ったGraphicデータも同じなんでしょうか。
0991デフォルトの名無しさん
2006/10/29(日) 15:18:380992デフォルトの名無しさん
2006/10/29(日) 18:23:16ソースがないとなんとも
pictureBox1.Image = (Image)Start;
これはコピーは作られないよ。参照を渡してるだけで実体は同一になる。
後でStart = newImage;とかやってるんじゃないの
0993987
2006/10/30(月) 01:08:32キャプチャしたのをコピーするつもりでやったのがだめだったようで。
それぞれにGraphics用意してそれぞれキャプチャしたらうまくいきました。
bmStart = bmLatest.Clone();
とかしないといけなかったんですね。
>>740と同じ間違いしてました。
以下は元のソースです。
gLatest = Graphics.FromImage((Image)bmLatest);
gLatest.CopyFromScreen(WatchRect.Left, WatchRect.Top, 0, 0,
new Size((WatchRect.Width), (WatchRect.Height)));
bmStart = bmLatest;
ここで疑問なんですが、毎回Clone作って更新した場合、
使われなくなったものは自動的に破棄されるんでしょうか?
0994デフォルトの名無しさん
2006/10/30(月) 02:33:140995デフォルトの名無しさん
2006/10/30(月) 11:48:42ぐぐっても見つかりませんでしたが;
0996デフォルトの名無しさん
2006/10/30(月) 14:49:020997デフォルトの名無しさん
2006/10/30(月) 15:00:38Allは他のをorでつなげればいいんだけんども
0998デフォルトの名無しさん
2006/10/30(月) 15:10:530999デフォルトの名無しさん
2006/10/30(月) 15:12:401000デフォルトの名無しさん
2006/10/30(月) 15:48:2510011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。