ふらっとC#,C♯,C#(初心者用) Part92
ふらっとC#,C♯,C#(初心者用) Part92
元スレ
1 :名無しさん@お腹いっぱい。:2012/04/26(木) 21:32:32.95 ID:RzRn9VkL0.net
ふらっとVisual C#,C♯,C#(初心者用)
このスレッドは
「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
ほかのスレッドでは恐ろしくて書き込めないような低レベル、もしくは質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からない場合など、勇気をもって書き込んでください。
内容に応じて、他スレ・他板へ行くことを勧められる、あるいは誘導される場合がありますがご了承下さい。
なお、テンプレ2行目が読めない回答者は邪魔なので後述のC#相談室に移動して下さい。
>>980を踏んだ人は新スレを建てて下さい。
>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。
関連スレ
ふらっとC#,C♯,C#(初心者用) Part91
http://toro.2ch.net/test/read.cgi/tech/1335089085/
C#, C♯, C#相談室 Part71
http://toro.2ch.net/test/read.cgi/tech/1332575004/
こんな感じでソフトウェア板に立てたらどうかな
363 :名無しさん@お腹いっぱい。:2012/06/29(金) 17:47:20.97 ID:WHdThZGy0.net
598 :名無しさん@お腹いっぱい。:2012/11/10(土) 12:17:24.00 ID:wcfboVoB0.net
80 :名無しさん@お腹いっぱい。:2012/04/30(月) 18:05:04.00 ID:Lf0w4ZcY0.net
64 :名無しさん@お腹いっぱい。:2012/04/29(日) 22:53:51.89 ID:5gSo7RFr0.net
>>61
まあ、変な基準でまとめると全く無くなる。
でもたとえば、ファイルパスを入力するテキストボックスと、参照ボタンのセットとか、
意外とよく使う組み合わせ、ってのは多いからな。
>>60のいう4つくらいまで、っていうのは何だか凄いな、と思うけど。
レイアウト系のパネル配置し出すと、4つなんて容易に越えてしまいそうなもんだが・・・
595 :名無しさん@お腹いっぱい。:2012/11/10(土) 12:14:48.88 ID:b7/ZFjTd0.net
最近の九官鳥はキーボード扱えるようになったらしいな
すごいね
719 :名無しさん@お腹いっぱい。:2015/10/13(火) 22:06:36.36 ID:OtLkFU4S0.net
勝手に付けたら付けたで意図しない文区切りとなり、バグ取りで発狂するんだろ
273 :名無しさん@お腹いっぱい。:2012/05/31(木) 15:17:39.08 ID:jGAKMQam0.net
129 :名無しさん@お腹いっぱい。:2012/05/04(金) 23:10:59.12 ID:Aa102tK60.net
どうせ課題の答えでも聞きに来たんだろ
聞く態度もなってないし問題丸投げで聞くし
こうこうこういう風にしたけど出来なかったとかいうのもない
まったく考えないでクラスの優等生に聞きに行くようなタイプ
21 :名無しさん@お腹いっぱい。:2012/04/27(金) 00:04:32.27 ID:Op9+MQob0.net
interface I{ int Hoge(); string Hoge2(); }
こんなのを作るより
class C{ public Action Hoge; public Func<string> Hoge2; } こんなのを作って
new C{ Hoge = () =>{ … }, Hoge2 = () => “hogehoge” }
こうしたほうが早いしわかりやすいし個別に設定できて汎用性も上だから
もうinterfaceを作る意味は無いはず
678 :名無しさん@お腹いっぱい。:2013/03/30(土) 17:00:26.43 ID:J1xoPH/40.net
C#を使って特定ウィンドウダイアログ上の「×」ボタンをクリック
しようと思って書きコードを書いているのですが
うまく起動ダイアログの「×(閉じる)」ボタンをクリックする事が出来ません。
どうすればWindows API を使用して閉じる事が出来ますか?
IntPtr h = FindWindow(null, “自動再生”);
IntPtr h6 = FindWindowEx(h, IntPtr.Zero, “Button”, “×”); // ← ???
PostMessage(h6, WM_LBUTTONDOWN, 0, 0);
PostMessage(h6, WM_LBUTTONUP, 0, 0);
56 :名無しさん@お腹いっぱい。:2012/04/29(日) 22:09:46.37 ID:sYMu1fUT0.net
VC#のデザインでコピーして貼り付けた時、Nameプロパティをコピー元に似せる方法ってないですか?
input_data_Box1ならinput_data_Box2とかinput_data_Box1(1)とかになってほしいです・・・
668 :名無しさん@お腹いっぱい。:2013/02/14(木) 14:47:59.28 ID:LSJDSwcq0.net
539 :名無しさん@お腹いっぱい。:2012/11/01(木) 20:10:01.41 ID:3QH3y+v+0.net
563 :名無しさん@お腹いっぱい。:2012/11/06(火) 09:43:03.10 ID:a0vlFpjG0.net
>>561
普通に extern static int CallBack(Func<int, int, int> callback, int x, int y); でいけるよ
ただしDllImportならコールバックが来る可能性がある間は渡したデリゲートオブジェクトが
絶対にGCされないようにこっち側で管理する必要がある
592 :名無しさん@お腹いっぱい。:2012/11/10(土) 12:10:55.63 ID:S/ruX9mF0.net
気にしないのも不味いけど、気にしすぎるのもよくない。
いいから動かしてみろよ、って思う。
172 :名無しさん@お腹いっぱい。:2012/05/07(月) 22:05:04.46 ID:SmzASuRUi.net
>>170
あと。変数名は明確にわかりやすくするのが基本だ。
Match 今夜のおかず = Regex.Match(…
303 :名無しさん@お腹いっぱい。:2012/06/10(日) 14:04:31.24 ID:+ns6eJGu0.net
454 :名無しさん@お腹いっぱい。:2012/09/13(木) 17:21:35.76 ID:dwwWp7JJ0.net
>>453
コードまでありがとう
SplitContainer良さそうだね
今回は開閉に合わせて他のコントロール含めForm全体の高さも
変えようと思ってるんで、これを参考に作ってみまつ
418 :名無しさん@お腹いっぱい。:2012/08/10(金) 14:35:43.71 ID:8esUUh1G0.net
糞みたいなメソッド
じゃなくて
糞みたいなコード
書いてるんじゃないの?
395 :名無しさん@お腹いっぱい。:2012/07/20(金) 17:23:17.65 ID:+FWU6vnR0.net
57 :名無しさん@お腹いっぱい。:2012/04/29(日) 22:18:35.45 ID:91lLWKe20.net
継承するかユーザーコントロールにしてInput_data_Boxっていうクラス名にしたらいいんじゃないの
102 :名無しさん@お腹いっぱい。:2012/05/02(水) 13:23:51.82 ID:40XiFrCp0.net
やっぱIDいいよな
ない向こうは相変わらず荒れてるし
必死にIDあり移住に反対してた奴はいなくなったようで平和だ
610 :名無しさん@お腹いっぱい。:2012/11/10(土) 12:56:50.12 ID:b7/ZFjTd0.net
388 :名無しさん@お腹いっぱい。:2012/07/10(火) 12:23:52.79 ID:y0AM8kSz0.net
System.Windows.Forms.dllとSystem.Drawing.dllを参照すれば
WinFormのときのコードでいけるよ
286 :名無しさん@お腹いっぱい。:2012/06/06(水) 00:07:44.80 ID:E/iZIMwt0.net
106 :名無しさん@お腹いっぱい。:2012/05/02(水) 19:35:09.34 ID:oqXEWlNP0.net
まあ程度が知れてる。完全に荒らし目的だろうから、どうでもいい。
256 :名無しさん@お腹いっぱい。:2012/05/27(日) 10:08:42.69 ID:clOyRCuk0.net
その前に最初の計算式二つは結果が等価じゃねーだろw
272 :名無しさん@お腹いっぱい。:2012/05/31(木) 15:01:27.70 ID:VYK3XZ290.net
216 :名無しさん@お腹いっぱい。:2012/05/13(日) 21:25:25.49 ID:xD8ADFqi0.net
public Form1()
{
InitializeComponent();
var MonthCtrl = new MonthCalendar();
MonthCtrl.ContextMenuStrip = this.contextMenuStrip1;
var CtrlHost = new ToolStripControlHost(MonthCtrl);
this.testAToolStripMenuItem.DropDownItems.Add(CtrlHost);
}
メニューを開いたまま右クリックでコンテキストメニューを開くにはどのようにすればいいでしょうか
96 :名無しさん@お腹いっぱい。:2012/05/02(水) 01:26:06.18 ID:ihqdrBlo0.net
失礼します。改行コードについての質問です。
改行1つをRead()で読み込むと10進で1310が返ってくるのですが、
これはCR(10進で13)とLF(10進で10)をまとめて1文字として読んでいるという認識でいいのでしょうか。
だとすると、CR+LFと¥u051E(16進51Eは10進で1310)とはどう区別して判定するのでしょうか。
(¥u051Eなんてめったに使うものではないでしょうが。)
もうひとつ、int型の1310をString.Format(string, Object)で16進変換すると”DA”が返ってます。
1310を分割して13->”D”,10->”A”としているのだと思いますが、
これはどういうロジックでこうなるのでしょうか。なぜ”51E”ではないのでしょうか。
よろしくお願いします。
681 :名無しさん@お腹いっぱい。:2013/09/29(日) 15:18:00.13 ID:gko/+pXV0.net
動的に作成したコントロールに引数を追加する方法を探しています。
int i = 0;
while(true)
{
panel[i] = new Panel();
label[i] = new Label();
panel[i].Controls.Add(label[i]);
panel[i] += new EventHandler(panel_Click);
label[i] += new EventHandler(panel_Click);
this.Controls.Add(label[i]);
this.Controls.Add(panel[i]);
i++;
}
panel_Clickにiを渡したいのですが、方法がわかりません。
どうすれば出来ますか?
40 :名無しさん@お腹いっぱい。:2012/04/28(土) 22:33:08.75 ID:qRaW9tis0.net
最初はそれも上手く行かなくて辛いけどな。試行錯誤を繰り返していく内に、
どうすれば汎用性が上がるかが分かってきて楽しい。
28 :名無しさん@お腹いっぱい。:2012/04/27(金) 00:17:43.59 ID:adJRSpDB0.net
>>25
それだと、あっちこっちで処理対象がJpegなのかBmpなのか判定しなきゃいけなくなるでしょう。
処理が読み込みと保存だけでいいなら、2箇所ぽっきりだしそれもありだと思いますけど。
Classとインターフェース作っちゃえば、インターフェースを介して処理してる本体側は大きな変更することなく、
一番アタマで対象の判定だけやって、クラスの実態をnewした後は同じ処理を続けるだけ、で行ける。
730 :名無しさん@お腹いっぱい。:2015/12/25(金) 19:37:57.91 ID:jM5ihmIg0.net
185 :名無しさん@お腹いっぱい。:2012/05/08(火) 13:15:50.91 ID:gH9z368B0.net
437 :名無しさん@お腹いっぱい。:2012/08/31(金) 19:56:27.26 ID:NZXdkMNN0.net
無いから代わりの方法だしてるのに理解してなくてワロタ
627 :名無しさん@お腹いっぱい。:2012/11/11(日) 11:26:46.66 ID:O63qgx/E0.net
626 :名無しさん@お腹いっぱい。:2012/11/11(日) 11:12:44.10 ID:RYP/qfSm0.net
225 :名無しさん@お腹いっぱい。:2012/05/17(木) 21:46:23.75 ID:t3KcC4L10.net
モデルからコントロールはもちろんいじっちゃだめだよね
でもモデルで処理するだけなら通常のプログラミングの範囲で
GUIの困難はそこを分離しただけじゃ解決しないからね
713 :名無しさん@お腹いっぱい。:2015/08/21(金) 23:41:57.33 ID:UQnQch7W0.net
502 :名無しさん@お腹いっぱい。:2012/10/13(土) 15:09:46.38 ID:VcGh2v180.net
AutoScaleModeをFontじゃくすればおk
224 :名無しさん@お腹いっぱい。:2012/05/17(木) 21:40:42.89 ID:/wFJphTP0.net
>>220-222
レスありがとうございます
MVCについて調べてきました
「コントロール→モデルのアクセスはあるが、モデル→コントロールやモデル→ヴューのアクセスはない」という考え方は意識していませんでした
すると、機能ごとにカスタムコントロール化するというよりも、各機能のメソッドをモデルとして抜き出して、
textbox1のプロパティは引数として与えて、モデル処理後に返させる or 別にデータを用意してモデルに管理させて結果として返させる という形にした方が良いのかと思いました
モデル→コントロールというアクセスがない方向でクラス分けを考えてみます
79 :名無しさん@お腹いっぱい。:2012/04/30(月) 18:03:22.34 ID:oGTSpznu0.net
本スレはいよいよ崩壊しているな・・・
回答がままならない
240 :名無しさん@お腹いっぱい。:2012/05/22(火) 22:15:56.28 ID:Zemo3eRi0.net
Windowsフォームのデータバインディングについてだが、
例えば、こんな感じにtargetControlのValueプロパティにViewModelのDataプロパティをバインドさせるとして、
targetControl.DataBindings.Add( “Value” , ViewModel , “Data” );
ViewModel 側でINotifyPropertyChangedを実装して、
OnPropertyChanged(“Data”);のようにして呼び出したときにUIとスレッドが異なっていると、
例外(InvalidOperationException)が発生する。まあ、これは、当然といえば当然なのだが、
ViewModelでは、UIスレッドを意識しないようにしたいし、コントロールのValueプロパティなんかでも
スレッドの違いを意識しないようにしたい。
今のところ思いついた方法が、コントロールが生成された直後にコントロールのSynchronizationContextを
取得してViewModelに関連付けてOnPropertyChangedでSynchronizationContextを通して
PropertyChangedイベントを呼び出すという方法だが、どうにも良い方法とは思えない気がする。
これ以外に何か良い解決方法は、ありますか?
397 :名無しさん@お腹いっぱい。:2012/07/20(金) 21:35:04.33 ID:s2qLDoTI0.net
マウスカーソルの移動をピクチャーボックス内に制限したいんですけど
Cursor.Clip = pictureBox1.Bounds;
としても、ピクチャーボックスのクライアント領域とは全然違う領域に
制限されてしまうんですけどどうしてですか?
ちなみに、Cursor.Clip = this.Bounds;
とすると、ちゃんとピクチャーボックスがのっているフォーム内に
きっちりと移動が制限されます。
Cursor.Clip = pictureBox1.ClientRectangle;
としてみても駄目でした。
433 :名無しさん@お腹いっぱい。:2012/08/31(金) 16:05:26.44 ID:4Wnd101t0.net
602 :名無しさん@お腹いっぱい。:2012/11/10(土) 12:27:21.19 ID:b7/ZFjTd0.net
本当に互換性だけでいいのなら、2度とバージョンアップがされなくなれば互換性は変わらない
しかし、そういうトンチめいた話がしたいわけではないだろう
420 :417:2012/08/10(金) 14:41:17.78 ID:Ni+qk6Zt0.net
145 :名無しさん@お腹いっぱい。:2012/05/05(土) 20:09:08.88 ID:m7U0FwS60.net
皆レスサンクス
>>142
そうじゃなくてEffectiveシリーズ読んだことあるなら分かると思うけど
小手先のテクニックやら作法の様な基本を知りたい
なまじJavaの知識だけで物が作れるもんだから
C#的な部分としての基本を見落としてると思う
読んだこと無いけどEffective C++読めってのは極論過ぎない?
>>144
上で挙げた本って中途半端なの?
別に良書があるなら教えてくれ
ネットは結構目を通してるから紙媒体で何か欲しい
568 :名無しさん@お腹いっぱい。:2012/11/07(水) 02:17:58.82 ID:8vrDwtTR0.net
バージョンアップごとに必要ない命令とか消えたりマイナーチェンジしたりする事もあるし
まぁ必要ないって、メーカーが勝手に決めた感じだろうけど
レスを投稿する(名前省略可)