[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 01/09 11:23 / Filesize : 313 KB / Number-of Response : 1016
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

ふらっと C#,C♯,C#(初心者用) Part125



1 名前:デフォルトの名無しさん(ワッチョイ f97b-lsIp) mailto:sage [2016/10/08(土) 21:33:26.22 ID:KfBpvv2w0.net]
「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。

他のスレッドでは書き込めないような低レベルな質問、
質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。

内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。

なお、テンプレが読めない回答者は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスはやめてください

>>980を踏んだ人は新スレを建てて下さい。
>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。

■前スレ
ふらっと C#,C♯,C#(初心者用) Part124
echo.2ch.net/test/read.cgi/tech/1471004887/

■関連スレ
C#, C♯, C#相談室 Part91
echo.2ch.net/test/read.cgi/tech/1467142749/

■コードを貼る場合は↓を使いましょう。
ideone.com/
https://dotnetfiddle.net/

■情報源
https://msdn.microsoft.com/en-us/library/gg145045.aspx
referencesource.microsoft.com/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured

914 名前:デフォルトの名無しさん (ワッチョイ f3d6-i5Qz) mailto:sage [2016/12/23(金) 23:09:15.19 ID:ejzKG2eK0.net]
超低スペックなパソコンを後生大事に使い続ける貧乏人が文句言ってるだけ

915 名前:デフォルトの名無しさん (ワッチョイ abc0-g1cW) mailto:sage [2016/12/23(金) 23:28:01.18 ID:c2xEt3tE0.net]
低スペPC使っているけど、VSは2010以前とそれ以降で重さが段違いだな

916 名前:デフォルトの名無しさん (ワッチョイ 4779-d0Xh) mailto:sage [2016/12/23(金) 23:35:32.33 ID:6njdFiip0.net]
>>898
Eclipseに比べたらかなり軽いよね
JavaとかScalaもVSに対応してほしい

917 名前:デフォルトの名無しさん (ワッチョイ ab3c-g1cW) mailto:sage [2016/12/23(金) 23:36:01.09 ID:Fo6fBKop0.net]
2017は必要なものだけで立ち上げられるんだろ?

918 名前:デフォルトの名無しさん (ブーイモ MM3f-lsSM) mailto:sage [2016/12/23(金) 23:38:37.93 ID:MNqe+TxRM.net]
次はインストールも爆速になるらしいな
最近のMicrosoftさん頑張りすぎ
ORACLEも少しはMicrosoftを見習ってほしい

919 名前:デフォルトの名無しさん (ワッチョイ 4779-d0Xh) mailto:sage [2016/12/23(金) 23:42:33.40 ID:6njdFiip0.net]
インストールは寝る前にするからあまり関係ないけどね

920 名前:デフォルトの名無しさん (ブーイモ MM8f-ncxm) mailto:sage [2016/12/23(金) 23:43:37.75 ID:gDLxrLVpM.net]
>>899
VSの成功が証明してるようにスケーラビリティが高いのは確かだけど、
実際小さなアプリに使うには重いよ

921 名前:デフォルトの名無しさん (ワッチョイ 4779-d0Xh) mailto:sage [2016/12/23(金) 23:45:24.81 ID:6njdFiip0.net]
WPFはバインドがなー
Angularとかの自動更新になれるとね

922 名前:デフォルトの名無しさん (ワッチョイ 273c-GTRU) mailto:sage [2016/12/24(土) 00:09:01.03 ID:LpJ8AJuF0.net]
>>892
Cake使えば?



923 名前:デフォルトの名無しさん (ワッチョイ ef9f-h9rX) mailto:sage [2016/12/24(土) 01:10:24.95 ID:YCrD1JsG0.net]
>>894
なんで自信ありそうに言いきってるの?
IDE入れないといけない言語はあるよ

924 名前:デフォルトの名無しさん (ワッチョイ 3f3c-PK0Z) mailto:sage [2016/12/24(土) 09:08:23.75 ID:dPbQS77J0.net]
>>909
具体的に何よ?

925 名前:デフォルトの名無しさん (ワッチョイ 73dc-ncxm) mailto:sage [2016/12/24(土) 09:26:43.36 ID:3LTJc3r/0.net]
Smalltalkとか昔のVBやDelphiとか

926 名前:デフォルトの名無しさん (ワッチョイ 8f42-3ZJ0) mailto:sage [2016/12/24(土) 10:07:04.78 ID:Uz+bz49d0.net]
コンパイラ?

927 名前:デフォルトの名無しさん (アウアウカー Sa3f-a5Nx) mailto:sage [2016/12/24(土) 10:09:16.39 ID:VcKJc7+aa.net]
powerbuilderもだった

928 名前:デフォルトの名無しさん (ワッチョイ 2f23-g1cW) mailto:sage [2016/12/24(土) 11:28:12.62 ID:prTI7XBj0.net]
>>912
昔のVBもDelphiもコンパイラなんだけどw

929 名前:デフォルトの名無しさん (オッペケ Srcf-qdr/) mailto:sage [2016/12/24(土) 13:38:48.90 ID:HbE0faQGr.net]
ウインフォームアプリ作ったんだけどインストーラーとかアップデータとかも自分で作るの?

930 名前:デフォルトの名無しさん (ワッチョイ 273c-GTRU) mailto:sage [2016/12/24(土) 13:40:12.31 ID:LpJ8AJuF0.net]
>>915
ClickOnce

931 名前:デフォルトの名無しさん (ワッチョイ ef9f-h9rX) mailto:sage [2016/12/24(土) 13:41:59.25 ID:yr6q9nVG0.net]
VBAとかSmall BasicとかScratchとかもそうじゃね

932 名前:デフォルトの名無しさん (オッペケ Srcf-qdr/) mailto:sage [2016/12/24(土) 13:56:05.59 ID:HbE0faQGr.net]
>>916
それってオワコンなんじゃないの?



933 名前:デフォルトの名無しさん (ブーイモ MM5f-ncxm) mailto:sage [2016/12/24(土) 14:01:46.96 ID:1tLIoM8kM.net]
>>918
それを言ったらWinFormsもオワコンだよ
今生きてるのはASP.NETとUWPだけ

934 名前:デフォルトの名無しさん (ワッチョイ abc0-g1cW) mailto:sage [2016/12/24(土) 14:03:16.98 ID:a9e/NRk30.net]
オワコンだけど代替がないってのがね

935 名前:デフォルトの名無しさん (ワッチョイ 379d-i5Qz) mailto:sage [2016/12/24(土) 14:23:05.13 ID:2536g+Dg0.net]
MSもWinFormsに回帰、注力すべき

936 名前:デフォルトの名無しさん (ワッチョイ 2f23-g1cW) mailto:sage [2016/12/24(土) 14:35:55.93 ID:prTI7XBj0.net]
拡張機能からNuGetでVisualStudioInstaller入れられるの知らないのカー

937 名前:デフォルトの名無しさん (ワッチョイ e33c-IeCC) [2016/12/24(土) 15:17:55.11 ID:hhClfuXq0.net]
並列処理を行いたいんですがどうすればいいでしょうか?

しかも複数の並列処理で同一のコントロール(TextBox1.text)
に同時に書き込めるようにしたいです(書き込む順番はきにしません)
あとそれぞれの並列処理を無限ループで繰り返し処理を行いたいと
思っております。

どなたか教えてください。どうぞよろしくお願いします

938 名前:デフォルトの名無しさん (オッペケ Sref-AvAH) mailto:sage [2016/12/24(土) 15:19:37.36 ID:JBAVj1Vvr.net]
>>899
無能と言うか変化について行けない頭固い人だね。
所謂老害かな。

939 名前:デフォルトの名無しさん (ワッチョイ 273c-GTRU) mailto:sage [2016/12/24(土) 15:20:33.37 ID:LpJ8AJuF0.net]
>>918
その要件を簡単に実現できる方法が他にない。

940 名前:デフォルトの名無しさん (オッペケ Sref-AvAH) mailto:sage [2016/12/24(土) 15:21:12.81 ID:JBAVj1Vvr.net]
>>923
async, await 一択。

941 名前:デフォルトの名無しさん (ワッチョイ 8f13-i5Qz) mailto:sage [2016/12/24(土) 15:21:23.94 ID:XrRMaYjq0.net]
>>909
たとえば?

942 名前:デフォルトの名無しさん (ワッチョイ d7ce-agOw) mailto:sage [2016/12/24(土) 16:08:14.24 ID:yMvVW4sX0.net]
>>923
System.Windows.Forms.Control.Invoke経由で書き込むだけ



943 名前:デフォルトの名無しさん (ブーイモ MM5f-ncxm) mailto:sage [2016/12/24(土) 16:10:19.44 ID:RJkhT4CTM.net]
>>923
ワーカースレッドから好き勝手にGUI触るとカオスになるから、Producer-Consumerで分離すれば?
複雑なことをやるならGUIからではなくデザイン(見た目じゃないよ)から入る作り方も覚えていったほうがいい

944 名前:デフォルトの名無しさん (ワッチョイ 8f13-0LB+) mailto:sage [2016/12/24(土) 16:17:45.91 ID:cCwHGfM40.net]
>>928
これだな

945 名前:デフォルトの名無しさん (ワッチョイ 73dc-ncxm) mailto:sage [2016/12/24(土) 16:27:12.97 ID:3LTJc3r/0.net]
>>924
悪いけど、今時WPF推しとかそれこそ老害だと思うぞ
立ち止まって周りを見てみろ

946 名前:デフォルトの名無しさん (ワッチョイ b77b-g1cW) mailto:sage [2016/12/24(土) 16:28:09.91 ID:YD9ZIllA0.net]
話の流れが読めない人?

947 名前:923 (ワッチョイ e33c-IeCC) [2016/12/24(土) 17:08:45.84 ID:hhClfuXq0.net]
みなさんありがとうございます。
自分なりに調べて以下の通りつくってみました
「3秒まってコンソールに文字列を出力する」という処理を並列で動作させたかったのですが
どうもそれぞれの処理が単体で実行されるだけで並列処理になっていないようです。
以下の処理を並列で実行できるようにするにはどうすればよろしいでしょうか?
private async void button1_Click(object sender, EventArgs e)
{
while (true)
{
await Task.Run(() => Thread.Sleep(3000));
Console.WriteLine("タスク完了");
}
}

948 名前:デフォルトの名無しさん (オッペケ Srcf-qdr/) mailto:sage [2016/12/24(土) 17:10:58.57 ID:HbE0faQGr.net]
>>919
>>925
>>920
そっかあ
面倒だけど自作するか…
もうおっさんだからWinForm以外習得できん

949 名前:デフォルトの名無しさん (オッペケ Srcf-qdr/) mailto:sage [2016/12/24(土) 17:12:35.93 ID:HbE0faQGr.net]
>>922
あれ…記憶にないけどインストールしてあったw
まあアップデータは自作になるか…

950 名前:デフォルトの名無しさん (ブーイモ MM3f-TACi) mailto:sage [2016/12/24(土) 17:21:30.45 ID:Jrqe8RRjM.net]
>>933
その例は
「3秒まってコンソールに文字列を出力する」
ってタスクを無限個作りたいのん?
最初は2個にしておけば?

951 名前:923 (ワッチョイ e33c-IeCC) [2016/12/24(土) 17:33:48.36 ID:hhClfuXq0.net]
>>936
はいそうです
2個でも問題ありません。
簡単なサンプルとか頂ければ大変助かります
大変恐縮ですがどうぞよろしくお願い致します

952 名前:デフォルトの名無しさん (オッペケ Sref-AvAH) mailto:sage [2016/12/24(土) 17:39:03.48 ID:JBAVj1Vvr.net]
>>933
> 以下の処理
これが意味不明だけど。

十分並列にはなってる。



953 名前:923 (ワッチョイ e33c-IeCC) [2016/12/24(土) 17:52:32.66 ID:hhClfuXq0.net]
>>938
そうなんですね。ご指摘ありがとうございます。

ただ私の想定としては、「3秒待って出力」という処理を
複数同時に開始したいと思っておりました
ですがコンソールに出力されるタイミングは3秒おきに1処理分しか
出力されず、非同期処理と変わらない処理となっているような気がします

上で示したサンプルがわかりづらくて申し訳ありませんが
タスクは2個でも3個でも同時並列で処理できれば問題ありません
大変恐縮ですがご教示頂ければと思います

954 名前:デフォルトの名無しさん (ワッチョイ 3b3a-a3YU) mailto:sage [2016/12/24(土) 18:00:04.01 ID:kAw8XX2k0.net]
>>937
void TaskTest() {
Task.Run(async () => {
await Task.Delay(3000);
Console.WriteLine(DateTime.Now);
});
Task.Run(async () => {
await Task.Delay(3000);
Console.WriteLine(DateTime.Now);
});
}

955 名前:923 (ワッチョイ e33c-IeCC) [2016/12/24(土) 18:29:36.15 ID:hhClfuXq0.net]
>>940
ありがとうございます!
ちなみにテキストボックスなどに内容を出力することって出来ますでしょうか?
これらの処理をりようして
TextBox1.Textに内容を出力する処理をそれぞれのタスクに追加すると
エラーになってしまうようです。
お手数おかけしますがよろしくおねがいします。

956 名前:デフォルトの名無しさん (ワッチョイ 8f13-0LB+) mailto:sage [2016/12/24(土) 18:40:47.89 ID:cCwHGfM40.net]
>>941
>>928

957 名前:923 (ワッチョイ e33c-IeCC) [2016/12/24(土) 18:41:21.02 ID:hhClfuXq0.net]
これだとやっぱり3秒毎に1処理実行されるだけなんですね・・・

async Task<string> TaskTest()
{
await Task.Delay(3000);
return "a";
}

private async void button1_Click(object sender, EventArgs e)
{
while (true)
{
TextBox1.Text += await TaskTest();
Application.DoEvents();
}
}

958 名前:923 (ワッチョイ e33c-IeCC) [2016/12/24(土) 18:51:54.77 ID:hhClfuXq0.net]
>>942
ありがとうございます。
ただやっぱり並列にはなりませんでした・・・
なにがまちがってるんでしょうか・・・?
while (true)
{
await Task.Factory.StartNew(() =>
{
Invoke((MethodInvoker)(() =>
{
Thread.Sleep(3000);
TextBox1.Text += "a";
}));
});
}

959 名前:デフォルトの名無しさん (ワッチョイ 7f94-4hBO) mailto:sage [2016/12/24(土) 19:04:14.66 ID:iV5eYun00.net]
while(true)で無限にTaskを作るとOutOfMemoryExceptionになるから
Parallel使って10個ずつくらいに制限して、
TextBoxへの書き込みにはProgressを使うとこんな感じ

private void button1_Click_1(object sender, EventArgs e)
{
 IProgress<string> progress = new Progress<string>(text =>
 {
  TextBox1.Text += text;
 });
 Task.Run(() =>
 {
  while (true)
  {
   Parallel.For(0, 10, i =>
   {
    System.Threading.Thread.Sleep(3000);
    progress.Report("a");
   });
  }
 });
}

960 名前:923 (ワッチョイ e33c-IeCC) [2016/12/24(土) 19:13:46.70 ID:hhClfuXq0.net]
ありがとうございました!大変助かりました!
お手数おかけして申し訳ありませんでした

961 名前:923 (ワッチョイ e33c-IeCC) [2016/12/24(土) 20:17:57.50 ID:hhClfuXq0.net]
>>945
おかげさまで仕事がはかどりました
改めてありがとうございました。
ただ、ソースをよく読んでみると
Parallel.Forというのがあるので
Task使わなくても問題なさそうですね
(C#歴は1ヶ月程度なので違ってるかもしれませんが)

962 名前:デフォルトの名無しさん (ブーイモ MM3f-TACi) mailto:sage [2016/12/24(土) 20:23:51.87 ID:Jrqe8RRjM.net]
>>945
Progressなんてクラスが居たのね。こいつは捗りそう。



963 名前:デフォルトの名無しさん (ワッチョイ 7f94-4hBO) mailto:sage [2016/12/24(土) 20:25:53.45 ID:iV5eYun00.net]
>>947
Parallelは完了まで自スレッドをロックしてしまう
(つまり、並列ではあるけど非同期ではない)ので
UIスレッドをフリーズさせないためにはTaskとの併用が必要

964 名前:923 (ワッチョイ e33c-IeCC) [2016/12/24(土) 20:51:06.97 ID:hhClfuXq0.net]
なるほど。ありがとうございました!

965 名前:デフォルトの名無しさん (アウアウカー Sa3f-qibb) [2016/12/24(土) 21:56:05.36 ID:AwL0H4eka.net]
おまえら割とマジですげぇわ

966 名前:デフォルトの名無しさん (ワッチョイ ab3c-g1cW) mailto:sage [2016/12/24(土) 22:01:11.57 ID:LTc/wMbf0.net]
俺は初心者だからかもしれんが
ここに世界中の天才が集まってるのかとと思うわ

967 名前:デフォルトの名無しさん (ワッチョイ bfcb-oYiN) mailto:sage [2016/12/25(日) 19:11:38.15 ID:liHUAEex0.net]
かわいい奴

968 名前:デフォルトの名無しさん (ワッチョイ e33c-IeCC) [2016/12/26(月) 00:25:16.13 ID:0WzKTwBd0.net]
時刻だけ比較したいんですがそんなことってできます?
例えば現在時刻が13:30以降の時のみtrueを返すような時ってどうすればいいですか?

969 名前:デフォルトの名無しさん (ワッチョイ 8f13-7bim) mailto:sage [2016/12/26(月) 00:35:44.64 ID:TE+B1lbE0.net]
>>954
これでどう?

var now = DateTime.Now;
var time = new DateTime(now.Year, now.Month, now.Day, 13, 30, 0);
return time <= now;

970 名前:デフォルトの名無しさん (ワッチョイ 7f94-4hBO) mailto:sage [2016/12/26(月) 00:46:35.20 ID:+7V9eNZX0.net]
こんなのも
TimeSpan referenceTime = new TimeSpan(13, 30, 0);
return DateTime.Now.TimeOfDay >= referenceTime;

971 名前:デフォルトの名無しさん (ワッチョイ 3bc9-DLF2) mailto:sage [2016/12/26(月) 00:54:59.31 ID:AQNPYjTP0.net]
単に
((DateTime.Now.Hour == 13 && DateTime.Now.Minute >= 30) || DateTime.Now.Hour > 13)
じゃいかんのか

972 名前:デフォルトの名無しさん (ワッチョイ e33c-IeCC) [2016/12/26(月) 01:08:14.89 ID:0WzKTwBd0.net]
ありがとうございました!



973 名前:デフォルトの名無しさん (ワッチョイ 379d-i5Qz) mailto:sage [2016/12/26(月) 02:19:47.23 ID:CIVIxVtu0.net]
今回のケースに限ったことじゃないんだけど、
1回のif文でNowを複数回参照して、Nowが全部同じ値だという保証はあるのかな?

974 名前:デフォルトの名無しさん (ワッチョイ 8f13-0LB+) mailto:sage [2016/12/26(月) 02:47:24.74 ID:TE+B1lbE0.net]
>>959
ないよ

975 名前:デフォルトの名無しさん (ブーイモ MM5f-TACi) mailto:sage [2016/12/26(月) 12:35:23.91 ID:cti1899cM.net]
13:59:59から14:00:00の変わり目だけに起こるバグとか、怖いっす

976 名前:デフォルトの名無しさん (ワッチョイ 2f23-g1cW) mailto:sage [2016/12/26(月) 13:03:53.01 ID:Bu04EBir0.net]
どうしても気になるなら、先に分を比較すればバグることはない

977 名前:デフォルトの名無しさん (ワッチョイ 8f42-lvdU) mailto:sage [2016/12/26(月) 14:07:19.56 ID:UJaB3lV20.net]
そんな対処せずに1回の比較で終わるようにしときゃいいやん

978 名前:デフォルトの名無しさん (スフッ Sddf-0LB+) mailto:sage [2016/12/26(月) 14:13:47.94 ID:qgo+g5wcd.net]
だから>>955みたいに先にNowを保存すればいいだろ
ウダウダ悩んでるおまえ等が信じられんわw

979 名前:デフォルトの名無しさん (アウアウオー Saff-iGc/) mailto:sage [2016/12/26(月) 14:18:36.34 ID:1bhMGPyja.net]
どうでもいいけど、そもそも「現在時刻が13:30以降の時のみtrue」って要件はかなりあいまいだね。

980 名前:デフォルトの名無しさん (JP 0Hef-g1cW) mailto:sage [2016/12/26(月) 14:24:40.84 ID:E1wmt4rJH.net]
23:59:59までtrueでいいんかとか
PCの内蔵タイマーの時刻でいいんかとか
タイムゾーンはどうなんかとか

981 名前:デフォルトの名無しさん (ワッチョイ 837b-DNID) mailto:sage [2016/12/26(月) 14:38:43.61 ID:G2ewta8d0.net]
先生スレッドのカルチャー変えても比較出来るんですか

982 名前:デフォルトの名無しさん (ワッチョイ 63a4-zpPG) [2016/12/26(月) 17:15:25.72 ID:faSaUmiF0.net]
TextBox1とTexBox2(非表示)があります。
TextBox1にフォーカスが移動したら、TextBox2を表示してそちらにフォーカスを移動します。
TextBox2から別のところにフォーカスが移動したらTextBox2を非表示にしたいです。

TextBox1のEnter時に

TextBox2.Visible = true;
TextBox2.Select();

と書き、TextBox2のLeave時に

TextBox2.Visible = false;

と書きました。実行してみるとTextBox2が点滅して消えてしまいます。
調べてみるとLeave時の処理が3回実行されているようで、さらに
https://msdn.microsoft.com/ja-jp/library/system.windows.forms.control.gotfocus(v=vs.110).aspx
Doing so can cause your application or the operating system to stop responding.
フォーカスの設定をするなと書いてあるようです。

最悪、透明なボタンでも設置して無理矢理実現するしかないのかなと考えていますが、
フォーカス取得時に別のテキストボックスに移動することはできませんか?



983 名前:デフォルトの名無しさん (ワッチョイ e30d-agOw) mailto:sage [2016/12/26(月) 17:20:02.90 ID:uTypYcaG0.net]
WPFは駄目って言ってる奴いるけど、じゃあ何で作るんだ?
まさか制限盛りだくさんのUWPとか言わないよな?

984 名前:デフォルトの名無しさん (アウアウオー Saff-iGc/) mailto:sage [2016/12/26(月) 17:31:38.03 ID:1bhMGPyja.net]
>>968
なぜそんなアホなことをしたいの?

たぶん実現したい何らかの使用に対して君が思いついた方法がそれなんだどうけど
どう考えてもその方法は間違ってるから最終的にどういう仕様を実現したいかを
書いた方がいいと思うよ

985 名前:デフォルトの名無しさん (ワッチョイ 0fba-i5Qz) mailto:sage [2016/12/26(月) 17:31:53.92 ID:ejLfwHLb0.net]
そういう連中、WPFを知ってて言ってるわけじゃないもんな。
追及してやると主張が C#駄目 Windows駄目 デスクトップアプリ駄目 のどれかに変わる。

986 名前:デフォルトの名無しさん (ワッチョイ abc0-g1cW) mailto:sage [2016/12/26(月) 17:36:34.58 ID:BQIvjtl90.net]
>>971
今その条件で作れと言われたら迷わずWPF選びたいけど、俺社環だとForm選ばざるを得ないのが辛い

987 名前:デフォルトの名無しさん (ワッチョイ c33c-v5hB) mailto:sage [2016/12/26(月) 17:44:50.42 ID:bXBxzWjM0.net]
>俺社環だと
あるある

988 名前:デフォルトの名無しさん (ワッチョイ 63a4-zpPG) [2016/12/26(月) 17:46:33.22 ID:faSaUmiF0.net]
>>970
郵便番号を入力する部分のテキストボックスを7つに分けたのですが、
入力時には1つにしたほうが入力しやすいだろうと思いました。
LabelにするとTabでフォーカスを受け取れないので連続で入力しにくいかなと思ったり、
そもそも郵便番号をわざわざ分けているのは、入力フォームを画像にして裏に貼り、
入力イメージが掴めるようにしようかなと思った次第ですが、別のテキストボックスに
入力させてそれをプレビューしちゃだめというわけでもないので出来ないのであれば
入力とプレビューをわけようと思いますが、テキストボックスがフォーカスを受け取ったら
バトンパスのように他のテキストボックスに移動するというのは出来ないのかなと思って質問しました。

989 名前:デフォルトの名無しさん (ワッチョイ c33c-v5hB) mailto:sage [2016/12/26(月) 17:56:43.50 ID:bXBxzWjM0.net]
>郵便番号を入力する部分のテキストボックスを7つに分けたのですが
この時点でおかしいだろ(困惑)

990 名前:デフォルトの名無しさん (ワッチョイ 7f94-4hBO) mailto:sage [2016/12/26(月) 18:15:12.11 ID:qJ+YWzR60.net]
入力しようとしてテキストボックスを選んだら勝手に次のテキストボックスに飛ぶって
嫌がらせにしかならない気が…(どうやって入力してもらうの…)

郵便番号の枠のイメージで1文字ずつの入力にしたいというのなら
1文字しか入力できないテキストボックスを7つ配置して、
入力されたら次に飛ぶ、文字が消されたら前に飛ぶ、みたいに作るのがいいのでは

991 名前:デフォルトの名無しさん (アウアウオー Saff-iGc/) mailto:sage [2016/12/26(月) 18:28:31.17 ID:1bhMGPyja.net]
>>974
ハガキや封書の〒記入欄の見た目に似せたいってことかもしれんけど、
そんなくだらない仕様を諦めるわけにいかないの?

ありがた迷惑なだけでメリットないと思うけど

郵便番号を入力するUIなんて割と多いけどそんなヘンテコな仕様見たことないよw

992 名前:デフォルトの名無しさん (ワッチョイ d7ce-agOw) mailto:sage [2016/12/26(月) 19:05:18.45 ID:/iMD3zus0.net]
話を一般化すると、プロダクトID入力画面みたいに
指定桁だけ入力し終わったら次のテキストボックスに移動したいのかな
TextChangedとSelectNextControlかな



993 名前:デフォルトの名無しさん (ワッチョイ 2f23-g1cW) mailto:sage [2016/12/26(月) 19:38:22.72 ID:Bu04EBir0.net]
>>969
Cのライブラリ使ったりDataGridが何とかなりそうなら、UWPも悪くない選択肢だよ
コントロールも標準で沢山ついてくるしtoolkitも充実している

994 名前:デフォルトの名無しさん (ワッチョイ 2f23-g1cW) mailto:sage [2016/12/26(月) 19:43:38.71 ID:Bu04EBir0.net]
郵便番号程度なら、パネルから派生させたフルスクラッチでコントロール作っても大したことない気がするな
これからも使いそうなら作っちまえよ

995 名前:デフォルトの名無しさん (ワッチョイ 5394-4hBO) mailto:sage [2016/12/26(月) 19:52:33.70 ID:5v43Qgq70.net]
>TextBox1にフォーカスが移動したら、TextBox2を表示してそちらにフォーカスを移動します。
>TextBox2から別のところにフォーカスが移動したらTextBox2を非表示にしたいです。
というのは、入力しようとすると別途用意された入力フォームが開く、みたいなUIを模したいのかなぁ

とりあえず >>968 はこれで実現できる
private void TextBox1_Enter(object sender, EventArgs e)
{
 new Task(() =>
 {
  TextBox2.Visible = true;
  TextBox2.Select();
 })
 .Start(TaskScheduler.FromCurrentSynchronizationContext());
}

フォーカスイベントの連鎖から独立した別スレッドからUIスレッドに指示を出すので
>set focus from within the Enter, GotFocus, Leave, LostFocus, Validating, or Validated event handlers
には当たらないと思う

996 名前:デフォルトの名無しさん (JP 0Hcf-Qa15) mailto:sage [2016/12/26(月) 20:00:08.21 ID:K98gijPEH.net]
役所が1セルに1文字しか入力しちゃいけないExcelフォーマット量産してるって
話を思い出した

997 名前:デフォルトの名無しさん (ワッチョイ 0fba-i5Qz) mailto:sage [2016/12/26(月) 20:14:39.87 ID:ejLfwHLb0.net]
UWPは配布が一番のネックだな。
プログラミング需要のある程度の割合を企業内ユースが占めていると思うけど、
そういう用途じゃわざわざUWPなんて使わんよな。せいぜいWinRT。
さらに、今の時点だとまだWindows7を無視できないから結局FormsかWPFってところじゃない?

998 名前:デフォルトの名無しさん (ワッチョイ 9faf-pRKv) mailto:sage [2016/12/26(月) 21:10:56.35 ID:yrQs6qFs0.net]
ストア配布なら企業内以上に一般も難しそう
欲しいソフトがあるときはWindowsはストアで探すよりも検索してベクターなり窓の社なりから探してくる人が多いし

999 名前:デフォルトの名無しさん (ワッチョイ c33c-v5hB) mailto:sage [2016/12/26(月) 21:25:19.92 ID:bXBxzWjM0.net]
Winはそうよね
海外はどうか知らんが

1000 名前:デフォルトの名無しさん (ワッチョイ e30d-agOw) mailto:sage [2016/12/26(月) 22:27:21.69 ID:uTypYcaG0.net]
じゃあ、>>756>>931は間違ってるということでいいんですね

1001 名前:デフォルトの名無しさん (アウアウオー Saff-iGc/) mailto:sage [2016/12/26(月) 23:49:51.33 ID:nUdM+QKma.net]
その手の問題は最終的には自分で答えを出すしかないでしょ。

個人的には2chくんだりで「いつも誰かと戦ってる」タイプの人のいうことは真に受けない方がいいと思うけどねw
それは彼がそんなくだらないことをするのか、その動機を考えれば自明だよね

俺個人としてはこの記事(すでに古い記事だけど)のタイトルがすべてだと思う
https://www.infoq.com/jp/articles/Win8-LOB-Options

Windows Formが終わってるのと同程度にはWPFも終わってる
かといってプランCも存在しない

1002 名前:968 (ワッチョイ 736e-gQz9) [2016/12/26(月) 23:57:39.10 ID:Z8alzA0s0.net]
そこまでひどいUIとは思いませんでした。
おとなしく入力とプレビューを分けるようにします。
>>981は明日にでも試してみようと思います。



1003 名前:デフォルトの名無しさん (ワッチョイ 8f7b-YyGO) mailto:sage [2016/12/27(火) 01:33:51.84 ID:SOm/Nt9E0.net]
うめ

1004 名前:デフォルトの名無しさん (ワッチョイ 5394-4hBO) mailto:sage [2016/12/27(火) 02:10:31.58 ID:HrGPkQcW0.net]
次スレ
ふらっと C#,C♯,C#(初心者用) Part126
echo.2ch.net/test/read.cgi/tech/1482772061/

1005 名前:デフォルトの名無しさん (ワッチョイ dfcb-vcjl) mailto:sage [2016/12/27(火) 02:44:38.87 ID:Ue0MWe8H0.net]
twitterのタイムラインのようなものを作ろうと思っているのですがどのようなコントロールを使えばいいのかがわかりません
どなたか私に教えていただけないでしょうか?
よろしくお願いします

1006 名前:デフォルトの名無しさん (ワッチョイ 73dc-PUH/) mailto:sage [2016/12/27(火) 07:15:38.67 ID:CsLSwhzy0.net]
WebBrowser

1007 名前:デフォルトの名無しさん (ワッチョイ 4791-t+3N) mailto:sage [2016/12/27(火) 14:02:51.16 ID:DjR8onEe0.net]
datagridviewでセルに何か書き込まれたときにそこが真ん中になるよう自動でスクロールしたいのですが
どうすればいいですか?

1008 名前:デフォルトの名無しさん (ワッチョイ dfcb-vcjl) mailto:sage [2016/12/27(火) 14:19:39.59 ID:Ue0MWe8H0.net]
>>992
ご回答ありがとうございます
私の言葉が足らなかったようですみません
twitterのタイムラインをwebbrowserで表示するのではなくtwitterのAPIを使いツイートの情報を受け取りそれらをtwitterのタイムライン風に表示したいと考えております

1009 名前:デフォルトの名無しさん (ワッチョイ 2b94-4hBO) mailto:sage [2016/12/27(火) 14:40:14.00 ID:+TUrL10Q0.net]
>>993
CurrentCellDirtyStateChangedかCellValueChangedイベントハンドラで

int offset = dataGridView.Rows.GetRowCount(DataGridViewElementStates.Displayed) / 2;
int current = dataGridView.CurrentCell.RowIndex;
dataGridView.FirstDisplayedScrollingRowIndex = Math.Max(0, current - offset);

スクロール量はoffsetの値に+-して調整

1010 名前:デフォルトの名無しさん (ワッチョイ 4791-t+3N) mailto:sage [2016/12/27(火) 16:50:37.42 ID:DjR8onEe0.net]
>>995
なるほどオフセットと現在の位置で動かすのですか
思い通りにできましたありがとうございます

1011 名前:デフォルトの名無しさん (ワッチョイ bf4c-hHku) mailto:sage [2016/12/27(火) 17:06:23.75 ID:8I0GRdm60.net]
うめ

1012 名前:デフォルトの名無しさん (ワッチョイ 8f7b-YyGO) mailto:sage [2016/12/27(火) 23:13:31.51 ID:YmRmCI2N0.net]




1013 名前:デフォルトの名無しさん (ワッチョイ 4f17-YQ1g) mailto:sage [2016/12/27(火) 23:58:49.99 ID:tR2ogx270.net]


1014 名前:デフォルトの名無しさん (ワッチョイ 379d-i5Qz) mailto:sage [2016/12/28(水) 00:23:32.44 ID:gZZUj22C0.net]
1000ならWinForms大復活、2017以降は主力になる






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](;´∀`)<313KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef