1 名前:デフォルトの名無しさん [2017/09/08(金) 18:12:11.06 ID:Ej7G00WU.net] 「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。 他のスレッドでは書き込めないような低レベルな質問、 質問者自身なんだか意味がよく分からない質問、 ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。 内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。 なお、テンプレが読めない回答者は邪魔なので後述のC#相談室に移動して下さい。 C#に関係の無い話題や荒らしの相手や罵倒レスはやめてください >>980 を踏んだ人は新スレを建てて下さい。 >>980 が無理な場合、話し合って新スレを建てる人を決めて下さい。 ■前スレ ふらっと C#,C♯,C#(初心者用) Part130 https://mevius.2ch.net/test/read.cgi/tech/1500327645/ ■関連スレ C#, C♯, C#相談室 Part94 [無断転載禁止]©2ch.net echo.2ch.net/test/read.cgi/tech/1492843013/ ■コードを貼る場合は↓を使いましょう。 ideone.com/ https://dotnetfiddle.net/ ■情報源 https://msdn.microsoft.com/en-us/library/gg145045.aspx referencesource.microsoft.com/
331 名前:デフォルトの名無しさん mailto:sage [2017/09/18(月) 00:47:59.35 ID:EYlFP7gd.net] あ、わかった 識別子だ 変数だけは無理だな
332 名前:デフォルトの名無しさん mailto:sage [2017/09/18(月) 00:49:52.49 ID:EYlFP7gd.net] 眠い中探した俺を誉めろ
333 名前:デフォルトの名無しさん mailto:sage [2017/09/18(月) 02:20:01.85 ID:ozgak7
] [ここ壊れてます]
334 名前:o7.net mailto: >>327 若年性老害候補、一直線!おめでとう [] [ここ壊れてます]
335 名前:デフォルトの名無しさん mailto:sage [2017/09/18(月) 05:39:51.27 ID:8KP9vlA9.net] >>327 眠い中どうもありがとうございます 雷鳴ってPC落としてたら… やはり他の部分も変わってしまいますね 変数だけ色分けできたら使いやすいのに…
336 名前:デフォルトの名無しさん mailto:sage [2017/09/18(月) 06:00:31.65 ID:Yvok/w5K.net] クラスでListや配列を扱う勉強してます 以下はテキストボックスを使ってListをどう扱えば良いのかを考えている実験用ソースです public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { string hyouji; TextBox textbox01 = new TextBox(); this.Controls.Add(textbox01); hyouji = Test01(); textbox01.Text = hyouji; } private string Test01()//テスト用オブジェ作成メソッド { List<string> testList = new List<string> { "a", "b" ,"あ","ん"}; Testclass jikken; jikken = new Testclass(); jikken.youso = testList; return jikken.test(); } }
337 名前:デフォルトの名無しさん mailto:sage [2017/09/18(月) 06:00:51.39 ID:Yvok/w5K.net] public class Testclass//クラスと配列のテスト用 { public List<string> youso = new List<string>(); string modori; public string test() { modori = string.Join(",", youso); modori = modori + "-" + modori; return modori; } }; class Testclassの中のtestメソッドで文字列に変換したものを stringの戻り値を多段経由してテキストボックスに表示しています クラス跨いでのControlの扱いが分かってないのですが、 のソースで戻り値を経由せず、Testclassのtestメソッドからtextbox01.textに直接書き込むにはどうしたら良いでしょうか?
338 名前:デフォルトの名無しさん mailto:sage [2017/09/18(月) 06:02:16.29 ID:Yvok/w5K.net] 色々余計なことや面倒くさい宣言、ダサいことしてたりしますが、試行錯誤の名残なのでご容赦ください
339 名前:デフォルトの名無しさん mailto:sage [2017/09/18(月) 06:12:51.82 ID:Yvok/w5K.net] https://ideone.com/aopoUw すみません コード貼る…の使い方が分かってなかったです コード貼っときました
340 名前:デフォルトの名無しさん mailto:sage [2017/09/18(月) 08:33:57.39 ID:7QJzTfH9.net] どっちかというと外に追い出すべきは textBox.Textへの書き込みでは無くて Test01メソッドの方
341 名前:デフォルトの名無しさん mailto:sage [2017/09/18(月) 10:54:18.79 ID:g7YoyWj5.net] WebBrowserのNavigating、Navigated、DocumentCompleteイベントがわかりません ログ見てるとNavigatingが一度しか呼ばれていないのにNavigatedが2回呼ばれてDocumentCompleteが呼ばれる 自分の頭の中ではNavigating→Navigated→DocumentCompleteの順番だと思っているのですが違うのでしょうか? 参考になるページありましたらご教示お願いします
342 名前:デフォルトの名無しさん mailto:sage [2017/09/18(月) 21:27:10.73 ID:HjSStS87.net] 初歩的かもですが、下記例の書き方で、Objectで引数を受け取るのにクラス変数の型に合わせてキャストして受け取る形が少し不自然に感じます。 この様な書き方で問題ないのでしょうか? それとも他にいい感じの書き方がありますでしょうか? class Test { private int a; private string b; public Test(params object[] param) { a = (int)param[0]; b = param[1].ToString; } }
343 名前:デフォルトの名無しさん mailto:sage [2017/09/18(月) 21:31:12.97 ID:IcOpWHLw.net] >>336 動けばいいだろカス
344 名前:デフォルトの名無しさん mailto:sage [2017/09/18(月) 21:35:23.03 ID:BIiVnPJO.net] >>336 object型で引数を受け取る必要あるの? public Test( int a, string b ) { this.a = a; this.b = b; }
345 名前:デフォルトの名無しさん mailto:sage [2017/09/18(月) 21:35:57.16 ID:JMdJN0yq.net] >>336 何を求めているのかいまいちわからないけど、その文だとparam[0]がキャストできないときにエラーで止まる なので例えば bool result = Int32.TryParse(param[0], out a); に変える この場合キャストできないときにresultにfalseが入る
346 名前:デフォルトの名無しさん mailto:sage [2017/09/18(月) 21:38:06.59 ID:HjSStS87.net] >>338 あくまで例って言う通り、実際はもっと多い引数だったり、場合によっては一部値を渡さない実装(デフォルト値設定)するつもりなんですよね paramsって名前付き引数にできるのか?とか今調べてます 無理そうならDictionary使おうかとか考えてるところです
347 名前:デフォルトの名無しさん mailto:sage [2017/09/18(月) 21:40:19.22 ID:HjSStS87.net] >>339 ありがとうございます TryParseの存在は知ってましたが、例外処理書いて載せるのめんどいのでとりあえずキャストだけ書いとけってやりました すいません
348 名前:デフォルトの名無しさん mailto:sage [2017/09/18(月) 21:43:00.12 ID:xV3zBIyo.net] 他人にエスパー能力を求めてる自覚がない人は困っちゃうねw
349 名前:デフォルトの名無しさん mailto:sage [2017/09/18(月) 21:47:27.13 ID:nAoTSCTK.net] >>340 型を作る 用途次第だけど
350 名前:デフォルトの名無しさん [2017/09/18(月) 21:48:03.01 ID:HjSStS87.net] 実際はこの画像の感じで色んな型の変数をセットしていくのに、コンストラクタにparamsで渡していって、受け取ってない場合は初期値入れるってのをやるつもりです。 https://imgur.com/a/f5Xg7 元々rubyで書いてあるプログラムなんですが、C#で移植しながら書こうとしています。
351 名前:デフォルトの名無しさん mailto:sage [2017/09/18(月) 21:52:25.02 ID:IcOpWHLw.net] >>344 なんでそんな賽の河原の石積みみたいなことしてんの?
352 名前:デフォルトの名無しさん mailto:sage [2017/09/18(月) 21:52:57.70 ID:k38CZIuV.net] paramsは可変長引数だからその例には適さないぞ
353 名前:デフォルトの名無しさん mailto:sage [2017/09/18(月) 21:59:58.66 ID:HjSStS87.net] >>346 rubyだと def Initialize(params) @stock_code = params[:stock_code] @trade_type = params[:trade_type] な感じで実装されてたので、C♯でも可変長変数と名前付きで渡せるかなーって考えてました・・・ それが無理なら変数をまとめて型にするか、Dictionaryかなって感じです
354 名前:デフォルトの名無しさん mailto:sage [2017/09/18(月) 22:04:11.24 ID:xV3zBIyo.net] なぜ素直にオーバーロードとかオプション引数&名前付き引数を使わないんだろう...
355 名前:デフォルトの名無しさん mailto:sage [2017/09/18(月) 22:09:33.77 ID:nAoTSCTK.net] >>344 コンストラクタでTryParseとかはアレなんでFactory使う あと各データのできるタイミングやまとまりが違うものがフラットに混ざってるので DBの正規化的なアプローチで少しデータ構造を考えといたほうがいいかもね とりあえず移植したいだけなら型つくって移植して 後で困ってからリファクタリングしたのでもいいと思う
356 名前:デフォルトの名無しさん mailto:sage [2017/09/18(月) 22:09:51.89 ID:vOYXlSBd.net] dynamicと匿名型使えば?
357 名前:デフォルトの名無しさん mailto:sage [2017/09/18(月) 22:10:50.50 ID:BIiVnPJO.net] >>344 コンストラクタでは初期値だけ入れて、newする時にプロパティに代入するのが良いと思う。 var trade = new Trade() { stock_code = X, trace_type = Y, .... };
358 名前:デフォルトの名無しさん mailto:sage [2017/09/18(月) 22:21:57.04 ID:HjSStS87.net] >>348 確かにそっちのが簡潔ですね・・・ 元々長いのと後々追加する時を想定して少しこの辺りいい方法無いかなって模索してたので >>349 Factoryは知りませんでした、調べてみます >>351 こういうやり方のがすっきりしてそうですね、見た目も分かりやすそうな感じがします ただsetはこれだとpublicですが、private運用のがいいのかとか考えていました。 プロパティ使って代入ってよくある使い方なのでしょうか?
359 名前:デフォルトの名無しさん mailto:sage [2017/09/18(月) 22:25:06.53 ID:HjSStS87.net] >>350 これも使い方調べてみます
360 名前:デフォルトの名無しさん mailto:sage [2017/09/18(月) 22:42:34.01 ID:HjSStS87.net] >>352 一先ず、プロパティのset使って運用しようかと思います 後々何かいい形に出来そうなら変更していこうかと思います 回答下さった皆様、ありがとうございました
361 名前:デフォルトの名無しさん mailto:sage [2017/09/18(月) 22:49:09.22 ID:IKMu/QN7.net] パ
362 名前:宴=[タークラス作ってそれに全部値入れて渡せば? [] [ここ壊れてます]
363 名前:デフォルトの名無しさん mailto:sage [2017/09/18(月) 22:51:27.14 ID:IKMu/QN7.net] object[]で渡すなんてバグの温床だよそんなもん 自分で呼び出すときと処理書くときに困るだけだ 初心者なら普通に関数書くほうがいい
364 名前:デフォルトの名無しさん mailto:sage [2017/09/18(月) 23:04:27.54 ID:vOYXlSBd.net] 直接プロパティを設定するのはあまり良くないよ いつ外から書き換えられるかわからず、それに対応できるように作るのは無駄に手間がかかるしテストもクソ面倒になる 結局、いつでもプロパティを書き換えられるように見えるくせに初期化時以外に書き換えたら壊れる糞みたいなクラスが出来上がる
365 名前:デフォルトの名無しさん mailto:sage [2017/09/19(火) 00:12:55.89 ID:UFvzWEfw.net] >>344 証券会社どこに対応?
366 名前:デフォルトの名無しさん mailto:sage [2017/09/19(火) 01:11:24.64 ID:OkajuEzq.net] >>358 そういうのとは違うみたいよ https://books.google.co.jp/books?id=HOiNAwAAQBAJ&pg=PT87#v=onepage
367 名前:デフォルトの名無しさん mailto:sage [2017/09/19(火) 06:59:39.45 ID:+o0BYr/j.net] >>359 なるほど
368 名前:デフォルトの名無しさん mailto:sage [2017/09/19(火) 20:36:01.35 ID:dvJOAkmr.net] メソッドの戻り値がListで、その中身を可変にした定義がしたいのですができますか? インターフェースで List<Type> Select<Type>() と定義して 具象クラスで同じように定義、return List<string>(); とかやっても "List<string>をList<Type>に暗黙的に変換できません。"とエラーになってしまいました。
369 名前:デフォルトの名無しさん [2017/09/19(火) 20:38:26.15 ID:sbE0HbQy.net] linuxサーバーに好きな言語使ってwebアプリ作れって言われたら、言語何使う?
370 名前:デフォルトの名無しさん mailto:sage [2017/09/19(火) 20:46:10.64 ID:HSXd4/vW.net] >>361 何言ってるのか分からないけど、自分で(メソッドの戻り値の型を)可変にしたいといいつつ、 List<string>という非ジェネリックな型を返すのは何なの? 意味がわからないよ
371 名前:デフォルトの名無しさん mailto:sage [2017/09/19(火) 21:37:01.96 ID:oUqqEkrK.net] >>362 それをなぜここで聞く?
372 名前:デフォルトの名無しさん mailto:sage [2017/09/19(火) 22:12:23.33 ID:ekU6MC2y.net] >>361 まずTypeじゃなくてT使うように メソッドのシグネチャーが List<T> Select<T>() なら実装は return new List<T>();
373 名前:デフォルトの名無しさん mailto:sage [2017/09/19(火) 23:49:48.63 ID:WGzo2g/5.net] TabPageクラスを拡張してTabPageExクラスを作ったんですがTabControl.TabPages[index].Foo()を呼ぼうとしても呼べません どうやったら呼べるようになりますか?TabPageCollectionを派生したクラスを作らないとダメですか?
374 名前:デフォルトの名無しさん mailto:sage [2017/09/19(火) 23:53:29.45 ID:3bAYaO8L.net] どうやっても呼べるようにはならないですよ
375 名前:デフォルトの名無しさん mailto:sage [2017/09/20(水) 00:00:37.73 ID:pKHwkxOR.net] >>366 拡張した内容が分からない まず拡張したクラスでなく元のコントロールで呼び出していないか確認 その上で拡張した内容を張らないと誰もわからない
376 名前:デフォルトの名無しさん mailto:sage [2017/09/20(水) 00:05:28.12 ID:pKHwkxOR.net] あ、TabControl.TabPages[index].Foo()の時点で元のコントロールだな それはだめだ
377 名前:デフォルトの名無しさん mailto:sage [2017/09/20(水) 00:21:20.04 ID:OL4nI+z3.net] 失礼しました。拡張した内容ですが以下のとおりです タブブラウザを作りたいのでこういう風にしました TabPageクラスにGoBack、GoForwardメソッドを実装しそれをメインフォームのボタンから呼びたいのです そのためにはtabControlでどのタブが選択されているか取得しないといけないので苦労しているところなのです TabControl https://ideone.com/5QXD2p TabPage https://ideone.com/d9v3vu MainForm https://ideone.com/bByZtw
378 名前:デフォルトの名無しさん mailto:sage [2017/09/20(水) 03:50:11.03 ID:OL4nI+z3.net] 無理なんですね、わかりました やりたいことは各TabPage上にWebBrowserがあるのですがその進む戻るボタンをToolStrip上に実装したいのです どうにか実装する方法ってないでしょうか?
379 名前:デフォルトの名無しさん mailto:sage [2017/09/20(水) 06:47:27.86 ID:f7lGjoxP.net] グローバルフックの事
380 名前:学びたく、 http://d.hatena.ne.jp/myugaru/20071130/1196434749 にあるソースを実行したいと思います 新規でコンソールアプリのプロジェクトを作り Formを追加し ソースをネームスペース以外コピペして、エラー無くデバッグで立ち上がるも、コンソールとFromは出るものの、なんの反応もありません 「Visual Studio ホスティングプロセスを有効にする」を外せとのことですがVS2017Communityではその項目が見当たりません デバッグでなくビルドしたexeでも同様です どう改変したら動くようになりますでしょうか? よろしくお願いいたします [] [ここ壊れてます]
381 名前:デフォルトの名無しさん [2017/09/20(水) 09:28:35.33 ID:QOv/22JC.net] >>370 まあ単純には、 var tabex = TabControl1.TabPages[x] as TabPageEx; if (tabex != null) { ... } でもいいんじゃね
382 名前:デフォルトの名無しさん mailto:sage [2017/09/20(水) 10:09:23.61 ID:QOv/22JC.net] >>374 普通に動いたわ 新規プロジェクト作成でWindows Formsアプリケーションを選択 Form1.csを削除 Program.csを開いて既存のコードは削除してからリンク先のコードをペースト F5 VSをアクティブにして出力ウィンドウにフォーカス移動して適当にキー入力するとmessage=KEYDOWNとか出力される VS2017はホスティングプロセスがなくなったっぽい ちなみにホスティングプロセスで動いてるかどうかは デバッグ実行中にタスクマネージャ開いて hoge.exeの代わりにhoge.vshost.exeが動いてるかどうかで判断できる
383 名前:デフォルトの名無しさん mailto:sage [2017/09/20(水) 18:54:31.86 ID:EHoWpSXt.net] >>374 ありがとうございます できました
384 名前:デフォルトの名無しさん mailto:sage [2017/09/20(水) 21:35:02.01 ID:PQ6KY/LI.net] test
385 名前:デフォルトの名無しさん mailto:sage [2017/09/20(水) 21:35:49.94 ID:PQ6KY/LI.net] https://github.com/chomado/Xamalist/commit/1422a3eb2a80bba53b43afa3ea8afdb5d689cf55 このコードについて質問です StringExtentions っていうのをなぜ改めて作っているのかわからないんですが クラスの中にString型のオブジェクトがあれば、IsNullOrEmptyを呼び出せないの?
386 名前:デフォルトの名無しさん mailto:sage [2017/09/20(水) 22:16:03.45 ID:DOSxYj0U.net] >>377 static methodだからインスタンスメソッドとしては呼び出せない String.IsNullOrEmpty(foo) と foo.IsNullOrEmpty の違い
387 名前:デフォルトの名無しさん [2017/09/20(水) 22:42:10.58 ID:eNb8jX7J.net] 今となってはFormアプリケーションの作り方を覚えても無駄でしょうか? 現場でGUIアプリケーションはどのように作りますか?
388 名前:デフォルトの名無しさん mailto:sage [2017/09/20(水) 22:54:26.15 ID:JtkVUIC7.net] その現場による
389 名前:デフォルトの名無しさん mailto:sage [2017/09/20(水) 22:55:28.94 ID:eNb8jX7J.net] 防衛省案件とかはどうでしょうか?
390 名前:デフォルトの名無しさん mailto:sage [2017/09/20(水) 22:56:02.60 ID:eNb8jX7J.net] Qt?
391 名前:デフォルトの名無しさん mailto:sage [2017/09/20(水) 23:13:28.76 ID:FueCi3Km.net] >>379 未だにそれよ 無駄にはならないよ なんだかんだいって仕組みは一緒だから
392 名前:デフォルトの名無しさん mailto:sage [2017/09/21(木) 08:27:22.37 ID:3ejzg6/y.net] >>373 できました。ありがとうございます。 >>370 を作る過程でマウスの中クリックでWebBrowserのタブ追加を行う際にTabControlクラスのメソッドを呼ばないと行けないんですが、この場合どうするのがいいのでしょうか? ・TabControlクラスのメソッドをTabPageクラスのコンストラクタに渡し、さらにWebBrowserのコンストラクタに渡す ・TabControlクラス内でパブリックな静的インスタンスを保持するプロパティを作成し、その静的インスタンスを介しWebBrowserクラスからメソッドを呼び出す
393 名前:デフォルトの名無しさん mailto:sage [2017/09/21(木) 08:29:37.61 ID:3ejzg6/y.net] >>384 途中送信してしまいました 設計上はどちらが優れているのか教えてほしいです また他にいい案ありましたらお願いします
394 名前:デフォルトの名無しさん mailto:sage [2017/09/21(木) 10:32:53.97 ID:qZmCICJB.net] Parent.Parent
395 名前:デフォルトの名無しさん mailto:sage [2017/09/21(木) 18:06:25.21 ID:JtwQpz4i.net] >>383 それ聞いて安心したよ。ありがとう。 まずはFormアプリケーションを勉強することにした。
396 名前:デフォルトの名無しさん mailto:sage [2017/09/22(金) 07:06:24.08 ID:2m2DZ4nM.net] 質問です 宜しくお願いしいます アプリ設定の保存の最も初歩的な所から勉強しようと思っているのですが qiita.com/taigaaa2/items/7f05ad950a57033892ae ↑が一番単純な構造で分かりやすいと思い、記述通りに設定し、ソースも必要部分をコピペで入力 エラーもでずにアプリも走りますが、設定を読み込んでいない(Projects\Hoge\Hoge\bin\Debug内のHoge.exe.configを弄っても何も反映されない) 保存もされていない(user.configがどこにも作成されていない)という状況です どこか他に設定箇所があるのでしょうか? よろしくお願いします
397 名前:デフォルトの名無しさん mailto:sage [2017/09/22(金) 08:12:54.86 ID:+YP/tqCe.net] >>388 ありがちなのは Properties.Settings.Default.Save(); が抜けている
398 名前:デフォルトの名無しさん mailto:sage [2017/09/22(金) 08:34:32.57 ID:VB7mr2jw.net] ありがとうございます private void Form1_FormClosing(object sender, FormClosingEventArgs e) { Properties.Settings.Default.HozonString = this.txtHogeString.Text; Properties.Settings.Default.HozonInt = int.Parse(this.txtHogeInt.Text); Properties.Settings.Default.Save(); } この部分の最終行ですよね? 書いてあります
399 名前:デフォルトの名無しさん mailto:sage [2017/09/22(金) 08:50:55.65 ID:VB7mr2jw.net] HozonStringに値を入れても反映されません… なんかこのシステム自体が動いてないような…
400 名前:デフォルトの名無しさん mailto:sage [2017/09/22(金) 08:52:07.52 ID:KxUIJ/0F.net] >>388 そのページはデザイナの設定が書いてないがLoadとFormClosingのイベントの設定はしてある?
401 名前:デフォルトの名無しさん mailto:sage [2017/09/22(金) 09:06:14.05 ID:VB7mr2jw.net] >>392 ありがとうございます それでした! Formのプロパティーとかもデザイナー使わないで設定する方法ばかりやってたんで、 デザイナーの方でハンドラの設定してないのすっかり忘れてました LoadもFormダブルクリックするのすっかり忘れて…お恥ずかしい ありがとうございました 凄く助かりました
402 名前:デフォルトの名無しさん mailto:sage [2017/09/22(金) 09:10:59.92 ID:KxUIJ/0F.net] >>393 初心者向きのようで初心者が書いて大事な部分が抜けているページだな 面倒でも他の所参考にした方がいい https://dobon.net/vb/dotnet/programing/mysettings.html とか
403 名前:デフォルトの名無しさん mailto:sage [2017/09/22(金) 09:13:00.30 ID:XETG01Ra.net] データベース接続文字列ってあんな長いの手動で書くものなんでしょうか? 自動出力とかないのですか?
404 名前:デフォルトの名無しさん mailto:sage [2017/09/22(金) 09:19:19.37 ID:L886aacT.net] 長いか? 長い奴でも2〜3行程度しか書いたことないけど
405 名前:デフォルトの名無しさん mailto:sage [2017/09/22(金) 10:29:26.18 ID:/H9tPbO8.net] データベースへの接続のウィザードとか使えば接続文字列勝手に作ってくれるだろ
406 名前:デフォルトの名無しさん mailto:sage [2017/09/22(金) 10:33:15.19 ID:eYJEmi08.net] >>395 DbConnectionStringBuilderからの派生クラス使うとか Dictionary形式だから項目多いなら管理楽になるけど
407 名前:デフォルトの名無しさん mailto:sage [2017/09/22(金) 10:37:52.34 ID:usj2bMF0.net] 接続文字列は全世代の遺物なんだけど 誰も改善しようとしない ローカルルールだからけの文字列をわざわざ考えて それをまたどこかでわざわざパースしてるんだから馬鹿らしい connectionStringBuilderとかあるけどあれは文字列作って それをまたパースしてるんだから同じく馬鹿らしい
408 名前:デフォルトの名無しさん mailto:sage [2017/09/24(日) 07:01:15.21 ID:fnb/dDo2.net] >>386 ありがとうございます 取り掛かっているのですがマウスのホイールクリックで新たなタブとして開きたいのですが WebBrowser.Document.Clickイベントで躓いています WebBrowser_DocumentCompletedイベントに「Document.Click += Document_Click」をの一文を追加し Document_ClickイベントのマウスのHtmlElementEventArgs.MouseButtonPressedでホイールクリックを検知しようとしたところ 左クリックでも中クリックでも右クリックでもNoneと表示されています WebBrowserのDocument上で中クリックを検出す
409 名前:驍ノはどうすればいいでしょうか? [] [ここ壊れてます]
410 名前:デフォルトの名無しさん mailto:sage [2017/09/24(日) 07:46:57.15 ID:0E5Ac8qe.net] すみません 変な質問かもしれませんが、宜しくお願いします Label hogehoge = new Label とhogehogeというインスタンスのLabelを作ったとします プロパティーで名前は指定していません 他のプロパティーも空という前提でお願いします このLabelのダブルクリックでイベントハンドラーを作り イベントの中に Console.WriteLine(((Label)sender).Name); としても当然名前は出てきません この時、hogehogeというLabelを識別する文字列を取得したいのですが(この場合hogehogeが一番良い)、インスタンス名を取得 と検索しても出てこずです 名前の付いてないControlを識別する文字列を取得するにはどうしたら良いでしょうか? Console.WriteLine(((Label)sender).〜のところに使えるいろんなコードをスニペットで調べてもそれっぽいものが無いのですが そもそも名前を付けとけというのは別として、なんらかの方法で識別する文字列を取得できますか? よろしくお願いします
411 名前:デフォルトの名無しさん mailto:sage [2017/09/24(日) 07:59:04.31 ID:8QRYtBFv.net] nameofじゃね
412 名前:デフォルトの名無しさん mailto:sage [2017/09/24(日) 08:19:31.40 ID:Iu73uVEK.net] ないよ 欲しいなら自分で付けとけとしか言いようがないね というかそもそも識別するのに名前である必要がある? ってところから検討しないと
413 名前:デフォルトの名無しさん mailto:sage [2017/09/24(日) 08:20:29.03 ID:8QRYtBFv.net] デバッグ用に出したいときあるじゃん
414 名前:デフォルトの名無しさん mailto:sage [2017/09/24(日) 09:00:09.85 ID:N5BpuRhH.net] >>401 名前以外で固有ってハンドルくらいじゃね? 自動生成とかで名前を付ける手間を省きたいとかなら>>403 の通り名前である必要が無いし
415 名前:デフォルトの名無しさん mailto:sage [2017/09/24(日) 09:27:14.32 ID:0E5Ac8qe.net] >>404 自分もデバッグ用にと思ったんです >>403 >>405 どうもありがとうございます やはりなさそうですね 色々実験している時に、一度何かの間違いで、forのLoopの中で、インスタンス名?も名前も変えないControlを複数作って配置したことが有って、 何故かそのまま動いて、それぞれ個別に識別してるようなので、何が別の識別要素でもあるのかな?と思ってお伺いしました ありがとうございました >>402 nameofは新しいものらしく、情報が少なくて私には使い方がよくわからず ちょこっと説明みたところ「メンバ hogeの名前は"hoge"」…みたいな使い方? 入り口の入り口にいる自分には何が何やら nameof(sender)をやってみたら"sender"出ましたw nameof((Label)sender)は受け付けてもらえませんでした
416 名前:デフォルトの名無しさん mailto:sage [2017/09/24(日) 11:36:28.18 ID:T/MiKQPL.net] 変数名を取得したいんじゃなくて インスタンス作成時にコントロールのNameプロパティに変数名を自動でセットしたいの? そんな機能は存在しないから自分でシコシコ手書きでやっとけ
417 名前:デフォルトの名無しさん mailto:sage [2017/09/24(日) 11:55:06.77 ID:1OC4vxE7.net] リフレクションでもないんかな? msのコントロールにもインスタンス突っ込むとメンバ名が出てくるのあるけどね 変数名は無いのか
418 名前:デフォルトの名無しさん mailto:sage [2017/09/24(日) 11:55:11.39 ID:E+MF96aa.net] リフレクションでもないんかな? msのコントロールにもインスタンス突っ込むとメンバ名が出てくるのあるけどね 変数名は無いのか
419 名前:デフォルトの名無しさん mailto:sage [2017/09/24(日) 12:00:44.73 ID:NHAiERWm.net] ローカル変数名なんてILに残らないし流石にリフレクションは無理なのでは
420 名前:デフォルトの名無しさん mailto:sage [2017/09/24(日) 12:27:00.23 ID:N5BpuRhH.net] Name属性がなくてもsender==label1とかの識別ならできるけど中でハンドル比較しているんじゃないかな だからどうしても出したかったらフィールドの一覧から一致するハンドルを探せばできなくはない
421 名前:デフォルトの名無しさん mailto:sage [2017/09/24(日) 12:40:22.57 ID:g05veIjA.net] >>406 Formに配置したコントロールは、Controlsプロパティで取得出来る。 Controls.Where( x => x is Label )とかやればLabelコントロールに絞り込めるけど、それ以上は判別しようがないな。
422 名前:デフォルトの名無しさん mailto:sage [2017/09/24(日) 12:41:57.70 ID:6oSExpao.net] 設計が間違ってる
423 名前:デフォルトの名無しさん mailto:sage [2017/09/24(日) 13:12:02.52 ID:U4nAGnPY.net] 設計なんて大げさなものじゃなく、考え方が間違ってるねw なんか盛大に勘違いしてるというか なぜNameをIDにしたいなら素直にNameを設定しないのか意味が分からない 何がしたいの
424 名前:デフォルトの名無しさん mailto:sage [2017/09/24(日) 15:12:59.43 ID:KcVpSqdX.net] 変数名とNameで2回hogeと書くのが冗長だってんでしょ 是非についてはどうでもよすぎるのでコメントしない 鼻くそでもほじってる方がマシ
425 名前:デフォルトの名無しさん mailto:sage [2017/09/24(日) 16:08:08.69 ID:F2yzHt0b.net] 変数名は前まではプログラムする人のためにあって 実行環境まで残ってないものだった 最近は変数名が残るようになったので使おうとする人が多いけど もともとそういう種類のものじゃないんだよ
426 名前:デフォルトの名無しさん mailto:sage [2017/09/24(日) 22:08:09.82 ID:fnb/dDo2.net] >>400 もどなたかお願いします
427 名前:デフォルトの名無しさん mailto:sage [2017/09/25(月) 01:09:43.42 ID:T67/GWI3.net] 自己解決しました。 Document.ClickイベントではなくDocument.Linksのほうに一つずつMouseDownイベントを追加することでできました これは解決済みなのですが、すっきりしないので確認させてください Document.LinksのMouseDownイベント内でDocument.GetElementFromPointメソッドに渡す引数ですが、 MousePositionやOffsetMousePositionを渡すようにしているページがかなりあったのですが、どっちも使えずでClientMousePositionを渡すようにしたのですが .NETのバージョンがあがるにつれ、変わったのでしょうか?
428 名前:デフォルトの名無しさん mailto:sage [2017/09/25(月) 02:40:11.77 ID:60Ft387g.net] パネルに画像などを追加していった際、描画範囲より外に出てしまった場合に AutoScrollをtureにするとスクロールバーが表示されますよね? 縦方向のスクロールバーが本来は右側に出ると思うのですが、左側に出てしまいます。 すごく違和感があるので右側にしたいのですが、調べてみても特に設定する方法がみつからないのですが、 なぜなんでしょうか?
429 名前:デフォルトの名無しさん mailto:sage [2017/09/25(月) 02:44:47.14 ID:1vb5e8br.net] RightToLeftとRightToLeftLayoutのプロパティをいじったとか
430 名前:デフォルトの名無しさん mailto:sage [2017/09/25(月) 02:47:25.81 ID:60Ft387g.net] >>420 無事解決しました。 プロパティを触っているときにうっかりRightToLeftをYesにしてしまっていたようです、ありがとうございました。
431 名前:デフォルトの名無しさん mailto:sage [2017/09/25(月) 08:12:41.42 ID:OL/9MGvm.net] 質問です。ボタンの外観が変わらないのです。 or2.mobi/data/img/171707.png 画像の左側がデザイン時、右側がデバッグ時です。 左側のデザイン時にしたいのですがどうしたらいいですか? FlatStyleを変更しても変わりませんでした。