X



ふらっと C#,C♯,C#(初心者用) Part141
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん (ワッチョイ 2317-qMUn)
垢版 |
2018/12/15(土) 11:07:07.89ID:0aSEF/I+0
!extend:checked:vvvvv:1000:512
次スレを立てる時は↑を2行冒頭に書くこと(1行分は消えて表示されない為)

「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
他のスレッドでは書き込めないような低レベルな質問、
質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。
内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。
なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスはやめてください

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

■関連スレ
C#, C♯, C#相談室 Part93
https://mevius.5ch.net/test/read.cgi/tech/1492818720/
■前スレ
ふらっと C#,C♯,C#(初心者用) Part139
https://mevius.5ch.net/test/read.cgi/tech/1538646998/
■コードを貼る場合は↓を使いましょう。
http://ideone.com/
https://dotnetfiddle.net/

■情報源
https://msdn.microsoft.com/ja-jp/library/gg145045.aspx
https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/index
https://msdn.microsoft.com/en-us/library/gg145045.aspx
http://referencesource.microsoft.com/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured
0900デフォルトの名無しさん (アウアウエー Sa52-SfL3)
垢版 |
2019/02/23(土) 19:24:23.57ID:gzY/wSmba
こっちの方がいいか
EventHandler eh = (sender, e) =>
{
  Action<ToolStripMenuItem> a = null;
  a = item =>
  {
    if (item == null) return;
    var parent = item.OwnerItem as ToolStripMenuItem;
    a(parent);
    parent?.ShowDropDown();
  };
  a((ToolStripMenuItem)sender);
};
ToolStripMenuItem1.Click += eh;
0902デフォルトの名無しさん (ワッチョイ ada2-uPuZ)
垢版 |
2019/02/24(日) 11:47:42.69ID:L3+XvQB40
質問です
現在、以下のように一つの非同期処理(時間のかかるディスクの書き込み)
を実行しています。

private async void button1_Click(object sender, EventArgs e)
{
 await DoSomethingAsync();
 MessageBox.Show("完了");
}

これを実行中にUIを操作して、次の処理の準備ができたら(実行する内容はDoSomethingAsync)
button1を押して予約し、実行中の処理が終わったら引き続き実行させたいです。(並列ではなく)
また、「完了」は登録されたタスクが全て終わったときに出したいです。
どのように書くのが一般的なのでしょうか?


初回実行時にすべての実行すべきタスクがわかっている場合は
そのタスクのリストを作ってWhenAllする みたいなのはググったら出てきたんですが

ContinueWithを使うのかなと思ったのですが、書き方がわかりませんでした
0904デフォルトの名無しさん (ドコグロ MM15-bAbS)
垢版 |
2019/02/24(日) 12:36:22.83ID:cR8EPyISM
>>902
最後に追加したTaskを覚えておいてContinueWithで繋ぐとかできなくはないけど、
そんな変なハックをするくらいなら素直に別スレッド立てて順番にバックグラウンド実行したほうがいい
Producer-Consumerでググれ
0905デフォルトの名無しさん (ワッチョイ 9eef-upo5)
垢版 |
2019/02/25(月) 11:09:41.10ID:a5srEHrc0
c#のフォームで、タイルマップエディタのようなものを作りたいのですが、どのような情報を調べたらいいでしょうか
また、そのような目的に適したフォームはありますか?

そもそもC#が適切なのかわからないのですが
0907デフォルトの名無しさん (ワッチョイ 7d01-b+8Y)
垢版 |
2019/02/25(月) 12:13:30.45ID:kHS+5sOB0
VisualStudioでデバッグ実行した時だけプログラムがフリーズしてしまうのですがこういう時はどういった原因が考えられるでしょうか?
WinFormを使用していてフォームが立ち上がったらバックグラウンドで色々するって感じの処理なのでどこかでUIスレッドをブロックしているのかとも思いましたがConfigureAwait(false)の設定し忘れは無さそうでした
VisualStudioを通さずに直接実行した場合は正常に動作しています
0910デフォルトの名無しさん (ファミワイ FFc9-kEY9)
垢版 |
2019/02/25(月) 15:41:31.91ID:stIKiSPsF
最前面じゃなくて後ろ面にアクティブウィンドウがポップアップされてるんじゃね
0911デフォルトの名無しさん (アウアウエー Sa52-SfL3)
垢版 |
2019/02/25(月) 19:11:52.07ID:ERkCIkZda
>>902
単純にボタンをクリックした回数だけ非同期メソッドを実行したいだけなら
これでいいような気が

private bool mBusy = false;
private int mRepeatCount = 0;

private async void button1_Click(object sender, EventArgs e)
{
  mRepeatCount += 1;
  if (mBusy) return;
  mBusy = true;
  for (int i = 0; i < mRepeatCount; i++)
    await DoSomethingAsync();
  mBusy = false; mRepeatCount = 0;
  MessageBox.Show("全部終わった");
}
0915デフォルトの名無しさん (ワッチョイ 9eef-upo5)
垢版 |
2019/02/26(火) 07:34:07.95ID:hTJo4mxi0
↑ありがとうございます
.NET Core Launch (console)
というデバッガを使っているので、
"program": "${workspaceFolder}/bin/Debug/<insert-target-framework-here>/<insert-project-name-here>.dll",
という部分を修正するのだと思いますが、どう修正するんでしょうか?
実行したいプログラムを{workspaceFolder}/Program.csと指定してもエラーになります
0923デフォルトの名無しさん (ワッチョイ b67c-cX2z)
垢版 |
2019/02/26(火) 10:57:10.09ID:s7Q5fSFO0
>>919
とりあえずエクスプローラなりコンソールなりvscodeとは別に開いて
プロジェクトフォルダのbinフォルダの配下を確認
どこかにビルド結果のdllが作られてるから

うちはいつの間にかPlatformって環境変数が定義されてたせいで
HPDとかいうフォルダが1個挟まってたぞ
0930デフォルトの名無しさん (ワッチョイ 9fad-SKB1)
垢版 |
2019/02/28(木) 00:37:24.74ID:weUa1N+o0
setterメソッドで文字列が8文字以下ならname変数に引数を代入する文を書きたいんですけど
どのように書けばいいんでしょうか?
0932デフォルトの名無しさん (ワッチョイ d7e7-CeLW)
垢版 |
2019/02/28(木) 00:55:51.76ID:ucEMLrR20
セッターよりもプロパティで良い気がする

private string name;
public string Name
{
 set
 {
  if ( value.Length <= 8 )
  {
   this.name = value;
  }
 }

 get
 {
  return this.name;
 }
}
0936デフォルトの名無しさん (ワッチョイ 37e5-i/5X)
垢版 |
2019/02/28(木) 19:23:03.02ID:owSMuOWF0
Windows.Forms の質問です。
TextBox 数個と MenuStrip に サブメニューのない MenuItem を追加したFormで
Altキーでメニューを選択すると、
カーソルキーの上下でTextBoxのフォーカスが移動するのですが
どういった理由でしょうか?
0938936 (ラクッペ MMcb-hSmr)
垢版 |
2019/02/28(木) 20:50:40.99ID:DAgKUWMjM
うーん
ショートカットキーの設定ができるので
ツールバーの代わりに使おうと思ったんですが
予想外のキモい動きで躊躇してます
0942デフォルトの名無しさん (ワッチョイ bfef-Q9lp)
垢版 |
2019/03/01(金) 21:07:24.70ID:tVNocw1h0
サイドバーについてなんですが、例えばgimpというソフトがあるのですが、両サイドにツールやレイヤーが表示されています
このように領域を分けるコントロールを教えてください
win form c#です

これはもう1つフォームを追加してるんでしょうか?
0943デフォルトの名無しさん (ワッチョイ ff7b-IHXa)
垢版 |
2019/03/01(金) 21:59:18.22ID:ORsij5/P0
>>942
フォームの枠の中に配置・移動させるのならVisual Studioでデザイナ画面+ツールボックスの「コンテナー」のカテゴリの好きなものを
フォームの枠の外やはみ出して使いたいものには別のフォームを割り当て、というのが基本じゃないかな
GimpはCだからどうやっているかは知らないけど
0946デフォルトの名無しさん (アウウィフ FF9b-vuRV)
垢版 |
2019/03/02(土) 11:00:56.30ID:+L4gK20KF
>>940
超初心者か池沼向け

普通の人はwebで充分
0947デフォルトの名無しさん (アウウィフ FF9b-vuRV)
垢版 |
2019/03/02(土) 11:02:23.80ID:+L4gK20KF
GTKは糞
0955デフォルトの名無しさん (ワッチョイ d72d-SKB1)
垢版 |
2019/03/02(土) 23:01:13.05ID:XIaahVa70
学習のために、確保した変数がスタックかヒープかどっちにあるのか知りたいんだけどさあ
簡単にチェックする手段ってないんかな?
0968デフォルトの名無しさん (ワッチョイ 9f52-n14O)
垢版 |
2019/03/03(日) 11:33:30.33ID:lodoh91K0
>>967
もしかして、ろくに経験もなく基礎も理解しないまま作りたいものを作り始めて、わからないときだけサイトで情報拾ってどうにかなると思ってないか?
ある程度基礎ができているか理解力のある奴ならそれでもいいが、君には無理だ。
ちゃんと金出して真っ当な入門書を買って、面倒がらずに順を追って基礎から身に付けてこい。
0973デフォルトの名無しさん (ワッチョイ 9701-s6Gp)
垢版 |
2019/03/03(日) 23:49:50.24ID:DRmEmwqA0
君の作ったプロジェクトの内容なんて分からんよ。
プロジェクト内のソースを探せばForm2クラスを宣言してるんじゃないの?

Visual Studioは色々自動生成して、色々隠蔽してるからオプジェクト指向が理解し難い。
一旦動いたら、全てのソースファイルをメモ帳で開いて動きを解析してみる。
全ては一度には理解できないから、オプジェクト指向の説明本を読む。
やっぱり理解できないけど、ソースを読み解くって繰り返すと段々理解できてくる。
0975デフォルトの名無しさん (ワッチョイ 17d8-ylj6)
垢版 |
2019/03/04(月) 19:07:44.29ID:RIX3InQp0
WinXPのスタートメニューのように、ContextMenuStripのToolStripItemにDrag&Dropって出来ますか?
ToolStripItemのAllowDropをTrueにしても、ToolStripItemのDragEnterイベントが発生しないのですが。
VC++2008を使用しているのですが、ToolStripItemのプロパティ窓にはAllowDropもDrag関連のイベントも 表示されていないので、コードで記述しているのですが、もともとサポートしていない?
0976デフォルトの名無しさん (ワッチョイ ff7b-IHXa)
垢版 |
2019/03/04(月) 20:54:01.14ID:+WeHVjLY0
>>975
試してないけどdocsには
https://docs.microsoft.com/ja-jp/dotnet/api/system.windows.forms.toolstripmenuitem?view=netframework-4.7.2
DragDrop ユーザーが項目をドラッグし、マウス ボタンを離したとき (つまり、項目がドロップされたとき) に発生します。 (Inherited from ToolStripItem)
https://docs.microsoft.com/ja-jp/dotnet/api/system.windows.forms.contextmenustrip?view=netframework-4.7.2
DragDrop ドラッグ アンド ドロップ操作が完了したときに発生します。 (Inherited from Control)

ってなっているからContextMenuStripのは期待通り動作しそうだけどToolStripItemのは項目自体のものだから単独では無理かと
どうしてもやるのならContextMenuStripのほう使ってMouseMoveか何かでカーソルと項目の位置確認しながらやるとか
その前にContextMenuStripがFocusの移動とかで閉じないようにClosingのイベントの設定なども当然必要
もう一回書くけど試してないし試す気もないので責任も取らないw
0979デフォルトの名無しさん (ドコグロ MM6b-hSmr)
垢版 |
2019/03/06(水) 21:11:48.41ID:1+PBsWw4M
>>977
君が業務ドカタなら、たぶん君がやることになるのはASP.NET MVCでもASP.NET CoreでもなくClassic ASP.NET(WebForms)
Webの知識皆無でも最低限形だけでもWebアプリを作れるようにしたフレームワークで、
WinFormsでメモ帳モドキくらい作ったことがあれば楽勝だから何も心配いらない
0985デフォルトの名無しさん (オッペケ Sr0b-5hgX)
垢版 |
2019/03/06(水) 23:01:29.39ID:wF9IXRdCr
asp.net core使って開発したいがまだまだ実用レベルではないんだろうな
そう思うと開発頓挫しそうで使えない
0990デフォルトの名無しさん (ドコグロ MM97-/Er5)
垢版 |
2019/03/07(木) 01:28:00.03ID:rQAOToBLM
>>989
こればっかりは老害とかそういう話じゃなくて業界構造の問題だからね
米国のシステム開発は内製が主流であり、基本的に自己責任だから改修のハードルが低いの
それに合わせてMSの開発者向けプロダクトも変化を許容する方向へ変わってきていて、
もはや日本のSIには全く適さないものになってしまってるんだよ
0992デフォルトの名無しさん (ドコグロ MM97-/Er5)
垢版 |
2019/03/07(木) 05:24:03.06ID:rQAOToBLM
OSSに対する考え方は顕著な例だね
受託開発においてOSSのライセンスを受ける主体は開発会社じゃなくてユーザー会社だから、
当然、開発会社が使用したOSSは全てユーザー会社に把握させてユーザー会社自身が承認しなければならない
これは事業形態上完全に正当で必須なプロセスであり、時代遅れとかそういう問題ではない
NuGetやNPMなどのパッケージマネージャで依存関係として勝手に入ってくるOSS全てに対してこのプロセスを適用するのは事実上不可能
0998デフォルトの名無しさん (ワッチョイ df4f-IDpv)
垢版 |
2019/03/07(木) 08:51:22.28ID:p9S7AU5B0
インターネット創世記の頃は情報共有とか甘い言葉が飛び交ったが
最近ではやっぱスキルやノウハウといった知的財産情報は
対価を払って手に入れるべきだと思うようになった
ネットでただで手に入れたいなら英語くらい読めよって話だな
レス数が1000を超えています。これ以上書き込みはできません。

ニューススポーツなんでも実況