18/12/15 10:46:07.45 Wu4Fx0bU.net
「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
他のスレッドでは書き込めないような低レベルな質問、
質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。
内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。
なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスはやめてください
>>980を踏んだ人は新スレを建てて下さい。
>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。
2:デフォルトの名無しさん
18/12/15 10:48:30.68 Wu4Fx0bU.net
■前スレ
ふらっと C#,C♯,C#(初心者用) Part140
スレリンク(tech板)
■コードを貼る場合は↓を使いましょう。
URLリンク(ideone.com)
URLリンク(dotnetfiddle.net)
3:デフォルトの名無しさん
18/12/15 10:53:31.45 Wu4Fx0bU.net
C# のガイド
URLリンク(docs.microsoft.com)
Microsoft Docs
URLリンク(docs.microsoft.com)
.NET Documentation
URLリンク(docs.microsoft.com)
URLリンク(referencesource.microsoft.com)
テンプレート以上
4:デフォルトの名無しさん
18/12/15 11:10:32.00 o4PwGoKi.net
本スレ(ワッチョイあり)誘導
ふらっと C#,C♯,C#(初心者用) Part141
スレリンク(tech板)
5:デフォルトの名無しさん
19/03/07 18:11:07.25 /Jh0neEY.net
ピクチャーボックスにallowdropはありましたか?
フォームのプロパティからはみつかりません。
ピクチャーボックスからピクチャーボックスに画像を移動させるプログラを作りたいのですが、参考ページはありますか?ピクチャーボックス以外での解説はあるようです。
6:デフォルトの名無しさん
19/03/07 18:38:24.06 Lh0uMM6Z.net
>>5
「フォームのプロパティ」じゃなく「PictureBoxのプロパティ」じゃないのか
もしデザイナの一覧に表示されていなくてもどっちにもAllowDropのプロパティはある
ピクチャーボックスからピクチャーボックスに画像を移動させるのはImageプロパティをそのまま代入するだけ
7:デフォルトの名無しさん
19/03/08 11:59:10.38 dOPZ4GNG.net
↑回答ありがとうございます
allowdropはコード上にしかないみたいですね
gui上からは設定項目が見つからないです
8:デフォルトの名無しさん
19/03/08 16:51:25.14 RT9HCx1Y.net
グローバル変数の定義にvarを使おうとしたらだめだって言われたんだけど、これってなんで使えないようになってるの?
ローカル変数なら良くてグローバル変数ならだめとか意味が分からん
9:デフォルトの名無しさん
19/03/08 17:17:51.69 dOPZ4GNG.net
private void pictureBox_main_of_form1_DragEnter(object sender, DragEventArgs e)
{
AllowDrop = true;
MessageBox.Show("ドラッグエンター");
}
ドラッグの許可ですが、これだけではドラッグできないです
メッセージのイベントが発生しないのですが、どこがわるいのでしょうか?
ドラッグエンターというのは領域内にドラッグされたら発生するイベントかと思います
10:デフォルトの名無しさん
19/03/08 17:25:49.29 KslHfI7m.net
>>9
AllowDrop = true;はthis.AllowDrop = true;と同じ。つまりフォームのAllowDrop = true;の設定
それ以前にpictureBoxのドロップイベントでpictureBox.AllowDrop = trueにしようとしているみたいだけど無意味
コントロールの設定はどこでやるべきかわからない?もう少し考えてから質問するようにしないと
11:デフォルトの名無しさん
19/03/08 17:25:58.73 dOPZ4GNG.net
どうやらピクチャーボックスの許可の問題のようです
panelなら問題なくメッセージが出ます
そちらについて調べてみます
12:デフォルトの名無しさん
19/03/08 17:27:22.36 dOPZ4GNG.net
>>10
pictureboxはドロップを許可できないということですか?
13:デフォルトの名無しさん
19/03/08 17:34:42.50 KslHfI7m.net
クラスのコンストラクタ、プロパティなど勉強して出直してきなさい
14:デフォルトの名無しさん
19/03/08 17:43:07.32 dOPZ4GNG.net
はい
15:デフォルトの名無しさん
19/03/08 21:09:46.20 unDD4xx5.net
ドラッグドロップって面倒臭いな。糞サンプル書いてみた
public Form1()
{
InitializeComponent();
listBox1.Items.AddRange(GetWebColors().Cast<object>().ToArray());
pictureBox1.AllowDrop = true;
}
private Color? mDataToDrop;
static IEnumerable<Color> GetWebColors()
{
foreach (PropertyInfo info in typeof(Color).GetProperties(BindingFlags.Public | BindingFlags.Static))
yield return (Color)info.GetValue(null, null);
}
private void listBox1_MouseDown(object sender, MouseEventArgs e)
{
if (e.Button != MouseButtons.Left) return;
var index = listBox1.IndexFromPoint(e.Location);
if (index < 0) return;
mDataToDrop = (Color)listBox1.Items[index];
}
16:デフォルトの名無しさん
19/03/08 21:10:55.42 unDD4xx5.net
private void listBox1_MouseMove(object sender, MouseEventArgs e)
{
if (!e.Button.HasFlag(MouseButtons.Left)) mDataToDrop = null;
if (mDataToDrop != null)
listBox1.DoDragDrop(mDataToDrop, DragDropEffects.All);
}
private void pictureBox1_DragDrop(object sender, DragEventArgs e)
{
var color = e.Data.GetData(typeof(Color)) as Color?;
if (color != null) pictureBox1.BackColor = color.Value;
}
private void pictureBox1_DragOver(object sender, DragEventArgs e)
{
e.Effect = DragDropEffects.Copy;
}
17:デフォルトの名無しさん
19/03/08 21:13:48.36 unDD4xx5.net
>>15を書いてて疑問に思ったんだが、ListBoxってマウスがキャプチャーされないのか?
ListBoxのクライアント領域の外でマウスのボタンを離してもMouseUpが発生しないけど何なのこれ。
変だよね?
18:デフォルトの名無しさん
19/03/08 21:45:39.00 S6VEx3Fw.net
>>5
答えそのものをあげる
URLリンク(ideone.com)
Windowsフォームアプリケーションを作る
ソリューションエクスプローラーからForm1.csとProgram.csを削除する
ソリューションエクスプローラーのプロジェクトで追加->既存の項目でダウンロードしたcsファイルを追加する
ビルドして完成
左のボックスにはエクスプローラーから画像をドロップできる
右のボックスは左のボックスからドロップできる
19:デフォルトの名無しさん
19/03/09 01:21:53.28 RHbC4qfa.net
>>15
ごめんこれ思いっきり変なことやってるわ。
DoDragDropはMouseDownで一度だけ呼べばいい。
フィールド(mDataToDrop)なんか作る必要なかった。
20:デフォルトの名無しさん
19/03/09 01:38:55.18 cfwlR9A2.net
ReadLineとParseはどういう違いがあるのでしょうか?
どちらも入力を行うための物みたいですが違いが分かりません。
URLリンク(ufcpp.net)を見ながらやってます
21:デフォルトの名無しさん
19/03/09 01:56:17.70 N1XPQc7R.net
1+1は2になるのに1×1はなんで1なんですか違いがわかりません、みたいな質問だ
22:デフォルトの名無しさん
19/03/09 02:36:17.53 FZa5GqcE.net
>>20
Console.ReadLine()はコンソールから文字列を取得(入力)
int.Parse()/double.Parse()は文字列をint型/double型に変換する
23:デフォルトの名無しさん
19/03/09 02:58:14.98 cfwlR9A2.net
>>22
charもReadLineですかね?
分かりました。ありがとうございます
24:デフォルトの名無しさん
19/03/10 05:02:53.58 enIE2ATr.net
form1.csというファイル自体はクラスとは言わないのでしょうか?
25:デフォルトの名無しさん
19/03/10 08:00:13.99 xzUDrYOg.net
いわない
26:デフォルトの名無しさん
19/03/10 08:48:37.14 enIE2ATr.net
↑ありがとぅございます
27:デフォルトの名無しさん
19/03/10 08:49:07.21 enIE2ATr.net
ドラッグイベントについてなんですが、やり方としてはマウスの位置にコントロールを移動させると考えて良いでしょうか?
28:デフォルトの名無しさん
19/03/10 09:47:12.78 MYQ0O9oy.net
>>24
「クラスが何か」って説明は自分が>>20で書いたサイトを読み進めれば書いてあるのにまだ読んでないの?
URLリンク(ufcpp.net)
>>27
>15-16,18のどこに「マウスの位置にコントロールを移動」している部分がある?
マウス止めてそこにコントロール持ってくることがまずおかしいでしょ
>16はlistBox1.DoDragDrop(mDataToDrop, DragDropEffects.All);
>18はpictureBox1.DoDragDrop(dataObj, DragDropEffects.Copy);
のそれぞれが「ドラッグドロップを開始(DoDragDrop)」
そしてDragDropイベントでコントロールに対する「ドラッグドロップを受ける」動作になっている
29:デフォルトの名無しさん
19/03/10 12:28:17.59 Gkjt178x.net
.Net Frameworkの標準クラスライブラリにある全インターフェースの機能見たいんだけど
MSDNしかない?
30:デフォルトの名無しさん
19/03/10 12:30:03.47 Gkjt178x.net
IEnumerable<T>
ICollection<T>
IList<T>
これって分けてる意味あるの?全部IListでよくない?
31:デフォルトの名無しさん
19/03/10 12:39:21.20 /0JR1y5c.net
>>30
使う側目線に立てばね。「大は小を兼ねる」
実装する側に立てば違うでしょ。
Enumerable<T> がなければイテレーターも存在できない。
>>15に書いた↓みたいな奴ね
static IEnumerable<Color> GetWebColors()
{
foreach (PropertyInfo info in typeof(Color).GetProperties(BindingFlags.Public | BindingFlags.Static))
yield return (Color)info.GetValue(null, null);
}
32:デフォルトの名無しさん
19/03/10 12:41:31.02 /0JR1y5c.net
LINQみたいな(値の集合ではなく)シーケンスとして扱うライブラリも存在できなくなるね
33:デフォルトの名無しさん
19/03/10 12:44:15.26 w/W9tZbl.net
使う側からしても大は小を兼ねるは無い。
いざメソッドを使ってみたら、NotSupportedException例外が飛んでくるとか嫌でしょ。
34:デフォルトの名無しさん
19/03/10 12:53:53.37 Gkjt178x.net
IList使ったからって容量が膨大になるわけじゃないでしょ?
謎すぎる
35:デフォルトの名無しさん
19/03/10 12:55:34.57 Gkjt178x.net
機能の意義の話か
列挙して読み取りするだけの機能なのに
AddやRemove機能ついてるのもおかしいよねって話か
36:デフォルトの名無しさん
19/03/10 13:39:12.23 Bl+LQorv.net
IEnumerable 読み取り専用、前方走査可能
ICollection 読み書き可能、集合全般(順序有り集合、順序無し集合など集合のスーパーセット)
IList 読み書き可能、順序有り集合、ランダムアクセス可能(実装上ランダムアクセスを装っているだけのものもあるが)
それぞれ特性が全く異なるので使い分けが必要です
37:デフォルトの名無しさん
19/03/10 15:23:21.02 edisDenU.net
そういや、インターフェイスの使い方が全く身につかん
DI等でインターフェイスを使うことが強制される場面を除いては使ったこともない・・・・
どうすればまともなコードを書けるように練習できるん?
38:デフォルトの名無しさん
19/03/10 15:27:43.76 Qg4Urcrv.net
>>37
うまい人の真似をする
39:デフォルトの名無しさん
19/03/10 16:21:58.08 Bl+LQorv.net
>>37
SOLIDの原則を忠実に守ること
40:デフォルトの名無しさん
19/03/10 18:13:18.92 edisDenU.net
>>38-39
ありがとう
SOLIDの原則を大雑把に見てきたんで、守れるように努力するよ
41:デフォルトの名無しさん
19/03/10 18:57:05.34 km5dayCM.net
異なるクラスなんだけど、List〈インターフェース〉とかにして、foreach回したり出来るのがうれしいってことでおけ?
42:デフォルトの名無しさん
19/03/10 23:29:01.92 km5dayCM.net
WPF覚えると何か嬉しい事ありますか?フォームとの違いが知りたい。
43:デフォルトの名無しさん
19/03/11 01:11:20.16 Igp7kTHu.net
>>42
MVVMという概念を知ることができる
44:デフォルトの名無しさん
19/03/11 18:06:04.14 5tiLwPRT.net
IEの自動操縦には大分慣れてきました。
そこで今回、
MicrosoftEdgeを自動操縦したいと思います。
この方法を解説している良いブログなどありませんか?
45:デフォルトの名無しさん
19/03/11 18:31:16.05 S3Rt/8QB.net
>>42
名前を付けなくても良いパターンとか
46:デフォルトの名無しさん
19/03/11 23:09:01.60 5DvwA+Xd.net
>>42
Bindingが強力。
GUIデザインが(良くも悪くも)自由。
高DPI対応が簡単。(ほとんど何もしなくていい)
47:デフォルトの名無しさん
19/03/12 08:00:12.93 oX4bYoPv.net
>>44
Ruby で、Selenium WebDriver で、ブラウザを自動操作してるけど、
Chrome, Edge のどちらでも動く
48:デフォルトの名無しさん
19/03/12 19:24:44.44 jjO1F8u1.net
>>47
C#になれてるので
できればC#で操作したいです。
C#でEdgeを操作できますか?
49:デフォルトの名無しさん
19/03/12 19:25:44.20 jjO1F8u1.net
C#でもできるみたい
URLリンク(qiita.com)
50:デフォルトの名無しさん
19/03/12 19:27:41.38 gTDSlBH3.net
>>48
はじめての C# からの Selenium
URLリンク(devadjust.exblog.jp)
ググればほかにもある
51:デフォルトの名無しさん
19/03/12 21:04:22.37 t9nw0tv2.net
pythonとかのコードコピーしてもエラーになるからな。
若干メソッドが違う。その辺の勘所あれば大丈夫。
52:デフォルトの名無しさん
19/03/13 10:40:43.08 aEeMgLuC.net
>>50
ほんまやね。
久々にC#のWindowsFormを使ってるんですが
右上の「×」ボタンをなくすにはどうすればよいですか?
自前で「閉じる」ボタンを用意しているので
邪魔なので消し去りたいのです。
53:デフォルトの名無しさん
19/03/13 11:40:37.06 y4WTTUAI.net
ControlBoxをfalseにすれば最大化最小化ボタンとともに消せる
単独で消す方法は特にない
54:デフォルトの名無しさん
19/03/13 12:10:14.62 aEeMgLuC.net
>>53
サンクス
55:デフォルトの名無しさん
19/03/13 12:41:50.39 aEeMgLuC.net
サイトに自動ログインしたいのですが
ID/PASSの自動入力、ログインボタンのクリックはできました。
しかし、Googleの認証エリア(私はロボットではありません。 reCAPTCHA)へのチェックを
どうしても入れられません。
iFrameを使っているみたいなのですが、
こういう場合ってIEの自動操縦で操作する事は無理でしょうか?
自動ログインをして手間を省きたいのです。
56:デフォルトの名無しさん
19/03/13 14:12:54.35 oz2fTnLu.net
>>55
AIの出番
57:デフォルトの名無しさん
19/03/13 15:29:39.84 J7uH1zio.net
まぁそういう自動ログインを防ぐための仕組みだしなぁ
googleと勝負するかそのサービス提供者にrecaptcha外してもらうかくらいじゃない?
58:デフォルトの名無しさん
19/03/13 18:14:15.39 aEeMgLuC.net
>>56 >>57
ID/PASSを入力してからTABキーを押すとiFrameの中の
チェックボックスにフォーカスが入るみたいです。
もしかして突破できる!!??
C# + Windows APIで
TABキーを送ってチェックボックスのクリックって
どうかけばいいですかね?
59:デフォルトの名無しさん
19/03/13 18:40:07.18 J7uH1zio.net
>>58
キーが送れるなら普通はspaceでチェックボックスonできるけどrecaptchaを突破できるかはしらん
60:デフォルトの名無しさん
19/03/13 18:59:57.06 aEeMgLuC.net
>>59
サンクス
TAB+spaceキーのsendで試してみます。
自動ログインするとだいぶん手間がはぶける
61:デフォルトの名無しさん
19/03/13 23:11:05.05 K5xsHdh9.net
自動ログインしてるとロボット判定くらって
パズルやる羽目になるんじゃないかな。
62:デフォルトの名無しさん
19/03/14 01:36:16.07 SO0caDlp.net
>>61
パズルは目視でやるつもり
さすがに画像認証は無理だわ。
63:デフォルトの名無しさん
19/03/14 17:17:00.07 SO0caDlp.net
Navigate と Navigate2の違いは何ですか?
サイトによって前者だったり後者だったりします。
64:デフォルトの名無しさん
19/03/15 09:02:12.36 ECrabEC5.net
URLリンク(docs.microsoft.com)
IWebBrowser2::Navigate2のことなら
> This method extends the IWebBrowser2::Navigate method to allow for Shell integration;
> however, this method does not make IWebBrowser2::Navigate obsolete.
> The original method can still be used for URL navigations.
65:デフォルトの名無しさん
19/03/15 09:03:53.21 ECrabEC5.net
あ、docsってURLの末尾の括弧抜くとリンクできないのか…?
URLリンク(docs.microsoft.com)
66:デフォルトの名無しさん
19/03/15 09:46:32.60 EAyT7KDv.net
↑そんなページあったんや。
サンクス
67:デフォルトの名無しさん
19/03/15 15:32:11.15 4iy7KMFj.net
「実戦で役立つ C#プログラミングのイディオム/定石&パターン」っていう本が気になるんですが、これってSOLIDの原則みたいなものが解説されてる本なんですか?
URLリンク(www.amazon.co.jp)
本の題名から、デザインパターンの本っぽく見えるものの、見方を変えればただの逆引き系テクニック本っぽくも見えて判別が付きません・・・・
持ってる人いたら教えて!
68:デフォルトの名無しさん
19/03/15 15:42:07.07 SEjqglYP.net
ときどき話題になるけど
初心者用
プログラマーなら大半が無駄
69:デフォルトの名無しさん
19/03/15 17:53:39.10 FRygED1T.net
>>67
Microsoftが出してる参考書がいい勉強になると思う
タイトルは忘れたけど黒い表紙のやつ
70:デフォルトの名無しさん
19/03/15 18:57:25.93 4iy7KMFj.net
これかあ・・・なんと540ページ・・・・やっぱりこれ級の本が必要なの?
URLリンク(www.amazon.co.jp)
本当はレジュメ10枚とかそんな簡単なのが欲しいんだけどそういう傾向のはないのかな
71:デフォルトの名無しさん
19/03/15 20:16:15.98 c5iTEfMf.net
「自分用に要約したまとめが欲しい」ってC#の自由度だと無理
ネットで公開されているオープンソースのもの読んで勉強したら本買うことも無い
72:デフォルトの名無しさん
19/03/15 21:42:32.93 YxtrToe/.net
>>67
良本だけど、デザパタは解説してないかな。
コーディングの定石を紹介してる感じ。
73:デフォルトの名無しさん
19/03/16 11:34:56.31 DBWOZzSE.net
今更の質問ですが
ブラウザの自動操縦はC#で行ってました。
VBAで自動ログインだったりスクレイピングもできますか???
だとするとC#で抽出してExcelに転記する必要なかったなぁ~~~
74:デフォルトの名無しさん
19/03/16 15:22:00.40 rerYIj+i.net
>>73
できますよ
ぐぐればたくさん出てきます
自分も最近会社のPCに仕込んでます
75:デフォルトの名無しさん
19/03/16 21:28:06.14 DBWOZzSE.net
>>74
ありがとうございます。
VBAでIE操作する事にします。
最初からこっちにしとけばよかったかな~~~~
76:デフォルトの名無しさん
19/03/18 03:01:47.93 Orngtrfp.net
>>70
レビュー全然無いやん
77:デフォルトの名無しさん
19/03/18 17:41:01.21 oR4heX+u.net
便利なツールを作りました。
しかし、悪い奴がそれをコピーして複数端末で使われると困ります。
そこでアドビ製品の様なライセンス制御の仕組みを取り入れたいのですが
何か参考になるサイトはありますか?
不正利用防止対策としてユーザに一意のキーを埋め込んで
アプリの起動時にWEBサーバにその情報を送って突合させようかと思っています。
何かもっとスマートなやり方をご存知の方はいませんか?
78:デフォルトの名無しさん
19/03/18 17:44:06.83 pLo5oLE9.net
C#で作っていたらアクチだろうが何だろうがILSPYあたりで逆アセンブルされるから無駄
アクチ部分抜いてビルドしなおせば終わる
79:デフォルトの名無しさん
19/03/18 17:54:42.57 4bO+uLM3.net
URLリンク(www.flexera.jp)
80:デフォルトの名無しさん
19/03/19 22:47:35.46 lhNrB1l4.net
>>78
うーん、、、やっぱりそうかー
そもそもそーいう事できる人間は
ソフト自体を自分で作れるから
いちいちやるかな~というパラドックス
100人いたら3人位がそーいう悪い事するかな
81:デフォルトの名無しさん
19/03/19 22:54:33.28 qnLJux/M.net
ドングル使う手もあるよね。
まあそんなケツの穴の小さいこと考えないのが一番簡単ではある
82:デフォルトの名無しさん
19/03/19 23:09:05.45 lhNrB1l4.net
↑はじめてきいたわ
そんなのあったんだ。
うーんまいったなー
一定の割合で犯罪者がいるから悩む
83:デフォルトの名無しさん
19/03/20 00:39:48.00 v7tyiNru.net
web認証プラス重要なメソッドをwebapi化すれば本体リコンパイルされても再現不可能だな。
84:デフォルトの名無しさん
19/03/20 09:40:49.70 4fAbiRjS.net
>>83
どうしてもクライアントじゃないとごにょごにょできない処理なんですよ
犯罪者の違法コピー使用はあきらめるしかないかな
85:デフォルトの名無しさん
19/03/20 12:49:53.54 ymiEsgRk.net
ここで聞くような人のものをそんな手間かけて使うのかって話
86:デフォルトの名無しさん
19/03/20 13:05:24.17 /jX7WF9n.net
対応する工数とそれで得られる利益が見合うならやればいい
adobe製品とかならまだしも見合うことなんてまず無いから
不正利用者はセキュリティしっかりしてたらそもそも利用しないから対応しても利益にはならない
87:デフォルトの名無しさん
19/03/20 13:15:41.54 ZZcTomnN.net
簡単な認証かけておけばカジュアルコピーは防げる。
リバースエンジニアリングまでするようなのは少数なはずだから、無視するのが現実的。
ガチでやるならドングル。面倒臭いから正規利用者からも嫌われるけど。
88:デフォルトの名無しさん
19/03/20 13:47:25.53 4fAbiRjS.net
>>86 >>87
うーん、一部の犯罪者はスルーして
カジュアルライセンス制御しまう。
起動時と処理部分でWEBサーバに通信して認証チェックします。
アプリ内に一意な識別キーを入れておいて
AがBにコピーを渡した場合
異なるIPでAとBから同一キーがWEBサーバに送られるからそいつは不正利用
という判断でいこうかと思います。
逆アセンブルするヤツはそもそも自分で作れるだるから
いちいちコピーして使わないかな。
89:デフォルトの名無しさん
19/03/20 14:08:39.22 /jX7WF9n.net
どういうアプリかしらんけどIPみたいコロコロ変わるもんを認証に使って大丈夫なの?
macアドレスとか取ればいいんでね?
偽装は簡単にできるけどそういうのはスルーするんだろうし
とはいえ購入者が別端末使ったりPC買い換えるだけで不正利用扱いされることにはなるが
90:デフォルトの名無しさん
19/03/20 14:20:50.41 4fAbiRjS.net
>>89
おお!!いいですね!!
①ユーザ個別の識別キー
②ユーザ利用のMACアドレス
③IPアドレス
カジュアルライセンス制御は、これでうまくいけそうです!
(一部の犯罪者はもうスルーします。どうせ作れるだろうし、、、)
91:デフォルトの名無しさん
19/03/20 14:23:53.82 JR1ztFlD.net
というか、毎回認証するのはユーザーにとっても提供側にとっても負担大き過ぎでしょw
ネットつないでないと使えないし
普通にMSのアクティベーションと同様の仕組みでいいでしょ。
プロダクトキー使って一度認証したらライセンス返上するまでずっと有効。
1つのプロダクトキーがいくつかの(通常は一つ)のライセンス枠を持ってる。
枠が全部埋まってると誰かが返上して空きができない限り新たな認証はできない
以前使ってたTIの開発ツールはこんな感じだったよ
92:デフォルトの名無しさん
19/03/20 14:24:23.91 ZZcTomnN.net
>>90
IPアドレスは何に使うんだ…。
変わる上に被ることもあるのに。
93:デフォルトの名無しさん
19/03/20 14:43:00.12 4fAbiRjS.net
>>91
なるほど!そーいう手もありますね!
ツール自体はネットがつながっている事前提なので
そこはユーザにとってもサーバにしても心配していません。
>>92
IP偽装も簡単にされてしまうので
確かにあまり意味をなさないですね。
94:デフォルトの名無しさん
19/03/20 14:48:01.78 ZZcTomnN.net
>>93
偽装はともかく、正規ユーザーが不正判定され易いのは問題だよ。
95:デフォルトの名無しさん
19/03/20 14:58:40.20 /jX7WF9n.net
不正対策のために正規利用者が不利益を被ることは極力避けるべき
大抵が開発者の自己満足
ちょっとした手順が必要になるだけでも使い勝手は極端に下がる
ましてや誤って不正利用認定なんかされた日にはもう2度と関わりたくないと思う
さらにwebサーバーの常時保守と認証周りでのトラブルのカスタマーサポートとかまで考えたら本当に必要な工数なのかも疑わしい
そこまでする必要があるレベルのプロダクトならいちいちこんなところで質問なんて投げないだろうしね
96:デフォルトの名無しさん
19/03/20 15:04:53.44 4fAbiRjS.net
>>94 >>95
うーん、、、
WEBサーバが確かに攻撃されたらアプリ使えなくなるな~。
いろいろ考えます。
97:デフォルトの名無しさん
19/03/20 17:10:46.92 /jX7WF9n.net
鯖への攻撃まで考慮しなきゃいけないくらいでかいソフトなの?
どんだけ高価なもん作ってるのか知らんけどパス付きzip程度じゃあかんの?
98:デフォルトの名無しさん
19/03/20 17:17:15.36 4fAbiRjS.net
>>97
世の中には悪い奴がいてWEBサーバ攻撃してくるヤツもいるんですよ
zipだと解凍してコピーして横流しされそう。
まぁ、ごく一部でしょうけどね。
99:デフォルトの名無しさん
19/03/20 17:17:40.52 lRuTUQCz.net
もうC#の話じゃないよな
100:デフォルトの名無しさん
19/03/20 17:25:55.06 4fAbiRjS.net
不正コピー対策は必須ですよ
101:デフォルトの名無しさん
19/03/20 17:33:20.02 ZZcTomnN.net
>>98
インストール時にだけWeb経由で認証して、認証データはローカルで暗号化して格納しとけば良い。
認証データの暗号化はProtectedDataクラスを使うのが簡単かつ安全。
102:デフォルトの名無しさん
19/03/20 17:34:45.92 lRuTUQCz.net
自分の作ったソフト売りたいって話なら言語は関係ない
パッケージソフトなら不正コピーの心配必要だけどユーザー登録型のライセンス販売なら普通はサポート見込んで買うからそんな心配するのがおかしい
103:デフォルトの名無しさん
19/03/20 17:45:20.84 4fAbiRjS.net
>ユーザー登録型のライセンス販売
1か月1000円で販売予定
104:デフォルトの名無しさん
19/03/20 18:31:09.68 /jX7WF9n.net
悪いやつがいるかいないかなんて話してないんだけど伝わらんな
悪いやつに対処するコストと悪いことされたときの被害額が見合うかって話だ
実被害なんてほぼ出ないのに無駄に開発コストかける意味は?
売れて実被害が出てから対策したって十分だよ
105:デフォルトの名無しさん
19/03/20 18:42:13.33 qInZcA4b.net
この知識レベルだとライセンスの前にセキュリティが不安になる
106:デフォルトの名無しさん
19/03/20 18:45:55.97 /jX7WF9n.net
初心者用で質問する人が月額モデルでしかも1000円も取るのか
そもそも月額モデルなら毎月の引き落としどうすんの?
クレカは?全部自前で用意すんの?
せめてvectorとか使ってシェアウェアにしときな
有料ソフトがいかに売れないかを知る良い体験できるよ
107:デフォルトの名無しさん
19/03/20 21:28:40.21 pSND/w6U.net
SDカードって確かこっそりCPRM対応だと思ったけど、
あれをドングル的に流用できたりしないかなとちょっと思ったがどうだろう
CPRMの仕組みを理解してないので的外れかもしれんがw
108:デフォルトの名無しさん
19/03/20 21:39:22.32 F2Rf/YlT.net
データ整形について質問です。
Dictionary< string, object > に属性名、属性値が格納されています。
例
Key:Value
開催日:2019/3/20
場所:東京
1名前:太郎
1誕生日:2000/1/1
1年齢:19
2名前:花子
2誕生日:1998/2/14
2備考:魚アレルギー
これをDetail型(開催日,場所,名前,誕生日,年齢,備考)の配列かListに変換したいです。
1,2,...がとても不格好で整形しづらいのですが、変更が許されません。
この数字は多くても6個です。また、数字によっては該当の属性名がないものもあります。
なにかよい方法はないでしょうか。
109:デフォルトの名無しさん
19/03/20 22:12:29.79 4fAbiRjS.net
>>106
むっちゃ便利やねん
110:デフォルトの名無しさん
19/03/20 22:30:16.54 pSND/w6U.net
>>108
こんなので出来ない?
検証してないので知らんけど
public class Detail
{
public static Detail RetrieveFromDictionay(Dictionary<string, object> dic, int index)
{
var d = new Detail();
foreach (PropertyInfo info in typeof(Detail).GetProperties(BindingFlags.Public | BindingFlags.Instance))
{
var key = $"{index}{info.Name}";
object obj;
if (dic.TryGetValue(key, out obj))
if (obj.GetType() == info.PropertyType) info.SetValue(d, obj);
}
return d;
}
public DateTime 開催日 { get; set; }
public string 場所 { get; set; }
public string 名前 { get; set; }
public DateTime 誕生日 { get; set; }
public int 年齢 { get; set; }
public string 備考 { get; set; }
}
111:デフォルトの名無しさん
19/03/20 22:30:19.68 C7TIImgv.net
>>108
全keyを走査しながら1個1個処理していけばいいだけに見えるけどそれじゃだめ?
112:デフォルトの名無しさん
19/03/20 22:39:16.99 Bg9D9rdv.net
UWPで作れば色々面倒なことはMSが面倒見てくれるけどな
あの範囲で問題ないプログラム限定では有るが
113:デフォルトの名無しさん
19/03/21 10:46:12.53 WMeBK6gL.net
>>110
できました。ありがとうございます。
勉強になりました。
ちなみにプロパティ名が英語の場合、もう一つ日本語と英語名が対になったDictionaryを定義して、そこから参照する形がいいでしょうか。
114:デフォルトの名無しさん
19/03/21 22:45:29.76 vrM85+ig.net
Adobe製品の開発言語は、逆アセンブルされない為にC++で開発してるの?
115:デフォルトの名無しさん
19/03/22 00:28:45.55 QnQyasxD.net
C#でArrayListのSortを実行すると
昇順で並び替えられています。
これをDESC(降順)で行うにはどうすればよいですか?
LINQとやらを使った方が確実かな~。
116:デフォルトの名無しさん
19/03/22 00:47:13.07 pVVdiXqm.net
Sort()した後でReverse()すればいいよ
ArrayListだとSortだけで逆順にするにはIComparer書く必要があってだるいし
というか今時ArrayListなんて使ってないでList<T>使おう
117:デフォルトの名無しさん
19/03/22 00:48:26.04 QnQyasxD.net
>>116
サンクス!そーいうのがあったんだね。
(長らく現場から離れていてC#はコボラーみたいな感じになってます)
118:デフォルトの名無しさん
19/03/26 13:13:53.47 DPMd1MEr.net
VBAでごにょごにょやった方が効率いいね。
119:デフォルトの名無しさん
19/03/26 18:39:16.11 DPMd1MEr.net
VBAには、#region #endregion 的な機能はありますか?
コードが長くなってしまって縮小したいです。
120:デフォルトの名無しさん
19/03/26 20:36:10.97 A7GEbRVd.net
たぶんないと思うけどVBAスレで聞いた方がいいね
121:デフォルトの名無しさん
19/03/26 21:09:29.22 DPMd1MEr.net
ないのか
122:デフォルトの名無しさん
19/03/29 18:21:05.18 ukrtQ6PV.net
VS2017で
前のブックマークへ移動するショートカットコマンドですが
Control + K → P
はもう使えなくなったのでしょうか?
Control + B → P は使えます。
ただ、「K」はVS2010では普通に使えていたはずなのですが、、、
123:デフォルトの名無しさん
19/03/29 18:30:25.09 yqow3AID.net
>>122
Visual Studio 2017 Part6
スレリンク(tech板)
124:デフォルトの名無しさん
19/03/31 01:56:40.68 RIl4YBWE.net
例えばセッターのみが非publicなプロパティーがあるとして、
セッターにアクセスできるスコープからのみ見えるXMLコメントを
書くみたいなことって可能だったっけ?
125:デフォルトの名無しさん
19/04/05 16:23:35.92 q6NWzxZh.net
IEを自動起動して、スクレイピングのプログラムを作っています。
スクレイピングに詳しい人教えてください。
ページ内にliが複数あるため、getElementByTagNameでliを指定すると
全部の要素を走査してしまい、時間が結構かかっています。
そこで上位ブロックの divのidが[id_koregahosii]になっている
liの要素を取得するといったコードを書きたいのですが
よい方法はありますでしょうか?
<div id="id_aaa"><li>あいうえお</li></div>
<div id="id_bbb"><li>かきくけこ</li></div>
・・・複数(1000以上)・・・
<div id="id_koregahosii"><li>このliを取得した</li></div>
mshtml_ec = ie.Document.getElementsByTagName("li");
foreach (mshtml.IHTMLElement i_ele in mshtml_ec)
{
//取得したデータを変数にセット
}
126:デフォルトの名無しさん
19/04/05 16:53:09.70 x8OJz+Ud.net
.Document,getElementByIdしてからそのIHTMLElement2に対してgetElementsByTagNameすればいいんじゃね
127:デフォルトの名無しさん
19/04/05 17:31:16.88 q6NWzxZh.net
>>126
ありがとうございます!
試してみます!
128:デフォルトの名無しさん
19/04/06 23:59:31.30 8OPSxgse.net
DataGridViewで特定列を除いて
編集させたくないので以下コードを書きました。
dgv_test.AllowUserToAddRows = false;
dgv_test.AllowUserToDeleteRows = false;
dgv_test.ReadOnly= true;
ただし、その中のCheckBox列だけは
チェックのON/OFFを出来る様にしたいです。
これを実現するにはどういうコードをかけば良いのでしょうか?
129:デフォルトの名無しさん
19/04/07 00:20:04.80 J7v3B2LO.net
地道に全セルをなめてReadOnlyを設定して
実現できました。
130:デフォルトの名無しさん
19/04/07 01:32:05.92 J7v3B2LO.net
助けてくださいm(_)m
DataGridViewの2列目(インデックスは1)がチェックボックスです。
画面上でチェックを入れ「実行」ボタンを押した時に
その行にチェックが入っているかを判定しようとしていますが
うまくできません。。。どう判定したらいいのでしょうか?
エラー
ハンドルされていない例外
System.InvalidCasException:'指定されたキャストは有効ではありません。'
if ((bool)dgv_test[1, i_row].Value == true ) ← ここでエラーが発生
{
Debug.WriteLine("checkあり");
}
else
{
Debug.WriteLine("checkなし");
}
131:デフォルトの名無しさん
19/04/07 02:00:48.99 vK2HJm7v.net
>>130
boolではなくbool?でキャスト
132:デフォルトの名無しさん
19/04/07 04:01:48.39 mKsxK2JJ.net
>>125-126
Ruby, Nokogiri, Selenium WebDriver では、
doc = Nokogiri::HTML( driver.page_source )
element = doc.at_css '[id="id_koregahosii"] > li'
puts element.text
#=> このliを取得した
CSS Selector では、[id="id_koregahosii"] > li。
id 属性が"id_koregahosii" である要素の、直下のli 要素。
> は直下を表す
doc.at_css は、最初に見つかった、1つの要素で、
doc.css なら、配列(複数要素)が返ってくるように使い分けるので、要注意!
jQuery では、0・1つの要素の場合でも、常に配列が返るので、間違える事がない!
最初に、jQuery などで、CSS Selector を学ぶ必要がある。
それよりも複雑な指定は、XPath を使う
133:デフォルトの名無しさん
19/04/07 09:43:37.49 J7v3B2LO.net
>>131
bool型にキャストしてます。
でもエラーがでます。
134:デフォルトの名無しさん
19/04/07 09:50:53.11 e9OeE/L4.net
>>133
boolとbool?は違う型
null許容型でググろう
135:デフォルトの名無しさん
19/04/07 11:40:12.15 J7v3B2LO.net
>>134
すみません。わからないので教えてください。。。。
136:デフォルトの名無しさん
19/04/07 11:45:12.82 vK2HJm7v.net
>>135
bool?型と言ってるのになぜbool型にするの?
(bool)のとこを(bool?)って直すだけだぞ
null許容型は、要するに(bool?の場合は)true,false以外にnullも含む(許容する)型
137:デフォルトの名無しさん
19/04/07 12:25:53.88 hRJe8zJK.net
using System.Numericsとしているのに
Complex a = 123;とだけ書くと何故か赤い波線が付いてエラーになります
System.Numerics.Complex a = 123;とするとエラーは出ないのですが、省略できないのが気に食わない
138:デフォルトの名無しさん
19/04/07 12:35:01.18 PRyiq+oO.net
>>137
VisualStudioのバージョンは?
後、赤線のエラーは何て書いてある?
VS2017だけど、省略してもエラー出ないよ
139:デフォルトの名無しさん
19/04/07 12:44:33.68 hRJe8zJK.net
>>138
暗黙的に変換できませんと書いてあります
140:デフォルトの名無しさん
19/04/07 13:03:15.10 hRJe8zJK.net
バージョンは2017です
System.NotImplementえdException: 'メソッドまたは操作は実装されていません。'というエラーも出ます
141:デフォルトの名無しさん
19/04/07 13:07:44.80 8KGRZT5W.net
その再現する部分だけを書いたプロジェクトをどこかに晒してみたら?
142:デフォルトの名無しさん
19/04/07 13:30:29.80 hRJe8zJK.net
全部削除して書き直したら治りました
何度も確認したのでタイプミス等ではないはずですが、何が原因だったのか
お騒がせしました
143:デフォルトの名無しさん
19/04/07 14:10:37.33 /8+Cw91p.net
>>130
var o = (bool?)true;
bar b = (bool)o;
これは実行時もエラーは発生しないし、
var o = (bool?)null;
bar b = (bool)o;
これで発生する例外はNullReferenceExceptionみたいだから、たぶん指摘されてるのと別の原因なんだろうなあ。
知らんけど。
144:デフォルトの名無しさん
19/04/07 14:24:18.31 /8+Cw91p.net
あー間違えた
var o = (bool?)true;
じゃなくて
object o = (bool?)true;
だね。結論は変わらない
145:デフォルトの名無しさん
19/04/07 16:58:28.24 aTlDD0vY.net
>>143
何言いたいのかよくわからないけど>>130に対する回答は>>131であってるよ
DataGridViewのCellの初期値がnullなのが原因なだけだから
null許容型のキャストするか行を作った段階で値を代入するかのどちらかになる
146:デフォルトの名無しさん
19/04/07 17:21:54.02 kimAJSSB.net
>>145
分かってよ。
nullをboolにキャストしようとした時発生する例外はNullReferenceExceptionであって
InvalidCasExceptionではないはずだ
147:デフォルトの名無しさん
19/04/07 17:31:51.66 vK2HJm7v.net
>>130
失礼。
発生した例外がNullReferenceExceptionではないから、
bool?にキャストすべき所がboolになってるバグの他にもバグがある。
例外はInvalidCasExceptionだから、
DataGridViewの列の定義が間違っていてdgv_test[1, i_row]がDataGridViewCheckBoxCellになっていないか、
初期化時にdgv_test[1, i_row].Valueにbool以外の値を代入していると思われる。
148:デフォルトの名無しさん
19/04/07 17:37:12.90 AvqFg232.net
終わった話でマウントしなくていいよ…
149:デフォルトの名無しさん
19/04/08 13:25:57.00 mdLXKZZ1.net
ほんそれ
150:デフォルトの名無しさん
19/04/08 15:30:44.33 G4htz/so.net
Windowsフォームでコントロールのプロパティの
EnableをFalseにすると「若干」色が薄くなるようですが
もっとはっきり薄くできないですかね?
完全に消えるとまずいんだけど
はっきり「今これは使えません」って意思表示したいんだけど
いい方法無ですかね?
151:デフォルトの名無しさん
19/04/08 20:13:53.30 DkSPe/Rf.net
>>150
フォーム全体で対応させるのはわからない
コントロール一つならEnabledChangedのイベントで
コントロールに初めから組み込みたいのなら
URLリンク(dobon.net)
の「自分で描画する」を参考に。やっていることは真逆だけど色を変えればいいだけ
ボタンやラベルなら使用不可を示すのに色だけでなくフォントの打ち消し線の有無で実装したことならある
152:デフォルトの名無しさん
19/04/09 00:07:36.04 pirXsPL0.net
Window上にOpacity薄くしたパネルを全面表示すればいいんじゃないか
153:デフォルトの名無しさん
19/04/09 00:09:31.21 d/2DcaK3.net
テンプレに「酔っぱらいはレス禁止」って付け加えておいた方がいいな
154:デフォルトの名無しさん
19/04/09 01:05:33.44 HBj7RtDK.net
Checkboxの質問をしたものです。
初期化時にFalseを設定してやったらエラーが出なくなりました。
155:デフォルトの名無しさん
19/04/09 08:48:59.17 +PEPLDxq.net
チェックボックスの初期値がない=null
nullからのinvalid castやんけ
156:デフォルトの名無しさん
19/04/09 09:42:37.66 HBj7RtDK.net
ぬるキャストしたら金もらえるんか?
by いわま
157:デフォルトの名無しさん
19/04/11 00:20:32.43 aNdauzQw.net
なんでList<T>がraw型のCollection継承してる扱いになってんだ???
158:デフォルトの名無しさん
19/04/11 09:42:03.59 hzw6xvpZ.net
ちょっと何言ってるかわかんないです raw型って何
何か読んで疑問に思ったんだったら記述示すなりリンク張るなりして
159:デフォルトの名無しさん
19/04/11 21:19:05.19 3mGpDoO0.net
C#で多倍長浮動小数点数演算は出来ますか
多倍長整数を使ってどうにかするしかないんでしょうか
160:デフォルトの名無しさん
19/04/11 22:21:18.99 /LPE5YMd.net
>>159
decimalで足らないのなら自分で何とかするしかないな
URLリンク(docs.microsoft.com)
161:デフォルトの名無しさん
19/04/11 23:11:01.19 3mGpDoO0.net
>>160
自分でなんとかしたいと思います
1000桁とか10000桁とかの計算がしたいので
162:デフォルトの名無しさん
19/04/12 18:12:54.78 f0sWKcEF.net
今後、開発作業が増えてEXEのファイルサイズが大きくなっていく事が想定される場合
プロジェクト分けた方がええかな?
インストール型じゃなくてWEBシステムとして作ろうか悩み中
163:デフォルトの名無しさん
19/04/12 19:16:33.34 wX1hkUx5.net
「拡張メソッドはトップレベルの静的クラスでしか宣言できない」ということは、
public class Cの内部にprivate enum Eを置いたとき、Eに対して拡張メソッドを追加することは不可能なのでしょうか
いくつかの定数(とメソッド)を持った構造体で代用するしかないですかね
164:デフォルトの名無しさん
19/04/12 19:44:50.94 eTqArBo4.net
そこまでobj.method記法に拘る必要も無いだろ…
165:デフォルトの名無しさん
19/04/12 19:59:08.90 LhXUTlO1.net
>>162
どうでもいい
開発規模ウン億円とかにならない限り、人間が書いたコードの実行ファイルのサイズなんて全く問題にならない
それはともかく、Webを選べるのなら迷わずWebにすべき
exe配ると後々のメンテは地獄よ
166:デフォルトの名無しさん
19/04/12 20:16:15.81 f0sWKcEF.net
>>165
なるほどですね。
どうしてもWEBだと厳しいシステムなんですよね。
(サーバのIPアドレスが固定だとまずい)
cliclonceというのを使えばバージョンアップとか簡単ですか?
167:デフォルトの名無しさん
19/04/12 20:43:15.51 9e6eDjQn.net
ClickOnceはシステム管理者がガチギレするらしいので利用しないのが吉
168:デフォルトの名無しさん
19/04/12 20:47:48.47 Z2Oii3Wj.net
>>167
なぜ?
169:デフォルトの名無しさん
19/04/12 20:48:02.13 f0sWKcEF.net
>>167
なんでや?
170:デフォルトの名無しさん
19/04/12 20:49:24.84 f0sWKcEF.net
ClickOnceにするとむっちゃ楽そうだけど
171:デフォルトの名無しさん
19/04/12 20:49:43.52 f0sWKcEF.net
クリックワンス
URLリンク(www.asahi-net.or.jp)
172:デフォルトの名無しさん
19/04/12 21:44:20.43 SPCc1qER.net
>>163
仮にenumを入れ子にする点は譲れないとしても(この点も本当は再考した方がいいと個人的には思うけど)
アクセシビティーをpublicにすることは検討していいんじゃないの?
隠蔽したい気持ちは分からんでもないが、少なくともpublicにしたからって何か危険があるわけじゃない。
173:デフォルトの名無しさん
19/04/12 22:21:07.52 wX1hkUx5.net
>>172
よく考えたらenumを入れ子で隠す設計をc#は想定してないってことですもんね
大人しく外に出します、ありがとうございました
174:デフォルトの名無しさん
19/04/13 00:18:29.71 BMo5W632.net
DataGridViewに詳しい人は教えてください。
DataGridViewの列にチェックボックスの列を設けています。
□がクリックされた時だけではなく、□の属するセル(の予約)が
クリックされても□にチェックが入る様に制御したいのですが
どうすればよいのでしょうか?
何かプロパティで設定するのですか?
175:デフォルトの名無しさん
19/04/13 14:39:03.85 n7lKOQoj.net
>>174
CheckBoxのセルのクリックで切り替えたいのなら
例えばCellをReadOnlyにしてCellClickイベントで値を切り替えればできる
176:デフォルトの名無しさん
19/04/13 15:19:56.97 BMo5W632.net
>>175
なるほど!
そーいう方法しかないんですね。
てっきり標準で設定出来るプロパティがあるのかと思ってました。
177:デフォルトの名無しさん
19/04/13 15:46:55.50 n7lKOQoj.net
>>176
方法の一つをあげただけでプロパティにあるかは知らない
178:デフォルトの名無しさん
19/04/13 16:32:46.29 BMo5W632.net
>>177
サンクス!
セレニウムにチャレンジしています。
VSで作成した場合
インストール環境にNugetが入っていないとうごかないのでしょうか?
179:デフォルトの名無しさん
19/04/13 17:16:51.48 04eDeW4T.net
>>178
日本語でよろしく
180:デフォルトの名無しさん
19/04/13 19:58:49.43 1RC1le5n.net
>>178
アクセス元に迷惑掛けるの目に見えてるから辞めとけ
181:デフォルトの名無しさん
19/04/13 20:14:34.97 BMo5W632.net
>>180
スクレイピングの練習やで
サンドバッグになってもらいます。
182:デフォルトの名無しさん
19/04/14 21:03:37.66 NnSXGzN0.net
スクレイピングをこれまでIEを操作して行ってきていましたが
セレニウムを使う方がナウいのでしょうか?
コンソール画面が立ち上がって結構うざいんですが
183:デフォルトの名無しさん
19/04/15 07:51:42.30 T2oRcbP+.net
>>182
consoleは消すことが出来る
184:デフォルトの名無しさん
19/04/15 09:11:14.20 M/FIhTOp.net
>>183
コンソールを消す事はできました。
ただ、問題がありまして
Cromeを使ってログインしないと見えないサイトの中のとあるページを
スクレイピングしようと思っていますが、一度ログインしたのに
もう一度プログラムを実行すると再び画像認証付きのログインページが表示されてしまいます。
Chromeのセレニウムでログインした場合、
ログインセッションは、プログラムを終了すると自動でとじられるのでしょうか?
185:デフォルトの名無しさん
19/04/16 02:41:38.00 39QxJxCa.net
セレニウムで画像選択は同実装すればよいのでしょうか?
Windwos APIを使わないと、ダメでしょうか?
186:デフォルトの名無しさん
19/04/16 07:50:30.04 xFKZ3CM/.net
ここC#スレだよ?
187:デフォルトの名無しさん
19/04/16 09:10:36.33 gry//OiE.net
スクレイプするにはまだ程遠い実力ということだ
188:デフォルトの名無しさん
19/04/16 09:47:51.95 39QxJxCa.net
スクレイピングはできる様になりました。
ドラッグするか、その枠をクリックしてファイルを選択するしか
画像の選択が出来ません。
セレニウムでドラッグやファイルの選択はできないですか?
189:デフォルトの名無しさん
19/04/16 12:32:55.79 5XyUIsTT.net
スレチ
190:デフォルトの名無しさん
19/04/16 12:33:02.58 gry//OiE.net
君には無理。
191:デフォルトの名無しさん
19/04/16 15:21:38.40 +QEcotOy.net
スクレイピング(が何かわかって無いけど)はできる様に(なった気持ちに)なりました。
192:デフォルトの名無しさん
19/04/16 17:36:07.52 39QxJxCa.net
スクレイピング楽しいな
193:デフォルトの名無しさん
19/05/04 14:25:52.45 6mDmKshX.net
select ユーザーコード, ユーザー名 from tbl_user group by ユーザーコード, ユーザー名 order by ユーザーコード
上記のクエリを、Visual Studio 2019の、クエリの構成ウィザードで実行すると成功するのですが、
構成ウィザードで作成したGetData()メソッドをソースコードから呼び出すと、
"System.Data.ConstraintException: 制約を有効にできませんでした。行に入力できるのは、Null 以外の値、一意な値、あるいは外部キーですが、この制約の違反が 1 つ以上の行で発生しています。"という例外が発生します。
何が原因でしょうか?
194:デフォルトの名無しさん
19/05/04 18:47:33.92 y5JKLm4r.net
ありがちなのは
その型付テーブルにユーザーコード・ユーザー名以外の列があって
それがNULL非許容であるケース
そろそろ型付テーブルは捨ててみるのはどうだろう
195:デフォルトの名無しさん
19/05/04 23:59:05.71 6mDmKshX.net
>>194
ありがとうございます。
捨てるというか、今データベースプログラミング覚え始めなのです・・・。
196:デフォルトの名無しさん
19/05/08 01:56:19.01 noKOboYy.net
group by したらorder by は要らない
と思うんだけどね
197:デフォルトの名無しさん
19/05/08 09:05:02.34 uppUuxEo.net
つか、ユーザーコードかユーザー名にnullがあるんじゃね?
198:デフォルトの名無しさん
19/05/10 00:17:09.38 ADYEYyzu.net
>>196
order by しないと結果の順序は不定だぞ
199:デフォルトの名無しさん
19/05/10 00:32:33.75 zfwcpnpf.net
>>198
言語規約的にはそうかもしれんな
200:デフォルトの名無しさん
19/06/03 19:12:08.43 QH6vVdx1.net
C#の勉強のためにメモ帳を作ろうと計画していますが
フォームにTextBoxを貼り付けるだけではあまり面白くありません
また禁則処理や縦書きの機能もついていません
なにか他のもの、WebBrowserあたりを使うのかな?と想像しているのですが
201:デフォルトの名無しさん
19/06/03 19:18:10.95 FeReq2tQ.net
つPicutureBox
202:デフォルトの名無しさん
19/06/03 19:45:12.89 QH6vVdx1.net
WPFだとImageを使うんでしょうか
ImageもしくはPicutureBoxを使う方向でやってみます
203:デフォルトの名無しさん
19/06/03 19:50:06.54 lJ3hf1q/.net
WPFならWPFのスレで聞いた方がいい
WPF(.NET4.x, .NET Core) GUIプログラミング Part23
スレリンク(tech板)
204:デフォルトの名無しさん
19/07/17 09:01:41.72 Rapypd65.net
こっちでええんか?
205:デフォルトの名無しさん
19/07/17 13:54:33.79 rBzTe21k.net
そうだね、古い方から使おう
206:デフォルトの名無しさん
19/07/22 23:30:46.11 C1JMmcNL.net
>>200
メモ帳意外と難しいよね
オレも初めの頃作ろうとして挫折した(あわよくばテキストエディタ目指そうとしてたのもあって)
勉強のためだけだとモチベ上がらないので、世の中にあるけど、俺様仕様なのが欲しいってのを作ってみてはどうかな(なるべく簡単なものから)
207:デフォルトの名無しさん
19/07/26 17:45:13.82 BgugETZT.net
A・B・C・E・Dという5つの項目があって、
例えば、Aが10で、Bが10で、Cが15で、Dが20で、Eが30の時、3という数字を格納したくて、
今までは多次元配列で、num[10,10,15,20,30]=3という風に入れてたのだけど
これだと配列の宣言時に添え字大きいとメモリ足りないエラー出たりするのだけど
多次元配列以外でこういう処理するほうほうはないでしょうか
208:デフォルトの名無しさん
19/07/26 17:48:56.54 WRIJ/WMx.net
>>207
dictionaryでkeyをtupleにするとか?
209:デフォルトの名無しさん
19/07/26 17:49:06.61 mDNueNoY.net
>>207
自分でクラスか構造体作る
210:デフォルトの名無しさん
19/07/26 18:05:34.42 BgugETZT.net
>>208-209
ありがとうございます
試してみます
211:デフォルトの名無しさん
19/07/27 06:57:57.51 JBF4UcX5.net
扱うアイテム数や更新や検索速度によっても解は変わるけどね
212:デフォルトの名無しさん
19/07/28 01:55:31.74 fFZFtxU0.net
C#でメッセージボックスそっくりのフォームを表示したいのですが、
既にそういうことやって公開してるサイトとかあったら教えてください。
とりあえず警告とかのアイコンとメッセージとOKボタンが出ればOKです。
213:デフォルトの名無しさん
19/07/28 02:01:33.19 rd9JTwgx.net
>>212
MessageBoxクラスと言うそのまんまなのが標準であるけど
214:デフォルトの名無しさん
19/07/28 02:05:47.36 O6J4gSKO.net
マルウェア造りたいんだろうきっと
215:デフォルトの名無しさん
19/07/28 03:11:39.49 fFZFtxU0.net
>>213
英語OS環境でも日本語を表示したいので、MessageBoxだとだめなんです
216:デフォルトの名無しさん
19/07/28 11:11:36.04 4n+BfbRN.net
英語OSで日本語表示
マルウェア臭しかしない
出来たとしてもやめたほうがいいw
217:デフォルトの名無しさん
19/07/28 11:52:47.97 KNp0wpVr.net
手元に英語版Windowsがないから確認できんけど、
Win9xの時代じゃないんだから英語版Windowsだからって日本語のメッセージが化けるとかないはずだと記憶してるけど
違ったっけ?
218:デフォルトの名無しさん
19/07/28 12:03:09.31 mCptNPRe.net
違う
バグはいくらでも造り込める
219:デフォルトの名無しさん
19/07/28 12:15:34.70 fFZFtxU0.net
>>217
MessageBoxクラスはロケールのシステムフォントで表示されるので化け化けです
逆にこのクラスのフォントを変えられればそっちでも良いんですがぐぐっても全く出てこず・・
220:デフォルトの名無しさん
19/07/28 12:20:10.64 0oO4pZNP.net
>>219
他の画面を作るのと同じようにFormを自作してShowDialogするだけでいいよ
221:デフォルトの名無しさん
19/07/28 12:41:08.89 pP5stkUp.net
>>217
Fontの指定できるのならそうだろうな
URLリンク(social.msdn.microsoft.com)
ここの結論では>>215と同じ
>>215
ダイアログ用のフォームを作って「OK」と「Cancel」のボタンをクリックしたらDialogResultにDialogResult.OKかDialogResult.Cancelを入れてそのフォームをClose()するだけ
呼び出す側はMessageBoxのかわりにそのフォームを同じように呼び出せばいい
222:デフォルトの名無しさん
19/07/28 13:19:08.39 KNp0wpVr.net
>>219
ほんと?
OSで設定されてるフォントが使用されるのはそう(デフォは昔ならTahoma、今は何だっけ?)
なんだけど、WindowsにはFontLinkって仕組みがあって、欧文以外の文字の場合は適当な
フォントが代わりに使用される仕組みになってるはずだと思うが...
まあどっちにしろサクッと自作しても大した手間ではないな
223:デフォルトの名無しさん
19/07/29 21:48:22.76 CSar0obt.net
URLリンク(i.imgur.com)
224:デフォルトの名無しさん
19/07/30 17:43:55.27 Q6VO+qJe.net
なんのアニメ?
京アニ?
225:デフォルトの名無しさん
19/09/16 20:31:20.79 MPbmz0IO.net
Windowsのデスクトップアプリ作ってみたいんだけど、UWPじゃなくてWPF使った方がいいの?
226:デフォルトの名無しさん
19/09/16 21:06:00.37 sRm+3JQL.net
>>225
何が目的?
ストアで売りたいのならUWP
Windows 10以外で使う気があるのならUWPは厳禁
227:デフォルトの名無しさん
19/09/16 21:16:27.82 MPbmz0IO.net
>>226
一度も触ったことないからデスクトップアプリ作ってみたい
販売もWin10以外で使う予定もないです
228:デフォルトの名無しさん
19/09/16 21:18:24.34 sRm+3JQL.net
>>227
Visual Studio使ってWindows Formがクッソ楽とWPF使ったことない人からのアドバイスしとくw
229:デフォルトの名無しさん
19/09/17 01:14:09.81 jgnLyfJa.net
>>223
グロ
230:デフォルトの名無しさん
19/09/17 01:37:10.61 Scf7CR0a.net
>>228
楽かどうかはWinformもWPFも同じだよ~
webで拾える情報はWinformの方が多いが
231:デフォルトの名無しさん
19/09/17 07:20:33.53 Y3mVLTqr.net
>>230
横だけど
日曜プログラマレベルでWinFormsでそれなりにDB連携の業務アプリを作って運用してはいるんだけど
今更WPFの勉強スタートして使いものになるかな?
つーか、1度作ったWinFormsをWPFにするには作り直しだよね・・・
232:デフォルトの名無しさん
19/09/17 08:34:01.71 gcZDzsnL.net
>>231
Winformを使いこなしてる人が、今からWPFやっても得るものは少ないだろうね
WinformもWPFもやったことない人なら、どっちでも楽さは変わらない
あと、Winformなアプリでも一部だけWPFにすることもできるから、完全に作り直しとも限らないよ
233:デフォルトの名無しさん
19/09/17 15:16:53.10 FM5jjTCY.net
UWPも存在意義が無くなったしな・・・
234:デフォルトの名無しさん
19/09/17 15:38:58.51 CU62bLm/.net
Win32をWindowsから追放してUWP化する計画は
やっぱりとん挫かw
ここ10年ぐらいMSはこんなことばっかりやってるね
235:デフォルトの名無しさん
19/09/17 15:45:27.94 6kCNmbsv.net
windowformから乗り換えるとしたら何?
236:デフォルトの名無しさん
19/09/17 18:26:50.51 mt+5ew4N.net
>>235
乗り換えるってのがわからん
普通複数の言語使えて状況に合わせて使い分けるものでは
237:デフォルトの名無しさん
19/09/21 10:57:39.89 y68BphyG.net
>>234
もうWin32に新たな関数を追加していくだけでいいんじゃないか
既存の分かりにくい関数とかも整理して新たな分かりやすい代替関数を追加して
古いのは非推奨にしていずれ廃止していくとかさ
238:デフォルトの名無しさん
19/09/21 11:11:11.88 Sri5tnCE.net
内部文字コードのUTF8化と同時に整理して欲しいよなー
もうそろそろ互換性はいいだろ
239:デフォルトの名無しさん
19/09/21 12:06:27.59 ZIXe7ufx.net
>内部文字コードのUTF8化
これは愚策
出入りはUTF8で良いけど
240:デフォルトの名無しさん
19/09/21 19:53:37.95 y68BphyG.net
SetWindowPosとかなあ
Posとか言ってSizeもZOrderもこれ使うとか初心者が勘違いするだろ
SetWndPosとSetWndSizeとSetWndZOrderに分けろや
ライブラリ作っとけばいいだけなんだけどさ
241:デフォルトの名無しさん
19/10/01 08:54:20.74 AzXLfBCe.net
xamlに別のxamlを挿入してその子要素にBindingってできないですかね?
242:デフォルトの名無しさん
19/10/01 21:05:00.43 QXee0tMi.net
>>241
xamlで作ったユーザーコントロールは普通に使える
その時DataContextはカスケードで子要素のユーザーコントロールにも落ちるから
普通にバインドできる
ってことでいい?
243:デフォルトの名無しさん
19/10/10 11:16:46.19 20GczcoB.net
picturebox の中の画像の位置はどうやったら取得できるのでしょうか?
例えば、w 500 , h 500 の picturebox に w 300, h 500の画像が真ん中揃えで表示されているとき、x 100, y 0 みたいな値をとりたいのです。
画像の上に線とか図形とかを描画するための基準となる位置が欲しいのです。
ImageLocation プロパティで取れるかと思ったら、これはURL とかを指定するものでした。
244:デフォルトの名無しさん
19/10/10 11:24:30.46 dY7xsk31.net
自分で計算する
PictureBox::ImageRectangleFromSizeModeをリフレクションで呼び出す
上に何か描画するとかならImageプロパティは放棄して自分で全部描いた方が手っ取り早いかもね
245:デフォルトの名無しさん
19/10/10 23:41:17.72 20GczcoB.net
>>244
c# でリフレクションというのは攻撃魔法をときどきはね返す防御魔法のようなものだと思うのですが、リフレクションを使う方法は具体的にどうするのでしょうか?
自力で計算する方法でとりあえずはなんとかなりそうです。
まだコード書いてないけど、画像の表示方法と画像サイズと pictureBox のサイズがわかるのでそこから計算できそうです。
縦と横の拡大縮小率の計算が少しめんどくさいだけかな?
246:デフォルトの名無しさん
19/11/06 17:52:05.14 bs5+QLo2.net
URLリンク(gist.github.com)
の
public Perlin(int repeat = -1) { this.repeat = repeat; }
は
public Perlin() { this.repeat = -1; }
と同じ意味でしょうか?またそうであれば、なぜパラメータとしてint repeat = -1としているのでしょうか?
247:デフォルトの名無しさん
19/11/06 17:55:11.74 vTr6jChq.net
>>246
違う
引数を省略した場合は引数に-1と指定されたみなされる
248:デフォルトの名無しさん
19/11/06 17:57:42.25 cEKOtBl2.net
>>246
Perlin()と呼ぶことができる
これはPerlin(-1)と書いた場合と同じ
Perlin(0)ってかけばrepeatには0がはいる
だいたい-1なんだけど時々別の値にしたいときなんかに使う
詳しくはオプション引数でググって
249:デフォルトの名無しさん
19/11/06 18:50:35.37 bs5+QLo2.net
>>247, 248
ありがとうございました。
250:デフォルトの名無しさん
19/11/25 17:06:44.56 3yP/a9XY.net
1 2次元空間上の座標に乱数で円を重ならないようにたくさん配置します。
2 全ての円の座標の平均値がある条件を満たせば終了。
3 満たさなければ初期化して1に戻る
円の数を増やすと2の条件が厳しくなるので、12のループの繰り返しが指数関数的に厳しくなります。
100個を超えると配置できずにフリーズするんですが、
60ぐらいでも10回に1度くらいフリーズします。
10回に1度フリーズするのがよくわからない。。。
Windowsって特定のアプリがループ処理をし続けるとアプリをフリーズさせるようなシステムがあるのでしょうか?
251:デフォルトの名無しさん
19/11/25 17:15:30.05 uMtE/h/q.net
>>250
コントロールの表示の更新が追い付かずにフリーズして見えるだけじゃないのか
それだったら描画ごとにRefresh入れればいいが
とりあえずミニマムコードくらい見ないとエスパーするしかない
252:デフォルトの名無しさん
19/11/25 17:49:11.57 3yP/a9XY.net
>>251
すいません。
250はかなり要約して書いていて、本当はかなり長いコードでここには載せ難く。
10回に9回は1秒程度でループを抜け終了するので、
しばらく待ってれば表示されるかと思うと、やがてOSから応答してないよとメッセージがきます。
cならリソース開放忘れを疑うのですが、c#ってそのへん自動で管理してくれるんですよね。
253:デフォルトの名無しさん
19/11/25 17:54:12.64 pjJuONFZ.net
自分のバグを言語やOSのせいにする香具師は何をやっても大成しない
254:デフォルトの名無しさん
19/11/25 18:05:07.13 b/ZUvETz.net
ウィンドウプロシージャから呼び出された時に時間のかかる処理をすると
基本的にマウス入力も含めた後続のウィンドウメッセージが処理できないので
結果的に操作などが受け付けなくなりフリーズしたようになる
(5秒だかウィンドウプロシージャから戻ってこないとOSが駄目だコイツと判断してよく見る「応答なし」になる)
レンダリング以外の部分で一秒もかかる可能性があるならその時点で別スレッドにすべきではある
フリーズに規則性がないのはそれこそロジック見てみないと誰にもわからんでしょ
様子からしてGCが暴れてる可能性はあるので値型使ってみたりとかの余地はあるだろうけど
255:デフォルトの名無しさん
19/11/25 19:04:16.55 qlQ2yr7c.net
魔法の言葉、Application.DoEvents();
ループ処理の中に書くといいよ
256:デフォルトの名無しさん
19/11/25 19:27:30.58 0ThvbZYY.net
>>252
全体的に何を言ってるのかよく分からないんで推測だけど、
UIがフリーズするのはUIスレッド上のユーザーコードがビジーループになってるから。
ウィンドウやコントロールの再描画やマウスやキーイベントへの反応は
システム側のコードで処理されるわけだけど、それはUIスレッドで動く。
だからUIスレッド上のユーザーコードがビジーのままだと、
システムは側のコードも動けずにフリーズしたように見える
257:デフォルトの名無しさん
19/11/25 19:36:27.15 qmWi7Xp+.net
フリーズするのはスレッドを分離してないのが原因だけど
それ以前に何らかの条件で無限ループになっている可能性もあるな
258:デフォルトの名無しさん
19/11/26 03:03:00.47 oYeHIm2x.net
>>250
まずそういうのは実際には円を描かないで演算だけやってみるところからはじめませう。演算が悪いのか描画が悪いのか切り分けたい。
259:デフォルトの名無しさん
19/11/26 10:03:15.82 c3SEnPpX.net
>>257
無限ループの可能性もあるが
こういう指数関数的に計算量増える場合は
UIと計算スレッドを分離するか
ループ途中でシステムコール呼んでイベント処理させるのが定石
260:デフォルトの名無しさん
19/11/26 10:19:16 SOHA2nuS.net
みなさんいろいろありがとうございます。
円の数とフリーズ確率に比例関係があるので、
ループでの処理が問題だと思います。
別スレッドにしてみようと思います。
それまで
Application.DoEvents();
活用してみます。
261:デフォルトの名無しさん
19/11/26 14:22:57.27 dAEqoOXB.net
メモリ不足無視して実行し続けてるのも暴走って言うかもな
262:デフォルトの名無しさん
19/11/26 19:13:59.32 MuEAwLxr.net
>>250
乱数頼みなわけで物理的にいつまでも決まんねーことあんじゃん
重複が無い円はそのままにして置いたら?
どうせ乱数じゃん?
263:デフォルトの名無しさん
19/11/27 12:24:02 KtqS+hCI.net
1に戻る前に強制GCした方が良くね
264:デフォルトの名無しさん
19/11/30 13:57:48.46 xRFcAUWE.net
2の終了判定が甘くて無限ループしてるだけだろ
265:デフォルトの名無しさん
19/12/01 12:57:13.04 i2YaNYYV.net
>>255
魔法の言葉、Application.DoEvents();
で解決しました。
やはりWhile分で条件達成まで延々ループ処理させてたのが問題だったようです。
フリーズすると制作したアプリで取得したデータ大丈夫なの?
って冷たい目にさらされていたのですが、これですっきりしました。
ありがとうございました。
266:デフォルトの名無しさん
19/12/11 19:12:23.65 t3xhIlyZ.net
ASP.NET MVCを初めて勉強しています
MVの場合、ボタンクリックのイベント処理はどう書くのがスタンダードなのでしょうか?
(Webフォームではイベントハンドラーを使ってましたが。)
267:デフォルトの名無しさん
19/12/11 19:20:12.37 qXq3MGtY.net
form
268:デフォルトの名無しさん
19/12/11 21:27:46.75 H3x5MOt+.net
>>266
チュートリアルからやりましょう
URLリンク(docs.microsoft.com)
269:デフォルトの名無しさん
20/01/01 12:48:02.27 7beskV3u.net
自分で作ったアプリ14個くらいショートカットで起動できるようにしていて、
その中の名前が似た3つが弄ってもいないのにある日突然起動しなくなったのですがどういったことが考えられるでしょうか
270:デフォルトの名無しさん
20/01/01 12:53:24.15 2+A6XpAV.net
何かを弄ったから
271:デフォルトの名無しさん
20/01/01 13:19:14.52 ZjrgaAUK.net
妖精さんの悪戯じゃないかな
272:デフォルトの名無しさん
20/01/01 13:26:47.06 tqBP4ADq.net
大きくならない
固くならない
273:デフォルトの名無しさん
20/01/01 13:51:29.41 dLiykUmV.net
>>271
妖精さん「俺のせいにするんじゃねーよ!」
>>269
C#のプログラム上の問題でないことは確か
PC初心者板へどうぞ
274:デフォルトの名無しさん
20/01/01 15:47:55.57 V7aDVAm9.net
とりあえずイベントログを見てなんかエラーが出てないか確認
275:デフォルトの名無しさん
20/01/02 09:17:19.87 OoAxt65V.net
テキストファイルを開いて書き換える動作が、
昨日まで普通にできていたのが今日やってみたら読み込みは出来るものの、書き込み時に
UnauthorizedAccessException:パスへのアクセスは拒否されました。
の例外が出て書き換えできなくなったのですがなぜでしょうか
276:デフォルトの名無しさん
20/01/02 09:36:21.31 4gUBqapQ.net
そのファイルのアクセス権を剥奪されたのでしょう
277:デフォルトの名無しさん
20/01/02 10:23:46.38 OoAxt65V.net
>>276
それは何故でしょうか?
自分のPCで自分以外は使う事もありません。
そしてどうすれば取り戻せるのでしょうか
278:デフォルトの名無しさん
20/01/02 10:24:50.25 ZgXvL7GY.net
>>275
WindowsUpdateで
「アレ、こいつこんなとこアクセスしてるけどヤバクネ?修正しとこ」
って改修したとこがまさに今反映された
一回だけそういうことあった
279:デフォルトの名無しさん
20/01/02 10:26:25.06 ZgXvL7GY.net
>>277
アプリ実行時に
右クリックメニューからの管理者で実行とかやってみれば?
それと対象のファイル自体のアクセス権も確認
280:デフォルトの名無しさん
20/01/02 10:47:12.88 OoAxt65V.net
ありがとうございます
WindowsDeffenderを切ってみたら書き込みが出来ました
セキュリティが悪く効いてた感じでしょうか
281:デフォルトの名無しさん
20/01/04 15:40:54.17 wppxYzrl.net
DropDown式メニューの幅を指定したいのですが、ToolStripMenuItemだと、
幅を指定しても無視されてしまいます。
ToolStripButtonであれば反映されるのですが、ToolStripMenuItemでも指定する方法を教えてください。
//指定しても無視される(文字に合わせた幅になってしまう)
var item = new ToolStripMenuItem("テスト");
item.AutoSize = false;
item.Width = 100;
this.toolStripMenuItem.DropDownItems.Add(item);
//これなら反映される。
var item = new ToolStripButton("テスト");
item.AutoSize = false;
item.Width = 100;
this.toolStripMenuItem.DropDownItems.Add(item);
282:デフォルトの名無しさん
20/01/04 18:54:04.23 kH3pRzgo.net
>>281
ContextMenuStripでAutoSize=falseにしてそれをDropDownに登録するのはだめなのか?
283:デフォルトの名無しさん
20/01/04 23:39:17.56 oOekXYXc.net
>>281
やってみた感じ、DropDownが表示される時に
MenuItemの場合はWidthではなくてTextを使って横幅を評価しているみたいなのでダメっぽいねw
(AutoSize = falseにした場合、MenuItemの幅自体はちゃんと設定した値になっていることは
マウスオーバーした時のハイライトの枠の大きさで確認できる)
Labelの場合はAutoSizeをfalseにすればWidthもHeightも設定した値が
そのまま表示に反映されるようなので、これをプレースホルダー的に使うことは出来そう。
バッドノウハウ感全開だけどw
でもMenuItemの幅をわざわざ制御したい理由が思いつかんw
284:デフォルトの名無しさん
20/02/11 16:42:09.82 IKSpGnXe.net
C#でPDF生成するのに定番のライブライはどれ?
285:デフォルトの名無しさん
20/02/11 16:57:55.37 +cYPhDtF.net
skiasharpかのう
286:デフォルトの名無しさん
20/02/11 17:48:40.11 SM6OROcH.net
iTextSharp
287:デフォルトの名無しさん
20/02/11 18:32:47.01 3sdew+Rs.net
TextBoxに、テンプレート的なデフォルト文字列を持たせたいのですが、
Formのコンストラクタで
textBox1.Text = "文字列";
という方法で指定すると、TextBoxが表示されてから何も変更してない状態でもCtrl+Zで文字列が消えてしまいます。
どうすれば、消えないようにできるでしょうか?
288:デフォルトの名無しさん
20/02/11 18:49:44.84 zRIDVkEW.net
>>287
試してみたけどこちらでは.Net3.5でも.Net4.62でも再現しない
念のためフォームのShown時のCanUndoを見たらfalseになっているからUndoが効くはずがない
どこの違いなのか分からないが文字列設定後かShown時にとりあえずtextBox1.ClearUndo()を入れてみたら
289:デフォルトの名無しさん
20/02/11 20:57:38 b7fKfEtL.net
>>287
試さずに適当なので違ってるかも
デザイナーでtextBox1のTextの値をリセット(コンテクストメニューにある)すれば
>>288の指摘どおりになるんじゃないの?
恐らくザイナーでTextの値をいじったことがあるために、InitializeComponentで
空文字が代入されてるんじゃないか。
でなきゃアプリケーション設定か
290:デフォルトの名無しさん
20/02/11 21:01:04 zRIDVkEW.net
キーボード眺めて思ったけどCTRL+ZでなくてCTRL+Xしている可能性もあるなw
手入力じゃなくコード上の代入だとUndoできないんだよな
291:デフォルトの名無しさん
20/02/12 01:52:31 CB9IiDBv.net
実務経験1年で月収80万稼げるエンジニアになった理由
URLリンク(www.youtube.com)
意識が低いエンジニアこそフリーランスになれ
URLリンク(www.youtube.com)
フリーランスエンジニアの週3労働ってどんな感じ?
URLリンク(www.youtube.com)
ぼくがスキルのない社畜ならこうやって脱する
URLリンク(www.youtube.com)
初めて人を雇ったらもう二度とサラリーマンをやりたくないと思った話
URLリンク(www.youtube.com)
プログラミングは文系でも余裕で出来ます!理由を現役プログラマーが解説
URLリンク(www.youtube.com)
貧乏人こそ社会不適合者
URLリンク(www.youtube.com)
元ド貧乏が教える】貧乏を抜け出すための2つの考え方
URLリンク(www.youtube.com)
より良いオファー貰ってるのに転職しないとか何考えてるの?
URLリンク(www.youtube.com)
292:デフォルトの名無しさん
20/02/14 11:15:02.38 a5iC3cHy.net
>>285-286
>>284 です
PDFsharp というのが良かったのでこれにしました
293:デフォルトの名無しさん
20/02/14 12:17:04 Rj5e84UH.net
>>292
それ日本語の折り返しに対応してないとか、難あるよ。
294:デフォルトの名無しさん
20/02/14 12:38:43 a5iC3cHy.net
日本語は必須事項ではないので多分大丈夫です
295:デフォルトの名無しさん
20/02/14 12:47:36 7R4aPKWb.net
PDF仮想プリンタの存在前提で普通にGDI+で書けば楽だと思うけどな
Win10ならデフォで入ってるんだし
296:デフォルトの名無しさん
20/02/14 13:04:12.74 a5iC3cHy.net
なるほど!
検討してみます。ありがとう!