X



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

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

■関連スレ
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/
■前スレ
ふらっと C#,C♯,C#(初心者用) Part136
http://mevius.5ch.net/test/read.cgi/tech/1520057345/

■コードを貼る場合は↓を使いましょう。
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
0799デフォルトの名無しさん (ワッチョイ b6ed-RYnA)
垢版 |
2018/05/22(火) 11:14:09.28ID:7Riaak3V0
WPFで
WindowStyle="None"
AllowsTransparency="True"
Background="#01FFFFFF"
でほぼ透明だけどマウスイベントを受け取るウィンドウを作ったのですが
これとおなじことをFormでやりたいのですがやりかたがわかりません
どのようにすればいいですか?
0800デフォルトの名無しさん (ワッチョイ 7696-NEzo)
垢版 |
2018/05/22(火) 11:23:07.15ID:svO22mue0
>>798
できると思います。

データ格納フォルダB:Aフォームから値を取得
Cクラス:Bから値を取得
となってるのでsetもpublicでないと困るんですよね。

データ格納フォルダBの値はAから値取得した後なにも処理がないので、
「Reは使用されていません」って正しい警告なんですけどねぇ。
格納しているデータが10個あって警告10個もでるとさすがにうっとうしい。
0802デフォルトの名無しさん (ブーイモ MMde-+Nwo)
垢版 |
2018/05/22(火) 12:16:10.65ID:O9GDwfVPM
BのコンストラクタにAからの値を受け付けて
public readonly double Reに渡すとかじゃだめなんね?
0806デフォルトの名無しさん (ワッチョイ 7696-NEzo)
垢版 |
2018/05/22(火) 13:55:20.14ID:svO22mue0
もともとスタートアップだったform1からform2にスタートアップを変更したいと考えています。
Program.csの
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new InitialSettingForm1());
}
のForm1をForm2に変更したのですがどうもうまくいきません。
0807デフォルトの名無しさん (ワッチョイ 7696-NEzo)
垢版 |
2018/05/22(火) 14:00:09.60ID:svO22mue0
form1が出てからform2が表示されているような…。
試しに
public ExaminationForm1()
{

InitializeComponent();
MessageBox.Show("a");
}
と入れてみると
メッセージボックスが表示→okをクリック→form2が表示
となります。
他にも設定しなければいけないところがあるのでしょうか・・・。
0814デフォルトの名無しさん (ワッチョイ 7696-NEzo)
垢版 |
2018/05/22(火) 17:16:54.99ID:svO22mue0
Form2で
int i = class1.fuga();
みたいなclass1のメソッドを使う命令を書くと、実行時にForm1もForm2も表示されずに終了になります。

Form2にclass1の参照をきちんと渡せていないようなのですが、どこが悪いんでしょう・・・。
0816デフォルトの名無しさん (ワキゲー MM42-wBtv)
垢版 |
2018/05/22(火) 17:34:55.39ID:oCYWBo6GM
806から811で全然別物の質問になってるんだけど
Form1のコンストラクタの先頭とForm2のコンストラクタの先頭にそれぞれブレークポイントおいて
ブレークしたらF10キー1行ずつステップオーバーしていって
どういう順番で実行されてるか確認
0820デフォルトの名無しさん (ワッチョイ 7696-NEzo)
垢版 |
2018/05/23(水) 00:14:46.31ID:IEWpo6Tg0
>>819
ありがとうございます。m(__)m
その通りでした。
一個づつ追っていけば分かるはずなんですけど、
自分では思い込みがあって気づきませんでした。

本当に助かりました。
ありがとうございました。
0821デフォルトの名無しさん (ワッチョイ 7696-NEzo)
垢版 |
2018/05/23(水) 00:17:07.19ID:IEWpo6Tg0
>>815
すいません。
文章の書き方が悪かったです。

812の下から4行目のように
Form2で
int i = class1.fuga();
class1のメソッドを使う命令を書くと、実行時にForm1もForm2も表示されずに終了になります。

と書くべきでした。
0822デフォルトの名無しさん (ワッチョイ 7696-NEzo)
垢版 |
2018/05/23(水) 00:18:47.23ID:IEWpo6Tg0
>>816
これまたすいません、ブレークポイントで見て言ったら画面の生成順は問題ないことが分かって、
インスタンスの参照が渡っていないことが原因と分かり。811-813みたいな最小コードで実験してました。
0823デフォルトの名無しさん (ワッチョイ 75eb-/w+O)
垢版 |
2018/05/23(水) 10:08:41.93ID:N3UaVe1J0
中学生ぐらいだったら教えてやってもいいけど、あんたいくつよ?
0824デフォルトの名無しさん (ワッチョイ 76e8-HRP5)
垢版 |
2018/05/23(水) 10:10:09.13ID:QWeWgJFJ0
不安なメソッド内じゃ全部TryCatchで囲っちゃった方が良いです?
0828デフォルトの名無しさん (ブーイモ MMa1-mCTX)
垢版 |
2018/05/23(水) 19:00:48.43ID:iQ1n/QEKM
>>827
できる人はそんな無駄なことに時間をかけたりしません
視野狭窄な無能ほどそういうことに拘って工数をドブに捨て、結果的に全体のクォリティを上げる時間が失われるのです
0831デフォルトの名無しさん (アウアウウー Sadd-GmoF)
垢版 |
2018/05/24(木) 00:28:40.71ID:crQGHj+ea
>>830
それも注意が必要だけどね
視野狭窄な小手先の技術に拘るプログラマは、くだらない問題に拘って「どうしても駄目だ」と思い込む(思い込もうとする)傾向がある
大抵そういうケースでは、視野を広げるとそもそも無理に手間をかけてまで解決する必要のない問題であることが多い
0835デフォルトの名無しさん (ワンミングク MMd3-oiRH)
垢版 |
2018/05/24(木) 15:02:55.06ID:AHiLgPdDM
コンソールアプリです。
今までに自分が吐き出した標準出力を自分で取得する事は可能でしょうか?
このアプリ(A)は主に他のアプリ(B)から実行されることを想定しています。Aは普通にConsole.WriteLineで出力し、BがProcess.StandardOutput.ReadToEndで取得、ログを残します。
A単体で実行してログも残したい要求があります。 Console.WriteLineと同時にファイルに出力すればいいのですが、最後に一括で取得できればスマートかなと思ったのですが、いかがでしょうか?
0842デフォルトの名無しさん (アウアウオー Sa63-9v30)
垢版 |
2018/05/24(木) 20:33:40.60ID:hof73DG2a
正直何言ってるのかよく分からんけど、普通にリダイレクトするだけのような...
っていうか、普通はコマンドライン引数で出力先を切り替えるように作ると思うんだけど...
0845デフォルトの名無しさん (アウアウウー Sadd-GmoF)
垢版 |
2018/05/25(金) 00:39:09.38ID:N3c6aWbUa
PowerShellとか罰ゲームだろ
インタラクティブシェルとしては悪くないけど、まとまったスクリプト書こうとすると大嫌いになる
Add-TypeでインラインでC#書いたほうがマシだわ
特にC#erはソースの見た目がなんとなく似てるだけに地獄を見るんだよ
0848デフォルトの名無しさん (ワッチョイ 8b96-vxiR)
垢版 |
2018/05/28(月) 00:24:44.02ID:2eqT73MR0
if (-100 <= clickPointXTemp && clickPointXTemp <= 100)
{
clickPointX[clickNumber] = clickPointXTemp;
MessageBox.Show(clickPointX[clickNumber].ToString() + "%");
MessageBox.Show(clickPointX[0].ToString() + "%");
MessageBox.Show(clickPointX[1].ToString() + "%");
MessageBox.Show(clickPointX[2].ToString() + "%");
clickNumber++;
}
0849デフォルトの名無しさん (ワッチョイ 8b96-vxiR)
垢版 |
2018/05/28(月) 00:29:53.74ID:2eqT73MR0
クリックしてカーソルが-100<=clickPointXTemp<=100の位置にあるときに配列にその値を代入させているのですが、
クリックするとその場で配列に代入できても次のクリックで0になってしまいます。

1回目クリック
clickPointXTemp=10
[0]=10
[1]=0
[2]=0

2回目クリック
clickPointXTemp=30
[0]=0
[1]=30
[2]=0

2回目クリック
clickPointXTemp=100
[0]=0
[1]=0
[2]=100

なんでだろ・・・。
0851デフォルトの名無しさん (アウアウカー Sa95-9DOT)
垢版 |
2018/05/28(月) 00:33:24.89ID:SRIgyUF4a
データベースを使わないで、インデックスが共通する複数のデータ配列を作りたいときってどういう風な実装が最適なんでしょうか
var A = new int[x]
var B = new int[x]
var C = new int[x]



var E = new int[x]
みたいな感じです
0854デフォルトの名無しさん (アウアウカー Sa95-9DOT)
垢版 |
2018/05/28(月) 07:52:50.79ID:Mf7CKKuIa
>>853
ありがとうございます
助かりました!
0855デフォルトの名無しさん (オッペケ Sr05-cS+N)
垢版 |
2018/05/28(月) 12:27:04.88ID:YifI+gJdr
誰か>>852のエスパーたのむ
0859デフォルトの名無しさん (スッップ Sd33-FAoy)
垢版 |
2018/05/28(月) 20:32:45.18ID:0z7zyrSed
複数のクラスで共通の変数定数を外出しして、
その変数クラスを継承するのって良し悪しで言うとどうでしょうか

is aなのかちと微妙な感じです
内臓名クラスを継承して動物クラスを作ってるような

has aなのでオブジェクトとして渡すべきですか?
0860デフォルトの名無しさん (ブーイモ MM33-GmoF)
垢版 |
2018/05/28(月) 21:46:19.79ID:rs0fZbm/M
>>859
共通の変数などという低い抽象度でクラス設計を考えるのがそもそも間違ってる
実装からクラスを考えると必ず破綻するから、君の今の考え方のまま進む限りはいかなる選択肢も不正解
とはいえ最初から抽象度を上げて設計しろといっても初心者には無理な話だから、気にせず自分の思うように作ればいい
一通りモノ作れるようになったらオブジェクト指向モデリングの書籍を読むことをお勧めする
0870デフォルトの名無しさん (ワッチョイ fb8a-HY9j)
垢版 |
2018/05/29(火) 21:07:37.85ID:FUNbZ4ty0
フォーム間でのデータのやりとりはどうするのが一般的なのでしょうか?
例えば、Form2の表示と同時に、Form1に入力済みのデータをForm2に表示させる場合、今は以下のようにしています。

class Form1
{
 public object Data{get; set;}

 var form2 = new Form2();
 form2.Parent = this;
}

class Form2
{
 public Form Parent{get; set;}

 Load()
 {
  this.Data = Parent.Data;
 }
}
0873デフォルトの名無しさん (ワッチョイ 13d2-XWWR)
垢版 |
2018/05/29(火) 22:58:12.01ID:G7p9dius0
>>869
言語仕様とか環境の変化で不要になった部分をバージョンアップしてるから
今からかうなら最新だけでいい
初版と4.0と最新で内容は被っている
0876デフォルトの名無しさん (ワッチョイ 39b5-cBpb)
垢版 |
2018/05/30(水) 14:44:18.44ID:LltEUg5c0
まあ、C#ならコールバックは登録解除を明示的に行うからスタティックである必要は無いけどな。
でもこれがイベントハンドラからのデリゲートなら話は別だ。
0877デフォルトの名無しさん (ブーイモ MM33-GmoF)
垢版 |
2018/05/30(水) 14:47:38.89ID:WVM+AecNM
>>875
そのSocketオブジェクトに合わせるのが正解
Socketを生で使うサンプルってスキルの低い業務ドカタが書いてたり書かれた時代が古かったりすることが多いので、
C#をよく理解してなくてCやVBの感覚でstaticにしないといけないと思ってるようなのが多い
0885デフォルトの名無しさん (ワッチョイ 4e57-msj4)
垢版 |
2018/06/01(金) 09:05:55.18ID:azdekr4p0
説明不足ごめんなさい。
出力ですが、最終的にはTextBoxの枠ごと印刷したいと考えております。
883の言う単位の入力補完だと思います。

MaskedTextBoxのマスクに####℃と記入し、
「-24.4」等のデータをデータベースから取り出して、入れたところMaskedTextBox.Textが244℃となってしまいました。
このテキストボックスを小数点有りの場合、なしの場合、負の符号が有りの場合なしの場合、「----」の場合、
1桁から5桁+「℃」としてTextBox.Textに出力したいと考えております。

できますか?
0895デフォルトの名無しさん (ワッチョイ fae3-mRcc)
垢版 |
2018/06/01(金) 23:18:54.61ID:fWGAwsr30
前門の虎 肛門の狼
0896デフォルトの名無しさん (ワッチョイ d103-Y2aB)
垢版 |
2018/06/02(土) 00:25:46.86ID:A4SZL/oE0
寒っ
■ このスレッドは過去ログ倉庫に格納されています

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