C♯相談室 Part19
■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん♯
NGNG(#゚ー゚)つ < C#、.NETの話題はこちらでどうぞ。
過去スレは>>2-5あたり。
関連リンク
http://onigiri.s3.xrea.com:8080/csharp/index.php?%5B%5B%A5%EA%A5%F3%A5%AF%5D%5D
ソース置き場.NET
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1003826049&rm=10
0153デフォルトの名無しさん
NGNGワロタ
0154デフォルトの名無しさん
NGNGこういうギャグがとっさに出てくるのが2chだなw
0155デフォルトの名無しさん
NGNG/// <summary>2を取得します。</summary>
int Get2();
0156デフォルトの名無しさん
NGNG0157デフォルトの名無しさん
NGNG>役に立たないコメント
/// <summary>test1をします</summary>
int test1();
0158デフォルトの名無しさん
NGNGTextBoxとかListViewなどのコントロールになんて名前のつけかたしてる?
0159デフォルトの名無しさん
NGNG>役に立たないコメント
/// <summary>回答を激しく求めています</summary>
String getAnswer(>>141);
0160デフォルトの名無しさん
NGNG0161デフォルトの名無しさん
NGNGtextBox_hoge
.NET の名前付けガイドラインに思いっきり反してるが、
Formのコントロールはぽこぽこ増えたり減ったりするので、
自分で管理してるほかのフィールドとは区別したい。
0162デフォルトの名無しさん
NGNGどうも透過ウィンドウと相性悪げ。
プラットフォーム呼び出しでPatBltのDSTINVERTを使って
選択範囲内のコントロールをいちいち描画してくとか面倒なことが必要になりそうだな。
0163141==159
NGNGちょっと見た目重視にするだけでやたら面倒くさそうですね…
素直に諦めます…
0164デフォルトの名無しさん
NGNG0165デフォルトの名無しさん
NGNG0166デフォルトの名無しさん
NGNG>役に立たないコメント
/// <summary> >>141を減量します。</summary>
Man man = new Man(>>141);
man.Hear.Count--;
0167166
NGNG二℃と現れません。orz
0168デフォルトの名無しさん
NGNGpictureBox1.Dispose();
//PictureBox pb = new PictureBox();
PictureBox PictureBox2 = new PictureBox();
PictureBox2.Location = new Point(300, 400);
PictureBox2.Size = new Size(100, 100);
//pb.Image = new Bitmap(300, 300);
//Bitmapオブジェクトの作成(画像ファイルを読み込む)
Bitmap bmap = new Bitmap("01.bmp");
//または、次のようにも出来る
//Image bmap = Image.FromFile(@"C:\Blue hills.jpg");
//PictureBox1のGraphicsオブジェクトの作成
Graphics g = PictureBox2.CreateGraphics();
//画像の描画
g.DrawImage(bmap, 300, 300);
//BitmapとGraphicsオブジェクトを破棄
bmap.Dispose();
g.Dispose();
どこか、間違っていますでしょうか?
0169168
NGNG拡張子以外のミス、ありませんでしょうか?
0170デフォルトの名無しさん
NGNG0171デフォルトの名無しさん
NGNG折角PictureBox使うのになぜImageプロパティじゃなくて直接書くのかとか。
pictureBox1.Dispose()ってなによとか。
ひょっとして画像を変更するためだけに一々コントロールを作り直してるのか?
0172168
NGNGttp://dobon.net/vb/dotnet/graphics/drawimage.html
0173最凶VB厨房
NGNG0174168
NGNG簡単なImageの方でやったらAddの有る無しで表示されない場合と表示される場合
確かめることが出来ました。
Addしていませんでした(まだ解決してませんが)
>>171
>172
>>173
コピペしました。。
0175デフォルトの名無しさん
NGNG0176デフォルトの名無しさん
NGNG0177デフォルトの名無しさん
NGNGコンパイルすら通らないのか
コンパイルは通るけど思ったような動きをしてくれないのか
そうならばどのような動きをしているのか、とか
0178168
NGNGコピペしてやってみました。一瞬表示されて消えるみたいです。
コンパイルは通り、プログラムは実行されるのですが
画像が表示されないという状況です。
このプログラムの前にちがうpicturebox1.Dispose()しているのも原因の一つみたいです。
0179デフォルトの名無しさん
NGNGなんで厨房はみんな「うまくいきません」しか書かないんだ?
エラーうんぬんの前に、質問を読む側に状況が全く伝わってないことが分からないのか?
ttp://bbx.hp.infoseek.co.jp/cgi-bin/bbx.cgi?log=44&vew=111
ttp://bbx.hp.infoseek.co.jp/cgi-bin/bbx.cgi?log=44&vew=106
0180最凶VB厨房
NGNGそれもそのURLにかいてあんぞ。
0181夜
NGNG現在、お手軽2ちゃんねるブラウザをC#で開発中です。
取得済スレッドの振り分け機能を作ろうと思っているのですが、
それをOutlookのメッセージルール
作成に見られるような
「下線をクリックすると編集できます」みたいな感じで作りたいんです。
こんな感じのボックスってRichTextBoxで実現できますか?
他にも何かいい方法があったらおしえてくださいませ。
0182デフォルトの名無しさん
NGNGできなくはない。
>他にも何かいい方法があったらおしえてくださいませ。
UserControl
0183デフォルトの名無しさん
NGNGどうやればいの?
タブより面倒くさそ
0184夜
NGNGありがとうございます。
UserControlをどのように応用するのか私には想像がつかないのですが、
サンプル的なコードなどありますでしょうか?
0185デフォルトの名無しさん
NGNG{
tb.Text = "";
}
Formに配置したすべてのテキストボックスをリセットにしたいのですが
指定したキャストは有効ではありません と実行時にエラーが出ます
コンパイルは通るのですが何かすべてのテキストボックスをリセットするいい方法ないですか?
0186デフォルトの名無しさん
NGNG0187185
NGNG{
TextBox temp = tb as TextBox;
if(temp!=null)
{
temp.Text = temp.Name;
}
}
でうまくいけました。 ありがとうございました。
けどやってみて気づいたのですがGroupBoxの中に分類して入れてる10個以上のTextBoxは
FormのControlコレクションに入ってないんですね… orz
0188デフォルトの名無しさん
NGNGTreeViewのAfterSelectイベントでごにょればなんとかなるまいか。
0189最凶VB厨房
NGNG0190162
NGNGちょっと調べてみた。
MouseEnterでOpacityを1Fに戻すところで
一緒にForm.AllowTransparencyをfalseにするのはどうだろう。
0191デフォルトの名無しさん
NGNGOnPaintとかオーバライドするのがベーシックなやり方でしょうか?
また、TextBoxは内部でもっているデータにどのようにアクセスして、
テキストとして描画しているのか理解できていないのですが、どうやって
調べれば判るでしょうか?
0192デフォルトの名無しさん
NGNGフォーカス枠を描いているメソッドてありますか?
0193デフォルトの名無しさん
NGNGControl.ShowFocusCues プロパティ
とか言ってみる。
0194デフォルトの名無しさん
NGNG0195192
NGNG0196デフォルトの名無しさん
NGNGフォーカスが移ってきた場合でも使用されて無いみたい。
0198デフォルトの名無しさん
NGNG0199デフォルトの名無しさん
NGNG0200デフォルトの名無しさん
NGNGB.exeは起動中一秒ごとにpublic static int aをインクリメントし、
A.exeはボタンを押すとその時点のB.aの値を取得して表示する、というものなのですが、
A.exeのアセンブリ参照にB.exeを加えても、
B.exeから見た変数aと、A.exeから見た変数aとが異なるのですが
0201最凶VB厨房
NGNG0202デフォルトの名無しさん
NGNGプロセス間でとなるとメッセージのやりとりやDDE、リモート処理が必要。
//まず別プロセスで実行する必要性があるかどうかから検証するとか。
0203デフォルトの名無しさん
NGNGDLL 経由で共有する方法はある。
0204デフォルトの名無しさん
NGNGありがとうございます。
やはり単純には行かないのですね。
AppDomainについて勉強してからもう一度やってみようと思います。
0205デフォルトの名無しさん
NGNGConsole.WriteLineなどのように、出力専用であったり、ある値を変換するだけ
のクラスは、staticメソッドにしてもよいのでしょうか?
それともインスタンスを生成して、メソッドを利用するほうがよいのですか?
あまりstaticな変数やメソッドは使うべきではないと聞くのですが、
主にstaticなものはどのような具合に使用するのがよいのでしょう。
0206デフォルトの名無しさん
NGNGそこらへんはコーディング スタイルの問題だと思う。
私ならほとんどの場合インスタンスを生成してメソッド利用にするけど。
0207デフォルトの名無しさん
NGNGConsole は設計があまりよろしくない。
Win32 では確かに Console は同時に一つしか持てないことになってるが、
他の環境でどうだかは定かではない。
static にしないほうが良かった。
Math などの普遍的かつ非オブジェクト的なメソッド/プロパティはstaticがよろしい。
Path は名前は間違ってるがやってることはやっぱりstaticでよろしい。
0208デフォルトの名無しさん
NGNG//わざわざクラス立ててる割りにメソッドがしょぼいと言うイメージを受けたが。>stringTokenizer
0209205
NGNGたしかに少し値を変換するぐらいのメソッドだったら、
インスタンスを生成せずstaticで済ませたい気持ちありますね(汗
もうすこしクラスの組み立て方を考えてみたいと思います。
みなさんありがとうございました(^^
0210デフォルトの名無しさん
NGNG設定などを保存しておきたいとします。
現在は配色や、その他設定項目を保持するクラスを生成して、
XmlSerializerとTextWriterを使ってそのクラスをファイルに書き出している状態です。
こちらのページを参考としました。
http://fe0r.at.infoseek.co.jp/Doc/csXmlSave.htm
最近バグに気づいたのですが、Colorクラスなどは参照型なので(?)、
値がうまく保存されないことに気が付きました(;´д⊂
文字などはきちんと保存され、読み込みもできるのですが・・・。
Color.Blackなどの情報はどのように保存して置けばいいのでしょうか?
0211デフォルトの名無しさん
NGNG0212デフォルトの名無しさん
NGNGabともに真である条件式で
if(a & b){}
if(a && b){}
お前らはどっち書く?
0213デフォルトの名無しさん
NGNGファイルに対して排他ロックを取得する良い方法はないでしょうか?
読み書きを行うメソッドをひとつのクラスにまとめ、
lock(this){}でロックをかけていたのですが、
諸々の事情から、他のクラスからもファイルにアクセスする必要があり、
出来れば、ファイルそのものに対してロックをかけたいのです。
lock(filename){}とかで今はごまかしているのですが、
これだと単純に一定の文字列に対してロックをかけているだけなので、
やはりファイルそのものでロックをかけたいのです。
何か良い方法はないでしょうか?
0214デフォルトの名無しさん
NGNG供に真であるとわかっているなら、その if 節自体書かない。
わかっていないなら、&& を使う。コスト変わらない場合でもなんとなく。
0215デフォルトの名無しさん
NGNGOS上でそれなら、擬似的に排他を行うファイルクラス作ればいいんでは?
0216デフォルトの名無しさん
NGNG&&で書く。結果は同じになるかもしれんが、
論理演算子とビット操作演算子では意味が違う。
あんまり保守プログラマをいじめないでくれい。
0217デフォルトの名無しさん
NGNGおまえ、C#って言語知ってるか?
0218デフォルトの名無しさん
NGNGa の値によって b を評価すべきか否かが決まる時は &&。
どっちでもいいときは、コストが少なくなる可能性がある方をとって &&。
つか、リファレンス嫁。
0219デフォルトの名無しさん
NGNG>論理演算子とビット操作演算子では意味が違う。
ここまで自覚のない厨房は初めて見たな。傑作だ>>216。
0220デフォルトの名無しさん
NGNGA()とB()を両方呼んで、どちらの戻り値もtrueだったらC()を呼ぶ、と言うような場合は、
if (A() & B()) C();
A()の戻り値がtrueだったらB()を呼んで、B()の戻り値がtrueだったらC()を呼ぶ、
というような場合は
if (A() && B()) C();
C由来の構文を持ってる言語はほとんどそうなんじゃないかな。
0221デフォルトの名無しさん
NGNGマルチポストはやめたまへ
0222デフォルトの名無しさん
NGNGいやそれは誰でも知ってる・・・というか C# でもそれは && の定義だから当然だとして、
マルチポストの >>212 は bool a=b=true と(たぶん)単純変数のケースを指定してきてるわけじゃないか。
つまり「どっちでもよさげな場合はどっちにしてる?」という、単なるアンケートかと。
0223デフォルトの名無しさん
NGNG自分は余計なバグ増やしたくないんでそういう記述絶対にしないんだが。
0224デフォルトの名無しさん
NGNG本当に右オペランドを評価して欲しくないならifの入れ子にする。
0225デフォルトの名無しさん
NGNGif ( s==null || s.Length==0 )
とかは普通にやってるな・・・orz
0226220
NGNGこういうC時代からの癖は、もはや時代遅れなのかな…… orz
0227デフォルトの名無しさん
NGNG素直に&& || 使っちゃうな
0228デフォルトの名無しさん
NGNG0229デフォルトの名無しさん
NGNG保守性って言ってもそんな大掛かりな変更が必要になる場面じゃないんだし、
ミスが減る減らないはそんな構文の違いより個人個人の癖の方が大きいんじゃないかな。
0230デフォルトの名無しさん
NGNG0231220
NGNG短絡って言っても、せいぜい
if (args.Length > 0 && args[0] == "xxx") {} とか
if (aaa.ShowDialog() == DialogResult.OK && xxx()) {} 程度のことしかやってないし、
気にするほどでもないな。
0232デフォルトの名無しさん
NGNGそのとおり。全ては>>216のアフォさが原因の茶番でしたというわけで、
糸冬
0233デフォルトの名無しさん
NGNGいや下のほうはどうかと思うぞ。
Cでも普通そういうことしないだろ。
Perlでは当たり前にやるみたいだが。
0234デフォルトの名無しさん
NGNG0235デフォルトの名無しさん
NGNG漏れは。
0236デフォルトの名無しさん
NGNG0237デフォルトの名無しさん
NGNG0238デフォルトの名無しさん
NGNG>new Hige new Fuga()
プゲラッチョ
0239デフォルトの名無しさん
NGNGif (Derived* pDerived = dynamic_cast<Derived*>(pBase)) {
・・・;
}
みたいなコードが一文&&余計なスコープ無しで書けないのが自分ではかなりぎこちない。
0240デフォルトの名無しさん
NGNGややトリッキーな書き方は止めるべきだね。
可読性が大事。
そんなオレはスクリプト言語は使えませんw
0241デフォルトの名無しさん
NGNG0242デフォルトの名無しさん
NGNG短絡評価ってやり始めると凄い見通しがいいんだよな、&&はやるのは考え物なので専用の演算子が欲しい所。
0243デフォルトの名無しさん
NGNG0244デフォルトの名無しさん
NGNGあーそれはあるなあ。
C#でそれをやろうとすると、
Derived derived = base as Derived;
if (derived != null) { ・・・; }
とか
if (base is Derived) { Derived derived = base as Derived; ・・・: } // 効率悪い
とか異様に長ったらしくなるんだよね、、、
0245デフォルトの名無しさん
NGNG消したいのですが、DeleteImageメソッドみたいな物はありませんでしょうか?
g.DrawImage()
↓
g.DeleteImage()
よろしくお願い致します。
0246デフォルトの名無しさん
NGNG0247デフォルトの名無しさん
NGNG「消したい」が何を言ってるのかさっぱり分からんが、
ある色で塗りつぶしたいんならClearとかFillRectangle、
イメージオブジェクトを破棄したいんならimage.Dispose(); image = null;でいいんじゃないの
0248デフォルトの名無しさん
NGNGその「DeleteImageメソッド」とやらが一体何者なのか何の説明もなく、
いきなり「DeleteImageメソッドみたいなもの」とか言われても答えようがないんだが。
0249245
NGNGdeleteみたいなメソッドは無いみたいですね。
結局disposeで消し(オブジェクトごと)ました。
ありがとうございました。
0250デフォルトの名無しさん
NGNGA()とB()を両方呼んで、どちらかの戻り値がtrueだったらC()を呼ぶ、と言うような場合は、
if (A() | B()) C();
A()の戻り値がtrueだったらB()を呼んで、B()の戻り値がtrueだったらC()を呼ぶ、
というような場合は
if (A() || B()) C();
0251デフォルトの名無しさん
NGNG0252デフォルトの名無しさん
NGNGあと、or と orelse だったかな。
■ このスレッドは過去ログ倉庫に格納されています