ふらっと C#,C♯,C#(初心者用) Part125at TECH
ふらっと C#,C♯,C#(初心者用) Part125 - 暇つぶし2ch963:デフォルトの名無しさん (ワッチョイ 7f94-4hBO)
16/12/24 20:25:53.45 iV5eYun00.net
>>947
Parallelは完了まで自スレッドをロックしてしまう
(つまり、並列ではあるけど非同期ではない)ので
UIスレッドをフリーズさせないためにはTaskとの併用が必要

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

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

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

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

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

969:デフォルトの名無しさん (ワッチョイ 8f13-7bim)
16/12/26 00:35:44.64 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)
16/12/26 00:46:35.20 +7V9eNZX0.net
こんなのも
TimeSpan referenceTime = new TimeSpan(13, 30, 0);
return DateTime.Now.TimeOfDay >= referenceTime;

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

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

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

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

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

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

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

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

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

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

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

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

TextBox1のEnter時に

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

と書き、TextBox2のLeave時に

TextBox2.Visible = false;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

995:デフォルトの名無しさん (ワッチョイ 5394-4hBO)
16/12/26 19:52:33.70 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)
16/12/26 20:00:08.21 K98gijPEH.net
役所が1セルに1文字しか入力しちゃいけないExcelフォーマット量産してるって
話を思い出した

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

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

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

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

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

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

俺個人としてはこの記事(すでに古い記事だけど)のタイトルがすべてだと思う
URLリンク(www.infoq.com)

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

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

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

1004:デフォルトの名無しさん (ワッチョイ 5394-4hBO)
16/12/27 02:10:31.58 HrGPkQcW0.net
次スレ
ふらっと C#,C♯,C#(初心者用) Part126
スレリンク(tech板)

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

1006:デフォルトの名無しさん (ワッチョイ 73dc-PUH/)
16/12/27 07:15:38.67 CsLSwhzy0.net
WebBrowser

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

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

1009:デフォルトの名無しさん (ワッチョイ 2b94-4hBO)
16/12/27 14:40:14.00 +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)
16/12/27 16:50:37.42 DjR8onEe0.net
>>995
なるほどオフセットと現在の位置で動かすのですか
思い通りにできましたありがとうございます

1011:デフォルトの名無しさん (ワッチョイ bf4c-hHku)
16/12/27 17:06:23.75 8I0GRdm60.net
うめ

1012:デフォルトの名無しさん (ワッチョイ 8f7b-YyGO)
16/12/27 23:13:31.51 YmRmCI2N0.net


1013:デフォルトの名無しさん (ワッチョイ 4f17-YQ1g)
16/12/27 23:58:49.99 tR2ogx270.net


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

1015:過去ログ ★
[過去ログ]
■ このスレッドは過去ログ倉庫に格納されています


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch