ふらっとVisual C#,C♯,C#(初心者用) Part104
このスレッドは天才チンパンジー「アイちゃん」がうんたらかんたら。 だから関係者以外は書きこまないで下さい。 京都大学霊長類研究所
へぃ
UserControl1を貼りつけたForm1が終了した時 UserControl1のprotected override void Dispose(bool disposing)が呼び出された。 UserControl1のコードにpublic void Dispose()を書いても呼ばれない。 protected override void Dispose(bool disposing)に自分の解放処理コードを挿入しても問題ない? IDEが生成したコードだからいじるのには抵抗がある。
問題ないってかそこに書けということになってる ただしオーバーライド元を呼び出すのを忘れるな
複数行テキストボックスの自動改行(折り返し)を string に適用する方法ってない?
EM_FMTLINESでソフト改行入れたあとWM_GETTEXTで取ってくればいけそうな気がする RichEditだと使えないんだなこれ>EM_FMTLINES
>>7 意味不明。
GDI+で文字列を描画する時の動作のことを言ってるのなら、Graphics.DrawStringの
オーバロードをよく見る。
適宜\n入れてTextWrapされたかのような文字列にして欲しいんだろ 少なくとも幅とフォントサイズ依存だ罠
>>9 やっぱソース読んで自前で実装するしかないのか・・
>>10 まさしくそれ
public class A : B と書いてあった場合、: はどんな役割を果たしているのでしょうか?
基底クラス/インターフェイスの指定
そんなところから手探りで理解していくより 本を読むか少なくとも初心者向けwebサイトの文法のところを読んだほうが……
C#で書かれた組込用の簡易HTTPサーバーはありますか?
色々無茶な…
19 :
デフォルトの名無しさん :2013/04/22(月) 18:46:11.89
ASP.NET MVCからx86専用のdllを参照すると VisualStudio上のデバッグ実行では動いているのですが IIS実機でフォーマットエラー云々で死ぬのですが、どうしてですか?
云々
かんぬん←なぜか変換できない
>>22 なんとなく理解しました。
動的にDllImportでx86とx64のdllを切り替えるにはどうしたらいいのでしょうか?
dllって.netのアセンブリじゃないんかい DllImportで切り替えるとかじゃなくて IntPtr.SizeでもEnvironment.Is64BitProcessでも使って 呼ぶ側で判別する
そもそも開発ターゲットがx64サーバなんだから、DLLもx64固定でいいじゃん。
IISのアプリ設定を32bitにするという手もあるぞ
compact framework 3.5 のDataGridで質問です。 ヘッダーの幅を変更するプロパティはあるんだけど、 高さを変更するプロパティが見つからない・・・ ぐぐっても出てこないのでヘッダーの高さを変更する方法を教えて下さい。
あっちもこっちも答えてるのは同じ人間だから無駄だと思うぞ
29 :
デフォルトの名無しさん :2013/04/23(火) 22:59:31.26
ヘッダーのフォント変更
少し前にlistviewでクリックしても反応しないようにしたいと質問したんですが、親のWM_NOTIFYでLVN_ITEMCHANGING見て LVIS_SELECTEDが変化してたら握りつぶせばいいと助言いただいたんですが、LVN_ITEMCHANGINGで躓いてしまいました LVN_ITEMCHANGINGの値を探そうとcommctrl.hを見ていたんですが、LVN_FIRST-0とマクロで定義されており LVN_FIRSTを追うと0U-100Uと定義されておりC#でLVN_ITENCHANGINGの定義方法がわかりませんでした どなたか0U-100Uの意味と定義方法教えてください
0xFFFFFFFF-99
C#で書いても意味は通るよ uint LVN_FIRST = unchecked( 0u - 100u ); まあuintで扱うと何かと不便なので int LVN_FIRST = unchecked( (int)( 0u - 100u ) ); まあぶっちゃけ int LVN_FIRST = -100; なんだけど
符号なしの型って実際に使う場面あるの? 用途がよくわからんのだが
PInvokeでDWORDの引数の型をうっかりuintで定義しちゃうと 定数まで全部汚染されてほうぼうでキャストする羽目になるんだよな
35 :
デフォルトの名無しさん :2013/04/25(木) 22:55:27.51
36 :
35 :2013/04/25(木) 22:55:58.49
誤爆
37 :
デフォルトの名無しさん :2013/04/26(金) 19:27:22.42
Object.ReferenceEquals に対応するハッシュコードを取得したいんだけれど 派生クラスで GetHashCode をオーバーライドすると使えなくなってしまう どうにかして Object.GetHashCode() を呼び出すか あるいはライブラリに相当する関数って無いですか?
あるよ RuntimeHelpers探せ
これは知らなかった 今までコンテナに入れてたわ
RuntimeHelpers.GetHashCode(object) ですね、なんで隠されてるんだろう・・・
神来た
以下のコードでファイルを検索すると検索文字列を含むファイルのパスが取得出来ますが そのファイルの内容もListviewやdatagridviewで表示する場合どうすればよいのでしょうか System.Collections.ObjectModel.ReadOnlyCollection<string> files = Microsoft.VisualBasic.FileIO.FileSystem.FindInFiles( "C:\\My Documents", "検索文字列", false, Microsoft.VisualBasic.FileIO.SearchOption.SearchAllSubDirectories, new string[] {"*.rtf"}); foreach (string f in files) { listView1.Items.Add(f,ファイル内容); } richTextBox.TextやrichTextBox.Lines等を入れても正常に表示されません
どっからrichTextBoxが出てきた? ファイル内容って何?
リッチテキスト形式のファイルのテキストだけ抜き出したいってことだろ。 RTFの仕様に沿って中身を自分で解析しろ。ライブラリも探せば出てくる。
その前にFindInFilesでRTFの検索って無理じゃないの? 試してないけどソース見る限りプレーンテキストしか考慮してないぞ RTFは文字列情報がエスケープされてるから検索できないはず 検索の段階からRTFに沿った解析が必要だと思う
>>43-45 ありがとうございます
いじっていたら何とか出来たようです
foreach (string f in files)
{
string t = File.ReadAllText(f,
System.Text.Encoding.GetEncoding("Shift_JIS"));
dataGridView1.Rows.Add(f, t);
}
できたってんならいいんじゃね? ?(???ε???)∫?
C# で自動でバックアップを取るツールを作っています。 しかしここで問題が発生しました。 256文字を超えるパス?( or ファイル名)をコピーしようとするとエラーが 発生してしまうのです。 皆さんはこの様な場合にはどうされていますか?
エラーってPathTooLongExceptionか? パスが長過ぎるだろハゲってメッセージ出せばいいだろハゲ
>>50 w
っていうか、バックアップツールっていうんだから、デスティネーションのルートの
ディレクトリをカレントにしてコピーする時のdstは相対パスを指定すればいいんじゃないの?
>>51 コピー元とコピー先の相対パスって保持できたっけ?
無理にエスパーしようとすんな
\\\\.\\ で始めると長くできるんだっけ?
>>54 FileStreamのコンストラクタが受け取ってくれないからCreateFile使う必要があるけどな
(作成されたハンドルからFileStreamは作れる)
>>54 素の Windows API ならパスの UNC化(\\?\付加)で長いパス名を処理させることができたけど、
.NET は不正なパスとして扱われてしまってだめらしいとか
57 :
デフォルトの名無しさん :2013/04/29(月) 01:04:05.56
トリッキーな処理をしているメソッドがあり、コメントを書いておこうと思いました。 以下、やりたいことのイメージです。 /// <remarks> private int calc(int a, int b) { /// 1. aを10倍する<br/> int tmp = a * 10; /// 2. bをたす<br/> return tmp + b; } /// </remarks> と、かいて <remarks> 1. aを10倍する<br/> 2. bをたす<br/> </remarks> を得たいです。 ドキュメントコメントを書くときに上記のようには書けないのでしょうか? なにか代替手段があれば教えてください。
まずマルチポストするなって誰かに教わらなかったかい?
59 :
デフォルトの名無しさん :2013/04/29(月) 01:22:27.69
57です。58さんのコメントは57むけでしょうか? すみません。わからないので、まずはマルチポストを調べてみます。 ありがとうございます。
60 :
デフォルトの名無しさん :2013/04/29(月) 20:08:13.87
double a = 1.0; これ小数点以下省略するとダメな理由てあるのでしょうか
それC#だと警告でないんだっけ?
62 :
デフォルトの名無しさん :2013/04/29(月) 20:13:08.10
>>61 警告出ませんでした
他の言語を学習する時のためにも
小数点以下付ける習慣をつけたほうがいいでしょうか
でなかった記憶が
intの1を暗黙でdoubleに入れた値と、doubleの1.0をdoubleにいれた値は 同じとは限らない。
そもそもdoubleで同値比較なんてしない
>>62 そんな妙な習慣必用ないでしょ。
そもそも型を明示してる上に、そのまま素直にdoubleとして解釈可能な値なのだから
どこにも問題なんてあるはずがない。
古くからやってる人にとっては書いてないほうが気持ち悪く感じるけどな
68 :
デフォルトの名無しさん :2013/04/29(月) 20:31:51.52
独習では double a; a = 10.0; 小数点以下は必要っぽく書かれているような 俺の読解力不足なのか
69 :
デフォルトの名無しさん :2013/04/29(月) 20:36:05.78
特に問題なさそうですね みなさんありがとうございました
>>70 意味が分からないなら素直に質問しましょう。
情報処理系の勉強すらしたこと無い人なんでしょう
ビジュアルスタジオエクスプレス2012でwebclientを使おうとしていますが 何か問題があるようでメソッドとして認識してくれません どこに問題があるのでしょうか・・
>>76 頭ですかね・・
さっぱり原因がわかりません・・
参照が足りないんじゃね
>>64 同じだろ
暗黙の型変換がおこなわれることと、同値ではない、は別の次元の話
>>75 using System.Net;
ビジュアルスタジオエクスプレス2012→Visual Studio Express 2012
WebClientはメソッドではなくクラス
>>81 ありがとうございます!
根本的に理解が足りないようなので、勉強しなおしてきます
ありがとうございました
>>80 リテラルに限る限り同じに決まってるでしょ。
数値リテラル"dd..d"と"dd..d.0"をdoubleの変数に入れた時に違う値になるケースがあるなら
具体的に挙げてみ?
>>83 いいえ。
煽って教えてもらうのではなく、少しは自分の頭を使いましょう。
今日はこんぐらいで勘弁しといたるワ、まで読んだ。
整数リテラルと実数リテラルは違うものだよ。
int x;
があるときに、
(int)(double)x == x
が成立するとは限らない、までは恐らく誰でも分かる。
だからと言って
>>64 みたいなことは言えない。
誰か早くわかりやすい答えを出してくれ 気になって眠れないじゃないか
>>83 そもそもC#に「数値リテラル」なんてないんだが。
>>90 だから?
そうだったら何なのかはっきり言ってみろ
>>89 int、doubleそれぞれのリテラルの違いを認識することはもちろん重要に決まってるが、
(特にvarを使う場合)、だからと言って".0"をつけるかどうかで初期化したdoubleの変数の
値が別物になる可能性なんかありません。
ILに十進表現が無いのも忘れずに
doubleの有効桁数が有限である以上、.0を付け加えることによって 桁数を1桁増やした時に丸め誤差が変わる可能性は否定できない。 ってことでは。
はい次
結論:Decimal使おうぜ。
IEEE 754の範囲内なら同一性が保証されてるだろ
>>96 別に浮動小数点はあいまいなわけではない
10進の浮動小数点を2進で表現するために、
主に小数部分をあつかう演算の過程で、誤差が発生しやすい部分があるというだけのこと
整数であればオーバーフローしない限り値がずれることはない
1.0 の表現は即値で代入しても、
整数 1 を変換しても
8バイトの浮動小数点であれば、最終的に内部表現
3ff00000 00000000
以外の値にはなりようがない
>>102 それは
同一性が保証される範囲内なら同一性が保証されてるだろ
といっているのと同義
>>96 ないない。
こう言えば分かるかな。
例えば、
double x = 1.0D;
の"1.0D"というリテラルが表す値は、"1"に最も違いdouble型の値。
double x = 1;
とした時、xに入る値も"1"に最も近いdouble型の値。
だから絶対にx == yが成立する。
この関係は任意の"dd..d"と"dd..d.0"の間にも成立する。
しかし頭悪い奴多いな...
>>107 いいえ。
たぶんあなたが一番頭の悪い人です。
ここ初心者用スレだからね
この流れを狙って
>>64 の寝言を書いたのならデキる奴だ
C#というよりも.NET Frameworkの質問ですが、 MSDNでファイルを扱うどのメソッドの説明を見ても、PathTooLongExceptionを投げると書いてあります。 .NET FrameworkはMAX_PATHを超えるパスのファイルを扱う方法はないということでしょうか…
>>60 この場合コンパイル時に型変換されるので副作用は一切なし
>>118 double a = 1.0;も
double a;
a = 10.0;も
型変換で副作用なしなんだ
コンパイラさんありがとう
121 :
119 :2013/04/29(月) 23:38:44.98
ごめん間違った 1.0じゃなくて1の場合でした
期待って妙な言い方だな
まるで副作用を期待するかのような口ぶりだったからさ
副作用が思いつかないから気になったんです 本にも書いてあるみたいな書き込みもあったようだし・・・ 少し期待してたかな、初心者には思いつかない何かがあるのかもって
>>124 ここは初心者用の名の通り、答える人も初心者なので、
そんな高度な答えを思いつくはずもありません。
はよ
127 :
123 :2013/04/29(月) 23:53:18.41
>>124 あ、何かごめん
隠し球(副作用)を隠し持ってるかと勘ぐってしまった
結局60レスも消費して
>>64 は具体例を示せなかったのね
はい解散
usingについて教えてください。(Disposeのほう) あるオブジェクト内の変数がまだnullの場合に using区で括った中で代入するとdisposeが呼ばれるのでしょうか? 例 var Hoge = new Hoge(); using(Hoge.DisposableItem) { if(true) { Hoge.DisposableItem =new XXXX(); } //何らかの処理 } 上記の例だと、using区の括弧ではnullだが、 スコープを抜けるときは値が入っています。 この場合Disposeは呼ばれるのでしょうか?
usingとかキモイよね
Disposeはインスタンスメソッドなんだが、 インスタンスがnullなら一体どのメソッドになるんだ
呼ばれない HogeがIDisposable実装すべき
>>130 そもそも using(Hoge.DisposableItem) の時点で DisposableItem がnullだったら、
NullReferenceException が発生しないの?
それとも、using を抜けたときに、はじめて hoge.DisposableItem.dispose() を呼ぼうとするから、
using に入った時は null で落ちない?
(まぁためしてやってみればいいんだが)
135 :
130 :2013/04/30(火) 16:29:24.52
using区はコンパイルされるときに内部的に try~finallyになると聞いたので try { } finally { if(Hoge.DisposableItem != nul) { Hoge.DisposableItem.Dispose(); } } という形に置き換わるのかなっと考えた次第です。 また、using(null)の場合はファイナリー部分が呼ばれない らしいので、皆さんの言うようにHoge.DisposableItemがnull参照 なので渡せないですね。ありがとうございました。
using(var…だと代入がコンパイルエラーになったはず あとif(a!=null) a.Dispose();の代わりにusing(a){}と書くのは常套手段
>>130 Express2012で試したけど呼ばれない。エラーも出ない
usingのヘルプ見ると
>オブジェクトは、using ブロック内では読み取り専用です。変更したり再割り当てしたりすることはできません。
って書いてあるけど、代入してもエラーにならないし、ブロック開始時nullでもエラーにならない
ブロック開始時にnullじゃなければ、途中で違うインスタンス代入しても
ブロック開始時のインスタンスのDisposeが呼ばれる模様
try finalyに展開されるときに一度別変数にコピーされると考えればいいんじゃね
>>137 なんか言ってることトンチンカンな気がするんだけど...
>try finalyに展開されるときに一度別変数にコピー
なんかされないから問題なく動作するんじゃないの?
要するに、(MSDNにも書いてあると思うけど)Disposeが呼ばれる対象は
usingで指定した式が表すオブジェクトだということ
>>138 お前の言う問題ない動作ってのは、
>>130 のコードで
Disposeが実行される
Disposeが実行されないがエラーもでない
エラーがでる
のどれの事を指して言ってるんだ?
別変数にコピーってのは
>>135 に対して
var temp=Hoge.DisposableItem
try
{
//Hoge.DisposableItemに代入
}
finally
{
if(temp != nul)
{
temp.Dispose();
}
}
っていう意味なんだが、何かおかしいか?
いきなり人をお前呼ばわりするおかしい奴を相手にする気になれん
>>140 なんか言ってることトンチンカンな気がするんだけど...
敗北宣言だよ 言わせんな恥ずかしい
>>143 じゃあ普通の人はどういう風に理解するのか解説してくれないか
>>143 じゃないし解説するのもバカバカしいけど、
>>130 のコードと文章を
落ち着いてもう一度読んでみたら?
頑張れよ!諦めんなよ!
あきらめたらそこで変数Disposeですよ。
プログラム問答とかいうサイトがくそウザい 機械翻訳読むくらいなら英語の方がましだ
最大1000アイテムでその後アイテムを追加すると 古いものから消えていくようなリストってないでしょうか? 自作しないとだめでしょうか?
>>149 サイズ固定のキューが欲しいって事?
ざっと見たけどなさそうだな
Queueクラス拡張して作れば難しくはないだろ
>>150 ありがとうございます。Queueについて調べてみます。
>>148 あるある
検索したいことと微妙に違ってることが多いし
>>148 ページを更新するから人々 を停止します。
returnの後に処理を行うことってできないですかね イメージ的には下のような感じ fuga()を放り込む変数を作ればいいんだろうけど、修正が面倒 int hoge() { return fuga(); this.flag = true; }
>>154 もしできたとしても
そういうコーディングはおすすめできないよ
制御構造を見直した方がいいよ
あとで他の言語行っても苦労するだけ
C#のGCは変だもんなあ 極力ユーザーの意識しない所でGCを走らせるように設計したんだろうけど
どのレスから話が繋がるのか全然分からない
いいエディタ教えて下さい
GCしてる時は「GCを行っています」ってダイアログ出して欲しいんだよ そのくらい理解しろ
なるほど自分が変だから世の中が変に見えるとは思わないんだ。 まあ変な奴はたいがいそうだがw
157≠158=160です
煽っても
>>157 が無反応なので自演を加えたら別の何かが釣れました
GW感丸出しですねこのスレ
>>162 そういう自分を惨めだとは感じないわけだから幼稚な奴って幸せでいいよな。
ほとんど「チンコしごいたら気持ちいいぜ!」って言ってるようにしか聞こえんが。
↑お前もな
相手してもらえてよかったですね
プログラミング初学者だけど Hello World→変数→演算子→制御文まではわかるんだが クラスとかいうところで躓いたわ どうすんねん
やめれば?
躓いたくらいでなんなの?
たとえば住所録を作るときに、クラスを定義しないと List<string> 名前リスト, 住所リスト; ってデータになるけど、型を定義すれば class 住所{ string 名前; string 住所; } List<住所> リスト; って感じに纏められて、属性が増えてもあまり意識する必要がない
とにかく書きまくって、データとそれに関係する処理(関数)との関連づけや整理に 悩むようになったら自然に理解できるようになるよ。 理解できないならそれはまだ必要ないってコトなんだから、とりあえずそれは置いといて先に進めばいい。
172 :
167 :2013/05/05(日) 05:31:33.90
文法書読んでもクラスから先はわけがわからんのだが 最初は適当にググってなんか作ってくだけでも上達していくんかね
継続は怠惰なり
体得って言葉もあるぐらいだし一理あると思うよ
オブジェクト指向は理論というよりノウハウ集だからな 実際プログラム書いてみないとなんでそうするのかわからないと思う
これから書くプログラムにクラスを使うなら、コピペで使う分にも文法の習得はもちろん必要だよ。 ただ、「なんでクラスを使うのか」とかの設計レベルのことは書き続けていくとある時ふと「わかった」気になる時が来る。
デザインパターンを一度見てみて、便利そうだな!って思えるかどうか。 便利だと思えば、使うようになるから、自然と身に付くね。 まあ、現実は使いこなせるようになる前に次の便利そうなものに右往左往。 最終的には、気合いだ!気合いだ!気合いだ!で乗り切るしかないから、 考えたらだめだと思うw
っていうかC#だとクラス使わずにコード書けないんだけどさw Cの構造体+関数のパラダイムを経由せずにいきなりJavaとかC#から始める人に どうやってクラスのありがたみを理解してもらうかは俺も興味あるな。
.NETのAPIがクラスベースで、 Windows Formとかのフレームワークを使うなら そのクラスの枠内でプログラミングすることになるし、 そのうち必要に迫られて慣れるんじゃね
彼らはBASICから得られた体験を ” タブー視 ” しなければいけないため、常に孤立を要求される。
いやいやstaticおじさんみたいな人もいるからね。 使えるようになるのと作れるようになるのは、どうも完全に同じ能力ではないらしい
そりゃそうだろ 焼いた肉と焼肉は違うよな
180 名前:あぼ〜ん[あぼ〜ん] 投稿日:あぼ〜ん
>>183 特におかしなことは言っていないから、専ブラの設定見直すべき
多分"BASIC"に引っ掛かったんじゃね
他スレでもそのお寒いコピペ見たから、NGしてる奴がいても不思議ではない
コピペなのか・・・
行番号BASICから何千年の時を経て javascriptの洗礼を受け、C - >C#と来た javascriptのクラスはなんじゃらほいだったがC#ではすんなりだったな
Javascriptのクラス(オブジェクト指向)は、プロトタイプベースだから、Smalltalk, Java, C# とはちょっと違うんだよな (知ったかですが)
191 :
デフォルトの名無しさん :2013/05/06(月) 13:10:11.55
WindowsForm上のPictureBoxの配列の要素をデザイナーで見る方法ってある?
WindowsForm上のPictureBoxの配列って何?
193 :
191 :2013/05/06(月) 15:56:06.11
WindowsFormsApplication の間違い
Javascriptとか使ったこと無いな そんなに流行ってるのか
そこじゃないw
いいよ、この意思疎通ができてない感
PictureBox[]をデザイナで配置するのは無理なので見る以前の問題
自分でコレクションエディターでも作るって話なんでしょきっと
WinFormsはオワコンだと考えてるから改良しないんだろうけど あそこらへんのコントロールコレクションをジェネリクスにしてみたりとか ウィザードにしてみたりとかしてくれないものか
VB6のころはフォームにコントロール配列を貼り付けて宝ね
すべてのツイートをストリーミング取得できるサンプルプログラムを ください。
ググれば見つかる
System.Dataを参照追加してるのに以下のエラーが出てコンパイル通りません。 参照を再設定してもダメでした。 'System.Data.DataSet' が参照されていないアセンブリで定義されています どおしましょおー(´・ω:;.:...
204 :
203 :2013/05/08(水) 15:04:41.61
あ、VS2008でのC#です
状況がわからない。 モバイルとかSilverlightだったりしない?
>>205 あ、コンパクトフレームワークのやつです
ちなみに、ビルド通らないのはDataSetクラスをそのまま使ったのではなく、
Dtoクラス(xsd?)を作成してうんぬんです。
【状況】
1. .net3.5?の空のプロジェクトを作成し、DTO(xsd)を追加してコンパイルしdllを作成
2. コンパクトフレームワークのプロジェクトを作成
3. 1で作成したdllの参照を追加
4. 1の中にあるDTO内部変数として定義してコンパイルすると
>>203 のようなコンパイルエラーになります
試せる環境じゃないなあ System.Data [Compact framework] になってる?
>>208 作成したDTOだとコンパイルエラーになって
DataSetクラス使うとコンパイルエラーにならないので、
DataSetクラス使って実装することにします(´・ω・`)
210 :
デフォルトの名無しさん :2013/05/08(水) 18:35:16.72
Visual Studio Express 2012 for Windows Desktopを
使ってるのですがC#でクラス名に色が付きません。
こんな感じです。
http://www.dotup.org/uploda/www.dotup.org4182018.png.html 「環境」から「フォント及び色」の「ユーザータイプ」を
探してみてもどににも見つからなくて困っております。
VBやC++なら色が付くのにC#だけ無色です。
アンインストールしてから再インストールしてみたり
Visual Studio 2012 Update 2とやらを適用してもダメ。
VS2012 for Web だと「ユーザータイプ」の欄は存在してて
C#のファイルを開けばクラス名にちゃんと色が付きます。
色が付かないと不安に駆られるので誰か助けてください。
俺はそこにユーザータイプあるな 設定リセットしてみろよ
そのダイアログの上の方に「設定の表示」ってあるはずだが、そこテキストエディターになってるか?
213 :
デフォルトの名無しさん :2013/05/08(水) 19:00:48.76
「設定の表示」はテキストエディターになってます。 設定のインポートで初期状態に戻してみたりしたけど変化はなかったです。
214 :
デフォルトの名無しさん :2013/05/09(木) 00:18:57.54
前任者が急に退社してC#と格闘してます。 特定のフォルダのファイル名を取得して、配列に格納したいのですが、 格納する術が分かりません。 .NET Tipsで調べたら・・・、 string[] FILES = System.IO.Directory.GetFiles( @"C:\test", "*", System.IO.SearchOption.AllDirectories); ↑これでファイル一覧を取得できることが分かりました。 ListBox1.Items.AddRange(files); ↑これでリストボックスにパス付ファイル名が入ることが分かりました。
215 :
214 :2013/05/09(木) 00:22:44.24
(連投すみません) 上記2つをうまい具合につないで、 string[] file_name=new string[100]; と配列を作ってこれに格納したいのですが、どうしたらいいかアドバイスください。 file_name[i]=FILES てな感じにしたいです。(こだわりはありませんが・・・)
FILESに入ってるのにfile_nameに入れる意図がわからない 多分無駄なことしようとしてる
とりあえず、「C# 配列 コピー」でグーグル先生に聞いてみたら?
>>214 せっかくFILESに入ったのに違う器に移し替えるの?
その必要は無いと思うよ
100ってそれ以上あった場合どうするの?
219 :
214 :2013/05/09(木) 00:51:48.12
先に214訂正
誤:ListBox1.Items.AddRange(files);
正:ListBox1.Items.AddRange(FILES);
>>216 薄々感じています。
FILESのままだと、その中に入っているファイル名をどう取り出していいか分からないから、
一度配列に格納しようとしてます。
220 :
214 :2013/05/09(木) 00:55:58.74
>>217 グーグル先生に聞いてみても、配列自身のコピーは書いているけど、
そのもとの変数に関しての記述がなく…。
上記でFILESを変数と言ってしまってるけど、違うっぽい感じがしてます。
FILESの1個目や2個目の要素を取り出そうとすればどうすりゃいいのか、
分かれば、配列にあえて格納しなくてもよい気はしますが、解がわかりません。
221 :
デフォルトの名無しさん :2013/05/09(木) 00:56:07.98
FILES[0]とかでアクセスできるぞ。 ブレークで中身見てみろ あとはAddを回すだけだ
だからググれと。 ちなみに FILES と file_name の型が同じなのは分かってて言ってるんだよね?
眩暈がしてくる
基礎がなってない
Path.GetFileName使え
この間VBからようやくC#に移行を始めたおいらでもわかった
227 :
214 :2013/05/09(木) 01:05:54.60
>>221 FILES[0]? ん? Addで回す?
この辺りキーにググってみます。
配列みたいに扱えるんでしょうか? ちゅうか配列ですか?
>>222 FILESとfile_nameが同じ型という認識はあります。(stringという意味)
まず、FILESが配列(または類似物)というのがあたしが理解できてないですね。
どこにもnewとかで宣言してないし…。個数も決まってないし…。
C#じゃ配列のサイズは変えられないみたいですし…。
そんときはArrayListつかえば動的にできると.NET TIPSさんは言うてますが、
ArryListなんて宣言してないし…。
まずTIPS読むのやめろ 明日納期って訳でもないんだろ
FILESとfile_nameはstringじゃなくてstring[]型だ FILES[0]やfile_name[0]はstring型だが ArrayListは使うな List<string>を使え
だからSystem.IO.Directory.GetFilesは配列を返す関数なんだって file_name[i]って感じでアクセスしたいんだろ? GetFilesの関数が配列を中でnewして返すからFILES[i]でアクセスできる まず一冊本買ったほうがいいな
231 :
214 :2013/05/09(木) 01:08:52.86
ごめんなさい。どなたにもお礼言ってなかったです。 遅くなりました。ありがとうございます。
javascriptorの薫り
突然辞める前任者 ゴクリ
ちゅうか配列だろ、その2つどっちもだ newは配列を作ること、別に自分でやらないといけないわけではない 今回のようにGetFilesがnewしてくれるようなパターンな サイズはファイル数になってる
236 :
214 :2013/05/09(木) 01:12:48.57
>>221 なんかわからんうちに、フルパスやったけどFILES[0]にファイル名が入ってました。
ちょっと進めた気がする。ありがとうございました。
>>228 ググったらとっつきやすく出てくるのが.NET TIPSなんです。
すみません。
考えたくもないな
こわい
239 :
214 :2013/05/09(木) 01:24:07.26
>>225 ご提案ありがとうございます。
ググったときにそれ見つかりました。フルパスでなくていいなぁと思いましたが、
複数のファイル名をとってこれずに挫折しました。ごめんなさい。
>>228 明日が納期ではないのですが、お客さんの前でデモをしなくてはなりません。
夕方なので多少は時間があるのですが、何せエクセルのマクロやったことがあるレベルで…。
操作するのはあたしだけなので、そのときにバグや例外エラーが出なければいいんです。
衝撃的だな まだこんな会社存在するのか
241 :
214 :2013/05/09(木) 01:26:19.09
>>229 LIST<string>というのがあるんですね。
ちょっと調べてみます。
またstring[]型というのがあるとはおそるべしですね。
>>230 配列を返す関数…。なんか一番しっくりくる答えです。
ありがとうございます。
>>232 すみません。違います。
>>233 ほんとうに困りますよね。
こわい、にげよぉ
もうレスはいいから作業に戻るか寝れ
244 :
214 :2013/05/09(木) 01:29:51.95
>>234 GetFilesがnewしてくれるってなんて便利なんだろう。
ただ、配列なのに個数を定義しなくていいんでしょうか?
フォルダ内のファイル数を数える時には、配列の数が分かってないはずなのに…。
今日は深追いはやめておきます。また聞かせてもらうかもしれません。
245 :
214 :2013/05/09(木) 01:33:11.76
>>243 みなさんありがとうございました。
作業に戻らせてもらいます。
なぜか頭の中に「ウンパッパ」が流れだしました。
>>244 ExcelVBAでも配列のサイズは拡張できるっしょ
Dim a(10)
Redim preserve a(100)
これと同じで配列のサイズを変更しながらファイルパスを突っ込んでる
明日プレゼンあるなら早くクソして寝ろ!
コレクションについて勉強しようよ 確かにC#の入門書レベルにはコレクションについて触れてない物が多いけど これを知っているのと知らないのでは雲泥の差 それとC++のイテレータに相当するEnumeratorを知ると世界ががぜん広がる
CollectionはエクセルマクロにもあるだろEnumeratorも兼ねてるし
IEnumerable(Of T) インターフェイスについて知ると確かに全然違う
そして圏論へ
>>247 何を見て勉強するのがいいのかお勧めあれば教えてください
これにLINQが加わると最強のコレクション操作が出来る まあLINQは別スレがあるのでそちらで
もの売るってレベルじゃねーぞ
257 :
デフォルトの名無しさん :2013/05/09(木) 16:58:17.18
デザイナーでフォームが表示が表示されなくなったんだがどうすれば戻せるんだ? デバッグでは表示される
258 :
デフォルトの名無しさん :2013/05/09(木) 16:58:49.47
間違えた デザイナーでフォームが表示されなくなったんだがどうすれば戻せるんだ? デバッグでは表示される
不具合になってるコントロールを一度外せ
260 :
デフォルトの名無しさん :2013/05/09(木) 18:39:35.86
外し方がわからん
hage.Designer.csを開いて 当該コントロールの宣言、コンストラクタ、プロパティ設定、等々をすべて削除
262 :
deto :2013/05/09(木) 21:07:27.69
DataTable TableA を作成(「X」列(decimal)を持つ)しましたが 一度値を入れたあとにRows.Clearを実施し、X列のデータ型をstringに変更しようとすると、 「データを指定した後にDataTypeを変更することはできません」となります。 ただし、一度も値を入れないうちはstringに変更してもエラーとなりません。 Clearメソッドではできませんでしたが、値を入れたあとに何らかの方法で一度もデータが格納されていない状態に戻してデータ型変更をする方法はないでしょうか。 よろしくお願いします。
263 :
214 :2013/05/09(木) 21:08:38.51
昨夜(ていうか今日未明)に色々教えてくれた方々ありがとう。 なんとかデモうまくいきました。 部長も満足してくれて、C#の講習会いけるようになりました。 就業時間中に行けて、会社から半額補助がでます。 皆さんどんな講習会行ってますか? 自力っていうのもありかもしれませんが、出勤扱いでいけるから どっか探してます。
マ板行けよ
え?半額は自腹なん?w いやまあ俺みたいな真のプログラマなら自腹で勉強するけど
266 :
214 :2013/05/09(木) 21:21:39.29
>>265 みんな全額出してるんですか?
ちょっとWebで見たら7万とか8万とかざらですよね…。
ちょっときついなぁ。
講習会なんかイカねーよw 本で十分。今ならネットだけでも十分。
講習会なんかタコねーよw 本で3分。今ならネットだけでも3分。
キモヲタ丸出しのセンスだな
俺もそろそろユニクロでおしゃれに決めようと思う
行った事あるけどポトペタだけでDB繋いでデータの入力フォーム作らされたよ あれが自腹だったら数ヶ月は落ち込んでたと思う
272 :
214 :2013/05/09(木) 22:14:27.29
一人だと偏りそうだから富士通かNECの講習会いってみます。 他に意見ききたかったけど、もう眠気がMAXでごめんなさい。
C#っていうよりプログラミングの基礎からやったほうがいいレベルなんだが・・ そもそも講習会って内容薄いよな 昨日悩んでたことは確実に出てこないよ
講習会って勉強する場所だと思うのが間違い 異性との出会いと交流の場であって、他人のお給料と職場環境を知る場所であって あわよくば、次の転職のアテを探す場であって、決して内容で文句言ってはいけない。
なんだそれきもいな
まぁオレは話しかけられて嫌な気はしないけどな それが出来る奴ちょっと羨ましい
マジレスだが、
>>274 が真理だと思う。
異性というか、世の中の動向とか他の会社はどんなことをやってんのカナー、とかをいろいろ聞いたりする。
7万とか8万ということは、1日か2日のコースだと思うけど、
2日もらえるんだったら、引きこもって自分でやった方がいい。
ただ、本を読むより人から聞いたほうが理解できる人もいると思うので、
そこは自分次第でしょう。
なんだそれ建前を傘に下心で動く人間きもいなスネオみてえだ
学習曲線的には、本当に初歩の初歩の部分を学ぶには講習会的なものも 悪くない気もするけどね。 とっかかりの部分って分かってる人に誘導された方が効率がいいと思う。 まあ講習会の類は一切行ったことありませんが。 まあでも講習会とか勉強会ってのは、基本モチベーション維持が主目的だと 考えるのが正解なんだろうね。 俺自身はそういう意識高い系は苦手ですが
280 :
デフォルトの名無しさん :2013/05/10(金) 01:01:54.87
.NETにJBossのようなものはありますか? サーバーがJBossでクライアントがObjective-Cのリッチクライアントで出来ている システムをC#に一本化移植したいのですが。
>>280 ようなものが何をさしてるかしらんが、
アプリケーションサーバー一式という意味なら、
IISをはじめとするWindows Server上のサーバーコンポーネントが全部それ。
282 :
デフォルトの名無しさん :2013/05/10(金) 01:54:23.05
>>281 実のところJBossはWebサーバーとしては一切使用しておらず、独自プロトコルの
ソケット通信を行うサーバー群を一括管理しているというのが一番のメインになっています。
>>282 それじゃこのスレ的にはIISホスティングでWCFになるかな。
284 :
デフォルトの名無しさん :2013/05/10(金) 02:14:22.30
>>283 IISホスティングのWCFは使ったことはないのですが、HTTP以外の通信も可能なのでしょうか?
よくわからんがソケット通信はできる
287 :
デフォルトの名無しさん :2013/05/13(月) 13:24:26.22
public Test { set; get;} このプロパティへの関数ポインタを別クラスへのコンストラクタに渡すにはどうすればいいんでしょうか。 new Class( () => this.Test) こんな感じで渡したいんです
それ関数じゃなくてプロパティだろ アドレスはないよ あるのは匿名変数のみ
そうなんですか プロパティ名を文字列で渡す以外に、何か方法はないのでしょうか?
関数でラップしたんではプロパティの意味がなくなってしまうしなあ
リフレクションで無理やりというのももっと冗長
GetTestを追加するのが無難だろうね
普通にプロパティを持っているclassをrefで受け渡しすればいいような気が だめなん?
294 :
デフォルトの名無しさん :2013/05/13(月) 17:13:21.73
whileでbreak使って抜けるのと条件式の変数変えて抜けるのはどっちがいいんだ
その時の流れで、わかりやすい方でいいんじゃない?
>>287 が何を求めてるのかよく分からんが、P/Invokeならデリゲートって関数ポインタにマーシャリングできただろ
コールバックが呼び出される前にデリゲートがGCされてるだけじゃないの
(^_^;)
プロパティそのものを渡せるならいろんな問題が解決してるだろ WPFのバインディングとかEntity Frameworkとか
結局解決策というかワークスルーは一度他の変数に代入してラムダ式に掛けてから またプロパティに代入し直すしかないんだな
WPFやFEの開発者がクリアにできなかった問題を何とかしようってのが無理がある
WPFのデータバインドは仕様上DataContextを自由に変えられるので、絶対に静的解決なんてできませんが
必要に応じて静的動的選べたらいいと思うんだけど
思うのは自由だが実現できるかとは別
8進数表記になっている文字列を 文字列として取り出したいのですが、 どのようにすれば良いのでしょうか? \202\313 となっているものを日本語文字列として取り出したいのです。 たぶんひらがな1文字だと思うのですが…
Convert.ToChar(Convert.ToInt32("202", 8)) + Convert.ToChar(Convert.ToInt32("313", 8))
>>305 無知すぎてすいません。
試したみましたが371という数字が返ってきます。
Convert.ToChar(Convert.ToInt32("202", 8)) +
Convert.ToChar(Convert.ToInt32("313", 8))
はintで拾うわけではないのでしょうか?
charは数字だから足したらダメだよ stringコンストラクタに渡せばいい
stringコンストラクタすら分からないという… もうちょっと勉強してきます…
.ToString()
ね?
こ!
が!
Convert.ToInt32("202", 8)) *8*8*8 + Convert.ToInt32("313", 8)
文字コードはなんなのか
できた byte[] b = new byte[2]; b[0] = (byte)Convert.ToInt32("202", 8); b[1] = (byte)Convert.ToInt32("313", 8); string s = Encoding.GetEncoding(932).GetString(b); MessageBox.Show(s); 俺って天才じゃね?
すごいのできた。 string src = @"\202\313"; byte[] b = new byte[src.Split('\\').Length - 1]; for (int i = 0; i < b.Length; i++) { b[i] = (byte)Convert.ToInt32(src.Split('\\')[i + 1], 8); } string s = Encoding.GetEncoding(932).GetString(b); MessageBox.Show(s);
string str = @"\202\313"; string str2 = str.Substring(str.IndexOf(@"\") + 1, 3); string str3 = str.Substring(str.IndexOf(@"\", 2) + 1, 3); Console.WriteLine("{0}", Encoding.GetEncoding(932).GetString(new byte[] {Convert.ToByte(str2, 8), Convert.ToByte(str3, 8)})); regex使わないと汚くなるなあ
超すごいのできた。 string src = @"\202\313"; string[] arr = src.Split('\\'); byte[] b = new byte[arr.Length - 1]; for (int i = 0; i < b.Length; i++) { b[i] = (byte)Convert.ToInt32(arr[i + 1], 8); } string s = Encoding.GetEncoding(932).GetString(b); MessageBox.Show(s);
string[] str4 = str.Split((new string[] { @"\" }), StringSplitOptions.RemoveEmptyEntries); Console.WriteLine("{0}", Encoding.GetEncoding(932).GetString(new byte[] { Convert.ToByte(str4[0], 8), Convert.ToByte(str4[1], 8) }));
おいおい それでは一文字しか変換できないじゃないか やはり俺のが最強か
いや、今回の場合はこれでいいかと思って 多量に処理するならLINQ使うかも
使った奴のサンプルほしい linq知らないから
LINQはいくつかのキーワードの使い方を覚えればマスター出来る これが結構複雑と言えば複雑なんだが 要するにSplitで分けた文字列配列はIEnumerableだろ? だから自由度が高いんよ
LINQ読み辛い
Action<int> setter = (n) => Stuff = n; public int Stuff { set; get; } これがコンパイルとおらない理由が「静的ではないから」なんですが、よく意味がわかりません
もしかしてフィールドとして置いてるの? コンストラクタで初期化されるから デルタ式だろうがなんだろうが型のプロパティに触れるわけないだろう class Hage { private int s = Stuff; public int Stuff { set; get; } } これがコンパイル通らないのと同じ
あーくそIEnumerableクラスを作ろうとしたら面倒臭い C++のイテレータの考え方の方が遥かに単純明快 ここは耐えて忍ぶしかないな
yield return試しても駄目か?
>>329 それはとっくにやってる
IEnumeratorを返すメソッドとDisposeが必須というのが面倒なんだよ
それとIEEumerableを2個ずつ飛ばして読んで一つのstringにエンコードする
というのがどうもすっきりしない
>>318 のように書いた方がいいと思う
別にGetEnumeratorはコンストラクター呼ぶだけだし、Disposeは空で問題ないぞ IEnumeratorというかVSでC#を書くことに慣れてないんじゃないの?
>>331 だなあ多分
C++ならすぐに完成するのにC#は今までIEumerableを全く使ってなかったから
全然分からない
無理にstringの列挙子を返すんじゃなくて後からまとめて変換した方がいいね
糞して寝ちまえ stringとcharでIEnumerableしようってのがすでにC++脳だろ
>>319 やってみたけどいまいち
string[] str4 = str.Split((new string[] { @"\" }), StringSplitOptions.RemoveEmptyEntries);
Console.WriteLine("{0}", Encoding.GetEncoding(932).GetString(str4.Select(a=>Convert.ToByte(a,8)).ToArray()));
LINQスレあるよ、機能してないけどよかったらおいで
>>334 ようやく分かりました
string[] str6 = str.Split((new string[] { @"\" }), StringSplitOptions.RemoveEmptyEntries);
var x = from n in str6
select Convert.ToByte(n, 8);
Console.Write("{0}", Encoding.GetEncoding(932).GetString(x.ToArray()));
これと同じ意味なんですね
ついでにラムダ式の使い方も分かって満足です
DateTimePicker.ShowUpDownとの上下ボタンとカレーダーのボタンは両方一緒に出せない?
文字列を、文字列で分割したいですがどうしたらいいでしょうか? 例:String data = "aaaaa;+bbbbb;+cccc;+dddd"; を分割したい。 「文字」で分割するなら、 String[] result = data.Split(';') みたいにすればよいですが、 ";+" で分割したいです。 オブジェクトブラウザで Split(params char[]) という オーバーライドされたメソッドがあったので、 String[] result = data.Split(";+".ToCharArray()) みたいにしたところ、 result の分割結果に、 result[0] = "aaaaa" result[1] = "" result[2] = "bbbbb" result[3] = "" というように、必ず "" という〜の文字列が含まれるようになりました。 どうしたらいいでしょうか?
VB.NETには文字列で分割するメソッドあるよ
メンバ関数調べる知識があるならあと一歩なのに 注意力-1
data.Split( まで入力したらインテリセンス様が教えてくれたよ String.Split( string[], StringSplitOptions )
343 :
339 :2013/05/15(水) 20:33:03.91
>>340-342 レスありがとうございます。下記のようにやったらできました。
data.Split(";+".ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
しかしなんで「空の要素を排除する」モードがあるんだろう。
必ず空の要素ができるなら、それを返さないようにすればいいのに
もしかして、このメソッドって、
; または + で分割、ということをやっているのだろうか?
Javaだとというメソッドがあるので、何も悩まないのだが、
こういうのがあるのを期待していた。
public String[] split(String regex);
>; または + で分割、ということをやっているのだろうか?
その通りだよ
>>342 を使えよタコが
>public String[] split(String regex);
なにがregexだよハゲ
正規表現使いたいならRegexクラス使えよツルピカ野郎が
わざわざToCharArrayなんか使う前にIntelliSenseの説明読めばいいのに
try { // なんかする } catch(Exception e) { return; } finally { // ごみそうじ } eがでたらfinallyはじっこうされる?
実行されないよ てゆーか試せよ
されるだろ
されないとか嘘教えんな
罵倒しつつだけど、結構親切な人が多いよねここ
>罵倒しつつだけど、結構親切な人が多いよねここ 自己顕示欲を満たしたいだけのクズです
QがC#を書いてる所は見たことがないな
え!?誰がQZて言った
見よう見まねで書いてるわけか 猿でも書けるC#
DTOで見たこと無いエラーが出て、原因不明なので助けて下さい。。。 デザイナでDtoにtable1のDataSet追加して No(null入れてOK、nullの時にアクセスしたらthrow exception、型はstring) を作りました。 んで、 dto.table1[0].setNoNull(); これやると [System.ArgumentNullException]'column' 引数を Null にすることはできません こんなエラーになってしまいます。 原因わかりますか?
そんな時は作り直すと解決したりするよね
DTOとかいう呼称は一般的なのか?
DTOとか使うからだ
362 :
デフォルトの名無しさん :2013/05/16(木) 21:28:49.17 BE:3193277459-2BP(1072)
2chのスレのdatから文字列取り出すプログラム書いたら分かりにくくなったんだけどもっと分かりやすく書ける? public class Res { int number; string name; string mail; public DateTime datetime; string id; string text; public void setRes(string a) { int foundIndex=a.IndexOf("<>")+2; name= a.Substring(0,a.IndexOf("<>")); mail = a.Substring(foundIndex,a.IndexOf("<>",foundIndex+1)-foundIndex); foundIndex = a.IndexOf("<>", foundIndex+1)+2; datetime =DateTime.Parse( a.Substring(foundIndex, a.IndexOf("ID:", foundIndex+1)-foundIndex )); id = a.Substring(a.IndexOf("ID:", foundIndex), a.IndexOf("<>", foundIndex + 1) - a.IndexOf("ID:", foundIndex)); foundIndex = a.IndexOf("<>", foundIndex + 1) + 2; text = a.Substring(foundIndex, a.IndexOf("<>", foundIndex + 1) - foundIndex); } }
シューティングゲームで一枚絵の背景画像をスクロールして表示したいのですが どのようにすれば良いですか?
またゲー専か
ゲームってまず作ろうと思わない よくモチベーション保てるね
アプリよりやる気出ると思うけどね 完成まで持っていくのが大変だけど
無茶苦茶手間がかかる割にはゴミクズができるだけだからなあ その手間を普通のアプリに注ぎ込んでれば金取れるレベルのモノ作れるよ
>>364 見えるところだけど部分的なDrawImageで描画
もの凄く長い画像をスクロールしたいのか それとも小さい画像を繰り返し表示したいのか
よく考えたらグラディウスとかって作るの難しいんだな
アクション系のゲーム作ったことの無いプログラマはレベル低い
文字列があって、その文字列から"/0"と"/r/n"を除去した文字列を作りたいです 文字列.Replace("/0").Replace("/r/n")以外にも何かLINQつかった書き方はありますか?
文字列.Replace("/0", string.Empty).Replace("/r/n", string.Empty)でした
なんでLINQなんだよ なんでもできる魔法と勘違いしてるんじゃないか
377 :
364 :2013/05/17(金) 17:37:26.99
>>376 LINQで何でも出来るわけじゃない
IEnumerableのデータを扱うプログラムが簡潔に書ける、それだけ
釣りかアンチLINQの自演と思い込みたいレベル
アンチの文字が抜けて見えてlinqの自演に見えてとうとう実体を得たのかと思ってしまった
staticクラスのくせに生意気だな
上手い
>>374 stringってIEnumerable<char>だからさぁ
一つのcharでフィルターするのはLINQで簡単にできる(意味あるかはおいといて)と思うけど
"\r\n"みたいな2つのcharでフィルターするのって面倒くさそうだね
コンボボックスのリストから "ばなな" が選ばれたらコンボボックスのテキストを"猿"にするにはどうすればいい?
MicrosoftのUXガイドラインを熟読したあと死ねばいいよ
DropList3つで日付を入力するようにしたのですが、 これのバリデーションはどのようにすればいいのでしょうか? カスタムバリデーションで直接DropListをみても、当然バリデーション前 なので、入力した値が取得できなくて、日付の文字列をチェックできません。
MicrosoftのUXガイドラインを熟読したあと死ねばいいよ
>>387 input type="date"のことなら、.NET 4.5でないので使えないんですよ。
下のコードでSocketExceptionが発生する。原因がわからない Socket socket = new Socket(SocketType.Stream, ProtocolType.Tcp); socket.Connect("localhost", 50101); var receiveThread = new Thread(() => { byte[] buf = new byte[3]; //受信処理でスレッドをブロック //Closeメソッド呼び出し後に例外が発生してしまう socket.Receive(buf); //Shutdown後にメッセージを書き込み Console.Write("closed"); }); receiveThread.Start(); Thread.Sleep(TimeSpan.FromSeconds(5)); //送受信無効にする socket.Shutdown(SocketShutdown.Both); Thread.Sleep(TimeSpan.FromSeconds(5)); socket.Close(); Thread.Sleep(TimeSpan.FromSeconds(5));
途中で送ってしまった 鯖への接続は確認できてます
異次元のソケットを閉じようとしても、世界線が違うからまゆしぃは死なない
接続先をlocalhostから外部の鯖に変えたら上手くいったlocalhost接続時にだけ発生する理由がわからんw
よくわからんけど、最後の方の socket.close() よりも前に、コンソールに closed のメッセージは表示されてるんだよね?
>>393 接続先がlocalhostだとclosedメッセージはでない、外部の適当なTcp通信サービスに接続すると、
closedが表示される
通信経路変えて動くのなら環境の問題だろ
だったら。 ・コンソールにメッセージが表示されないのは、受信しようとしてるデータ量分の受信データがないから → 3 バイト受信しようとしてるけど、それ以下のデータしか受信してない or そもそもデータを受信してないから receive で待ちになっている ・exception が出る原因は、上の結果、まだ使用中のソケットを close したから とかじゃねーのか。
あと、書き忘れ。 そのコードなら、 sleep じゃなくてきちんとスレッドの終了を待ってから shutdown するべきじゃねーのか。
>>395 多分そんな気がする
>>396-397 うp用のコードなのでかなり適当ですまない
いちおう流れとしてはReceiveで生成したスレッドをブロック、
メインスレッドでShutdown使用し、Receiveでブロックされているスレッドを解放
Closeメソッドで切断となっている
shutdown とスレッドの制御って関係あるの? あれだと受信待ちスレッドが走ってから 10 秒後に無条件で close されるだけだと思うんだが。 プログラムのバグを環境のせいにしてどうする。それで満足ならいいけど。
>>399 ShutdownするとReceive中のメソッドが完了する
上のコードだとreceiveThreadはsocket.Receive(buf);でブロックされるが、
メインスレッドでShutdownで呼び出すとReceiveが完了し、後続のConsole.Write("closed"); が呼び出される
ShutdownとCloseの間にSleep入ってるのはメインスレッドがSleepしている間にreceiveThreadを終了させるため
localhostしかやってないけど同じ結果だったWSACancelBlockingCallが原因 トレースしたら違いがわかるかもよ?
ヒント ローカルは一瞬でデータ読み込みが終わる 外部だと時間がかかる
ソース書き直した 今回のソースだと受信が完了してからCloseするようにしたが、 receiveEndEventHandle.WaitOne()でずっと待機してしまう var receiveEndEventHandle = new ManualResetEvent(false); var socket = new Socket(SocketType.Stream, ProtocolType.Tcp); socket.Connect("localhost", 50101); //socket.Connect("msg101.live.nicovideo.jp", 2809); var receiveThread = new Thread(() => { byte[] buf = new byte[3]; Console.WriteLine("Receive Start"); int receiveLen = socket.Receive(buf); Console.WriteLine("Receive End:receiveLen=" + receiveLen); receiveEndEventHandle.Set(); }); receiveThread.Start(); Thread.Sleep(TimeSpan.FromSeconds(5)); socket.Shutdown(SocketShutdown.Both); Console.WriteLine("Shutdown"); receiveEndEventHandle.WaitOne(); Thread.Sleep(TimeSpan.FromSeconds(5)); socket.Close(); Console.ReadLine();
あと、サーバーのソースです static void Main(string[] args) { var listener = new TcpListener(Dns.Resolve("localhost").AddressList[0], 50101); listener.Start(); do { var client = listener.AcceptTcpClient(); Console.WriteLine("client accepted"); //クライアントをブロック状態にするため、サーバーからはデータを送信しない } while (true); }
receiveEndEventHandle.WaitOne()をコメントアウトすると
>>401 さんの結果と同じようにWSACancelBlockingCallが発生する
MSDNだとShutdownメソッド呼び出すとReceive完了するって書いてある
localhostへの接続時だと挙動が違うのかな
MSDNにはリモートホストがshutdownすると完了すると書いてあるんだが
>>406 今見返した。ホスト側がShutdownしたらってことか
ただそれだと接続先変えるとRecieveの完了するしないの違いが発生する理由が説明できないな
もう少し調べてみる
まあ、別スレッドでReceiveしてる状態でもソケットを安全にCloseできればなんでもいいんだけどな
localhostだと検知できるのかもね 内部でごにょごにょやって linuxやjavaとかも試してみたら?
安全にっつっても、Receiveするときはtry-catchしとけって話にしかならない気が
サーバーから1バイトでも返してやると例外発生しないね
あ、localhostではなくlocal ip直指定だと挙動が変わった気もするな あまり自信がないけど
>>409 結果そうなるだろうけどエラー制御の内容は仕様次第だし、
分からないまま使う前に調べないと
もうわからん 凡人の俺には無理だわw とりあえずShutdownメソッドでReceiveを完了させようとしてみて、 だめだったらtry-catchするで対処します
アンマネージドでもやってみたら?
なんで receive を無限待ち前提で使うのだろーか。
チャットとか
メモリリークってどうやって見つければいいでしょう? どうも解放しきれてないみたいなのですけど 何を解放していないのか分からない
>>418 C#でリークすることってあんまないような
参照握りっぱなしだとリークする
IDisposable放置によるリソース不足やLOH断片化って感じの別問題だと予想
どうしてそう思ったのかを書いてみるといいんでないか。
IpcServerChannel/IpcClientChannel/MarshalByRefObjectでプロセス間通信する際に、 public delegate void Transmit(Request req, Response res) で通信すると、サーバーでresにプロパティを変更しても、クライアントでは変更されてない public delegate Response Transmit(Request req) で通信すると、サーバーからの戻り値はクライアントで読める 下のやり方で問題ないんだけど、上のやり方がダメな理由って分かる? ※Request、Responseは名前通りの意味のクラス
タスクマネージャーを見ると起動時のメモリ使用量と比べると しばらく使った後のメモリ使用量が多いのです。
具体的にどのくらい多いんだよ staticの分があるから、ある程度プログラムの進行によって増えるのは正常だ
気にしないことにします
気になる
428 :
デフォルトの名無しさん :2013/05/20(月) 02:56:56.21
ContextMenuStripのItemClickedなんだけど ↑↓←→[Enter]で選んだ場合は呼ばれないの?
呼ばれるでしょ ↑↑↓↓←→←→BAの場合は知らないけど
>>428 ありがとうございます。参考にさせて頂きます。
でも、どうしても一枚絵でやりたいです…
432 :
デフォルトの名無しさん :2013/05/20(月) 21:26:52.08
test
>>431 言葉で表現するのは難しいしどのプラットフォームで作ってるか
書かれてないので詳しく説明できないけどまあやることは簡単だよ
一枚絵を使って2回描画すればいいだけ
詳しく説明するの面倒だし画像起こするのだるし コード書くのもあれなので変わりになるの探してきた www.ibm.com/developerworks/jp/java/library/j-html5-game2/ www.ibm.com/developerworks/jp/java/library/j-html5-game2/scrolling-background.jpg 並べてもスクロールが破たんしなような画像を作ってこんな感じにすればいい 規制あけの上に忍法帳作り直しでリンクがそのまま貼れないのはご愛嬌
おれも欲しくて自作した ネィティブのコモンコントロールにはあるんだけどね "msctls_updown32"というクラス名でウィンドウ作るとできる
438 :
デフォルトの名無しさん :2013/05/21(火) 08:04:50.35
439 :
438 :2013/05/21(火) 08:08:29.90
自己解決した
VBのOn Error Resume Next的な動作をさせるために 1行1行try{}catch(Exception){}で囲む以外の方法はありませんか?
VBなんか窓から投げ捨てろ
On Error Resume Nextが欲しいというその脳みそもいっしょに投げ捨てろ
static void 公害(Action 糞コード) { try { 糞コード(); } catch (Exception) {} } 公害(() => 汚物());
webbrowserコントロールのnavigateにタイムアウト処理をつけたいのですが、どうすればいいですか?
445 :
デフォルトの名無しさん :2013/05/22(水) 15:00:08.67
C#.netにてwebkitを使用し、スマートフォンのサイトにてユーザーエージェントを行い自動ログイン機能を付けた、ブラウザを作りたいのですが、 webkitのクロームのcookieを有効にするにはどうすればいいでしょうか? 過去ログも漁ってみましたが、同じような質問は見つけたのですが、解決していないみたいです。 document.cookieに格納されているというログは見つけたのですが、 それをどう使用すればいいのでしょうか? http requestなどを使えばいけますでしょうか? 答えを教えて欲しいとは言わないので、ヒントなど頂けると幸いです。 よろしくお願いします。
>>445 ここに答えられる人はいませんし
世界中探してもいない
環境が出し方が不十分な気がする
document.cookieは別物
>>440 とりあえずどこの仕事してるか教えてくれ
その会社使わないようにするから
449 :
デフォルトの名無しさん :2013/05/22(水) 15:44:02.04
>>446 ,448さん、返答ありがとです。
説明のしかたが下手で、ついつい質問して甘えてしまいすみませんでした。
基礎もないまま今までこぴぺなどを組み合わせてたので、駄目駄目ですね。
基礎からやり直してきます。
ありがとでした。
450 :
デフォルトの名無しさん :2013/05/22(水) 16:17:42.84
>>444 Navigateの後Timerを動かして所定の時間たった後
WebBrowser.IsBusyをみてまだ処理中だったらWebBrowser.Stop
でいいのかな?
インターフェイス作成時、実装可能なクラスをForm派生に限定し インターフェイスはもちろんのこと、Formとしても扱えるようにする事は出来ませんか? ジェネリックのwhereみたいな 出来ないよね AbstractなFormはIDEが受け付けないしIFormも無いみたいだし
使う側でas Formやis Formでチェックしろよ もしくは使う側でジェネリックを使って void 使う側<T>() where T : Form, IHoge { … }
>>451 インターフェイスメンバーをMustOverrideで実装したMustInheritなFormを
ベースクラスにすれば同じことじゃないの?
すまんVBスレと同時に開いてたから混同したw MustOverideはC#でいうabstractのことね
そんなことより質問者のレスを全然読んでないという重大な問題が
要点は2行目だけで1行目はどうでもいいな とにかくIFormが欲しいんだろ 残念ありません
やっぱ無理か 矛盾は無いだろうしもしかしたらと思ったんだけど
基底クラスをabstractじゃなくてvirtualにするとか、インターフェイスに自分でFormのメンバーを定義してやるとか
>>457 だから無理じゃない
少なくともインターフェイスに「制約」機能を持たせたのと機能的に等価はことはできる。
インターフェイスでと言ったでしょ?? 継承とか真っ先に思いつくから予防線張ったつもりだったんだけどな
>>460 ではお聞きしますが、例えばFormの派生クラスだけがIHogeを実装できるように制約を
持たせることが可能だったとして、その場合に得られる効果は何でしょうか。
それは、IHoge型の値であればFormにキャストできる(Formと互換性がある)
ことが保証できること。
であれば、そんなことはクラスの継承でもできる。
重要なのは必用な機能が得られることであって手段(この場合はインターフェイスにこだわること)じゃない。
手段にこだわるフェティシズムはバカのやること
結局IDは末尾!だけ出すことにしたのか いっそ全員表示すりゃいいのに
ほんとだIDでてるw
ID出てるのはVPNと海外からの書き込みだな すぐ規制されるけどそれまではIDを出すと
全鯖ID表示にすればいいのになんでやらないのか不思議
この流れ自体がそうだけど、そんなことしてもスレ違いの脱線話が増えるだけ。
>>465 ●が売れなくなるからそれはやらないだろ
書き込みがあっての2chだ
全板ID化すれば書き込みが減る=客が減る=●売れなくなる
サルでも分かる公式
>>466 どうでもいいけどどうして海外から書いてんの?
どうでもいいなら話しかけんなよ
>>461 ムキになるなよ
Form
サブシステム別
用途別
各業務画面
と継承された状況で末端の幾つかがIHogeを、
また別の幾つかがIFugaを実装するような場合は?
継承の良し悪しの前にどんな選択肢があるか確認したかったの
あ、dynamicその他代替案は不要なんで
【朝鮮猿】 ヒトモドキ科 生息地:日本に寄生 鳴き声:「ネトウヨガー!ネトウヨガー!」 ■■■■■■ ■ _ _ ■ ii / \ ii キーキー! | _ _\ /_ _ | / l l \ \ __/ ● ● \__ / 、 | ▽ | ムキッキキキィーニダ! \ / (姦流サイコーニダ!キッー!) /゙ " 猿 ヽ / i! (⌒i ヽ 〈 i / ,i γ´ ^゙ヽ. l l γ´ ^ ゙ヽ i i,__,,ノ ヽ_i, i ヽ,_,,ノ"~´ ̄``゙ヽ,_,,ノ
>>468 ISPが絶賛寄生虫だから。
この毎度おなじみ大奇声にしてもアベノミクスにしてもそうだけど、どうも日本人ってのは
呪術的でいかんな。
プログラムと同じで人間社会だって、何かやった時の帰結は論理で決まるにきまってるんだが、
そこら辺の冷静な分析すスキップして、直線的な願望で意思決定をする。
論理的に考えて、規制なんか荒対策に何の効果もあるはずがない。
こんなの「ISPを屈服させてやりたい」という、運営の連中の幼稚な感情を満たすだけ。
日本語でよろしく頼むぜ。
>>473 そうか
まあすぐに規制されちゃうんだけどな海外Socks串
■■■■■■ ■ KOREAN ■ ii / \ ii 日本人になりたい | _ _\ /_ _ | / l l \ 朝鮮人間パク! \ __/ ● ● \__ / | .▽ | \ / / \ (_⌒) ・ ・ || l⌒ヽ _ノ | | r `(;;;U;;) )__) (_ノ  ̄ / / ( _^)
>>473 どんな詭弁を弄したところで、海外串とVPNは即規制されるんで
〜1910年 ∧支∧ ( `八´) (  ̄|| ̄) ニ∧_∧ <ははぁ!宗主国様〜 | ̄.| ̄| <`∀´ ;>⌒) /__l _ゝ = と と_(_つ 1910年〜1945年 . _ ,,'⌒丶、 ,,'⌒丶、. |●| ゝ☆==> ゝ☆==>| ̄ ( ´∀`) ∩<`∀´ヽ>∩<今日からウリ達も一等国民ニダ! ( ~=|=) > く 大日本帝国万歳! | | | ( <⌒)ノ (__)_) ヽ,_,フ 1945年〜 | ̄ ̄| _☆☆☆_ ( ´_ゝ`) ∧_∧ <ウリ達は無理矢理イルボンに ( ω )<`д´ヽ> 併合されたニダ! | | | ⊂ ⊂.) 本当は戦勝国民ニダよ! (__)_)(__と_)
2chをみているとレスの中に例えば「★初心者以前の質問に雪崩のように答えるスレ★」と青の文字でかかれていて
URLはどこにも書かれていないのに、その青い文字をクリックすると「★初心者以前の質問に雪崩のように答えるスレ★」にいけるようになっている場合があります。
どうすれば「ABC」青文字で書かれていてその文字をクリックすると「ABCのページ」に行けるようになるのでしょうか?
例で言えば
http://desktop2ch.tv/utu/1367764194/の >>1 の「[test]書き込みテスト 専用スレッド596[テスト] 」のようにURLなしでそのサイトに行けるようにしたいのです。よろしくお願いします
, ヘ / l __/ l ,. -=....::::.. ̄` -、 /:::::::::::::::________:::::ヽ ウリは宗主国でも大人気ニダ /;;;;;_:::::::|,R.__R}:::::::| |::: __ _ | 何の工作をしなくても世界の注目を集めるニダ (6 \0> < 0 人 ! )・・( l 金を払ってステマ工作をしても人気が出ない ヽ (三) ノ /\ 二 ノ 韓流とは格が違うニダ /⌒ヽ. `ー ─ 一' \ l | ヽo ヽ
またキチガイが居着いたか
今AA荒らしの報告リストを作成中だよ 完成次第報告してみる
ウリナラマンセーウリナラマンセ /∧ウリナラマンセー/∧ ウリナラマンセーウリナラマンセー ウリナラマンセーウリナラマン/ / λウリナラマン/ / λ ウリナラマンセーウリナラマンセ ウリナラマンセーウリナラ/ / λウリナラ/ / λウリナラマンセーウリナラマンセ / / /λ / / /λ / / / // / / //λ /  ̄ ̄ ̄ _\ _____________ / (●ヽ ⌒⌒ /∵ ) ヽ / / \丿\ ⌒⌒ / ●/ \ / K-POPすごいニダ / \/ ヽ ∧(● ●)∧  ̄/ \ < 韓国すごいニダ | へ  ̄ ヽ ` ー― /  ̄ ヘ | | 日本より絶対すごいニダ | \ |V V V V/ / | | 韓国世界一ニダ | \ ゝ| |/ / / | ホルホルホル・・・・ \ \ ∪\AA/ / / \_______________ \ ∪ / \ / > υ < > υ < チョウセンヒトモドキ
C#のDLLについて質問なんですが。 .net 4.5 と 3.5では完全な互換性がないとのことですが. .net 4.5 のプロジェクトで3.5でビルドしたDLLを利用した場合も同様なのですか? side by sideの機能で.net 4.5と.net 3.5の両バージョンが入っていればアプリケーション 起動時に適切なバージョンを使用してくれるとのことですが .net 4.5のアプリで.net 3.5のDLLを使用した場合は .net3.5のDLLを呼びだした処理は 適切なバージョンとして処理されるのでしょうか?それとも.net4.5として処理されるのでしょうか?
487 :
デフォルトの名無しさん :2013/05/25(土) 12:48:30.56
,-、 ,.-、 ./:::::\ /::::::ヽ /::::::::::::;ゝ--──-- 、._/::::::::::::::| /,.-‐''"´ \:::::::::::| / ヽ、::::| / ヽ| l l .| ● | んーとね・・ l , , , ● l ` 、 (_人__丿 、、、 / `ー 、__ / /`'''ー‐‐──‐‐‐┬''"´ ,-、 ,.-、 ./:::::\ /::::::ヽ /::::::::::::;ゝ--──-- 、._/::::::::::::::| /,.-‐''"´ \:::::::::::| / ヽ、::::| / ● ヽ| l , , , ● l .| (_人__丿 、、、 | わかんない l .l ` 、 / `ー 、__ / /`'''ー‐‐──‐‐‐┬''"´
>>486 .NET2.0〜3.5はCLR2.0で.NET4〜はCLR4
CLR4のアプリでCLR2.0のDLLを使用する場合、DLLはCLR4上で動作する
仕様的には完全な互換性があり普通は問題なく動くがテストはしろ
図星かよ
4と4.5は別物
.NET4.5ってこれまでの更新と違って4に上書きするんだぞ 別物どころか今までのメジャーバージョンアップの中じゃ一番マイナーな更新だわ
4はXPサポート、4.5はXP非サポート マイナーな更新には思えないわ
ヒント:サポート期間
64bitに強制シフトだろ 時代の流れだな
4のメジャーアップデートは5じゃないのか 小数点以下のバージョンはマイナーバージョンだと思うんだが
C#知らないならレスしないでください
.NET3.0 ください
test
>>501 ここはテストスレじゃないです
お帰りください
さもなくばタヒね
503 :
デフォルトの名無しさん :2013/05/26(日) 19:23:19.03
ProgamDataフォルダを表示するようにしても管理者ではないとアクセスできないのは Windows7のデフォルトの仕様ですか? それとも何か設定ですか?
特定のメソッドが実行されたタイミングをイベント化するにはどうすればいいですか?
イベント化するにはどうすればいいですか? まず、コレを解決する。 次に特定のメソッドが実行されることをテストする。 最後に 実行されたタイミングをイベント化する結合テスト
>>509 抽象的すぎてわかりませんなぁ
自分で調べて
特定のメソッドからイベント飛ばせばいいんじゃ
>>511 かっこよく答えたつもりだろうけど全然違うから
イベント化 祭り化 炎上
俺はポーリングが好き
あぁだからイベントって発火するって表現するんだ!
対象メソッドを変更しないのなら、デバッガーかVMを自作して同梱するぐらいしかない気が
DataGridViewの外観で質問です 100列×50行ぐらいの一覧表で、10〜12列程度を一つの固まりとして表示するために 列ヘッダのマージを行っています (厳密には、ヘッダ部ではマージはできないので、1行目と2行目を列ヘッダとして マージして表示しています) ↓こんな感じ(ずれたらすみません) 1列目 | 大分類1 | 大分類2 | 大分類3 | 2列目 |小分類1|小分類2|小分類1|小分類2|小分類1|小分類2| dobon.netさんなどを参考にしてCellPaintingイベントで描画を行い、画面を開いた 直後にはきちんとできていると思ったのですが、横にスクロールしていくと 隠れていた部分がマージされたりされなかったりという状態で表示されてしまいます スクロールイベント内で強制的に再描画させるinvalidate()を呼び出してみましたが 結果は同じに終わりました 他に何か手段はないものでしょうか?
正規表現で | パイプ使っていくつか並べた時に その中でそれぞれグルーピングしてた場合に @"(ABC)DE(FG)|H(IJ)(KL)M|(NOP)(QR)" こんな感じでマッチさせて、そのあとで Match.Group[1].Valueとかマッチしたグループ文字列取ろうとしてんだけど もしかしてこの場合に、Group[1]とGroup[2]って最初のABCとFGしか取れない? IJとかNOPとか取ろうとしたらGroup[3]とGroup[5]を見ないといけなかったりする? PerlとかRubyなんかだと | あったらそこからカウントリセットしてくれるんだけどなぁ・・・
うげっ 予想通りパイプとか関係なしに通算されるじゃん! 使えねぇ・・・
むぅ しかたねぇなぁ (?<name>でいちいちネーム振っとくしかないか
>>517 標準コントロールなのでExcelで帳票作るクレイジーなジャップのニーズなんて想定されていません
サードパーティのコンポーネントを買ってください
e.Handled = True をしてないからだな
DataContractSerializerで設定をファイルに保存しようと苦闘中 System.Windows.FontWeightがSerializeできないのは、どういう理由からなのでしょう? コントロールへの Binding も上手くいかないし、なにか違うのだろうけど分からない
Serializerって使った事がないな。 XmlWriterとXmlReaderで自分が好きなように読み書きしてる。 異端なのだろうか?
XmlDocumentがいいよ
>>524 自分のPCの閉じた世界だけならそれでいいよ
外部に持ち出す時はシリアライズしないと読めない場合が多発する
>>527 設定ファイルをXmlReader./Writerで読み書きしてるってことなんだ。
ソフトは公開していて、他の人も使えてるから大丈夫そう。
こういうやり方って少数派なのかな。
間違ってるとか正しいとか言ってほしいのか? 先に希望する答えを言えよ そう答えてやる
いや、そういうのは訊いてない。 周りにプログラミングしてる人はいないから、 皆どうしてるのかなぁってのが気になるんだ。
Twitterクライアントとか2ch専ブラとかのメッセージ表示領域ってどうやってんの? ブラウザコンポーネント?リストコンポーネントじゃないよね
自分はFlowDocument
win8でvs2010なんだけど、.NETFRAMEWORKステップインって出来る? 当然フレームワークの更新はやってるんだけど、シンボルが違うって出て ステップイン出来ない。 出来る方法があるのなら教えてください。
普通にできるけど リビルドしてみたら
標準ライブラリのシンボル?
538 :
535 :2013/05/28(火) 09:49:51.39
ああ、誤解を与える表現だった [.NET Framework ソースのステッピングを有効にする]で.NETのソースの内容を 見ることができると思うのだけど。 MS製のクラスのメソッドでブレークしてF11を押すと、出力ウィンドウに ステップ イン: シンボルのないメソッド 'System.IO.DriveInfo.GetDrives' をステップ オーバーしています と出て、ソースの内容が確認出来ない。 [デバッグ]-[ウィンドウ]-[モジュール]で読み込まれたシンボルを確認すると、 全部読み込まれている状態
ソースサーバーサポートを有効にする、はどうなってる?
>>539 ・ソースサーバーサポートを有効にする ON/OFF
・元のバージョンと完全に一致するソースファイル ON/OFF
は、試してみたけどだめだった。
シンボルファイルは ”Microsoft シンボルサーバー”から
あと、
http://referencesource.microsoft.com;/symbolsとかも試したけどだめだった 。
ネットで失敗原因を探していたところ、Windows Updateの.NET Frameworkの更新を
行うとMSソースのステップインが出来なくなった人があったみたいだから、
みんなが出来ないものだと思ってた。
でこれが、上記538のシンボルのないメソッドの理由だと思ってたんです。
WebClientはDispose()しないといけない?
>>541 短時間で生成と削除を繰り返すならしたほうがいい。
そうでないなら、放置でもOK。
しなきゃ気がすまないならしとけ。
このクラスの性格上、生存期間は長そうだけどな。
Twitterクライアントとか2ch専ブラとかのメッセージ表示領域ってどうやってんの? ブラウザコンポーネント?リストコンポーネントじゃないよね
どっかで見た文章だけど 世の中には既成品のコンポーネント以外を使ってるアプリケーションもあるんだよ
二二二二二二二二ヽ |。| / ̄ ̄ ̄ ̄\ / −、 − ヽ /^^^^\ | /| ・|・ |\ | / ;、 \ |/ `-●−′ | ⌒⌒/', ' ',;'', ;'',; '',;' ',' \ |.. ミ │ ミ| ⌒⌒⌒/ , 、 \⌒⌒ ヽ __|__)/ / 、 \ \____/ ⌒⌒⌒⌒⌒⌒⌒⌒⌒ヽ ヽ '⌒⌒⌒⌒⌒⌒⌒⌒⌒⌒⌒ |。|_, - 、 _ _ ─── 、) ',',',',', _ ,',',',',',' l^lニl ,',',',', l^lニl ',',',',',',',',',',',',',',',',' / ヽヽ ',',' l^lニl ,',',',',',',',',',',',',',',',',',',',',',',',',',',',',',',',',',',',',',',',' ┃ ┃ | / ̄ ̄ ̄ ̄ ̄ ̄\
>>543 そこが既成品じゃアプリの意味ないだろw
コアは自前で作り込むもんだ
547 :
デフォルトの名無しさん :2013/05/29(水) 12:02:49.88
∧,,∧ <`∀´> < 仲良くしようぜ / ヽ | | | | | | | | || || し| i |J=二フ .| || ; | ノ ノ ・ .| .| ( ; / |\.\
.NETでNULデバイスを指定する方法って、Stream.Nullを渡す以外にはないのでしょうか?
NULデバイスで何をどうするのか分からん Consoleの話?
CreateFileEx
551 :
デフォルトの名無しさん :2013/05/29(水) 21:46:03.48
〈〈ー=ニ二 .. _/⌒)八 <⌒\ }{,/^^⌒Y⌒ヽ}八 }乂________彡' / } }^⌒´ :: |⌒) |/ -‐==〈ニ二¨¨⌒ ー==彡' _ノ / J .:: {_/ 丿 ´ -‐=〕 ー=ミ ー=ニ .. ____/ :::.... U ::.. ノ}{(´ / ,/ ,八{{ Y⌒\ー=ミ}厂} U u ⌒ヽ ,:://{ )〉〉 / ,/ / 乂| {\ V=彡 〉-‐=ミ、_ :. }|_,ノ},}(: | . / ,/ l 八八(〈_ \} /'⌒二≧=ミ辷} |f)ノ{: :| -‐==ミ,/ | |:ニ\\_ 厂{rf)ノ...::: 〈'゙ |: : | \ | |ニニ{\_,) \ .:`¨¨´‐'.:::.. ..::. 八: } ヘ、 | lニニ八 ゚, \ u u 、__/ ,′}/ / / /\ . } | |ニニニニ\__∧ :. lj U __ ..ィ ′:/ ノ: . / /ヘ 冫 ‐- \、 : : . . | 人ニニニニ/《_込 :} /`二フノ{丶> / ¨7´ {{__// く: : : : :..\ : : } \ニニ/{i:i:i:i:i:i}|> . ー=彡'八/ __/ :厂  ̄「 , -―=ミ \: : : : ::::. {__ }\} }《__》{ | > __ノ: ..:} /广¨}:. ..::/ i .::{ ̄{[ ̄] } : : : ::::}} : : /:... {ニニニ|i:i:i:i:| |:....∠, /. ........:::::://. :/ ..::{:: } | ..:::}ニ`二二¨´ }: :.::/.: /:::.... {ニニニ|《__》| |:::::.../ /. :....:::::::::/ノ : /...::::::::} . : / |..:::::::} {[ ̄] } /. : \::::.....::{ニニニ|i:i:i:i:| l:::: /::...../. : ...::://{ :/ { . :/ / { ...:厂〔匚} ̄〉
Console.WriteLine("s1の長さ:{0}\ns2の長さ:{1}", s1.Length, s2.Length); こういうことは書けても textBox1.Text = "s1の長さ:{0}\ns2の長さ:{1}", s1.Length, s2.Length; こうは書けないのですか? GUI部品にも同じようなことをしたいのですが・・・
そういうキモイことはできません お帰りください豚野郎
ここまでおれの自演
557 :
デフォルトの名無しさん :2013/05/30(木) 11:28:28.06
llll, ll,,,,,,,,,,,,, ,,,,, ll,,, llllllllll lllll ,,lllll,,,,,,,,,, ,lllllllllllllll '''''''''''ll' ,lllll lllll' ,,,,ll''''''' ,,,,,,,,lllll,,,,,,,,,,,,, ,,lllll''lllll'''''' llll llllll llll ,llll' llllllllllllllllllll,l'lllll,, '''''lllll''''''''''''lllllllll ,,lll,,,,lllll,,,,,,,,,lllll lllll llll',,,,,llllllll,,,, lllll,,,,,,,,,, ,,,, llll' llll, llll,, lllll' ,llll, '''''''''lllll'''''''''lllll lllll ,llllllll''' 'lllll ,lllll'''''''lllll ,lllll llll' lllll' lllll ,,llll' ,,,,, llll ,llllllll,,, lllll lllll lllll'' ,lllll lllll' lllll ,llll' ,llll' lllll ,,llll'' ,lllll''''llllllll,,,, ,lllll'' 'llllllllllllllllllllll ,,,,,,,,,lllllll'' ,lllll lllll,,,,lllll' ,llll' ll,,,,llll' ''ll' lllll,,,,,,,,llll'''ll' ''' ' '''' '''' ''''''''''' ''''' '''lllll''' ''' '''''''' ''''llllll''''
interfaceとabstractなクラスはどう使い分けるのですか?
llll, ll,,,,,,,,,,,,, ,,,,, ll,,, llllllllll lllll ,,lllll,,,,,,,,,, ,lllllllllllllll '''''''''''ll' ,lllll lllll' ,,,,ll''''''' ,,,,,,,,lllll,,,,,,,,,,,,, ,,lllll''lllll'''''' llll llllll llll ,llll' llllllllllllllllllll,l'lllll,, '''''lllll''''''''''''lllllllll ,,lll,,,,lllll,,,,,,,,,lllll lllll llll',,,,,llllllll,,,, lllll,,,,,,,,,, ,,,, llll' llll, llll,, lllll' ,llll, '''''''''lllll'''''''''lllll lllll ,llllllll''' 'lllll ,lllll'''''''lllll ,lllll llll' lllll' lllll ,,llll' ,,,,, llll ,llllllll,,, lllll lllll lllll'' ,lllll lllll' lllll ,llll' ,llll' lllll ,,llll'' ,lllll''''llllllll,,,, ,lllll'' 'llllllllllllllllllllll ,,,,,,,,,lllllll'' ,lllll lllll,,,,lllll' ,llll' ll,,,,llll' ''ll' lllll,,,,,,,,llll'''ll' ''' ' '''' '''' ''''''''''' ''''' '''lllll''' ''' '''''''' ''''llllll''''
>>558 とりあえず適当な内容持ったメンバー使いたい時にabstract使ってるけど
llll, ll,,,,,,,,,,,,, ,,,,, ll,,, llllllllll lllll ,,lllll,,,,,,,,,, ,lllllllllllllll '''''''''''ll' ,lllll lllll' ,,,,ll''''''' ,,,,,,,,lllll,,,,,,,,,,,,, ,,lllll''lllll'''''' llll llllll llll ,llll' llllllllllllllllllll,l'lllll,, '''''lllll''''''''''''lllllllll ,,lll,,,,lllll,,,,,,,,,lllll lllll llll',,,,,llllllll,,,, lllll,,,,,,,,,, ,,,, llll' llll, llll,, lllll' ,llll, '''''''''lllll'''''''''lllll lllll ,llllllll''' 'lllll ,lllll'''''''lllll ,lllll llll' lllll' lllll ,,llll' ,,,,, llll ,llllllll,,, lllll lllll lllll'' ,lllll lllll' lllll ,llll' ,llll' lllll ,,llll'' ,lllll''''llllllll,,,, ,lllll'' 'llllllllllllllllllllll ,,,,,,,,,lllllll'' ,lllll lllll,,,,lllll' ,llll' ll,,,,llll' ''ll' lllll,,,,,,,,llll'''ll' ''' ' '''' '''' ''''''''''' ''''' '''lllll''' ''' '''''''' ''''llllll''''
562 :
デフォルトの名無しさん :2013/05/30(木) 21:17:51.43
/::::::::::::::::::::::::::> --‐'´─‐`--<:::::::::::::::::::::| ,i`ー、 |::::::::::::::::::ゝ'" ``''ー-‐ァ::| / ∠_ノヽlヽ_/ヽ、 |::::::::ヽ/ く::::7 //! l´ ̄| 「´| l !::::::::/ / / / , / , i ! ヽ! __」 L/ヽ| | | | `ヽ7 ,' / /‐‐/-./ /:| |‐- / i  ̄´l ,l_ ̄ ! ! ! ! ,! i ,' /i __」__ | /:::| /」_ /| ', / ノヾヽ.| |_.」 | ノ:| ノ i ,ア´ ,.-、`レ':::::::レ´,.-、`i::| i ,ゝ ,ノノ´ ヽ-'ー'' ̄ー' く__,| ∠___,! /::! ! l | |.l | !:| ,ハ i く__! |/i:::::: ヽ-' ::. `'´ ::|//レ' , 、 _,ィ‐、 ,! | ⊂⊃ _____ ⊂⊃:! l、_二-ァ ,r' イ i | |. /´ ̄`i ,ハ`ヽ / / / | ハ ト !.,____ン ,.イ:::::i::::::〉 / _,-ニ_`ー、 |\〈 ,.へ,,!ヘハ |ヽ. `''=ー-r‐ァ<´レi:::/、( r'´,/_ `} ゙l |ヽ )ヽ/ ヽノ、 ``'''ー-r' |::::::/ レ'::::::ヽ, `ー'f´r‐、ヽ、ノ ノ \ ヽ,i ';::\/i`ヽ!:::::i :::::i. `ーニ--‐'´ __\ ノ , ノ::(_ンハ、_)::::ノ ::| -‐、、 \二,ゝ、r、,.-'^ーr':::::::::::/::::!::::::::ゝ、r、/ ,ン / r ∠____,.ヘ. |:::::::::::::::::::i::::::::`/ `ヽァ'" (゙-─′ニ'ヽ`ヾヽ、 ,.::'" ̄`ヽ、____;;::-─-、/.,______/ ーフ ./ } | l ヽ /:::::::::::::::::::i::::::ヽ、:::::::::;:イ´:::::::::::`ヽ. /. / / |-=、_ノ /ヽ:::::::::::::::::::::::::::::::`:::::/::::::::::::::::::::::::::::':, r' /、ー'′/ rン´ ヽ/\;:ヘ:::::::::::::::ヽ::::::::::::::::::::∧/ヽ. ヽ_/ i、_ノ
abstractクラスはテンプレートメソッドパターンしか使ってない
abstractメソッドがなくても、 基底クラスとして提供するけどそのまま使われたくないクラスに abstractを付けることがままある
protectedを使いこなしてる俺ってなんかステキやん って思いたい時に使う
いろんなクラスに同じようなコードがちょっとずつ違う書き方と、微妙に違う挙動で書かれてる事が コードレビュー時にやっと分かった時に初めて使うのが現実
ふーんそうなんだ 勉強になるな でも個人レベルだと使わないよな 継承関係が3層ぐらいで似たようなクラス3個以上使うぐらいじゃないと意味がなさそう
まあinterfaceにしとけばいいかってのが多いかな
プロパティなんて誰が使うんだよ。
>>567 個人レベルでも使うというかgofのデザパタなんて趣味の方がよく使う。
継承階層は関係ない、というかその理論だと2階層目が一生作られない。
似たようなクラス2個でも意味があるな、というか実際にやる
それだけ同じコードを書いててバグが出た時に片方だけの直し漏れを防いだり
挙動を合わせるのは重要。
なんで3という数が出てくるか理解できるか?
ここまで有益な情報or議論なし
たまにゃそんな時もあっていい
if後置ってできないの? いちいち美しくないんだよなー
>俺もそう思ってた時期があったわw リアル馬鹿でしょ
>>577 C++にもないしJavaにもない。
大して可読性も上がらないのどころか馬鹿が書くと極端に実行速度が遅くなる。
ないほうがマシ。
Javaじゃあ言語仕様にないから、ほとんど中身のないGetXXX/SetXXXという アクセッサだらけになるアホくさい状況なわけだが。
propertyは確かに便利
publicでいいじゃん。
propertyに計算トリガ入れる馬鹿が必ずいる。WPFみたいに糞遅くなる。
584 :
デフォルトの名無しさん :2013/05/31(金) 01:30:38.41
>>582 Getだけ、Setだけって指定できない。
ちょっとプロパティで計算したぐらいで遅くなるPCってなんなの?
>>586 フレーム毎に10万回アクセスされるプロパティ
>>585 finalにできるならgetだけ的なものは可能
できないなら無理だけど
コーディングの細かいとこにこだわるより作るソフトの使いやすさに こだわったほうがいいと思う
△ 馬鹿が書くと遅くなる
○ 馬鹿が書いて馬鹿が使うと遅くなる
まあGetHoge()と比較してプロパティのgetterは重い処理を想起しづらいから
重い処理をいれるなというガイドラインはあるわな
>>589 はぁ?じゃあこんなスレ見るなよ死ねよ
どこかのスレと勘違いしてるだろ ここは初心者スレだ 議論したいならどこか池
死ねゴミw
メソッド宣言のときの Foo<Placeholder> って何?
粗大ゴミ 資源ゴミ 燃えるゴミ 死ねゴミ←new
ttp://hongliang.seesaa.net/article/16550502.html このページを参考にしているんですが、いくつかわからないところがあるので教えてください
const int ReflectedItemChanged = 0x400 + 0x1c00 + 0x4e;
0x400(WM_USER)、0x4e(WM_NOTIFY)というのはわかるんですが、
0x1c00というのがわかりません。調べましたがこれは何なのでしょうか?
int code = Marshal.ReadInt32(m.LParam, IntPtr.Size + OffsetCode);
あとこれなんですが、Marshal.ReadInt32というものがポインタから直に読み出すと書いてありますが
たとえば構造体hoge { int32, int32, int32, int32 }という構造体の場合、4バイトのメモリが4連続しているだけなんでしょうか?
あと第二引数のOffsetは前から何ビット目から読み始めるかってことですか?
最後にIntPtr.Sizeの値は32bit環境なら4、64bitで8で不変なんですか?
質問攻めですいません。お願いします
>>598 LVN_hogehogeというノーティファイメッセージは、この場合のUsefulListViewの親ウィンドウにWM_NOTIFYの形で送られるの。
だからのUsefulListViewというコントロール単体ではこれを補足することができないので、
おそらく親フォームのWndProcでキャッチして、子であるUsefulListViewにReflectedItemChangedという形で送り返すことに
この人が「決めた」わけ。
でも本当は0x204EなんてメッセージはWM_APP (0x8000) 以下だから勝手に使っていいわけじゃないはず。。
コモンコントロールのウィンドウクラスが決めて使ってる範囲だから。それともなんか知ってて使ってるのかも。知らんけど。
続く。
int code = Marshal.ReadInt32(m.LParam, IntPtr.Size + OffsetCode); アンマネージド構造体からデータを読む方法としてこのコードはまったくおすすめできない。 構造体のパディングによっては無意味な値を読む可能性もあるし、実際にこの場合でも32bitでしか動かないだろう。 typedef struct tagNMHDR { HWND hwndFrom; UINT_PTR idFrom; UINT code; } NMHDR; だからidFromもポインタサイズ(==8)なはず。 続く。
>構造体hoge { int32, int32, int32, int32 }という構造体の場合、4バイトのメモリが4連続しているだけなんでしょうか? Int32というかLONG (==4バイト)ならばほぼそれで正しい。詳しくは構造体 アライメント でググれ。 ただし4byte以下のメンバーが入ってきたりすると変わってくる。 また構造体の定義時に #include <pshpack8.h> とか指定されて並び方が変わったりするのでややこしい。 >あと第二引数のOffsetは前から何ビット目から読み始めるかってことですか? そうなんだけど、前述の通り決め打ちするとろくなことはないです。 >最後にIntPtr.Sizeの値は32bit環境なら4、64bitで8で不変なんですか? はい。 32bitプロセスならば4、64bitプロセスならば8。 ビルドの対象をx86にすると、64bit環境でも32bitプロセスとして起動するので4になります。
ほら荒れたろw
どうでもいいことに拘りすぎ ソフトは使用感が命
じゃあMacに移行するわ
WM_REFLECTというのかは知らんが、いくつかのメッセージで定義されてるよ OCM_NOTIFYとかみたいにOCM_接頭辞 メッセージリフレクションって言う
axwindowsmediaplayerでダブルクリックイベント取得する方法ってありますか axwindowsmediaplayer.mousedobleclik += new ・・・ ダブルクリックしても無反応なんですよね。 あと、mouseupイベントとかでもダブルクリック時 2回目の マウスupは拾えないです
ねーよ馬鹿 勉強しろ
(・∀.・) ヌルチンポインターエクセプション
ガッ
繧ョ繝惹クク みたいな文字化けをしているものを、 文字化け解消させるにはどんなコードを書けばいいのでしょうか? エンコードマニアックスによると、 ギノ丸 が文字化けしていない状態のようです
UTF8をSJISとして読んだ時の文字化けに見える SJISとして読んでいる事自体が問題なので ちゃんとUTF8として読もう
あるEncodingでバイト配列化 ↓ 別のEncodingでstring化 ↓ 出現する文字の頻度で日本語らしさを評価 逆に文字化けstringの出現頻度からEncodingの組み合わせを推測するのもアリ
BOM付きならまずそこで引っかかるけどね BOMがないと誤認はありうるから そういう場合は日本語らしさを判定するしかないが 解析していけば大抵SJISとして違反したバイト列に引っかかる
はい馬鹿が釣れたw
うんこ
nkfのソースでも見たら?
本当にバイト列だけ見て推定しなければならないような状態って テキストエディタを作るんでもなければ起こらないと思うけど HTTPも含め、プロトコルなら規定値なり指定値なりあるだろ
指定されたコードがあるのにそれ以外のコードでエンコードするから文字化けが発生するわけで...
>>601 わかりました。Marshal.ReadInt32使わずにMarshal.PtrToStructure使うことにします
>>605 メッセージリフレクションって言うんですね。少し調べてみます
Marshal.PtrToStructureで質問なんですが、LPTSTR型の入ったアンマネージ構造体が正常にマーシャリングできません?
http://support.microsoft.com/kb/327109/ja 調べたら上記のものが出てきたんですがMarshal.PtrToStructureは関係ないんでしょうか?
>>623 フィールドはIntPtrにしといてMarshal.PtrToString***メソッド使うと良いよ
構造体のメンバーのLPTSTRをStringBuilderにするという発想がなかったわ
おれも
>>626 だわ
Marshal.AllocCoTaskMemで割り当てりゃいいし
同意たしまして
WinFormsのテキストボックスとかのオートコンプリートで大文字小文字判別させる方法ってある? ソース見てもオートコンプリートの実装はネイティブ関数に頼ってるようでよく分からんし
msdn.microsoft.com/en-us/library/windows/desktop/bb776293.aspx オートコンプリート関連のインターフェイス一通り見てみたけど case-sensitivity関連のはなさそう 入力毎に候補リストを返すような機能もない やるとしたら自分で実装ってことになりそうだ www.codeproject.com/Articles/2607/AutoComplete-without-IAutoComplete ソース見てないから参考になるかもわからんがこんなのとか
そもそもAutoCompleteSourceの中でCaseSensitiveであるものがないんじゃね? ローカルのファイル名はそうだしURLもそうかな? カスタムでやるんならAutoCompleteStringCollectionを継承したクラスをAutoCompleteCustomSourceプロパティにぶち込めばいいとか
>>634 オナニーレスは控えてください
って
未成年者の禁煙は法律で禁止されています
みたいな言い回しだな
URLは、ディレクトリやファイル名の部分は区別されるものがあったような 仕様がどうなってるかは知らん。OSの実装に依るんじゃね
キチガイによる一行レスは透明あぼーん推奨ですよ
はあぼーん
プランク定数か
なるほど、自分の行為は荒しじゃないと思ってるんだ。 馬鹿だろお前
「長いものには巻かれろ」の真意を理解出来ないのは朝鮮人だけ
>>644 剥けてる人にはIDが付く仕組みみたいよ。
テスト
君は火星だね
VPN・海外串を使うとIDが付く仕組み まあすぐに規制されて使用不能になるけど
見事にIDついてる奴は荒らしレスだな。
まぁ普通の人はIDつかないしな
朝鮮人は出ていけ
ListViewのスクロールポジションを取得、設定したいのですが ありませんでしょうか? やはり、スクロールバーを自分で追加する必要があるのでしょうか? 理由: ListViewの更新を行う際全アイテムのクリアを行ってから追加している、 このため、更新を行うたびスクロールポジションが初期化されて使いづらい。
更新する前にTopItemを取得しておき、後からEnsureVisible そして死ね
Thx. ちょっとやってみる。 >そして死ね ???
一応出来たよw ちらつくことを除けばうまくいっていそうだけど
ASP.NETのDataGridで編集ボタンを配置したけど、 押してもOnEditCommandに書いたメソッドが呼ばれない。 消すとエラーになるくせに。なぜだ〜。
>>660 よしっ、ちらつきも許容範囲になった。
正直ちらつきがひどくて、どーなることかと思ったけど、
結果オーライということで
EndUpdateで再描画イベントが上がるだろうから、
治った理由が不明だけどw
寂しいやつだ
>>664 バグも直したヨッ
さしあたってお終い
(^^)/~~~
でも、極力全部入れなおすべきじゃないんだろうね。
更新部分だけ入れ替えれば、TopItem再設定する必要もないかもしれないし、
ちらつきもダブルバッファが効く可能性があるというか、効くだろうし。
MSに何らかの理由があるんだろうけど、Scrollbarプロパティ作ってほしかった
>>665 嘘ついて虚栄心を満たして自己解決しましたと・・・
オナニーするんならこないでくれない?
自己紹介はいいから。
>>667 オウム返ししかできないんだ
つまらないからレスしないでください
>>668 図星なんだろ?
オウム返しでもないし何的外れな事言ってんの
>>669 図星だから煽るんだろ?
いちいち反応せず自分を反省してください
>>670 お前が自分を反省するのが先
人に言う立場じゃねーだろ
オタケサン
>>672 意味不明なレスしてお茶を濁すのは止めようよ
ゴカイうまかっちゃん!
675 :
デフォルトの名無しさん :2013/06/05(水) 18:03:21.51
Graphics.DrawString についてなんですが、 パラメータのRectangleFに幅が0以下のものを渡すと無視されるのは仕様なのかなぁ どこかに書いてありますか? 例 e.Graphics.DrawString( "Bagooooon", this.Font, Brushes.Red, new RectangleF( 0, 0, 0, 100), StringFormat.GenericTypographic ); 幅が0以下だとまったく描画されないという挙動を予想したんですが
>>675 自分で実験して調べろよ
それが出来なければお前は向いてない
APIの挙動は仕様で確認しろ 自分の所ではこう動いたもん(キリッ は甘え
質問の論理が矛盾していてイラってくるな。
実験するといろいろ挙動おかしいな どっかに書いてあるんかな、ヘルプでは言及無いなあ
一時的にガベージコレクタを停止したいのですが そんなことって可能でしょうか? 無理だとは思うのですが念のため聞いてみました。
>>683 スレを知恵袋代わりに使うキチガイ発見
こういうやつはどこ行っても嫌われる
>>684 人間のクズを一時とはいえ知恵袋がわりに使ってやるんだから
感謝こそされ、非難されるいわれははい。
IDがあったほうがいいというのはこういうことだ 質問者の逆ギレである
キチガイは触らず透明あぼーん推奨。
なんで透明あぼーんするとそのことを報告したくなるんだろうか
>>683 なぜ止めたいと思ったのか聞いてもいいかい?
>>689 RenderTargetBitmapをnewしてるんですが、
その場所でたまに50msほど、Stop The Worldを発症してしまいます。
これがGCのせいなのかどうか見極めたいです。
>>691 発症じゃなくて発狂の間違いでしょ
勉強不足だから出直してきて
>>692 すみません。勉強不足なのは痛感しております。
>>693 じゃあ出直してきてよ
馬鹿なの?チョンなの?
自作自演には自作自演で対抗しなくちゃ
同じ暗黒面に堕ちたらおしまい
>>693 キチガイに触らないで。
CLR Profilerで見てみてはいかが
>>698 自演でしょぼい回答しないで勉強しなさい
>>698 ありがとうございます。CLR Profilerについて調べてみます。
なんでこの板だけID導入が遅れているのか意味解らん NGし辛いわ、自演しまくりだわデメリットしかねえだろ
>>701 最近までこんなに荒れてる事はなかった
だからID導入派が荒らしてるだけ
ID導入派はどうせムとは関係ない荒らししかしてないんだし、こいつらを追い出せば済む
>>700 テキトーな回答を真に受けてとりあえず「調べます」ですか・・・
あなたみたいなクズはまたここに来るんでしょうけど迷惑ですのでやめてください
>>703 自分が一番のクズなのに人をクズ呼ばわりするってどうなんですか
クズにはありがち
CLR Profilerを実行してみたのですが例外エラーが出て動きませんでした。
エラーが出たときはエラー内容を漏らさず書くといいよ 姉さん事件ですの時点で解決まで導けたらすごいよ
>>707 クズには無理なことを見越してのこの発言
うざいから書き込みしないで
クズが必死に努力したところを無碍にするのが最高の摘み
リストボックスをコンボボックスで切替えられるようにして、 さらにそれらを保存するにはどうすればいいんでしょう? 出来ればProperties.Settings.Default.XXXに入れたいんですが
>>712 お前みたいな馬鹿が質問しても何を得るもはない
煽ってるのにtypoる人ってかっこいい
得るもはない流れ
>>717 得るもってなんですか?
馬鹿じゃねーのお前
今日も得るもなし
光学機器のメーカーでエルモってあったな
>>712 質問内容が不明瞭だからこっちも状況を適当に妄想して答えるしかないが、
普通に考えれば
(a) ComboBoxで何が選択されているか
だけ保存すればいい。
「それら」とやらを保存する必要性はない。
「それら」とやらは(a)が決まれば自動的に決まるからだ。
前半の質問にも答えてやれよ
>>721 ありがとう
切替は出来たからそれでいけるとは思うんだけど
例えばリストボックスの中身を追加、削除したり
全く新しいリストを作れるようにした場合、
そのリストをコンボボックスの項目と結びつけたり
リストの中身自体の保存ってどうすれば良いんだろうか
単なる文字列のリストならSettingsにStringCollectionのプロパティを追加して変更があったときに更新すればいいべさ
リスト自体複数持つのならもうユーザー定義型をSettingsに入れた方がよろしい
>>723 おまえその程度の知識でもの語ってるのか?
誰かに聞く前に本広げろよ未熟者
>>728 レベルの低い人はこないでください
スレが低レベル化します
ゴミの中にも光るもの、得るもがあるはず・・・
つーかキチガイはWin32スレに帰ってくれよ 本当にこんなことして何の意味があるんだよ
>>732 お前がWin32スレ池よ
馬鹿はAPIをいじっててください
キチガイに意味を求めても仕方ないやろ 生きてる意味もないし
byte[] bytes =Encoding.GetEncoding("Shift_JIS").GetBytes("[ハートマーク]"); string result = Encoding.GetEncoding("Shift_JIS").GetString(bytes); "[ハートマーク]"から、sjisの範囲外のハートマークを除去して "[]"を取得しようと思ったのですが、"[あ?い]"とハートマークが半角?になってしまいました 変換出来ない範囲外の文字を無かったことにするにはどうしたらよいでしょうか
×"[]"を取得しようと思ったのですが、"[あ?い]"とハートマークが半角?になってしまいました ○"[]"を取得しようと思ったのですが、"[?]"とハートマークが半角?になってしまいました の間違いでした。
>>738 はい馬鹿が来た
本も広げないでやるから質問するはめになるんだよ
いいから帰れゴミ
>>739 文字コードのしくみもわからずこの発言
お前みたいな能無しはプログラミングやめろ
743 :
デフォルトの名無しさん :2013/06/09(日) 10:52:47.44
sshやりたい お前ら教えろください
俺を倒せる質問者はまだか
おじいちゃんもう10連敗でしょ
748 :
デフォルトの名無しさん :2013/06/09(日) 18:18:41.39
なんだここ素人の集まりか
データベースの勉強をしているんですけど データベースの読み込みをしたいんですが 起動しようとすると 「SqlExeptionはハンドルされませんでした。 ファイル C:\Users\Akihiko\documents\visual studio 2010 \Projects\LinqToSqlTest\LinqToSqlTest \bin\Debug\Comic.mdf の自動的に名前が付けられたデータベースをアタッチできませんでした。 同じ名前のデータベースが既に存在するか、指定されたファイルを開けないか、 UNC 共有に配置されています。」というエラーになります。 解決法を教えていただけないでしょうか。
あきひこ君、エラーメッセージを読んだ感想と検証した対策を書いてみなよ
> 750 あきひこ 君お疲れさま。 エラーメッセージをちゃんと書いたのは偉いけど、肝心の『何をどう』起動したのかを書いてくれよ...
>>750 リアル馬鹿?
初歩的なことを長々と書いて
3行で読む気失せた、消えろゴミクズ
文句は未確認飛行Cに言ってくれ 俺らの管轄じゃあない
>>754 アニヲタがキモがられるのはこういうこと
>>750 お前みたいな馬鹿観てるとイライラする
本広げりゃわかることを長々と書いてアホくさ
理解力ないのか?
駄目だよキミぃ 駄目な奴に駄目だ駄目だばかり言ってても 駄目な奴は駄目なんだから 駄目駄目言ってないで、ダメだししてやらないと駄目じゃないか 駄目な奴だなぁ
>>757 グダグダ言ってる暇があるなら他人に頼らないで勉強しようね
素人
テキストボックスで一定行間隔でラインを入れたいんだけど、どうすりゃえぇねん
オーナードローについて調べてみたけど、 システムが描写する部分を奪い取る処理だと認識した これであってんの? 横取りするのは良いとして、例えば30行毎にって考えるとどうやって行数カウントして条件付ければ良いんだろう? アドバイスください
テキストボックスの描画をカスタマイズするのは不可 自分でテキストボックスのようなものを自作するしかありません それかWPFなら比較的簡単にできるけど
えっ じゃあどうすりゃ良いの
コントロールウィンドウにGDIで文字と線を書くことくらいできんだろ あとはIMEとカレット周りをチョチョイと自分で実装すりゃ出来上がりだ
>>765 お前みたいな気持ち悪い奴が答えるから
スレが臭くなるんだろうが
ゴミ
>>762 すぐ調べりゃわかることをブログみたい書き込む
こうやってスレを私物化する奴が一番キモイ
>>769 いいかげん死ねよお前
あーもう。死んで。お願い。
>>770 それ完全にお前だろ
自分がスレを荒らしてる自覚を持て馬鹿
初心者用スレで初心者叩いてストレス発散乙
>>759 ラインなら文字で作れるけど、それじゃダメなん?
ーーーーーーーーーーーーー
↑
こういう感じで。
>>773 うーん
できればテキストを弄らず「ここが境界線ですよ」ってのを明示したいんだ
最悪その方法をとるにしても、「●●行毎に」ってのはどうやって取得すりゃいいんだろ?
配列になってるだろ
>>770 本当のこといわれてムカっとなるなよ初心者
Visual Studio Express 2012
コンソールアプリの事をひと通り学習した後、FormアプリをMSサイトのチュートリアルをひと通りやって、再度最初の問題からはじめ、
内容を自分なりに書き換えたりしながら、覚えている最中です。
そこで質問です。
http://msdn.microsoft.com/ja-jp/library/dd492135.aspx このチュートリアルで作るビューアを基に色々改造しながら作動を覚えて言ってる最中なのですが、
Form→TableLayoutPanel→PictureBox
という重なり順でFormデザイナーで作っていくのですが、PictureBoxを配置した後でTableLayoutPanelとPictureBoxの間にPanelを配置したい場合、Formデザイナーではどうやったら良いのでしょう?
PictureBoxを切り取って、Panelを配置してから貼り付けなどではなく、もっとスマートなやり方でもあるんでしょうか?
というのも、まだこの段階では小さなプログラムですが、いい加減作りこんだプログラムでこの手の変更する場合、切り取り、貼り付けではうまくいかない事もあるように想像してます。
Photoshopのレイヤーみたいに、Formデザイナーで簡単にある階層へ挿入したり出来るのでしょうか?
それとも、ソースを手書きで修正するのが普通なのでしょうか?
よろしくお願いします。
>>778 は?
「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
>>781 完全にキチガイじみてるなこいつ
お前はC#をいじるな
>>783 いいからババアの下痢便オムツ交換作業に戻るんだ
>>781 表示→その他のウィンドウに「ドキュメントアウトライン」というのがあって
そこで親子関係やZオーダー等をいじることはできるよ
>>784 嘘教えてくるクズ発見
だからスレが嘘しかなくなるんだよゴミ
.net framework client profileでコンパイルしたexeのほうが フルセットの.net frameworkでコンパイルしたexeより 起動が速いでしょうか?
>>786 なんで自分でやる前に人に聞くの?
馬鹿なの?うざいわお前
>>786 こういうスレをブログがわりにしてる奴が
ム板をだめにしてる
実験では同じっぽいのですけど理論的にはどうなのかなと
790 :
781 :2013/06/12(水) 10:14:06.66
>>784 >表示→その他のウィンドウに「ドキュメントアウトライン」というのがあって
ありがとうございます。見つかりました。
今は時間がないんで、検証できないですが、どうにかできそうです。
>>785 vs2010と勘違いしてたんだろ
vs2012の機能だよ
理論と論理って違うの?
こういうのはしれっと嘘教えておけばいい
ID出ればいいのに 初心者スレで暴れてるやつが特定できていいのに
いつも願望形で実行に移せない愚か者
>>794 ID出そうとしてわざと暴れてるんだぜこいつ
アク禁にしてやろうぜ
>>796 荒らしてるの完全にお前だろ
スレがゴミになる原因はお前
なんでこのスレに居座るの?
口調が同じくせに複数安価つけててワロタ
>>786 少なくとも.NET 4/4.5なら変わらない
一部dllを使えるかどうかの差でしかないから
3.5は知らん
.NET4.5からclient profileはなくなった。 .NET3.5はclient profileだけの状態にするのが至難の業。
>>802 お前の薄っぺらい知識は聞いてない
帰りたまえ
口調が同じだと指摘されて語尾を弄る奴wwwwwwww かわいい
人を騙せる人間は自分のことを正しいと思える人なんです。 逆に騙される人間は自分が本当に正しいのかといつも不安な人なんです。 『平成猿蟹合戦図』朝日新聞出版
>>805 ふーんなるほどね
それ完全にお前だわw
C#きもい
C#perキモイー
>>777 stringでしか取り出せないよ。
効率悪いからTextBoxを拡張するより一から作り直した方が良いと思う。
>>809 こういう初心者本かじりつき野郎の言うこと信じたら終わりだよ
>>805 関係ないが、詐欺師ほど自分たちが詐欺を行ってることを自覚してる。
同じ穴の狢はそのことを隠したくてしょうがないのですって書いてあるように見えるのは気のせいか?w
キリスト教徒は自分が詐欺師ということを自覚しているのか?
>>812 実際に福祉や、現実社会への奉仕をしてるのは神ではなく、信者だからな。
神に救いがないから、人にそれを求め続けてるから自覚あるんじゃね?w
>>809 配列ってのはLinesプロパティのことを言ってるんだと思う。
まぁ自動で折り返されたのは取得できないけど。
>>809 TextBox継承してWM_PAINT捕まえてライン上書きしたらできない?
と思ったけど位置調整とか面倒そうだね
リッチテキストでなんとかならんか?
>>813 >実際に‥‥奉仕をしてるのは神ではなく、信者だからな。
すばらしい洞察だ、じゃあ私も信者になろう
>>820 いつまで間違いを気にしてるの?
だからお前は馬鹿なんだよ
WebMethodってググってもあまりヒットしないんですが 人気が無いんでしょうか?
>>825 キミにはもっと知性の感じることのできる煽りを期待したいな。
>「お前が馬鹿だから」
まさか高校くらいはでてるんだろう?
テキストボックスでの改行の削除の方法教えてください… もう意味が分かりません…
\nをreplace
>>830 は?c言語もやったことないの?
マジでキモ過ぎカエレクズ
お前のような雑魚がアプリ作れると思うなよ
なんでそこでcのはなしに?
キチガイだから
\nを知らない馬鹿が発狂w
vbCrLfだろJK
いやvbNewLineだろ
そのような環境依存のものは認めない
盛り上がってまいりました!
840 :
デフォルトの名無しさん :2013/06/14(金) 14:49:47.30
ジェネリクスのwhere制約でintやfloatなどの数値だけ許すにはどうすればいいのでしょうか?
Genericとプリミティブな数値型は相性が悪い。 overloadも検討する。
>>843 オウム返ししかできないんだ
だからお前はコピペプログラムしか作れないんだよ
>>840 今のところ方法はありませんので、今後にご期待ください
ざまあww
数値型って型はないからなぁ 数値型だと思う型をずらずらと書くしかないんじゃないの
\r残ってたらお前のせいな
849 :
デフォルトの名無しさん :2013/06/15(土) 09:15:25.12
ReplaceでNewLine置き換えても残るとかマジ鬼畜 ツールバーからdelがショートカットになってる削除機能無くしてやった
¥r忘れてるっつーか知らない奴多いよな
Cに慣れてるとそれで良いと思っちゃうんだよね 改行入れる作業した時にすごく困ったからそれは知ってた
pictureboxに画像が読み込まれてるか否かを取得するにはどうしたら良いのでしょう?
ごめんなさい。自己解決です。
デザイナでフォームにたくさんのボタンを配置してプログラムでCaptionを設定したいのですが for文の中で順番に設定するにはどうしたら良いでしょうか。 与えるテキストは配列から取り出だせるのですが、 Buttonのコントロールの番号をfor文のintの値を使って指定する方法がわかりません。 よろしくお願いします。
別に順番にやる必要はないじゃん? コントロールの番号ってのが何指してるのか知らんけど Nameプロパティ辺り見ればいいだろ多分
>>856 CaptionってVBじゃないんだから...
それはともかく、ローカルでButtonの配列を一時的に作ればいいだけ。
var buttons = new[] {button1, button2, ...};
>>856 ボタンの命名ルールがよくわからんけど
button00とかそういうのなら"button"+i.ToString("00")とかやれば
名前は作れるけど問題はbuttonのインスタンスを取得しないといけないので
From配下のcontrolsの中からbutton00などといった名称で検索を
かけてインスタンスを取り出すとかしないとだめ
ああwすまん勘違いした でもボタンの増減にあわせてわざわざそれ修正かけるの?
>>858 20個くらいの時はそれでやったことがあるのですが、今回は300個くらいあるので
コードで全部は書かない方法でやりたいです。
フォーム内のボタンを検索してnameプロパティで判断して登録していく方法をやってみます。
ありがとうございました。
>>863 じゃあ文字列の配列はデザイナーが自動的に用意してくれるの?
それから、ミスでコントロールの名前を規約どおり付けなかった場合、
そのミスをコンパイラが自動的に検出できるの?
こういうのは変な小細工せずにベタに書いた方がいいと思うけど。
ボタン300個て壮絶なUIだねw
foreach (Button btn in this) はダメなのか・・・ 文字列の配列は一つの文字列変数からプログラムが定義するようにします。 やりたいことは例えて表すとフォームに48個のボタンを配置して string moji = "1234....asdfg....zxcvb....."となっているものを それぞれのボタンのtextに設定していきたいという感じです。 (実際はたくさんの文字のボタンを表示してそれを押したら文字コードがテキストボックスに出るというものを作っています)
300個のボタンの中からどれを押すのか人間は判断できるんだろうか ボタンを押すのは人間じゃないのか
formのloadイベントあたりでform配下のコントロールを全部検索して 同じような命名ルールの連番ボタンだけを抽出してList<T>に突っ込んで おけばいいだけじゃね? デザイナーで個数が増減しようが対応可能だぞ List<T>が嫌なら抽出後に配列化すればいい
普通300個ものボタンをデザイナで配置したりするか? 俺ならやらん。プログラムでボタン生成するぞ
すげーな 笑ったわ
300個のボタンって山田ボイス(笑)でもするのか
順番に押さないとPCが爆発する
874 :
デフォルトの名無しさん :2013/06/17(月) 09:47:15.73
文字列string中に特定charが何回現れるかカウントする最高に速い方法を教えろ str.Length - str.Replace( ch, "" ).Length 以外でな
>>873 おんなじことがぱっと頭に浮かんだ
画面に何百もボタン埋め込むようなUIってマインスイーパーくらいしか思いつかんわ
(もっともあれはボタンコントロールじゃないが)
ボタンを10000個くらい配置すれば、立ち上げただけでリソース不足になるとかな
>>874 ループして素直に1文字ずつ見るのが一番速いに決まってんだろ、このアホ
let使ってLINQで書くとか
速さよりコードの短さ、簡潔さを気にしてるように見えるな
stringにsort掛けてIndexOfで文字列先頭と最後尾から検索したらだめなん?
なんじゃこりゃかえって遅いんじゃないこれ private static int count = 0; private static int counter() { count++; return count; } static void Main(string[] args) { string str = "abcfGdsdGderkklkGkjjrtGjjjj"; var query = from chr in str where chr == 'G' let cn = counter() select cn; foreach (var ch in query); Console.WriteLine("{0} の中に 'G' が出現する回数は {1}", str, count);
delegateはインライン化されないからどうしてもそこがネックになる。 IndexOfはStringComparison.Ordinal必須。
これでいいやん string str = "abcfGdsdGderkklkGkjjrtGjjjj"; var query = str.Where(chr => chr == 'G').Count(); Console.WriteLine("{0} の中に 'G' が出現する回数は {1}", str, query);
ついでに汎用化 string str = "abcfGdsdGderkklkGkjjrtGjjjj"; char ch = 'j'; var query = str.Where(chr => chr == ch).Count(); Console.WriteLine("{0} の中に '{1}' が出現する回数は {2}", str, ch, query);
C#のラムダ式ってそれだけで十分難読化を達成してるなw
>>886 おまえのあたまがわるいだけ
ぜんぶひらがなでかいてあげました
>>887 じゃあラムダ式で何か書いてみろよ
書けない癖に人の事を頭悪い呼ばわりしてんじゃねーよ
ラムダ式が解り辛いって >chr => chr の表記が解ってないだけじゃね?
いいから何か書け
>>887 人を馬鹿呼ばわり出来るだけの何かを書け
書けないんだろカス
>>887 分かったら二度と人を馬鹿呼ばわりするんじゃねーぞ
ラムダ式めったに使わないから、 毎回ヘルプ見てるw
このスレって初心者が馬鹿にされるとなぜか回答者がすぐに叩かれるよな
ばかにからまれている わらわらわら
>>894 いいからプログラム書いてみろや
書けない癖に
オギノ式やねじ式ならわかります
var count = str.Count(chr => chr == ch);
899 :
デフォルトの名無しさん :2013/06/17(月) 19:33:35.83
明らかな自演でした
電子の妖精って言うくらいだから 俺らみたいにマウスとキーボードでぽちぽちしないんだろう
でも便利なんだよなぁw
慣れれば便利そうではある
じゃあこの設定画面を国際化対応しといてね♪ っていわれたら死ぬるぞ
使うほうが日本語を覚えればおk
コンソールアプリの入門サイトなどに出てくる、 ("{0}さん,こんにちは!", name) 的な {0} {1}使った文字列表示方法って、Formアプリのボタンのテキストなんかには使用できないのでしょうか?
String.Formatを使う
>>908 ボタンのTextを String.Format() で設定しておけばいいんじゃないかなと
非常に簡単 string name = "Hoge", str = String.Format("{0}さん,こんにちは!", name); Console.WriteLine(str);
>>914 ポーリングを使う方法と割り込みを使う方法があるけどどちらがいい?
USBなんかは差されるのをポーリングで待機し、差されたら後は割り込みで処理している
>>915 自分はそこらへんぜんぜん詳しくないので、シンプルなほうでお願いします。
やろうとしていることは、Skypeのマイクミュートに設定しているCtrl+Mが押されたらミュート中、ミュート解除の表示を切り替えたいだけです。
ああそうかUSBはバスマスタじゃないので(リムーバブルハードウェア)、データ転送以外の コマンドの送受信もポーリングかよ 完全なバスマスタにするには電源投入前にバスに接続されていなければならず、仕方ないのか いつもデバイスドライバを通した後のプログラムしか書いてなかったので気が付かなかった となるとポーリングしかないのか
キー入力の待機はWaitForSingleObject()でタイムアウトを指定すればいいし、 そのスレッド内でキー入力があればコールバックされるようにすればどう?
ソフトウェアキーボードを作りたいです 以前に.netには無いからWinAPIのhogehoge使えってあったと思うのですが教えてくだしあ
920 :
デフォルトの名無しさん :2013/06/18(火) 20:28:22.13
USB2.0まではとにかく安くするために 糞な仕組みになってるからな でもUSB2.0でストレージとか用途が広がりすぎちゃって USB3.0で改善されてるみたいだけど
USBハブがスイッチングハブみたいな作りになったけど後はあまり変わらないんじゃ・・・ でも外部ストレージの速度が大幅に上がってeSATAは事実上廃規格化したな
USB外部ストレージって電源入れっぱなしが基本なの? なんか電気代が勿体無い・・・
>>922 今時の大抵の外付けHDDは、一定時間アクセスが止まると勝手に省電力モード(待機モード)に入ってディスクの回転止まりますよん。
>>923 それが故障が多発する一番の要因になっているというのは皮肉な話だよな
ノート用HDDなら当然だが、デスクトップHDDまでそれをやる(WDのGreenの
IntelliParkとか)ので壊れてしまうので、DON'TSLEEPを常駐させてヘッドを
待避させないようにした方が速いし壊れないというのは皮肉な話だ
>>922 USB3.0からはポーリングがほとんどなくなり、かなり省電力になってるよ
今時のHDDはまともな電源を使ってればスピンアップ時に壊れないよ。 電源がプアだと厳しいけど。 サーバ用HDD以外は長時間の連続稼働への対応が完全ではないから、 適宜休ませてあげるのが良いよ。
1日10時間運転で7年は壊れてないけど 壊れる人ってどういう使い方してるんだろう
外れつかむと壊れるよ
投げる、落とす、加熱する、購入前に神社に御参りしない
HDDって製造ラインではコツンと当てただけで工程やり直しというくらい シビアな管理をしているのに、出荷された後の扱いがぞんざいだよね。
質問です。 FormにTablelayoutpanelを、そこにPanelを置き、そのPanelにPictureboxを置いてあります。 他にボタンを数個、ラジオボタンを数個、それぞれFormデザイナーで置いていきます。 ボタンクリック等のイベントハンドラをForm1.csに自動で追加していき、そこに処理内容を入れるのですが、 そのイベントハンドラ内で共通の変数を使いたいのです。 namespace test001{ public partial class Form1 : Form{ public Form1() {InitializeComponent();} private void button01_Click(object sender, EventArgs e){} private void button02_Click(object sender, EventArgs e){} private void button03_Click(object sender, EventArgs e){} }} この状態で、PanelとPicturebox内の画像サイズを代入した変数を上記のイベントハンドラ内で使いたいのです。 それぞれのイベントハンドラ内にいちいち記載するのではなく、外部に記載して共用したいと思い、イベントハンドラと同じ階層に int psx = panel1.ClientSize.Width; int psy = panel1.ClientSize.Height; int imx = pictureBox1.Image.Width; int imy = pictureBox1.Image.Height; と記入してもエラーで使えません。 int test01 = 123; なら使えるので、Formの部品の状態をココでは取得出来ないのだというのはなんとなく分かるのですが・・・ こういう場合、どこにどう書き込んだら良いのでしょうか? こういう状態のどこに問題があるか調べる際の検索キーワードなども教えて下さい。 よろしくお願いします。
( ・∀・)つ〃∩ヘェーヘェーヘェー 知らんかった
非同期のイベントはあまり見かけないよ。
非同期だったらマニュアルに記述がある。
すくなくともButtonのClickは同期。
>>930 とりあえずエラーの内容を書こうな
>>931 >>
ありがとうございます。
その内容を把握できるまで至っていないので正確では無いですが、
int psx = panel1.ClientSize.Width;
これを記述する段階で
フィールド初期化子は、静的でないフィールド、メソッド、またはプロパティ'test001.Form1.pictureBox1'を参照できません
等のエラーが帰ってきます。
この段階でイベントハンドラ内にはこの変数に関わるものは何も書いてないので、この変数の宣言を書く段階で間違ってるのだと思います。
>>931 さんの、その書き込み内容が問題解決の方法でしたらすみません。
>>933 さん。行数制限で色々編集してる時にエラー内容間違って消してしまいました。すみません。
すべてのイベントハンドラ内で使用するために、共通する変数を一度の宣言、代入の記述で済ませる方法がしりたいです。
この状態では、取得しようとしているものが静的じゃない・・・というのが駄目だというのはなんとなく・・・
Panelもその中のPictureboxもサイズが変動するので、初期化という感じではないのかなぁ・・・と。
すみません。まだ始めたばかりなのでこのレベルの理解度です・・・
それが書けたとしても、実行されるのはコンストラクタの先頭だから public Form1() { this.psx = panel1.ClientSize.Width; this.InitializeComponent(); // ここでデザイナで設定したパネルサイズが適用 } ってことになって多分意味ないよ プロパティで int PanelWidth { get { return this.panel1.ClientSize.Width; } } とか書いとけば?
>>935 前半の説明ありがとうございます。
凄く分かりやすいです。
そして、後半のアドバイスのコードで実現出来そうです。
コードをコピペしただけでPanel幅の数値をイベントハンドラ内で取得出来ました。
まだ、それがどのような意味のコードなのかを殆ど正確に把握してないので、これからそれを元に勉強します。
ありがとうございました。
コンボボックスで新規項目が入力された時にイベントって何かあるんですか?
入力されたの定義が曖昧だが テキストが変更されるごとならTextUpdate 入力したのを確定したときならSelectionChangeCommittedかな これは専用ではない
教えないよ 俺主催のイベントはいつでもサプライズさ
「うまく動きませんでした」
具体的には
if文の中に
MessageBox.Show("同名のアイテムがすでにあります。");
//編集をキャンセルして元に戻す
return;
と書いたのですが、文字数分MessageBoxが出て、
しかも入力した文字が逆順に並んでしまいます
更に、既存の他の項目を選んだ時、その項目名が増えてしまいます
>>942 どうもすいません…
がたがた言わずにソース晒してボロクソいわれて泣きながらふて寝しろ
private void cmbbox_TextChanged(object sender, EventArgs e) { int idx = cmbbox.Items.IndexOf(charaGroup.Text); if (idx == -1) { MessageBox.Show("同名のアイテムがすでにあります。"); return; } else { cmbbox1.Items.Insert(0, cmbbox1.Text) } } 他のイベントハンドラ内でも同じ記述で試しました
そう言う用途ならValidatingの方が良いかもね
>>915 ,918
レス遅くなってごめんなさい。
keycodeでMとかLCtrlとか判断して、if(mute == 0)とか使ってなんとかなりそうです。なんで最初から思いつかなかったんだ…・。
ありがとうございました。
ジェネリックメソッドで匿名クラスを返す際は、匿名メソッド仲介しないとだめなんですか? こんな感じのやつを返したいんですが、実現できません public static Type GenericMethod() { return new { Name = "hogehoge", Age = 22 , }; }
・ジェネリックと言いつつ全くジェネリックじゃない件 ・外に出すようなのに匿名型使うな ・dynamic ・Tuple
ini管理クラスを作っている キーが存在しない場合、nullかexceptionどちらか返すべきか もちろん仕様しだいってことは知っている それぞれ実装した場合どんなメリット・デメリットが発生するか教えてほしい
場合によるとしか言えんだろw
>>953 既存のライブラリ
っといってもかなり改造済み
nullにした場合、キー自体がないのか値が空なのか区別できない 常に文字列で返してnullと""で区別するとかならまた違うが
return "ぬるぽ";
GetValue -> キーがないときスローする TryGetValue ->キーがないときfalseを返す みたいなよくあるパターンとか パラメーターにbool throwOnMissingを取るパターンとかあるわなー
??使えるからnullが好きだな 叩かれそうだけど
デフォルト値とか使い勝手がいいから自分で使うなら例外は嫌だなぁ
すみません質問です。 Formアプリの基本的な物をいじりながら勉強中なのですが、 勉強していくうちにそこそこ見栄えのするアプリになってきてしまって、当初作りたかったアプリに近いものへ・・・ しかし、勉強しながら作ってたので、クラスやイベントハンドラ、メソッドなんかがバラバラの順番で並んでて非常に可読性の低いソースになってしまいました。 ブロックごとに記載位置の上げ下げを簡単にやる方法ってあるのでしょうか? カット・アンド・ペーストでやっているのですが、非常に面倒で・・・
>>960 Visual Studioじゃないの?
>>961 Visual Studio Express 2012です。
ボタンクリックやら、ラジオボタンの作動やらのイベントハンドラを順番ばらばらで追加して行ったり、
勉強がてら自分でメソッド書いたりした順番が無茶苦茶なんで整理したいんですが、カット・アンド・ペースト以外の方法はあるのでしょうか?
どうせ自分しか読まないんだから多少アレでもいいじゃん 次ガンバレ
964 :
デフォルトの名無しさん :2013/06/22(土) 08:19:43.67
>>960 アウトライン表示にすればメソッドの移動は楽になるんじゃねか?
アウトライン表示についてはMSDNの「コードをアウトライン表示する/非表示にする」を参照してけれ
どうもありがとう それでやってきます
メソッドを閉じた状態で行番号の左側をクリックすればメソッドごと選択状態に出来るから それでD&Dでの移動やってる
微妙に関係あるようなないような話だけど、VSのエディタの上部の右側のドロップダウンに フォーカスするキーボードショートカットって何でないんだろうね。 仕方がないから[Ctrl] + [F2], [Tab]でやってるが面倒でしょうがない。
RichTextBoxで入力の無い方向に矢印キーを押すと、警告音が鳴るのですが これを止める方法はありませんか
さっきVIPにいましたね君 とりあえず、WndProcをオーバーライドしてWM_KEYDOWN潰せば鳴らないですよ あとはカーソル位置を判別すればどうでしょう
あれだけ暴れてりゃバレますよね すいません 勉強不足のため、WM_KEYDOWNを潰す、という作業がいまいちイメージできません もう少し具体的に教えていただけないでしょうか
ユーザー定義のクラスってどの段階で個別のCSファイルに書くん?
個数と単位(個、セット、etc)を別の変数で定義したクラスがあり DataGridViewのDataSourceでそのクラスを選択した時 個数と単位を同じ列に合わせて表示することはできますか?
どのタイミングでも別によくね?
モデルとビューがあるんですよね?じゃぁ中間の受け渡し用途でモデルビュークラスつくりゃぁいいんでないかい?知らんけど。
protected override void WndProc(ref Message m) { base.WndProc(ref m); if (m.Msg == 0x0100) { return; } } とやってみましたが、音が消えません…
>>975 base.WndProc(ref m);
の意味わかってる?
解ってたら悩まない あと、==もNO GOOD
>>971 最初から
小さくても機械的にファイル分ける
ていうかクラスってそんな適当に作るもんじゃないから
規模はだいたい設計の段階で最初から予想できる
if (m.Msg != 0x0100) base.WndProc(ref m); せめてこうでしょう
え…ダメ…なんですか? ダメなんでしょうね… 継承元の部分で既に鳴ってるんですよねきっと baseを消すとやはりキーボードの入力自体を無効にしてるみたいです ==がNGな理由は何なんでしょう?
base.WndProc(ref m)の中で音を鳴らしてるので 特定条件かつWM_KEYDOWNの時「に」実行しない、が正解
なんでKeyDown潰す方向になってんだ?
すいません、ちょっと頭が茹ってるのでうまくまとめられないんですが if(WM_KEYDOWN == true) { if(現在位置より上に行が無い && ↑を押された) 無視 if(現在位置より下に行が無い $$ ...) 無視 if(現在位置より左に文字が無い...) ... } って感じなんでしょうか
984 :
デフォルトの名無しさん :2013/06/23(日) 01:23:23.82
日本人ってどうして細かいことにこだわるのかね 与えられた部品でなんとかしろよw そんなことに労力かけたんじゃあ.net意味がねえ
>>982 RichTextBoxで文字が移動できない方向にキーを動かすと音がうるさいって悩み相談があって
消す方法の一つとして提示しただけよ
986 :
デフォルトの名無しさん :2013/06/23(日) 01:27:09.58
OSのサウンドをOFFにすればいいだけちゃうの?
したくないんだって あくまでもアプリケーションの中でソフト的に消したいんだとよ
↑↓同時押しした場合って別々にイベントが発生するのかなぁ
989 :
デフォルトの名無しさん :2013/06/23(日) 01:30:16.73
>>987 OSをvista以降に限定してアプリ単位でサウンド絞れば?
というか細かすぎだよ
IT更新国なわけだw
どうでもよさそうなところで引っかかりすぎなんだよw
.NETでコモンコントロール使った場合インポートアドレステーブルとか同処理してんやろ 分かればAPIフックでも消せるかもな
短芝罵倒したいだけなら寝とけよ 邪魔だから
ググッてみた感じだとRichEditそのものの機能としてはBeepを無効にはできないみたいだね。 あっても良さそうに思うんだが。 ところで短芝って何?w そんな単語初めて見た
上二行だけ句点が打ってあるのは何か意味があるのだろうか
シーシャーフ。
>>993 >> というか細かすぎだよ
>> IT更新国なわけだw
>> どうでもよさそうなところで引っかかりすぎなんだよw
ENM_KEYEVENTSは立ってるみたいだしEN_MSGFILTERでハンドルできそう むしろ矢印で進めないかどうか判定する方が難しそうだな。特に下キー。 面倒くさいので試さないが
乙
WPFかwinformか人生の選択が今はじまる
1000ならGTK#がはじまる
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。