C#, C♯, C#相談室 Part55
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2009/10/14(水) 23:23:45前スレ
C#, C♯, C#相談室 Part54
http://pc12.2ch.net/test/read.cgi/tech/1250911923/
Visual C# 2008 Express Edition 日本語版
http://www.microsoft.com/japan/msdn/vstudio/express/vcsharp/
その他テンプレ>>2-5くらい
0153デフォルトの名無しさん
2009/10/20(火) 18:41:460154デフォルトの名無しさん
2009/10/20(火) 18:52:480155デフォルトの名無しさん
2009/10/20(火) 19:22:59そもそも、ツールボックスに表示されているのは殆どコンポーネントだし
[コンポーネント]にあるのは明確なカテゴリのない残り物
てか、適当な事書く前に.NETでのコンポーネントの定義を確認してくれよ
0156デフォルトの名無しさん
2009/10/20(火) 20:59:56きもすぎワロタw
//Form1.cs
public string Data
{
get;
set;
}
private void button1_Click(object sender, EventArgs e)
{
Form frm = new Form2();
frm.Show(this);
}
//Form2.cs
private void Form2_Load(object sender, EventArgs e)
{
var frm = this.Owner as Form1;
if (frm != null)
frm.Data = "kimosu";
}
0157152
2009/10/20(火) 21:39:46駄目だw理解出来ないw
var frm = this.Owner as Form1;
これは一体何してるの?
if (frm != null)してるなら、どのタイミングでfrmをdisposeすればいいの?
Form2のClosingでdisposeしとけばいい?
まさか俺はdisposeの意味を全く理解して無いだけか
get; set;
これってgetとsetの処理分けて書かないと駄目なんじゃないの?
多分スルーされて涙目になるんだろうけど、
誰でもいいから教えてよ;w;
0158デフォルトの名無しさん
2009/10/20(火) 21:51:38get;set;については匿名係長でググれ
0159デフォルトの名無しさん
2009/10/20(火) 21:54:180160デフォルトの名無しさん
2009/10/20(火) 21:55:280161デフォルトの名無しさん
2009/10/20(火) 21:58:54じゃあ例えばForm2からForm1の背景色を変更するときとか普通はどうするの?
0162デフォルトの名無しさん
2009/10/20(火) 22:02:510163デフォルトの名無しさん
2009/10/20(火) 22:04:48Form2に設置したボタンを押された回数を
Form1で宣言した変数に入れたい時もイベントで出来るの?
0164デフォルトの名無しさん
2009/10/20(火) 22:09:290165デフォルトの名無しさん
2009/10/20(火) 22:09:33別の独立したクラスに持たせて,Form1とForm2の両方から参照した方がスマートではありませんか?
0166デフォルトの名無しさん
2009/10/20(火) 22:11:130167デフォルトの名無しさん
2009/10/20(火) 22:13:09var frmは理解しました。
varってクラスの型なんですね
disposeの件は勘違いしてました。
今までのソース見てもそんなのしてねぇや、俺アホす
匿名係長でググってもめぼしい物が見つからない・・・
>>165
やべえ、感動した。
まだほんの小規模なツールしか作ったこと無くて、クラスも1つしか使ってなかった
そうか、それで別のクラス作ればいいのかw
0168デフォルトの名無しさん
2009/10/20(火) 22:15:16「Form1の変数を弄るためのイベント」みたいにForm1を意識して作るんだったら
直接Form2からForm1を触るのと変わらん
どうせ意識するんだったら意識する範囲を別のクラスに括り出す
0169デフォルトの名無しさん
2009/10/20(火) 22:19:43未だにnamespaceとかの概念も分からないわ
新規にクラス作るときは、Form1.csの中に書いても良いのかな?
namespace app1
{
public partial class Form1 : Form
{ public Form1 }
//ここに、public partial class aho{ }ってすればクラス追加したことになるの?
}
というか、ここで聞けるほど簡単な所でひっかかってるんじゃなさそうだから
ソースの構造体とかの概念を説明してるサイト無いのかな
ググってもサンプルとかはいくつも出てくるけど、そんなサイトのほうが少ないし
どうするかな・・・
0170デフォルトの名無しさん
2009/10/20(火) 22:23:38ここで聞いちゃいけないほど簡単なことをきいてんだよお舞は(´・ω・`)
0171デフォルトの名無しさん
2009/10/20(火) 22:24:39http://www.atmarkit.co.jp/fdotnet/csharp_abc2/index/index.html
行ってらっしゃい
読破するまでは戻ってくるなよ
0172デフォルトの名無しさん
2009/10/20(火) 22:26:29ありがとう
0173デフォルトの名無しさん
2009/10/20(火) 22:30:52君が特命係長のファンだというならば、
次は自動プロパティでぐぐることをお勧めいたします。
0174デフォルトの名無しさん
2009/10/20(火) 23:07:04BackgroundWorkerはどうやってWinFormのControlや
WPFのUIElementに同期してるんだろ。
コンストラクタなどでフォームのthisを渡しているふうでもないし、
DelegateのTargetを使ってるふうでもない。
0175デフォルトの名無しさん
2009/10/20(火) 23:11:03イベントは全部非同期コールバック
0176デフォルトの名無しさん
2009/10/20(火) 23:15:11最後一つだけ質問させてくだはい
class plex{
private int clickcount=0;
public int ClickCount
{
set { clickcount = value; }
get { return clickcount; }
}
}
---
Comp c = new Comp();
if (c!=null)
{ c.ClickCount++; //0に1追加
MessageBox.Show(c.ClickCount.ToString()); } //毎回1が返される
何度setしてもカウントがgetするたびに0になってます
上手くsetされていないのかもしれないんですが、どこがおかしいか指摘もらえませんか?
0177デフォルトの名無しさん
2009/10/20(火) 23:17:390178デフォルトの名無しさん
2009/10/20(火) 23:17:450179デフォルトの名無しさん
2009/10/20(火) 23:20:15c.ClickCount=c.ClickCount+1;
こうしてみましたけど、これでも毎回1しか返してきません
0180デフォルトの名無しさん
2009/10/20(火) 23:23:040181デフォルトの名無しさん
2009/10/20(火) 23:23:14おそらくButton_Clickなんかの中でnewしてるんでしょ。
var c = new Comp(); // ←新しく作ったので、値0から
: なんか処理
var c = new Comp(); // ←また新しく作ったので、値0から
0182デフォルトの名無しさん
2009/10/20(火) 23:25:55staticなclassにpublicフィールドもta
せればいいと思うよ。
0183デフォルトの名無しさん
2009/10/20(火) 23:26:14見事、それが原因でした
そういうものなのね、少しそれも疑ったけれど
毎回clickcountに++されていってると思ってて
newごとにそうなるとは思わなかった。
ありがとうございます。
0184デフォルトの名無しさん
2009/10/20(火) 23:28:24説明が足りなんだ。DoWorkじゃなくて
ProgressChangedとRunWorkerCompletedのこと。
0185デフォルトの名無しさん
2009/10/20(火) 23:28:26嘘付くな
0186デフォルトの名無しさん
2009/10/20(火) 23:31:490187デフォルトの名無しさん
2009/10/20(火) 23:32:52コンポーネントなんだから自分の親が誰かくらいは知ってるんじゃないの
0188183
2009/10/20(火) 23:34:17>>176のソースで、
Comp c = new Comp();を使うと、clickcount=0になるんですよね?
この場合、値をリセットせずにプロパティを参照することはできませんか?
何度かそのフォームを表示させて、ボタンをクリックさせるたびに、
以前のクリックした回数は保持させておきたいのですがそんなことは出来ませんか?
0189デフォルトの名無しさん
2009/10/20(火) 23:34:32AsyncOperationつーもんがある
0190デフォルトの名無しさん
2009/10/20(火) 23:40:07毎回インスタンス生成してるんだから、カウントをリセットしているわけじゃなく、毎回新しいCompのプロパティを0→1にしている。
0191デフォルトの名無しさん
2009/10/20(火) 23:47:26WinFormsやWPFがグローバルなSynchronizationContextを提供してるみたい
Componentは特に関係なさそう
0192デフォルトの名無しさん
2009/10/20(火) 23:47:54あー、毎回1になる原理は分かりました。
しかし、毎回インスタンス生成しないと、参照出来ないのでは?
0193デフォルトの名無しさん
2009/10/20(火) 23:54:27ありがとう。AsyncOperationは少し調べてみます。
0194デフォルトの名無しさん
2009/10/20(火) 23:56:03レス全部読んでる?
0195デフォルトの名無しさん
2009/10/21(水) 00:00:30何か重要なレス見逃しました?
一応全部目を通してるんですが・・・
0196デフォルトの名無しさん
2009/10/21(水) 00:02:15>>180
Comp c = new Comp();
private void button1_Click(…
0197デフォルトの名無しさん
2009/10/21(水) 00:08:260198デフォルトの名無しさん
2009/10/21(水) 00:11:23そもそも読んだところで理解出来ないと思われ
0199デフォルトの名無しさん
2009/10/21(水) 00:11:59あ、じゃなくて、直下に移動させてその問題は解決したんですが
Form1からForm2出して、Form2のボタンをクリックすると、
>>176使ってclickcountにクリックした回数を++した後でForm2をClose
このあと、2回目以降にForm2を呼んだとき、
どうしても毎回Comp c = new Comp();通りますよね。
このときclickcountに格納された値も0になってしまうのを回避する方法は無いですか?
わかりづらくてすいません。
0200デフォルトの名無しさん
2009/10/21(水) 00:29:150201デフォルトの名無しさん
2009/10/21(水) 00:44:51http://pc12.2ch.net/test/read.cgi/tech/1255658236/
スレを汚すな。バカチンが。
0202デフォルトの名無しさん
2009/10/21(水) 01:05:20結構簡単ですね。簡単な業務用ツールいくつか作れました。
って感じがするw
0203デフォルトの名無しさん
2009/10/21(水) 01:16:18この方法あれば終われますので;
0204デフォルトの名無しさん
2009/10/21(水) 06:39:160205デフォルトの名無しさん
2009/10/21(水) 09:56:43ここまで引っ張るとは思ってなかったわ・・・
0206デフォルトの名無しさん
2009/10/21(水) 12:22:52画像や、リンクがフルパスではなく
../img/image.jpg
/help.htm
のように、なっていることが多いのですが
これをどうにか、フルパス指定にする方法はないでしょうか
0207デフォルトの名無しさん
2009/10/21(水) 12:27:010208デフォルトの名無しさん
2009/10/21(水) 12:27:11BASEでも指定すればいいんじゃないの。何に使いたいのかは知らんけど
0209デフォルトの名無しさん
2009/10/21(水) 12:48:36ありがとうございます
教えていただいたもので考えた結果
string url="http://google.com";
Uri base=new Uri(url);
HTMLをサーバーから取得し、htmlというstring変数に入れる
html内を検索し、../や/で始まるものを置換するという方法で一応できる・・・のでしょうか
こういう処理しか思い浮かばなかったのですが
最初から、フルパスで取得したりはできないですよね・・・・
この処理すごく煩雑になると思うのですが、もうちょっとスマートな方法はないでしょうか?orz
0210デフォルトの名無しさん
2009/10/21(水) 12:53:22ネットを見る際特定の広告などを表示しないなど、直接ではなく少し改変して表示するブラウザの作成です
0211デフォルトの名無しさん
2009/10/21(水) 13:12:30このタイプのコンストラクタを使う。
Uri (Uri baseUri, string relativeUri)
0212デフォルトの名無しさん
2009/10/21(水) 13:42:37それを調べてみたのですが
BaseUriの後にRelativeUriをくっつけてるだけですよね?
つまり、RelativeUri(/index.htmlなど)が分からなければいけないので
取得したソースから[/***.html]や[../***.jpg]などを検索、取得しRelativeUriにいれて一個ずつ置換しなければなりませんよね?
自分が勘違いしているだけかもしれませんが
そうなると、ソースの中から上記のものを取得しなければならない作業があるわけですが
それを簡単に行うことはできますでしょうか?
自分が考えついたのは
ソースないで「"../」や「"/」で始まる部分を検索し、そこを置換という方法だけだったのですが
すごく煩雑でしかも、/で始まらない場合には対応できないので
何か他にいい案がないものかな。と思いまして・・・
0213デフォルトの名無しさん
2009/10/21(水) 13:48:500214デフォルトの名無しさん
2009/10/21(水) 15:17:25言ってる意味が分からないな。
urlを食わせればそのページからのリンクをフルパスで
一覧してくれる便利な関数やライブラリはないかという話なら標準のBCLにはない。
だいたい、相対URLが ../ や /で始まってるとも限らないだろ?
0215デフォルトの名無しさん
2009/10/21(水) 15:23:35>Uri (Uri baseUri, string relativeUri)
base=http://www.xxxx.com/xxx/yyy/aaaa.html
として
relativeUri=../zzz/xxx.html
なら、ちゃんとこうなる。
http://www.xxxx.com/xxx/zzz/xxx.html
relativeUri=/bbb.html
なら、こうなる。
base=http://www.xxxx.com/bbb.html
0216デフォルトの名無しさん
2009/10/21(水) 17:54:17まるでフォーカスが当たっているように青にするにはどうすれば良いでしょうか?
0217デフォルトの名無しさん
2009/10/21(水) 18:05:59リストビューだけ変えるにはオーナードローしかないんじゃね
0218デフォルトの名無しさん
2009/10/21(水) 18:14:150219デフォルトの名無しさん
2009/10/22(木) 20:37:24クライアント複数(C#でWinアプリ)→サーバー(SqlServer2005Express)というアプリを作りたいです。
このアプリを配布する前提なのですが、どのように作成したらよいでしょうか。
「サービスベースのデータベース」で作成してサーバーでのデータベース運用にできるのでしょうか?
また、どのように配布するのでしょうか。
よろしくお願いいたします。
0220デフォルトの名無しさん
2009/10/22(木) 21:47:281)ASP.NETでつくる。
2)WebServiceでプレゼンテーション層を作り、ClickOnceでクライアントに配布。
便乗で質問してよろしいでしょうか?
XmlWebサービスでDataTableを取得し、コンボボックスのデータソースにしようとしています。
DataTableを取得するまではできたのですがDataSourceにつっこんでも欲しい値がでません。
コンボボックスには〜.DataViewみたいな型情報が出てしまいます。
XmlWebサービスで取得する値は、DBからSelect文で1列だけ取得したものです。
for eachで値が取れていることは確認し、Items.Add()で追加することもできました。
だけど、ComboBox.DataSourece = datatable;の形で値を表示したいです。
なぜ正しくでないのか、そして正しくでる方法を知っている方がいましたら教えてください。
よろしくお願いします。
0221デフォルトの名無しさん
2009/10/22(木) 21:49:590222デフォルトの名無しさん
2009/10/23(金) 08:32:58DisplayMember と ValueMember を指定
0223デフォルトの名無しさん
2009/10/23(金) 12:17:45thx。試してみるわ。
0224デフォルトの名無しさん
2009/10/23(金) 15:50:210225デフォルトの名無しさん
2009/10/23(金) 18:14:330226デフォルトの名無しさん
2009/10/23(金) 21:33:32本はC言語の方が充実しているみたいだが、C#にも強くなりたいと思っているので。
他にC、Java、JavaScriptの文法ならわかる。
0227デフォルトの名無しさん
2009/10/23(金) 21:35:18今からC++覚える意義は何もないのでC#でいいよ
0228デフォルトの名無しさん
2009/10/23(金) 21:36:100229デフォルトの名無しさん
2009/10/23(金) 22:02:000230デフォルトの名無しさん
2009/10/23(金) 22:12:56ふざけんな
0231デフォルトの名無しさん
2009/10/23(金) 22:17:110232デフォルトの名無しさん
2009/10/23(金) 23:10:52まあ Ruby も Haskell も別にふざけた言語じゃないと思うけど。
ちなみにC#でアルゴリズムの勉強するとしても
Cとほぼ同じレベルの文法しかつかわないと思うよ。
使い方じゃなくて実装の方の勉強をするんでしょ?
0233デフォルトの名無しさん
2009/10/23(金) 23:18:18すっこんでろ
0234デフォルトの名無しさん
2009/10/23(金) 23:19:46うん。
使い方なら、(言語は何であれ)そもそもライブラリが充実しているのでそちらを使えるようになればいいと思っている。
目的はそのための基礎づくり。
0235デフォルトの名無しさん
2009/10/23(金) 23:21:180236デフォルトの名無しさん
2009/10/23(金) 23:42:150237デフォルトの名無しさん
2009/10/24(土) 11:36:290238デフォルトの名無しさん
2009/10/24(土) 12:03:470239デフォルトの名無しさん
2009/10/24(土) 12:40:01別プロセスの何をフックしたいんだ?
0240238
2009/10/24(土) 13:08:390241デフォルトの名無しさん
2009/10/24(土) 13:14:380242238
2009/10/24(土) 13:28:53サブクラス化?って奴だと思うんですが、自身のウィンドウしかできないもので。
0243デフォルトの名無しさん
2009/10/24(土) 13:32:41おれは優しいので教えてあげる
API
0244デフォルトの名無しさん
2009/10/24(土) 17:59:420245デフォルトの名無しさん
2009/10/24(土) 20:09:21あれは C# じゃ無理。グローバルフックが必要だから。
0246デフォルトの名無しさん
2009/10/24(土) 22:23:070247デフォルトの名無しさん
2009/10/24(土) 23:08:430248デフォルトの名無しさん
2009/10/24(土) 23:14:46ggrks
http://www.google.co.jp/search?hl=ja&source=hp&q=C%23+%E3%82%B0%E3%83%AD%E3%83%BC%E3%83%90%E3%83%AB%E3%83%95%E3%83%83%E3%82%AF&lr=&aq=f&oq=
0249デフォルトの名無しさん
2009/10/24(土) 23:19:500250デフォルトの名無しさん
2009/10/24(土) 23:22:030251243
2009/10/24(土) 23:25:500252デフォルトの名無しさん
2009/10/24(土) 23:27:01■ このスレッドは過去ログ倉庫に格納されています