[表示 : 全て 最新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

101 名前:デフォルトの名無しさん (ワッチョイ 9f23-8qPS) mailto:sage [2016/10/14(金) 13:39:00.09 ID:D2RLd37K0.net]
>>98
たしかに面倒だが、100倍も掛かるわけでもないよ
部品をフラットにして、スライダーみたいな複雑なのを諦めるとか
工夫次第でなんとかなる

102 名前:デフォルトの名無しさん (オッペケ Srd7-Oa01) mailto:sage [2016/10/14(金) 14:05:32.92 ID:5Y7KbdSJr.net]
ありがと!
面倒だからやめた

103 名前:デフォルトの名無しさん (ラクラッペ MMf7-8qPS) mailto:sage [2016/10/14(金) 16:58:20.50 ID:WrhxhBRqM.net]
dataSetの最大行数や最大列数なら取得できるのですが、指定した行の列数を取得する方法がわかりません。
どう書けば指定した行の列数を取得できるようになるでしょうか?。

最大行数の取得
dataSet.Tables["DataTable"].Rows.Count;

最大列数の取得
dataSet.Tables["DataTable"].Columns.Count;

104 名前:デフォルトの名無しさん (ワッチョイ bb94-NvRm) mailto:sage [2016/10/14(金) 18:29:38.87 ID:xiSagSQl0.net]
列数って行ごとに違ったりする?

105 名前:デフォルトの名無しさん (ラクラッペ MMf7-XnCm) [2016/10/14(金) 20:28:29.33 ID:O8TwfpESM.net]
はい。行ごとに列数は変わります。
例えば、0行目は1列しかなくて、1行目は5列あり、2行目は3列しかなかったりします。
ちなみに、列の最大数より少ない行の列(使われてない列)には、空欄になってます。(dataGridViewやxmlファイルで見ると)

106 名前:デフォルトの名無しさん (ワッチョイ 83c0-8qPS) mailto:sage [2016/10/14(金) 20:35:37.38 ID:XcyjZEXI0.net]
>>104
それ値にnullが入っているだけで列そのものは存在しているよ

107 名前:デフォルトの名無しさん (ラクラッペ MMf7-XnCm) [2016/10/14(金) 20:55:06.25 ID:O8TwfpESM.net]
ということは、最大数と同じですか・・・。
行の列数ごとに処理をしたかったのですが、別の方法を考えたほうがよさそうですね。
レスありがとうございました。

108 名前:デフォルトの名無しさん (ワッチョイ 83c0-8qPS) mailto:sage [2016/10/14(金) 22:05:45.82 ID:XcyjZEXI0.net]
>>106
i行目のnull以外が入っている列の数が欲しいってのなら
dataSet.Tables["DataTable"].Rows[i].ItemArrayで行の値取得してから、ループ回してnull以外の数を数える方法もあるけど
行の列数毎に処理をするという時点で何か違う気もするけど

109 名前:デフォルトの名無しさん (ワッチョイ 2349-ciRE) mailto:sage [2016/10/14(金) 22:15:24.28 ID:naHK2HuB0.net]
>>107
やってることは変わらないけど、LINQですっきり。
dataSet.Tables["DataTable"].Rows[i].ItemArray.Count( x => x != null );



110 名前:デフォルトの名無しさん (ラクラッペ MMf7-XnCm) [2016/10/14(金) 22:16:02.67 ID:O8TwfpESM.net]
>>107
なるほど、そんな手もあるんですか。
処理といっても難しいものではなく、○行目の○列目が空なら次の行へいくというような処理です。
それを最

111 名前:後の行までやる単純な処理です。 []
[ここ壊れてます]

112 名前:デフォルトの名無しさん (ワッチョイ 877b-8qPS) mailto:sage [2016/10/15(土) 03:32:09.91 ID:zqId9pk40.net]
c#を勉強中なのですが、WEBサイトにログインし、そのクッキーを取得する部分で躓いてしまいました。
語学も勉強中ですので、ja.forvo.comにアクセスするツールを勉強がてらに作ってみようと思ったのですが、
アクセスパラメタはlogin passeordの2種類しかないように見えるのですが、どこが間違っているかわかりません。

ContentLength>0 または SendChunked==true を設定する場合には要求本体を指定する必要があります。
と出てくるので、パラメタ関連だと思うのですが、どこか見落としているんでしょうか?

https://dotnetfiddle.net/s5RJok

113 名前:デフォルトの名無しさん (ワッチョイ 1b9f-c7dp) mailto:sage [2016/10/15(土) 04:14:59.65 ID:Rly0bTEF0.net]
>>110
GetResponseする前ににパラメータを送信してない
using (Stream requestStream = Request.GetRequestStream()) {
requestStream.Write(data, 0, data.Length);
}

114 名前:デフォルトの名無しさん (ワッチョイ 877b-8qPS) mailto:sage [2016/10/15(土) 04:24:50.76 ID:zqId9pk40.net]
>>111
本当ですね、なんという凡ミス・・・
POSTを実行し忘れていました
回答ありがとうございました、無事にできました。

115 名前:デフォルトの名無しさん (ワッチョイ 8b3c-8qPS) mailto:sage [2016/10/15(土) 07:58:43.10 ID:aLbial8Z0.net]
言語面は大変でも構わないがGUIが楽に出来る事、
windowsでさえ動けばそれで良い、
コンパイラは無料であること、
言語の情報収集が書籍に頼らずとも、検索したら日本語でいっぱい出てくること。

って条件を提示したらC#って言われたんだよね。
ここまで合ってる?


で、ちょっとやってみたんだけど、CUIはすぐに満足行く程度に出来ました。(ハノイの塔や乱数生成など)。
でもウィンドウの表示とか描画はかなり意味が良く分かりませんでした。
GUIは楽ではないのでしょうか?
あと、検索方法やサイトがよく分かりませんでしたので、GUIを学ぶのに良さそうなサイト教えてください。
ちなみにCやC++やRubyはできますが、GUIは一度もやったことありません。

116 名前:デフォルトの名無しさん (ワッチョイ bbdc-Oa01) mailto:sage [2016/10/15(土) 09:25:22.99 ID:k370RUkX0.net]
そりゃお前がGUIに慣れてないだけだろ
C#のGUIフレームワークはVB.NETと共通
頭の弱いVBer連中にできてお前にできないなんてありえないから安心しろ

117 名前:デフォルトの名無しさん (ブーイモ MMf7-DI90) mailto:sage [2016/10/15(土) 10:07:17.04 ID:4a8N/lhaM.net]
>>113
デザイナ開いてコントロール並べてイベントハンドラにやりたい処理を書くだけ

118 名前:デフォルトの名無しさん (ワッチョイ 8742-b88/) [2016/10/15(土) 10:56:08.68 ID:Ep2P5HuE0.net]
>>113
>って条件を提示したらC#って言われたんだよね。
>ここまで合ってる?

合ってる

CUIよりGUIのほうが複雑だからGUI初心者にとって難しく楽ではないのは仕方ない
それでもC#はGUIの作業がかなり簡単になってる
頑張って覚えるしかない。”C# GUI”でググれば色々出てくるからそこから選べばいいんじゃないかな

119 名前:デフォルトの名無しさん (アウアウ Saff-+9sP) mailto:sage [2016/10/15(土) 13:07:47.01 ID:VsUz8hA6a.net]
考えてみたら、WPFはともかくWindows Formも意外と
web上にはまとまったチュートリアルなかった気がするね。
どうやって覚えたんだったかな。

まあWindows Formなら触ってるうちにだんだん分かるとは思う。
GDI+は本格的にやるなら古いペゾルドの本でも買った方がいいかもしれない



120 名前:デフォルトの名無しさん (ワッチョイ 4b79-8qPS) mailto:sage [2016/10/15(土) 15:39:03.38 ID:keBjPhCw0.net]
HTMLが分かるならWPFの方が良い
FormはGUIで組み立てていけるから楽だけど

121 名前:デフォルトの名無しさん (ワッチョイ 877b-nzJn) mailto:sage [2016/10/15(土) 15:41:04.11 ID:CMu4YX8d0.net]
ボタンなどのコントロールを並べるだけなら、HTMLのformと同じだろ

線・円・四角形などを描画するなら、HTML5のCanvas 相当の知識がいる

122 名前:デフォルトの名無しさん (ワッチョイ 875e-8qPS) mailto:sage [2016/10/15(土) 15:55:54.34 ID:Y5UYqbC90.net]
>>113
dobon.net/vb/dotnet/index.html
www.atmarkit.co.jp/ait/subtop/dotnet/
WinFormsならデザイナに適当に並べてイベントをクリックしたらイベントハンドラ自動で配置されるんだからチュートリアルとかいらない気もする

123 名前:113 (ワッチョイ 233c-8qPS) mailto:sage [2016/10/15(土) 17:38:54.02 ID:gUMRUJva0.net]
みなさんありがとう。
GUIの実現方法にもいろいろあるようで。(?)

まぁよく分かってないのですが、しばらく頑張ってみます。

124 名前:デフォルトの名無しさん (ブーイモ MMf7-DI90) mailto:sage [2016/10/15(土) 17:43:06.42 ID:pMgLYSqAM.net]
>>120
悩むところなんてないのにね
素人の新人でも1日あればBMI計算画面程度のものは作れるようになる

125 名前:113 (ワッチョイ 233c-8qPS) mailto:sage [2016/10/15(土) 17:45:41.99 ID:gUMRUJva0.net]
悩んでると言うよりGUIの仕組み自体が良く分からないって感じ
ようするに全部分からん。

126 名前:デフォルトの名無しさん (ワッチョイ ff02-GF32) mailto:sage [2016/10/15(土) 18:36:15.94 ID:i1h9IwSg0.net]
とりあえず、WindowsFormsとWPFとの大きな二つのやり方がある事を理解する必要がある

127 名前:デフォルトの名無しさん (ワッチョイ 67ce-dAUv) mailto:sage [2016/10/15(土) 18:44:07.15 ID:6v+uOgk10.net]
WindowsのGUIはWebや質問で集めた断片的な情報だけじゃVB使いにも劣る半端な物しか作れない
C#や.NETについてはペゾルド本とか定番の書籍とか沢山あるから通読を薦める

128 名前:デフォルトの名無しさん (オッペケ Srd7-310H) mailto:sage [2016/10/15(土) 19:34:08.33 ID:UDl7k1b2r.net]
>>120
WPFでも、それと同じ作り方出来るよん。
メリットがあまり無いから、その方法でやる人がいないだけで。

129 名前:デフォルトの名無しさん (ワッチョイ 83c0-Lzu8) mailto:sage [2016/10/15(土) 19:48:29.68 ID:0Lh6WVUg0.net]
>>126
バインディング考えるとWPFの方が楽でいいけど、ListViewの罫線引くのにも一苦労なのがな



130 名前:デフォルトの名無しさん (オッペケ Srd7-Oa01) mailto:sage [2016/10/15(土) 21:45:59.61 ID:auQgHyKEr.net]
今のwinformってdpi変えてもレイアウト崩れないの?

131 名前:デフォルトの名無しさん (ワッチョイ bbdc-x3Zw) mailto:sage [2016/10/15(土) 23:01:02.76 ID:k370RUkX0.net]
今のも糞もWinFormsは2.0を最後に一切更新されてないよ

132 名前:デフォルトの名無しさん (オッペケ Srd7-Oa01) mailto:sage [2016/10/15(土) 23:13:33.54 ID:auQgHyKEr.net]
そーなんだ
てことはコントロール並べただけだとdpi変えたら崩れるのか
みんなどう対処してるの?

133 名前:デフォルトの名無しさん (ワッチョイ 837b-n555) mailto:sage [2016/10/15(土) 23:14:29.34 ID:Q3fCLt+y0.net]
一応4でChartが導入されたよ(小声
外部ライブラリ取り込んだだけだけど

134 名前:デフォルトの名無しさん (ワッチョイ 2349-ciRE) mailto:sage [2016/10/15(土) 23:25:23.56 ID:vyO0bokn0.net]
>>129-130
コントロール毎だけど、高DPI対応されてるぞ。(要app.config編集)
EnableWindowsFormsHighDpiAutoResizingとかで調べると出てくる。

135 名前:デフォルトの名無しさん (ワッチョイ 6f66-8qPS) mailto:sage [2016/10/16(日) 17:31:11.11 ID:SS2oz+Dc0.net]
DataGridにバインドした場合通常
[日付][出荷][入荷][在庫]
[10/1][1000][ 0][ 0]

とバインドされますが、これをそのまま
日付 10/1|10/2|10/3|…
出荷 1000| 0| 1000|…
入荷  0|1000| 0|…
在庫  0|1000| 0|…
と横向きに表示したいのですが方法がわかりりません。

何か良い方法があれば教えてください。

136 名前:デフォルトの名無しさん (ワッチョイ 3bcb-Oa01) mailto:sage [2016/10/16(日) 19:05:12.86 ID:+xc9QiVj0.net]
Datagrid 行と列 入れ替え
ってググって出なかったら俺ならあきらめる

137 名前:デフォルトの名無しさん (ワッチョイ 877b-8qPS) mailto:sage [2016/10/17(月) 11:43:58.15 ID:t0+3o69f0.net]
Aというクラスの変数をBというクラスで変更したいのですが、
グローバル変数って極力使わないほうがいいんですよね?
その場合、どうやって変更すればいいんでしょうか?

138 名前:デフォルトの名無しさん (アウアウ Sa97-DI90) mailto:sage [2016/10/17(月) 12:30:24.66 ID:0QqIT/eXa.net]
アクセサで変更する

139 名前:デフォルトの名無しさん (ワッチョイ 834f-dAUv) mailto:sage [2016/10/17(月) 16:57:58.75 ID:ka6apGFK0.net]
>>133
「C# list 行 列 入れ替え」でググると、いくつか出て来るな
DataGridViewだと出来ないっぽいので、文字列配列でやるしか無さそう



140 名前:デフォルトの名無しさん (ドコグロ MM37-Oa01) mailto:sage [2016/10/17(月) 19:17:50.46 ID:XnOIml5dM.net]
ちゅーかrowヘッダーでええんでは?

141 名前:デフォルトの名無しさん (ワッチョイ bbdc-x3Zw) mailto:sage [2016/10/17(月) 21:43:52.24 ID:8eStTtOD0.net]
>>135
そもそも本当に外から変更する必要があるのかよく考えた方がいい
安易にプロパティ(アクセサ)を使うのはお勧めしない
Aの内部に深く依存した処理ならそれはA自身のインスタンスメソッドにするのが自然

142 名前:デフォルトの名無しさん (オッペケ Srd7-310H) mailto:sage [2016/10/17(月) 22:08:48.29 ID:J1512ejnr.net]
>>135
普通はBにdelegateを持たせてAがRegister

143 名前:デフォルトの名無しさん (ワッチョイ 9f23-8qPS) mailto:sage [2016/10/18(火) 00:15:54.00 ID:5HYuZfg90.net]
BがAを生成するなら特別問題となることはないが、それ以外の場合だと一筋縄ではいかんよね
static classよりprism.unityのようなDIコンテナを検討すると良いかもしれん

144 名前:デフォルトの名無しさん (オッペケ Srd7-Oa01) mailto:sage [2016/10/18(火) 01:07:54.24 ID:z7NEdDzIr.net]
作ったアプリのインストーラーって自分で作るの?

145 名前:デフォルトの名無しさん (ワッチョイ 877b-8qPS) mailto:sage [2016/10/18(火) 01:27:03.65 ID:GSTk/GYq0.net]
>>136
こういう方法があったんですね、無事にできました。
ありがとうございました。

>>139
なぜプロパティを使わないほうがいいのでしょうか?

>>140
delegateを使う方法も調べて勉強してみます、ありがとうございました。

146 名前:デフォルトの名無しさん (アウアウ Saff-+9sP) mailto:sage [2016/10/18(火) 01:50:59.73 ID:ZWaQacsZa.net]
>>143
>>139は別にプロパティを使うなとは言ってないと思うよ

>>135みたいな質問をするレベルの初心者は、本来そのクラスの外部からアクセスさせる必要がない
値まで外部に対して公開してしまいがち。

だからBからAの値を変更したいがどうしたら...以前に、そもそも本当にBからAの値を
変更する必要があるのか、まずそれを再考した方がいいと言ってるだけ恐らく。

147 名前:デフォルトの名無しさん (スププ Sd4f-Oa01) mailto:sage [2016/10/18(火) 02:23:54.86 ID:yFGfvYQ8d.net]
>>142
外注に出してもいいよ

148 名前:デフォルトの名無しさん (フォォーッ MM47-8qPS) mailto:sage [2016/10/18(火) 17:04:32.16 ID:FLRDVYGCM.net]
DataTable.Select メソッドですが、条件に変数やtextBox.Textを入れて判定させることはできないのでしょうか?
もし、できるのであれば、やり方を教えていただけないでしょうか。

149 名前:デフォルトの名無しさん (ワッチョイ 7bd6-8qPS) mailto:sage [2016/10/18(火) 19:22:23.19 ID:t0O03s4a0.net]
var hoge = dt.Select("id = " + textBox.Text);
じゃあかんの?



150 名前:デフォルトの名無しさん (オイコラミネオ MM2f-tncL) mailto:sage [2016/10/18(火) 19:42:09.04 ID:kZJdOEPWM.net]
式を文字列で作ったらいいんじゃないかな

151 名前:デフォルトの名無しさん (ワッチョイ 9f23-8qPS) mailto:sage [2016/10/18(火) 21:32:22.49 ID:5HYuZfg90.net]
幾らなんでもSQLインジェクション対策ぐらい考えて作るものでしょ

152 名前:デフォルトの名無しさん (ワッチョイ 2349-ciRE) [2016/10/19(水) 00:35:49.06 ID:D3jR0Y/10.net]
使えるなら、LINQ to DataSet使った方が楽

153 名前:デフォルトの名無しさん (アウアウ Sa3f-Oa01) mailto:sage [2016/10/19(水) 12:21:20.79 ID:uDAkjBGca.net]
アプリの組み込みDBでsqliteを使っているが、別のアプリからそのDBに接続するのは可能?

154 名前:デフォルトの名無しさん (ワッチョイ 9b19-K4Kb) mailto:sage [2016/10/19(水) 13:14:54.61 ID:az2iZHKt0.net]
DBファイルにアクセスさえできるならもちろん
個人的にFirefoxの履歴とか他の自作ツールで見てる

155 名前:デフォルトの名無しさん (ワッチョイ fbeb-pg89) [2016/10/19(水) 16:14:49.10 ID:lVxjSt550.net]
DataGridViewを使ってアプリケーションを作成していますが、
行を追加していくと当然メモリを消費しますが、
行を削除してもメモリが解放されません。
(RemoveAt、Clearなどで削除)

頻繁に行を追加したり削除するプログラムを作成していまして、
そのうちメモリが上限になってしまうのですが、
行を削除したときにメモリを解放するには
どのようにすればよいのでしょうか。
(VS2012です)

156 名前:デフォルトの名無しさん (オッペケ Srd7-Oa01) mailto:sage [2016/10/19(水) 16:23:08.57 ID:sakBD/O3r.net]
c#は勝手にメモリ解放するから気にしなくていいんじゃない?

157 名前:デフォルトの名無しさん (ワッチョイ fbeb-pg89) [2016/10/19(水) 16:33:39.48 ID:lVxjSt550.net]
>>154
レスありがとうございます。
私もその認識でいたのですが、
使用メモリが搭載上限(4G)まで行っても解放されないので、
(ガベージコレクタメソッドを使っても)
困っています。

158 名前:デフォルトの名無しさん (ブーイモ MM4f-DI90) mailto:sage [2016/10/19(水) 17:24:56.64 ID:arYWyhLnM.net]
メモリダンプして解析ツールに投げてインスタンス掴んでる犯人を特定して適当に対処すればいいよ

159 名前:デフォルトの名無しさん (ワッチョイ 834f-dAUv) mailto:sage [2016/10/19(水) 17:34:39.90 ID:4Wr5Akus0.net]
どれだけデカいデータを入れてるんだろ?
全然違うとこでメモリを溜め込んでいるのかもしれんし



160 名前:デフォルトの名無しさん (ワッチョイ 1b9f-c7dp) mailto:sage [2016/10/19(水) 19:10:01.37 ID:JZ054bhP0.net]
めんどくさいけどVirtualMode使った方がいいかもね

161 名前:デフォルトの名無しさん (ワッチョイ 875e-8qPS) mailto:sage [2016/10/19(水) 19:51:08.60 ID:8L2TKUho0.net]
DataGridViewに大きなデータを読み込む
→Rows.Clear()とColumns.Clear()とGC.Collect()する
→メモリの消費量変化せず
次に別の小さいデータを読み込む
→Rows.Clear()とColumns.Clear()とGC.Collect()する
→メモリの消費量が減る

どういう仕組みになっているんだろうなw
BitmapとかだとDispose()してnull入れてGC.Collect()するとすぐに反映されるんだが
DatagridViewにnull入れれないしな
見かけ上変わってないだけで実際には他に影響しない可能性もあるし

162 名前:デフォルトの名無しさん (オッペケ Srd7-Oa01) mailto:sage [2016/10/19(水) 21:18:49.28 ID:sakBD/O3r.net]
>>159
大きなデータってなに?

163 名前:133 (ワッチョイ 3e66-9S67) mailto:sage [2016/10/20(木) 06:52:10.99 ID:kVktOnSP0.net]
>>134
>>137
諦めてTextBoxを並べてそれっぽく見えるようにしました。

返信ありがとうございました。

164 名前:デフォルトの名無しさん (フォォーッ MM5f-DrBp) [2016/10/20(木) 14:42:52.91 ID:j15LCTLjM.net]
>>147
その方法でできました。
ありがとうございました。
>>148
そのまま記述すると、列で判定されたりしてわからなかったんですよー。

>>150
そのやり方のほうが、処理が早いみたいですね!。
ちょっと勉強したいと思います。



回答してくださった方、ありがとうございました。

165 名前:デフォルトの名無しさん (ワッチョイ 8e94-aczQ) mailto:sage [2016/10/21(金) 06:03:28.62 ID:UXfZS+K/0.net]
モジモジ君大作戦って事か

166 名前:デフォルトの名無しさん (ワッチョイ e03c-AIfR) mailto:sage [2016/10/22(土) 22:16:30.80 ID:v7gcb7o50.net]
プログラムに関しては初心者です。

最近仕事でC#プログラムを作りました。
ある測定装置を制御するプログラムです。

質問です。

データ収集の時、多少時間がかかるので、
「今処理しているんだぞ」という表示をしたく考えています。

今現在はフォーム上に置いたラベルに「データ収集中です」とだけ
表示しています。

何かこれに動き(テキストのバックの色が変わるとか)が付ければ
いいぁと思っているんですが、「処理中に表記する」事に関して
参考になるようなサイト等あれば紹介していただきたいのですが・・・

宜しくお願いします。

167 名前:デフォルトの名無しさん (ワッチョイ 1c5e-AIfR) mailto:sage [2016/10/22(土) 22:21:59.07 ID:kIxm0CI90.net]
>>164
ほかにもあるだろうけどBackgroundWorkerを使う例なら↓
dobon.net/vb/dotnet/programing/progressdialogbw.html
このページではProgressBarを使っているけどReportProgressメソッドに数値を渡せるから後は工夫次第

168 名前:デフォルトの名無しさん (ワッチョイ df49-PUkO) mailto:sage [2016/10/22(土) 23:08:53.61 ID:+hICpl7f0.net]
BackgroundWorkerとか過去の遺物。今から覚えるならIProgress<T>。
www.atmarkit.co.jp/ait/articles/1512/02/news019.html

169 名前:デフォルトの名無しさん (ワッチョイ 213c-YT5Q) mailto:sage [2016/10/22(土) 23:23:07.21 ID:NG/YSHI20.net]
>>165
おじいちゃんかな?



170 名前:デフォルトの名無しさん (アウアウ Sa76-48Mz) mailto:sage [2016/10/22(土) 23:36:06.64 ID:hnOr+aGfa.net]
>>166
BackgroundWorkerって一度も使ったことないけど、
正直、それってEAPより分かりづらくなってないか?

171 名前:デフォルトの名無しさん (ワッチョイ 177b-+OdZ) mailto:sage [2016/10/22(土) 23:36:58.50 ID:Hz0V4lr80.net]
単に実行中ですよハングアップしてるわけじゃないですよって示すだけなら
Style=MarqueeなProgressBarを使う

172 名前:デフォルトの名無しさん (ワッチョイ df49-PUkO) mailto:sage [2016/10/23(日) 00:06:56.07 ID:rBqtbPOF0.net]
>>164
ラベルの背景色を変更するのは簡単だよ。
label.BackColor = Color.Red;
とかで良い。

進捗報告が要らないなら、IProgressとかも使わずにこんな感じ。
(ラベルとプログレスバー)

ideone.com/ilYwnF

173 名前:デフォルトの名無しさん (ワッチョイ 5bdd-YT5Q) mailto:sage [2016/10/23(日) 02:45:59.94 ID:h7gARNSs0.net]
>>164
プログレスバーの出番や

174 名前:デフォルトの名無しさん (ワッチョイ e03c-9S67) mailto:sage [2016/10/23(日) 07:23:09.66 ID:0dR84IuA0.net]
164です。

皆さんいろいろありがとうございます。

>>170

プログラム見て、動きがすぐ読み取れればいいのですが、
いかんせん、初心者でして・・・すみません。
試してみますが、これは表記中になにか動きがあるのですか?

現在はフォーム上のラベルの背景色は変えていて
「データ受信中」
とだけ大きめに表示しています。

いかんせん、データ受信に時間がかかるので、
「データ受信中」のラベル表記に加えて、何か動きをつけて
「動いてまっせ」感を出したいと思っています。

一番いいのは「データ受信中」にラベルが一定間隔で点滅しているようにみえる
ようになればいいと思っていますね。

175 名前:デフォルトの名無しさん (ワッチョイ 8e94-aczQ) mailto:sage [2016/10/23(日) 22:02:41.53 ID:8jE4iVd50.net]
label.Text = "動いてまっせ";

176 名前:デフォルトの名無しさん (ワッチョイ df49-PUkO) mailto:sage [2016/10/23(日) 23:06:14.69 ID:rBqtbPOF0.net]
>>172
>>170はプログレスバーがアニメーションしてる。
ラベルを点滅させたりする機能はないので、やるならタイマー使って自分で実装。

ラベルの背景を点滅させるだけにした例
ideone.com/RvXnz5
上のコードにはタイマーの設定が無いけど、タイマーのプロパティーのIntervalを点滅間隔(msec)に設定して、
Tickイベントをダブルクリックすれば、timer1_Tick()の雛型が出来るよ。

いずれにしろ、時間のかかる処理を実行する場合は、タスク等で非同期処理にする必要がある。
そうしないとGUIが固まるので、動きのある効果を出せない。

177 名前:デフォルトの名無しさん (ワッチョイ 1c7b-AIfR) mailto:sage [2016/10/24(月) 23:19:31.36 ID:zmhV7cki0.net]
配列Aに1,4,6,2,3,5に
配列Bに6,5,3,1,2,4とあるとして、配列Aと同じ順番に配列Bをソートしたいと思っているんですが、
forの2重にしてひとつひとつ比較して並べ替えるしか方法って無いんでしょうか?

178 名前:デフォルトの名無しさん (ワッチョイ 9ddc-A7+C) mailto:sage [2016/10/24(月) 23:32:54.72 ID:b4iOClrl0.net]
var bdict = 配列B.ToDictionary(b => b);
var sorted = from a in 配列A where bdict.ContainsKey(a) select bdict[a];

179 名前:デフォルトの名無しさん (ワッチョイ dfc0-9S67) mailto:sage [2016/10/24(月) 23:34:24.42 ID:+Pg3OEGx0.net]
クエリ式がどうも好きになれないのはなんでなんだろうな



180 名前:デフォルトの名無しさん (ワッチョイ 1c7b-AIfR) mailto:sage [2016/10/25(火) 00:03:13.22 ID:guF/luut0.net]
>>176
ありがとうございました。

>>177
自分もクエリ式勉強中なのですが、どうも慣れていないせいか
しっくりこないです・・・

181 名前:デフォルトの名無しさん (ワッチョイ 9ddc-A7+C) mailto:sage [2016/10/25(火) 00:16:44.02 ID:ZSR0a5K90.net]
宣言的すぎるからじゃね
メソッド形式は高度に抽象化されてるとはいえ内部の手続きはまだなんとか透けて見える
ML系の本格的な関数型言語を学ぶとクエリ式の方が自然に感じられるようになる

182 名前:デフォルトの名無しさん (アウアウ Sa76-48Mz) mailto:sage [2016/10/25(火) 00:22:06.79 ID:vHFAVaN6a.net]
同じ順番にソートってそれコピーと同じじゃないのかって気がするんだけど...

183 名前:デフォルトの名無しさん (ワッチョイ 1c7b-AIfR) mailto:sage [2016/10/25(火) 00:41:40.24 ID:guF/luut0.net]
>>180
あ・・・・・
そりゃそうですよねw

184 名前:デフォルトの名無しさん (ワッチョイ 1c7b-AIfR) mailto:sage [2016/10/25(火) 01:28:34.91 ID:guF/luut0.net]
連投失礼します。

>>180
コピーのような気がしたんですが、自分がやりたかったことでいうと、
xlsxの中に画像ファイル名、画像説明を順不同で入っている
画像名と説明をジャグ配列に格納(配列A)
画像ファイルのパスを配列Bに格納
配列Bを配列Aのファイル名順にソート

ということがしたかったので、やはり上で教えていただいたとおりにしたほうがコードがすっきりしました。

185 名前:デフォルトの名無しさん (アウアウ Sa27-YT5Q) mailto:sage [2016/10/25(火) 02:09:08.09 ID:RwrgdaWZa.net]
>>182
画像名と説明とパスを持つオブジェクト作って、その配列を持っとけばいいんでないの?
比較のインターフェイスの実装でファイル名を比較するようにすれば、なんとでもなるような。

別の配列に従ってソートとか、関係無いものでソートしているようで気持ち悪いし、おいおい困りそう。

186 名前:デフォルトの名無しさん (ワッチョイ 9ddc-YT5Q) mailto:sage [2016/10/25(火) 06:43:34.05 ID:ZSR0a5K90.net]
俺も好きではないが、ソートキーと値が別の配列ってのはそんなに珍しい状況ではないだろ
実際、そのものズバリなメソッドがある
https://msdn.microsoft.com/ja-jp/library/85y6y2d3(v=vs.110).aspx

187 名前:デフォルトの名無しさん (ブーイモ MM6d-vevC) mailto:sage [2016/10/25(火) 06:59:06.17 ID:NvEtdSjAM.net]
データ配列とその各要素へのアドレスを格納した配列を用意してアドレスだけ並べ換えるとか昔はよくやったものだ

188 名前:デフォルトの名無しさん (スププ Sdb8-YT5Q) mailto:sage [2016/10/25(火) 12:26:17.11 ID:74VODe2Id.net]
>>184
おー、これは勉強になる。ありがとう。
>>185
ポインタの配列と聞かれると確かに納得感あるな。

189 名前:デフォルトの名無しさん (ワッチョイ ed87-l6JH) [2016/10/25(火) 13:05:36.36 ID:uBRc/ViR0.net]
>>156-159
先日はレスありがとうございました。
アプリケーションの使われ方で根本的な問題があって、一旦棚上げしております。

次にお聞きしたいことがありまして、
DataGridViewの通常モード(not仮想モード)で、
画面に表示されているときだけ、決まったセルに画像を表示し、
スクロールされて画面外に出たときはその画像を削除する方法はありますでしょうか。

仮想モードを使えない理由は、DataGridViewのテーブルを動的に作成しており、
インプットデータとDataGridViewのあるセルの数値を見て、
新規行を追加するかしないかを判定してるため、予め最終的な行数がわからないためです。



190 名前:デフォルトの名無しさん (ワッチョイ ed87-l6JH) [2016/10/25(火) 15:51:31.59 ID:uBRc/ViR0.net]
>>187ですがとりあえず自己解決しました。

ですが、フォームのサイズを変更されると、
現在見えてる行数が変わるのですが、
それが取得出来なくて、表示処理に苦心しております。

最終手段はDataGridViewのサイズから行の高さで割り返して
求めるしかないとかと思っていますが、
他にスマートな方法などありますでしょうか。

191 名前:デフォルトの名無しさん (ワッチョイ 5d94-iDGi) mailto:sage [2016/10/25(火) 16:25:22.37 ID:7TH0YyHm0.net]
Rows.GetRowCount(DataGridViewElementStates.Displayed)
ではうまくいかない?

192 名前:デフォルトの名無しさん (ワッチョイ ed87-l6JH) [2016/10/25(火) 16:31:54.92 ID:uBRc/ViR0.net]
>>189
ありがとうございます!
見事取得することが出来ました!
感謝です!

193 名前:デフォルトの名無しさん (ワッチョイ e03c-9S67) mailto:sage [2016/10/25(火) 20:52:27.11 ID:c343kGsU0.net]
>>174
ありがとうございます。
参考にします。

194 名前:デフォルトの名無しさん (ワッチョイ fb0d-JJ20) [2016/10/27(木) 09:31:19.17 ID:z/oC4hLu0.net]
サードパーティのHogeという名前空間のDLLがあり、
それを自身のMy.Hogeという名前空間上で利用するにはどうしたらいいでしょうか?

using Hoge;
namespace My.Hoge {
 ...
 //Hogeは自身(My.Hoge)の方が参照されてしまいエラーになる
 var fuga = new Hoge.Fuga();

195 名前:デフォルトの名無しさん (ワッチョイ 0319-xC4o) mailto:sage [2016/10/27(木) 09:47:56.97 ID:6XhIQECk0.net]
global::Hoge

196 名前:デフォルトの名無しさん (ワッチョイ fb0d-JJ20) [2016/10/27(木) 09:58:13.92 ID:z/oC4hLu0.net]
>>193
できました!ありがとうございます!!

197 名前:デフォルトの名無しさん (ワッチョイ a387-corf) [2016/10/27(木) 14:25:21.93 ID:wen2xrAS0.net]
度々の質問で申し訳ありませんが、
DataGridViewで、特定の列のセルが選択されているかどうかを簡単に判定する方法はありますでしょうか。

具体的な例ですと、1列目のセル(どこの行でも良い)が選択されていればtrue、
どこのセルも選択されていないか、他の列のセルが選択されている場合はfalseを得たいと思っています。
なお、選択されているセルが複数列に及んでいる場合、1列目が含まれていればtrueで良いです。

198 名前:デフォルトの名無しさん (JP 0H7f-WjTj) mailto:sage [2016/10/27(木) 14:42:40.44 ID:0JCOu095H.net]
自分なりに調べとるか?

199 名前:デフォルトの名無しさん (ワッチョイ a387-corf) [2016/10/27(木) 14:53:51.07 ID:wen2xrAS0.net]
>>196
レスありがとうございます。
今朝からずっと調べているのですが、
行全体が選択されているときなどは取得する方法はわかったのですが、
セルだけ選択されているときの判定がわからないでいます。

選択されているセルの位置を個別に判定すればもちろんわかるのですが、
すっきりした方法がないかと思い質問させていただきました。



200 名前:デフォルトの名無しさん (ワッチョイ a387-corf) [2016/10/27(木) 17:51:25.17 ID:wen2xrAS0.net]
>>197ですが、
結局個別のセルの列番号を判定して処理することにしました。
ありがとうございました。






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

前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