X



ふらっと C#,C♯,C#(初心者用) Part134
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん (ワッチョイ 0f9a-KsIq)
垢版 |
2017/11/29(水) 19:23:58.05ID:GNLsbK4F0
「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
他のスレッドでは書き込めないような低レベルな質問、
質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。
内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。
なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスはやめてください

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

■前スレ
ふらっと C#,C♯,C#(初心者用) Part133
http://mevius.5ch.net/test/read.cgi/tech/1510056685/
■関連スレ
C#, C♯, C#相談室 Part95
http://mevius.5ch.net/test/read.cgi/tech/1508180530/
C#, C♯, C#相談室 Part93
https://mevius.5ch.net/test/read.cgi/tech/1492818720/

■コードを貼る場合は↓を使いましょう。
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
0563549 (ワッチョイ 5e76-TP79)
垢版 |
2018/01/17(水) 18:33:33.76ID:2pD1HrQI0
むしろクエリを外部ファイルに書き出すのは古いのですね
参考になります
0564デフォルトの名無しさん (ワッチョイ 25b3-hYQh)
垢版 |
2018/01/18(木) 15:36:13.66ID:UDaQCIW60
すみません。この場を借りて質問させていただきます。
C#初心者なのですが、wpfで動画再生アプリを作っています。コピペメインです。

MediaElementを使って動画のコントロールはほぼ実装できたのですが、
動画のフルスクリーンからの復帰の仕方が良くわかりません。
(元の画面にうまく戻せません)

フルスクリーンにするときは、こちらを使っています。
layoutRoot.Children.Remove(myMediaElement);
this.Content = myMediaElement;
this.WindowStyle = WindowStyle.None;
this.WindowState = WindowState.Maximized;

戻すときは以下のようにしてみましたが、
this.Content = layoutRoot;
layoutRoot.Children.Add(myMediaElement);
this.WindowStyle = WindowStyle.SingleBorderWindow;
this.WindowState = WindowState.Normal;
System.ArgumentException: '新しい親 Visual に関連付ける前に、指定された子と現在の親 Visual との接続を切断する必要があります。'
と怒られますw 親子の縁はどのように切ったら良いのでしょうか?
よろしくお願いいたします。
0567デフォルトの名無しさん (ワッチョイ 25b3-hYQh)
垢版 |
2018/01/18(木) 19:23:42.55ID:UDaQCIW60
ぜんぜんわかりまへん。。
0568デフォルトの名無しさん (ワッチョイ 239d-pQa0)
垢版 |
2018/01/18(木) 19:44:28.00ID:64hUXuXa0
private void savedata()
{
string name = "aaa.txt";
system.IO.StreamWriter sw;
try
{
sw = new IO.StreamWriter(name, false, System.Text.Encoding.GetEncoding("shift_jis"));
sw.WriteLine("aaaa");
}
catch (Exception ex)
{
MsgBox("Savedata error:" + ex.Message);
}
finally
{
sw.Close();
}
}
Newでエラーした場合にはSw.Closeすると落ちるが、何とかならないものだろうか?
0570愛知人
垢版 |
2018/01/18(木) 19:54:23.83ID:9519fNi8
知らんけどusingステートメントでよくね
0572デフォルトの名無しさん (ワッチョイ 239d-pQa0)
垢版 |
2018/01/18(木) 20:15:34.43ID:64hUXuXa0
あっそうか Nullで検出できたのか。ありがと。Useingってのもあるんだね。

開発モードではエラーしないのに、Setupファイルでインストールすると、書き込み禁止がかかっているような
エラーになるんだがなにが原因だろ。
System.UnauthorizedAccessException: パス 'C:\Program Files (x86)\test14\あああああ.ini' へのアクセスが拒否されました。
0575デフォルトの名無しさん (ワッチョイ 25b3-GP+B)
垢版 |
2018/01/18(木) 20:29:36.57ID:YPPczFY+0
フォームのデザイナが以下のエラーを吐くのですがどうすればいいですか。

"***.dll"を読み込めません:指定されたモジュールが見つかりません。 (HRESULT からの例外:0x8007007E)

プロジェクトは以下の4つです。
MainForm(C#)
MainView(C#) (MainFormの中でNewされる。DLLsを利用する。)
DLLs(C#) (DLLImportする。)
Drawer(C++) (DLLExportする。dllファイルはビルド後に実行ファイルがある場所にコピーされる。)

コールスタックでは、MainViewのDLLsを使用しているところでエラーがでており、
それをコメントアウトすると、デザイナが表示されます。
0576デフォルトの名無しさん (ワッチョイ 239d-pQa0)
垢版 |
2018/01/18(木) 20:50:42.63ID:64hUXuXa0
>WindowsフォルダやProgramFilesフォルダに書き込むには管理者権限が必要

ありがとう。
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
をいれたら動き出した。しかし立ち上げ時に毎回「この不明なアプリが実行することを許可しますか?」って
Windowsの確認画面がでるんだが、なんとかならないのでしょうか?
0581デフォルトの名無しさん (ワッチョイ 239d-pQa0)
垢版 |
2018/01/18(木) 23:30:22.02ID:64hUXuXa0
管理者権限でいつも立ち上げるようにすると確かにアクセスできるようになった。
しかしインストール先 パス を'C:\Program Files (x86)、これをやめれば管理者権限で立ち上げる必要はないのでは?
0582デフォルトの名無しさん (ワッチョイ 239d-pQa0)
垢版 |
2018/01/18(木) 23:33:43.60ID:64hUXuXa0
>コードサイニング証明書取得して、プログラムに署名。

最高だ。これはいい。

とおもったら金がかかるのか? 残念。
0583デフォルトの名無しさん (ワッチョイ 2306-GP+B)
垢版 |
2018/01/18(木) 23:58:27.78ID:x+1bimBw0
>>582
普通はアプリケーションフォルダにデータを置きます
てか、設定ファイルは.iniを使わなくなって10年以上経ちます
[C# 設定]で、普通の設定ファイルの使い方調べた方がいい
0585デフォルトの名無しさん (アウアウエー Sa93-2BHe)
垢版 |
2018/01/19(金) 00:13:18.76ID:S8TUMubta
最近流行らないと思うけど、バイナリと同じ場所に設定ファイルを置くのは
バイナリ自体をUSBメモリに入れて持ち歩くような特殊な用途ぐらいだよね

iniファイルでも悪くないと個人的には思うけど、せっかく便利なシリアライザがいろいろあるのに
わざわざ機能的に劣るiniファイルを使う意味はないわなあ

読み書きするコードも自分で書かなきゃならんし
0586デフォルトの名無しさん (ワッチョイ 239d-pQa0)
垢版 |
2018/01/19(金) 00:21:35.85ID:reZAGsN60
AppDataってVsのSetupプロジェクトでは作ってくれないですね。Apllicationフォルダーに設定用のデータも入れています。

「iniをつかわない」ってのがあまり意味がわかりませんがいま使っているのは単なるテキストファイルです。
(*.iniという名前にしていますが、)StreemWriterで書いています。XMLに落とすのが普通なのでしょうか?
 しかし単に改行だけのファイルで十分なのでXMLにはしていません。
XMLは設定ファイルとしてはわかり難いですし無駄が多いように思います。
それにエディターで気楽に追加ができないです。
0587デフォルトの名無しさん (ワッチョイ 239d-pQa0)
垢版 |
2018/01/19(金) 00:26:38.77ID:reZAGsN60
>niファイルでも悪くないと個人的には思うけど、せっかく便利なシリアライザがいろいろあるのに
>わざわざ機能的に劣るiniファイルを使う意味はないわなあ

慣れなんですかね。どうも直観的にわかり難いように思います。だからJsonとかを使う人も多いんではないですか?
0588愛知人
垢版 |
2018/01/19(金) 00:30:36.53ID:5Myz+qXq
VisualStudioの機能だが
0589デフォルトの名無しさん (ワッチョイ 239d-pQa0)
垢版 |
2018/01/19(金) 00:32:41.68ID:reZAGsN60
”設定”, 20,
とかをStreemReaderで読みこむと何で ””設定””になるんですかね。ストリングにするためにわざわざ「”」をNULLにReplaceしています。
なんかいい方法はないですかね。
0591デフォルトの名無しさん (ワッチョイ 239d-pQa0)
垢版 |
2018/01/19(金) 00:45:09.29ID:reZAGsN60
>VisualStudioの機能だが

・AppDataフォルダ:このフォルダは「C:\Users\ユーザー名\AppData」にあります。ほとんどのプログラムの設定ファイル
はここに置かれています(サブフォルダ「Roaming」の中)。プログラム名か開発企業名のフォルダの中に、設定ファイルや
関連データが保存されていますので、フォルダごとバックアップしておきましょう。

こういうもののようですね。だからSetupプロジェクトにはここに入れる設定データのフォルダーがあってしかるべきですがない?みたいですね。
0592デフォルトの名無しさん (ワッチョイ 239d-pQa0)
垢版 |
2018/01/19(金) 00:46:26.55ID:reZAGsN60
すいません。ありました。w
0594デフォルトの名無しさん (アウアウウー Sad9-weOF)
垢版 |
2018/01/19(金) 01:25:20.86ID:LT72Z3Kia
バイナリと同じフォルダにiniファイルだと…

アプリケーション1つにつき設定が一個しかないのでユーザーが複数いると困る
たとえば年賀状ソフトで差出人が全てのユーザーで一つしか設定できない
0597デフォルトの名無しさん (ワッチョイ 3deb-v7nw)
垢版 |
2018/01/19(金) 05:47:10.29ID:FgdJ6DNZ0
すまんが、列挙型って関数の引数の型に指定することはできないの?
enum A {B, C ,D};
void E(A a){}//ここでエラー
これを書く事ができれば、エディタのアシストが効きまくってミスが減る気がするんだけど・・・・・
0602デフォルトの名無しさん (ワッチョイ 03eb-x16F)
垢版 |
2018/01/19(金) 15:16:19.49ID:6h+BHP540
Windows Form のコントロールたちって、ここ10年くらい全くもって変わり映えしてない気がするんだけど
もう改善する気がないのかねぇ

グレープシティ壊滅させるまでやらずとも
テキストボックスの縦位置とか枠線スタイルとか複数列コンボとか、そのくらい対応してくれてもいいと思うんだけど
0609愛知人
垢版 |
2018/01/19(金) 23:45:07.67ID:5Myz+qXq
線なんか引くか?
無い物は使わなくてよくね?
0612デフォルトの名無しさん (ワッチョイ 0b81-pCZf)
垢版 |
2018/01/20(土) 00:20:13.00ID:1eaJngIj0
MSがUWPの宣伝しているのを見る度に
ユニバーサルプラットフォームっていうけど
お宅の会社ってPC以外のプラットフォーム持ってましたっけ?
って煽りたくなる
0616デフォルトの名無しさん (ワッチョイ 630f-GP+B)
垢版 |
2018/01/21(日) 06:37:48.04ID:eh2o3Efy0
解像度2560×1440のモニタを使っているのですが、Formアプリの解像度が合いません。
原因はサイズを125%に拡大していることで、通常の倍率に戻すとぼやけません。
FormのAutoScaleModeをDpiに設定してみましたが改善されませんでした。
対策をご存知の方がいましたら教えてください。
0621愛知人
垢版 |
2018/01/21(日) 12:27:01.84ID:w5iluM1L
つまり他のソフトもボヤけてるんだな。
XPExplorerインストールすればいいのに。
0622デフォルトの名無しさん (ワッチョイ 630f-Qwpo)
垢版 |
2018/01/21(日) 19:16:00.62ID:eh2o3Efy0
>>621
さっそくインストールしました
ありがとうございます!
0623デフォルトの名無しさん (ワッチョイ 630f-Qwpo)
垢版 |
2018/01/21(日) 19:17:14.71ID:eh2o3Efy0
早速インストールしたら好調でした
ありがとうございます!
0624デフォルトの名無しさん (ワッチョイ 630f-Qwpo)
垢版 |
2018/01/21(日) 19:18:01.63ID:eh2o3Efy0
>>621
早速インストールしたら好調でした
ありがとうございます!
0625デフォルトの名無しさん (ワッチョイ a3d4-4jNr)
垢版 |
2018/01/22(月) 01:46:46.64ID:B9qWH8zv0
>>621
早速インストールしたら好調でした
ありがとうございます!
0626デフォルトの名無しさん (ワッチョイ a3d4-4jNr)
垢版 |
2018/01/22(月) 01:47:44.83ID:B9qWH8zv0
>>621
早速インストールしたら好調でした
ありがとうございます!
0627デフォルトの名無しさん (ワッチョイ a3d4-4jNr)
垢版 |
2018/01/22(月) 01:48:45.74ID:B9qWH8zv0
>>621
早速インストールしたら好調でした
ありがとうございます!
0628愛知人
垢版 |
2018/01/22(月) 01:49:30.11ID:f1RuTEDX
うっせーよカス
0629デフォルトの名無しさん (ワッチョイ a3d4-4jNr)
垢版 |
2018/01/22(月) 01:50:19.37ID:B9qWH8zv0
>>621
早速インストールしたら好調でした
ありがとうございます!
0630デフォルトの名無しさん (ワッチョイ a3d4-4jNr)
垢版 |
2018/01/22(月) 01:51:06.43ID:B9qWH8zv0
>>621
早速インストールしたら好調でした
ありがとうございます!
0631デフォルトの名無しさん (ワッチョイ a3d4-4jNr)
垢版 |
2018/01/22(月) 01:52:13.61ID:B9qWH8zv0
>>621
早速インストールしたら好調でした
ありがとうございます!
0633デフォルトの名無しさん (ワッチョイ 5bd6-pQa0)
垢版 |
2018/01/22(月) 15:17:28.34ID:rsQqa0Zv0
public static SqlConnection connect = new SqlConnection("接続文字列");
public static SqlDataAdapter sda = new SqlDataAdapter("SELECT * FROM Table", connect);
public static DataTable dt = new DataTable();

private void Form_Load(object sender, EventArgs e)
{
sda.Fill(dt);
DataGridView1.DataSource = dt;
}

private void button_publish_Click(object sender, EventArgs e)
{
connect.Open();
〜Tablesへの改変処理
connect.Close();

dt = new DataTable();
sda.Fill(dt);//★
}

Table内容をSqlDataAdapterを使い、データテーブルに入れ込んで、DataGridViewに表示させた後、

Table内容を変更後、再びDataGridViewに表示させるとき、例外がスローされます。

★の部分で、「System.InvalidOperationException: 'ConnectionString プロパティは初期化されていません。'」が出ます。

最新のデータを同じDataGridViewで見るには、どのようにすればよいのでしょうか?
0635633 (ワッチョイ 5bd6-pQa0)
垢版 |
2018/01/22(月) 16:09:10.00ID:rsQqa0Zv0
connect.Open();//★
sda.Fill(dt);
connect.Close();
としたら、★マークのところで、またエラーが出ました。
0636デフォルトの名無しさん (ワッチョイ 0306-GP+B)
垢版 |
2018/01/22(月) 16:33:20.49ID:R+95xE7/0
まずコネクション以下全てのオブジェクトはクローズしたら再度newしないと使えません
よってスタティックじゃなくて普通のインスタンスとして管理
使う度にnewで新たに作ります
0637633 (ワッチョイ 5bd6-pQa0)
垢版 |
2018/01/22(月) 16:46:28.18ID:rsQqa0Zv0
そうだったんですね、使いまわせると思ってました・・・
0638633 (ワッチョイ 5bd6-pQa0)
垢版 |
2018/01/22(月) 17:15:57.30ID:rsQqa0Zv0
インスタンス内で、宣言したら、うまくいくようになりました。
ありがとうございます。
0639デフォルトの名無しさん (ワッチョイ 239d-pQa0)
垢版 |
2018/01/23(火) 08:14:55.18ID:y6LiRRs70
デバッグで完全に動作するのにインストールして動かすと、途中で落ちる。多分データベースのアクセスではないかなと
思っているんだが、インストールした実行プログラムのデバッグをやろうとしているんだがどうやるのか不明。

VS2013の「デバッグ」から「インストールされているアプリケーションパッケージのデバッグ」に入ってもリストに何もでてこない。
なにか設定があるのだろうと思うが、どこを設定すればいい?
アタッチするまでが分からない。
0645デフォルトの名無しさん (ワッチョイ bdb8-1VRr)
垢版 |
2018/01/23(火) 09:59:10.73ID:iDuW9Lrl0
mono入れたLinuxでmscでコンパイルした実行ファイルを
WindowsにもってこようとするとMicrosoft Defenderでトロイ扱いされてブロックされます
同じコードをWindowsでcscでコンパイルした場合は問題ありません
WindowsでコンパイルしたものはmonoでLinuxでもちゃんと実行できます
なんでmscでコンパイルしたものがトロイ扱いされるんでしょう?
0646愛知人
垢版 |
2018/01/23(火) 11:14:45.36ID:ZHqgRH1x
どうやって受け渡してる?
zipで渡したらどうなる?
0647デフォルトの名無しさん (ワッチョイ bdb8-1VRr)
垢版 |
2018/01/23(火) 11:48:58.28ID:iDuW9Lrl0
>>646
scp(ssh)とhttp経由でダウンロードしましたがだめで
その後拡張子を変えたりしましたがだめでした
アーカイブは試しませんでしたが
ダウンロードできても解凍するところでアウトと思われます
軽いプログラムだったのでbase64エンコードした文字列を
Windows側でデコードして出力しようとしたのですが
ファイルに出力した時点でウイルス判定され隔離されました
0648デフォルトの名無しさん (ワッチョイ 3d9e-WQmd)
垢版 |
2018/01/23(火) 12:35:41.92ID:IdUgpQhE0
C#アプリからCTRL+V以外のホットキーでSendMessageでWM_PASTEを送っても
ペーストできるアプリとできないアプリがあるのですが
ペーストできない原因とどうすればペーストできるのか
分かる方がおられましたらお教えいただけないでしょうか

自作C#アプリ ○
FireFox ○
ThunderBird ○
IE11 ○
Mery ○
秀丸ファイラ ○
MDIE ○


V2C ×
Chrome ×
Vivaldi ×
Everything ×
0650デフォルトの名無しさん (アウアウカー Sa21-zP08)
垢版 |
2018/01/23(火) 12:43:45.53ID:w7MKK31Na
シリアル通信のプログラムで問い合わせ付のコマンドを送信する場合に、送信結果(bool)とレスポンス結果(string)を取得したいのですが、返り値boolでレスポンス結果をoutで返すといった感じにすればいいでしょうか
0651デフォルトの名無しさん (ブーイモ MM99-4b13)
垢版 |
2018/01/23(火) 12:44:53.41ID:S3NIjRwTM
WM_PASTEじゃなくて直接キーをハンドリングしてるんだろ
最近のメジャーなアプリは開発者がMacをメインで使ってるケースが多かったりして、
ファッキンドザのために必要以上の特殊な対応はしないというスタンスのものが増えてるよ
0653デフォルトの名無しさん (ブーイモ MMe9-VZYS)
垢版 |
2018/01/23(火) 13:01:37.24ID:P/8oxsShM
>>650
送信結果は例外で
0654デフォルトの名無しさん (アウアウエー Sa93-2BHe)
垢版 |
2018/01/23(火) 13:31:40.71ID:+k2ngROKa
>>650
成否だけ分かればいいなら、失敗した時はnullを返せば十分じゃない?

enum Acknowledgement {ACK,, NAK, NoResply, Offline};
みたいなのを返したいなら、

Class Response
{
  public string Received{get; private set;}
  public Acknowledgement Acknowledgement{get; private set;}
}

みたいなのを返すとか
0656デフォルトの名無しさん (アウアウカー Sa21-zP08)
垢版 |
2018/01/23(火) 21:20:31.90ID:doIreqsya
>>652-654
ありがとうございます
試してみます
0657デフォルトの名無しさん (ワッチョイ 25b3-pQa0)
垢版 |
2018/01/24(水) 22:02:38.70ID:pOW1jrho0
classをforeachで回したいのですがGetEnumeratorの書き方はこういう形が一般的なのでしょうか?
プロパティが増える度にGetEnumeratorのyield return追加しないといけないですが
うっかり追加し忘れてバグの元になるから別の書き方があるのかも?と少し気になったので
https://ideone.com/etKQWk
■ このスレッドは過去ログ倉庫に格納されています

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