ふらっとC#,C♯,C#(初心者用) Part55
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2010/02/04(木) 22:02:43「どんなにくだらないC#プログラミングに関する発言でも誰かが優しくレスをしてくれるスレッド」です。
ほかのスレッドでは恐ろしくて書き込めないような低レベル、もしくは質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からない場合など、勇気をもって書き込んでください。
内容に応じて、他スレ・他板へ行くことを勧められる、あるいは誘導される場合がありますがご了承下さい。
なお、テンプレ2行目が読めない回答者は邪魔なので後述のC#相談室に移動して下さい。
>>980を踏んだ人は新スレを建てて下さい。
>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。
ふらっとC#,C♯,C#(初心者用) Part54
http://pc12.2ch.net/test/read.cgi/tech/1264236247/
関連スレ
C#, C♯, C#相談室 Part55(実質56)
http://pc12.2ch.net/test/read.cgi/tech/1260111240/
WPF(XAML, XBAP, .Net3.5)GUIプログラミング Part5
http://pc12.2ch.net/test/read.cgi/tech/1261879110/
0002デフォルトの名無しさん
2010/02/04(木) 22:08:52A4 - ISO 216 用紙サイズ(210mm×297mm)
これと
[PaperSize A4 Kind=A4 Height=1169 Width=827]
これの関係は
1169/100*2.54=29.6926cm
ということなので
{X=13.33333,Y=11.66667,Width=800,Height=1137.667}
これのX=13.33333も
13.33333/100*2.54=0.338666582cm
まあ5mmじゃなく3mm程度ずれてる計算?
プリンターが古かったりすると多少ずれるかもしれないし
0003デフォルトの名無しさん
2010/02/04(木) 22:26:18ありがとうございました。
久しぶりにスレ立てしたらこのざま・・・
>>2
ありがとうございます。
全ての謎がとけました。^^
0004デフォルトの名無しさん
2010/02/05(金) 00:10:40ってどういうときに設定するの?msdn読んでも分かりません。
0005デフォルトの名無しさん
2010/02/05(金) 00:17:21のでまあ気にする必要なし
基底のControlが持ってるのを引き継いでるだけ
0006デフォルトの名無しさん
2010/02/05(金) 00:34:52Directory(Info).GetDirectories だとエントリが多いと時間がかかるので、なるべくO(1)に近いものがいいんですが
0007デフォルトの名無しさん
2010/02/05(金) 00:46:400008デフォルトの名無しさん
2010/02/05(金) 00:47:40Win32APIのFindFirstFile/FindNextFileとか
0009デフォルトの名無しさん
2010/02/05(金) 00:49:540010デフォルトの名無しさん
2010/02/05(金) 00:56:26レスありがとうございます
FindFirstFileEx も少し試してみたんですが、ディレクトリのみ取得するオプションは未実装でした。
結局ディレクトリとファイルを同時に列挙することになるので、ファイルのみが大量にある
ディレクトリだと逆に遅くなりそうな気もしますが、もう少し調べてみます。
0011デフォルトの名無しさん
2010/02/05(金) 01:00:24ただ調べるだけなの?
0012デフォルトの名無しさん
2010/02/05(金) 01:02:28GetFilesもGetDirectoriesも内部じゃFindFirstFile使ってるんだから
まあ実装の上手い下手の差は出るかもだが
0013デフォルトの名無しさん
2010/02/05(金) 01:03:440014デフォルトの名無しさん
2010/02/05(金) 01:04:520015デフォルトの名無しさん
2010/02/05(金) 01:07:250016デフォルトの名無しさん
2010/02/05(金) 01:11:43チューリング賞取れるよ
0017デフォルトの名無しさん
2010/02/05(金) 01:14:390018デフォルトの名無しさん
2010/02/05(金) 01:18:56ディレクトリとファイルはファイルシステム上のオブジェクトとしては区別されてない
ディレクトリは”ディレクトリ属性を持っていて下層ディレクトリへのリンクをデータに持ってるファイル”だから
どちらかだけを列挙っていうのはできない
0019デフォルトの名無しさん
2010/02/05(金) 01:48:00ディレクトリがファイル/ディレクトリを含むかどうかのフラグを持つファイルシステムを作ればO(1)
0020デフォルトの名無しさん
2010/02/05(金) 10:17:09いつも書いていませんが、なんとかなっていますは。
string program = @"C:\Program Files\Internet Explorer\IEXPLORE.EXE";
0021デフォルトの名無しさん
2010/02/05(金) 10:19:430022デフォルトの名無しさん
2010/02/05(金) 10:25:35お前Cもやったことないのか?
初心者は帰れ
0023デフォルトの名無しさん
2010/02/05(金) 10:32:51文字列をあらわす ""の中の文字の扱いが若干変わるのが@の有無なんですよね
verbatim文字列(ページの最後の方)
http://www.atmarkit.co.jp/fdotnet/csharptips/010string/010string.html
0024デフォルトの名無しさん
2010/02/05(金) 10:33:31002520
2010/02/05(金) 10:37:20確かに\\を2つ書いてませんね。
ちなみに初心者ではありませんよ。
Windows2.0の時代からSDKつかって苦労してプログラム作っていますからね。
いや、でもC#は1月目の初心者です。
生意気言ってゴメンナサイ( ・ω・)y─┛〜〜
0026デフォルトの名無しさん
2010/02/05(金) 10:37:43古い記事だから仕方ないか
002723
2010/02/05(金) 10:38:55>いや、でもC#は1月目の初心者です。
>生意気言ってゴメンナサイ( ・ω・)y─┛〜〜
一言多いw
顔見えないので若い初心者です〜ぽく振舞っておけばいいのに
0028デフォルトの名無しさん
2010/02/05(金) 10:40:360029デフォルトの名無しさん
2010/02/05(金) 10:42:22"をそのまま使えるように@"〜"@とかクォーテーションを変えてほしかった
0031デフォルトの名無しさん
2010/02/05(金) 11:10:05ピクチャーボックスに連動して表示されるように
private void textbox1_TextChanged(object sender, EventArgs e)
{
//PictureBox1のGraphicsオブジェクトを取得
Graphics g = picturebox1.CreateGraphics();
//フォントオブジェクトの作成
Font fnt = new Font("MS UI Gothic", textbox1.Font.Size);
//文字列を位置(0,0)、青色で表示
System.Windows.Forms.TextRenderer.DrawText(g, textbox1.Text.Trim(), fnt, new Point(0, 0), textbox1.ForeColor);
//リソースを開放する
fnt.Dispose();
g.Dispose();
}
とサイトを参考に作ってみたのですが、このままではテキストボックス
の文字を消した時が上手く反映させることができませんでした。
書き込む直前に.imageをnullでクリアすることで、その都度テキストを
新規に書き込めるかと考えたのですが、この方法だとピクチャーボッ
クスが最後空白になってしまいました。
他にも何か方法はあるのでしょうか?
0032デフォルトの名無しさん
2010/02/05(金) 11:23:22そのロジック呼び出すとか?
もっと負荷の少なそうなのありそうだけど思いつかん
0033デフォルトの名無しさん
2010/02/05(金) 11:27:49そうでなければ塗りつぶせばいいはず。
g.Clear(pictureBox1.BackColor);
0034デフォルトの名無しさん
2010/02/05(金) 11:36:11TextChangedではInvalidateするだけにする
0035デフォルトの名無しさん
2010/02/05(金) 11:44:31レスありがとうございました。
>g.Clear(pictureBox1.BackColor);
こちらの方法で上手く動作させることができました。
>picturebox1は背景にイメージを使ってるの?
ピクチャーボックスに文字を入れるにはどうするかを調べて、サイト
を参考にしてたため、背景をどうするか等を考えていませんでした。
0036デフォルトの名無しさん
2010/02/05(金) 11:44:53{
//PictureBox1のGraphicsオブジェクトを取得
Graphics g = picturebox1.CreateGraphics();
//バックカラーで塗りつぶすImageがあった場合は考慮してない
SolidBrush b = new SolidBrush(pictureBox1.BackColor);
g.FillRectangle(b, pictureBox1.ClientRectangle);
//フォントオブジェクトの作成
Font fnt = new Font("MS UI Gothic", textbox1.Font.Size);
//文字列を位置(0,0)、青色で表示
System.Windows.Forms.TextRenderer.DrawText(g, textbox1.Text.Trim(), fnt, new Point(0, 0), textbox1.ForeColor);
//リソースを開放する
fnt.Dispose();
g.Dispose();
}
0037デフォルトの名無しさん
2010/02/05(金) 11:45:070038デフォルトの名無しさん
2010/02/05(金) 11:50:180039デフォルトの名無しさん
2010/02/05(金) 11:52:12おかしいなあぼーんされない
0040デフォルトの名無しさん
2010/02/05(金) 11:53:38VC#2008EEだとtextBox1なんだが
0041デフォルトの名無しさん
2010/02/05(金) 12:00:04もしかしてAeroだと消えないのかな?
0042デフォルトの名無しさん
2010/02/05(金) 12:20:13Paintイベントに描画処理書いて、textBox1_TextChangedで再描画させればおk
0043デフォルトの名無しさん
2010/02/05(金) 12:25:330044デフォルトの名無しさん
2010/02/05(金) 14:12:23メニューをクリックした時にToolStripMenuItemのインスタンスを覚えさせておけば再現できることがわかりましたが、どうやって保存したらよいのかわかりません。
0045デフォルトの名無しさん
2010/02/05(金) 14:19:26XMLでもいいし昔ながらのiniファイルに書き出した文字列でもいいし
そういう形で保存しておいて、起動の際にそれを読み直してコントロールの設定を行う
0046デフォルトの名無しさん
2010/02/05(金) 14:26:26「XML 直列化 」でググれ
インスタンスの値をまるごとXMLで読み書きできるのがある。
0047デフォルトの名無しさん
2010/02/05(金) 14:30:12シリアライズそのものは簡単なんだけど既存のコントロールってこれにかけられないよね?
http://dobon.net/vb/dotnet/file/xmlserializer.html
0048デフォルトの名無しさん
2010/02/05(金) 14:35:41できなければ必要なプロパティだけをクラス化して、
それを読み書きすればいいと思う。
0049デフォルトの名無しさん
2010/02/05(金) 15:32:320050デフォルトの名無しさん
2010/02/05(金) 15:43:530051デフォルトの名無しさん
2010/02/05(金) 15:47:06法はあるでしょうか?
.backcolor=Color.Transparentとすればピクチャーボックス等は透過
にできるのですが、ControlStyles.SupportsTransparentBackColorス
タイルを適用しなくてはならないとありました。
テキストボックスではTransparentをサポートしていないとエラーが出
たので適用していないとわかったのですが、適用する方法がわからず
にいます。
0052デフォルトの名無しさん
2010/02/05(金) 15:47:510053デフォルトの名無しさん
2010/02/05(金) 15:50:130054デフォルトの名無しさん
2010/02/05(金) 15:52:050055デフォルトの名無しさん
2010/02/05(金) 15:55:200056デフォルトの名無しさん
2010/02/05(金) 16:15:37.SetStyle(ControlStyles.SupportsTransparentBackColor, true);
となっていないので、そのエラーが出たのかと思ってしまいました。
もともとダメという事だったんですね。
>>33さんに教えていただいた方法でテキストの文字列をピクチャーに
きれいに反映させる方法ができたのですが、それを>>51の方法で透過
にしたんです。
しかし子のピクチャーボックスを動かすと黒く塗りつぶされてしまう
という現象が起きました。
g.Clear(pictureBox1.BackColor);
の部分にColor.Transparentを入れたかったのですが、.Clearは色しか
受け付けてくれなくて悩んでいたんです。
そこでピクチャーではなくテキストを使えば解決できるかと思ったの
ですが
0057デフォルトの名無しさん
2010/02/05(金) 16:31:10ここの方法でバックカラーにアルファ付きを使えたんだが(たぶん大丈夫)
でもそのさらに後ろに何か居てそいつが描画してるのでうまくいかなかった
0058デフォルトの名無しさん
2010/02/05(金) 16:45:27その画像はImageプロパティに設定させているの?
BackGroundImageプロパティに設定している場合
BackGroundImageLayoutは何に設定しているの?
0059デフォルトの名無しさん
2010/02/05(金) 16:48:31その画像はImageプロパティに設定させているの?
BackGroundImageプロパティに設定している場合
BackGroundImageLayoutは何に設定しているの?
0060デフォルトの名無しさん
2010/02/05(金) 16:57:08ありがとうございます。読んでみます。
>>58
ArrayList files = new ArrayList();
と変数を宣言しておいて、ここに画像ファイルのパスが入るように
なっています。
これを
親ピクチャー.Image = Image.FromFile(files[0].ToString());
のようにして親に移しています。
0061デフォルトの名無しさん
2010/02/05(金) 17:04:25やだやだやだ〜
0062デフォルトの名無しさん
2010/02/05(金) 17:18:250063デフォルトの名無しさん
2010/02/05(金) 17:23:45xmltext
<result>
<words>
<word>クワガタ</word>
<word>オオクワガタ</word>
<word>メダロット</word>
<word>ミヤマクワガタ</word>
<word>ヒラタクワガタ</word>
<word>ノコギリクワガタ</word>
<word>パラワン島</word>
<word>ルイスツノヒョウタンクワガタ</word>
</words>
</result>
で
0064デフォルトの名無しさん
2010/02/05(金) 17:25:10<?xml version="1.0" encoding="UTF-8" ?>
XDocument xdoc = XDocument.Parse(xmltext);
var query = from result in xdoc.Root.Elements()
select result.Element("word").Value;
foreach (var q in query) {
lists.Add(q);
}
とすると、
クワガタ
オオクワガタ
メダロット
ミヤマクワガタ
ヒラタクワガタ
ノコギリクワガタ
パラワン島
ルイスツノヒョウタンクワガタ
をlistsに入れられると思ったのですが、クワガタしかはいりません。
どこがまずいでしょう?
ご指摘お願いします。
0065デフォルトの名無しさん
2010/02/05(金) 17:39:08> select result.Element("word").Value;
xdoc.Rootがresult要素でそのElementsはwords要素
words要素を列挙してその中のword要素を取り出すんだからクワガタだけだろ
word要素を列挙してないんだから
0066デフォルトの名無しさん
2010/02/05(金) 17:39:54lists.add(q.value);
}
0067デフォルトの名無しさん
2010/02/05(金) 17:41:580068デフォルトの名無しさん
2010/02/05(金) 17:51:12書き込むときってどうやるの?
0069デフォルトの名無しさん
2010/02/05(金) 17:55:11てか、スレチだからここで聞くな
0070デフォルトの名無しさん
2010/02/05(金) 17:55:190071デフォルトの名無しさん
2010/02/05(金) 18:21:50画像を親ピクチャーのImageではなくBackGroundImageに設定する。親ピクチャーボックスをparentPBとすると
別解その2
Point mPos = Point.Empty;
Rectangle vtb = new Rectangle(0, 0, 100, 20); // 仮想テキストボックス
private void parentPB_MouseDown(object sender, MouseEventArgs e)
{
if (!vtb.Contains(e.Location)) return;
mPos = e.Location;
mPos.Offset(-vtb.Location.X, -vtb.Location.Y);
Point p = this.PointToScreen(parentPB.Location);
p.Offset(e.Location.X - vtb.Location.X, e.Location.Y - vtb.Location.Y);
Cursor.Clip = new Rectangle(p, new Size(parentPB.Width - vtb.Width, parentPB.Height - vtb.Height));
}
private void parentPB_MouseMove(object sender, MouseEventArgs e)
{
if (mPos == Point.Empty) return;
vtb.X = e.X - mPos.X;
vtb.Y = e.Y - mPos.Y;
parentPB.Invalidate();
}
private void parentPB_MouseUp(object sender, MouseEventArgs e)
{
Cursor.Clip = Rectangle.Empty;
mPos = Point.Empty;
}
private void parentPB_Paint(object sender, PaintEventArgs e)
{
e.Graphics.DrawRectangle(Pens.Yellow, Rectangle.Round(vtb));
e.Graphics.DrawString(textBox1.Text, textBox1.Font, new SolidBrush(textBox1.ForeColor), vtb.Location);
}
0072デフォルトの名無しさん
2010/02/05(金) 18:23:07中級スレあったっけ?
0073デフォルトの名無しさん
2010/02/05(金) 18:24:22http://cc3.org/p2Writer/
こういうものがあってだな
Windows + .Net Framework 2.0
ということらしいんだわ
ソースの配布はされてないけどな・・・・そういうことや
007471
2010/02/05(金) 18:27:05e.Graphics.DrawRectangle(Pens.Yellow, Rectangle.Round(vtb));
↓
e.Graphics.DrawRectangle(Pens.Yellow, vtb);
0075デフォルトの名無しさん
2010/02/05(金) 19:14:51Imageを配置してサムネイル画像を表示しました。
その画像をダブルクリック(あるいはクリック)したら、実画像を開きたいと思います。
Process.Start("Paint", filename);
ダブルクリックのイベントハンドラって、どう書けばよいですか?
Imageのプロパティを見ても、MouseDown,Enter,Leave,Left(Right)ButtonDown,LeftButtonUp,Move,Up,Wheelがあるだけで、クリックのイベントが見当たりません。
ご教示ください。
0076デフォルトの名無しさん
2010/02/05(金) 19:18:130077デフォルトの名無しさん
2010/02/05(金) 19:23:43早速ありがとうございます。
列挙するにはどうしたらよいですか?
foreach (var q in query) {
lists.Add(q);
}
で列挙できたと思っていたのです。
>>67
xdoc.Root.Elements()には、デバッグモードで見ると、
xmltextがそのまま入ってるので、それだと思ってました。
>>66
早速入れてみましたが、エラーになってしまいました。
foreach (var q in xdoc.selectNodes("/result/words/word")) {
'System.Xml.Linq.XDocument' に 'selectNodes' の定義が含まれておらず、型 'System.Xml.Linq.XDocument' の最初の引数を受け付ける拡張メソッドが見つかりませんでした。using ディレクティブまたはアセンブリ参照が不足しています。
0078デフォルトの名無しさん
2010/02/05(金) 19:24:49自由に変形させることはできませんか?
0079デフォルトの名無しさん
2010/02/05(金) 19:26:00こちらへ
WPF(XAML, XBAP, .Net3.5)GUIプログラミング Part5
http://pc12.2ch.net/test/read.cgi/tech/1261879110/
0080デフォルトの名無しさん
2010/02/05(金) 19:29:45> 列挙するにはどうしたらよいですか?
from a in b
が
foreach (var a in b)
と同じ意味
だから
from result in xdoc.Root.Elements()
は
foreach (var result in xdoc.Root.Elements())
と同じで、さて何回ループ回る?
0081デフォルトの名無しさん
2010/02/05(金) 19:42:120082デフォルトの名無しさん
2010/02/05(金) 20:02:13<ContentControl MouseDoubleClick="ContentControl_MouseDoubleClick">
<Image Source="mikumiku.jpg"/>
</ContentControl>
0083デフォルトの名無しさん
2010/02/05(金) 20:36:15xdoc.Root.Elements()には、デバッグモードで見ると、
xmltextがそのまま入ってます。
ということは1回ですか?
これをタグ別にわけるには、どのようにしたら?
0084デフォルトの名無しさん
2010/02/05(金) 20:41:52>>79
WPFの掲示板は初心者の質問を受けつけてくれないのです。
それでこちらで質問しました。
>>82
xamlのimageに入れて試してみました。
'ContentControl_MouseDoubleClick' の定義が含まれていません、
というエラーとなったのですが、
なにか前もってすることがありますか?
よろしくお願いします。
0085デフォルトの名無しさん
2010/02/05(金) 20:48:42文字通りイベント用の関数を作ってないんだろ。
その部分は消して、プロパティウインドウからイベントを選びなおす。
0086デフォルトの名無しさん
2010/02/05(金) 20:50:27まずLINQじゃなくてforeachで普通に表現してみ
0087デフォルトの名無しさん
2010/02/05(金) 21:03:40foreachでxmlをどうわけたら?
string[] lines = xmltext.Replace("<word>","").Replace("</word>","").Split('\n');
とかですか?
それならできます。
foreach (string line in lines) {
lists.Add(line);
}
0088デフォルトの名無しさん
2010/02/05(金) 21:08:26foreach (var element in xdoc.Root.Elements()) {
// この中のコードを書いてみろってこと
}
0089デフォルトの名無しさん
2010/02/05(金) 22:14:30XML ファイルの該当箇所を 16 進数表記で出力するコトって出来ますか?
0090デフォルトの名無しさん
2010/02/05(金) 22:30:140091デフォルトの名無しさん
2010/02/05(金) 22:48:01xdoc.Root.Elementsをわける方法がわからないですが、
次のとおりで、項目ごとには分けられます。
string[] lines = element.Replace("<word>","").Replace("</word","").Replace(" ","").Split('>');
foreach (string line in lines) {
lists.Add(line);
}
0092デフォルトの名無しさん
2010/02/05(金) 22:49:500093デフォルトの名無しさん
2010/02/05(金) 22:59:09横着しないでやれ
0094デフォルトの名無しさん
2010/02/05(金) 23:01:020095デフォルトの名無しさん
2010/02/05(金) 23:08:250096デフォルトの名無しさん
2010/02/05(金) 23:09:070097デフォルトの名無しさん
2010/02/05(金) 23:11:010098デフォルトの名無しさん
2010/02/05(金) 23:12:45ありがとうございます。
まず、xamlでContentControl MouseDoubleClickをコメントアウトしました。
Imageのプロパティを見ましたが、ContentControlの項目は見つかりません。
なんのイベントを選べばよいですか?
0099デフォルトの名無しさん
2010/02/05(金) 23:17:170100デフォルトの名無しさん
2010/02/05(金) 23:20:010101デフォルトの名無しさん
2010/02/05(金) 23:22:55ねぇよ
嘘つきばっかだな
0102デフォルトの名無しさん
2010/02/05(金) 23:28:110103デフォルトの名無しさん
2010/02/05(金) 23:31:360104デフォルトの名無しさん
2010/02/05(金) 23:40:05そっか、残念。ありがとうございました。
0105デフォルトの名無しさん
2010/02/05(金) 23:45:070106デフォルトの名無しさん
2010/02/05(金) 23:51:080107デフォルトの名無しさん
2010/02/06(土) 00:35:3675です。
ありました。できました。
ありがとうございます。
0108デフォルトの名無しさん
2010/02/06(土) 00:38:43横着せずにいうとおり91のとおりやってると思いますけど。
で、91でLINQなしでできてしまったです。
それがちがうのなら、方法を教えてください。
で、あらためてLINQだとどう書くんでしょう?
0109デフォルトの名無しさん
2010/02/06(土) 00:42:18正しく理解するってのが大事なんだから。
教えません。
0110デフォルトの名無しさん
2010/02/06(土) 00:43:06そうか〜できてしまったか^^
良かったね
一生そうやってろ
0111デフォルトの名無しさん
2010/02/06(土) 00:43:09自分で努力してください
0112デフォルトの名無しさん
2010/02/06(土) 00:45:39正しく理解するヒントくらいください。
>>110
そうやってたくないから聞いてるんですけど。
0113デフォルトの名無しさん
2010/02/06(土) 00:47:02もう死ねよ
0114デフォルトの名無しさん
2010/02/06(土) 00:48:120115デフォルトの名無しさん
2010/02/06(土) 00:50:35だから、88の回答は91で、
それでできちゃったのではLINQを使う点では間違えているわけだから、
どう間違えているのかって訊いてるんですけど。
0116デフォルトの名無しさん
2010/02/06(土) 00:52:570117デフォルトの名無しさん
2010/02/06(土) 00:54:3363
0118デフォルトの名無しさん
2010/02/06(土) 00:55:42foreach (string line in lines) {
じゃなくて
foreach (var element in xdoc.Root.Elements()) {
で書き始めろって言ってんだよ
会話が成り立たない(´・ω・`)
0119デフォルトの名無しさん
2010/02/06(土) 00:57:07お前も何マジになってんだ。
こういうのはニヤニヤしてればいいんだよ。
0120デフォルトの名無しさん
2010/02/06(土) 00:58:07名前欄に64って書いとけ
0121デフォルトの名無しさん
2010/02/06(土) 01:00:18そしてそっこうでDispose()が呼び出される。
0123デフォルトの名無しさん
2010/02/06(土) 01:03:12よくわからなければtextbox貼り付けて片っ端からToString()すればいいのに
とか思うんだけどな
012464
2010/02/06(土) 01:03:18なるほど。そういうことでしたか。
XDocument xdoc = XDocument.Parse(html);
foreach (var element in xdoc.Root.Elements()) {
string[] lines = element.Replace("<word>","").Replace("</word","").Replace(" ","").Split('>');
foreach (string line in lines) lists.Add(line);
}
と書きました。
ただし、これだと、
xdoc.Root.Elements()とhtmlは、同じものが入っているのと、そのElementをわける方法がわからないので、
string[] lines = html.Replace("<word>","").Replace("</word","").Replace(" ","").Split('>');
foreach (string line in lines) lists.Add(line);
}
と買い手目的は達成してしまいました。
それで、LINQの方法を聞いているわけです。
つまり、xdoc.Root.Elements()をわける方法がわからないのです。
0125デフォルトの名無しさん
2010/02/06(土) 01:04:27var words = xmltext.Split(new string[] { "\r\n" }, StringSplitOptions.RemoveEmptyEntries).
Where(n => n.Contains("<word>")).
Select(n => n.Replace("<word>", String.Empty).Replace("</word>", String.Empty));
こうね。
これでお開き。寝ろ。
0126デフォルトの名無しさん
2010/02/06(土) 01:05:52かんがえろ
要素1個しかないだろ?
だから1回しか実行されないんだよ?
0129デフォルトの名無しさん
2010/02/06(土) 01:07:56教えませんよフフン
0130デフォルトの名無しさん
2010/02/06(土) 01:08:06デバッガでプログラムを止めて考えろ。
DOM系のプログラミングはこれに限る。
0131デフォルトの名無しさん
2010/02/06(土) 01:08:310132デフォルトの名無しさん
2010/02/06(土) 01:10:53まあHTMLの方はとりあえずHTML化すれば外部ツールが
作ったHTMLの構造とかを出してくれるのでわかりやすかったけどな
0133デフォルトの名無しさん
2010/02/06(土) 01:11:01XDocument.RootもXElementだからね。
0134デフォルトの名無しさん
2010/02/06(土) 01:12:35あなたに言ったんじゃないわよ! もう寝なさいよ!
0135デフォルトの名無しさん
2010/02/06(土) 01:13:070136デフォルトの名無しさん
2010/02/06(土) 01:13:26ttp://msdn.microsoft.com/ja-jp/library/bb348975.aspx
の例を見て考えよう
0137デフォルトの名無しさん
2010/02/06(土) 01:14:140138デフォルトの名無しさん
2010/02/06(土) 01:23:430139デフォルトの名無しさん
2010/02/06(土) 01:27:48<result>
<words><word>クワガタ</word></words>
<words><word>オオクワガタ</word></words>
<words><word>メダロット</word></words>
<words><word>ミヤマクワガタ</word></words>
<words><word>ヒラタクワガタ</word></words>
<words><word>ノコギリクワガタ</word></words>
<words><word>パラワン島</word></words>
<words><word>ルイスツノヒョウタンクワガタ</word></words>
</result>
にして、
var query = XElement.Load("XMLFile1.xml").Descendants("words");
foreach (var item in query)
Console.WriteLine(item.Element("word").Value);
で解決
0140デフォルトの名無しさん
2010/02/06(土) 01:32:12ヒントに見せかけた釣りですね
014164
2010/02/06(土) 02:44:50なんか昭和のスパルタ教師の香りがするんだけど、
考えれば考えつくとかいったって、考えてとけてたら、こんなとこで聞いてないって。
しかも、自分の方法に迷いがないと思ってるばかときた。
考えろっていって、答えを教えないばかだよ。
1をよめっつーの。
0142デフォルトの名無しさん
2010/02/06(土) 02:52:380143デフォルトの名無しさん
2010/02/06(土) 02:53:550144デフォルトの名無しさん
2010/02/06(土) 02:57:42HSPやってな。
0145デフォルトの名無しさん
2010/02/06(土) 03:03:05馬鹿に教えを請うってプライド大安売りですね
0146デフォルトの名無しさん
2010/02/06(土) 03:08:40教えてもらってから居丈高になった方がよくないか?
利根川さんもそう言っていたよ
0147デフォルトの名無しさん
2010/02/06(土) 03:15:470148デフォルトの名無しさん
2010/02/06(土) 03:24:060149デフォルトの名無しさん
2010/02/06(土) 03:26:18あんまかわらんでしょ
結局他所が用意した機能だから
0150デフォルトの名無しさん
2010/02/06(土) 03:47:58ふーん。(´・ω・`)
0151デフォルトの名無しさん
2010/02/06(土) 04:17:34それをforeachで書けって言われて>>124になるのかさっぱり分からん
0152デフォルトの名無しさん
2010/02/06(土) 07:01:570153デフォルトの名無しさん
2010/02/06(土) 10:15:59レスありがとうございました。テキストボックスをコードで作ってしまう
んですね。昨日の書き込みの後も、親ピクチャーの子をテキストボックス
にしたりピクチャーに戻したりを繰り返していました。
今はピクチャーに戻して
private void textbox1_TextChanged(object sender, EventArgs e)
{
//PictureBox1のGraphicsオブジェクトを取得
Graphics g = picturebox1.CreateGraphics();
//g.Clear(pictureBox1.BackColor);
g.Clear(Color.white);
//フォントオブジェクトの作成
Font fnt = new Font("MS UI Gothic", textbox1.Font.Size);
//文字列を位置(0,0)、青色で表示
System.Windows.Forms.TextRenderer.DrawText(g, textbox1.Text.Trim(), fnt, new Point(0, 0), textbox1.ForeColor);
//リソースを開放する
fnt.Dispose();
g.Dispose();
}
として、g.Clear(Color.white);でごまかす形になりました。
いろいろ教えていただいたり、コードまで見せてもらえてとても助かって
います。
0154デフォルトの名無しさん
2010/02/06(土) 12:10:030155デフォルトの名無しさん
2010/02/06(土) 14:23:12root["words"].ChildNodes
0156デフォルトの名無しさん
2010/02/06(土) 14:30:400157デフォルトの名無しさん
2010/02/06(土) 14:53:010158デフォルトの名無しさん
2010/02/06(土) 15:17:340159デフォルトの名無しさん
2010/02/06(土) 15:29:080160デフォルトの名無しさん
2010/02/06(土) 15:35:58コード書いたあと煽ってた側なんだが…
お前らコンパイルできない偽ヒントばかりだすなよw
0161デフォルトの名無しさん
2010/02/06(土) 15:49:460162デフォルトの名無しさん
2010/02/06(土) 16:09:57var query = from result in xdoc.Root.Element("words").Elements("word")
select result.Value;
彼流に合わせたんだけどresult.Valueは気に入らない
0163デフォルトの名無しさん
2010/02/06(土) 16:57:360164デフォルトの名無しさん
2010/02/06(土) 17:13:56<h1><b>◆■◆■◆■◆■◆■◆■◆■◆■◆■◆■◆■◆■◆■◆■◆■◆■◆■◆■◆■◆</b></h1></A>
0165デフォルトの名無しさん
2010/02/06(土) 21:13:25他のコントロールだとカーソルの形だけは変わるけど、ファイル名が受け取れません。
DataGridViewでやりたいんですが、これは仕様なんでしょうか?
0166デフォルトの名無しさん
2010/02/06(土) 21:23:19AllowDropとDragEnter/DragOverとDragDropはどうやってんだよ
0167デフォルトの名無しさん
2010/02/06(土) 21:38:390168デフォルトの名無しさん
2010/02/06(土) 21:52:32カーソルは十字に変更されるよ。
だからDragEnterは正常に機能している。
メッセージボックスを書いておくとちゃんと表示される。
そのイベントハンドラ内で、e.Effect = DragDropEffects.Copyをしている。
DragDropのイベントハンドラの方にはイベントさえ全然来ない。
AllowDrop=trueにしているけどね。
0169デフォルトの名無しさん
2010/02/06(土) 21:56:170170デフォルトの名無しさん
2010/02/06(土) 22:19:05テストコード書いて試したけど出来たよ?
0171デフォルトの名無しさん
2010/02/06(土) 22:23:100172デフォルトの名無しさん
2010/02/06(土) 22:25:48プロパティWindowでDragDropイベントがちゃんとdataGridView1_DragDrop(例)に登録されてるか確認したか?
0173デフォルトの名無しさん
2010/02/06(土) 22:26:44は?
0174デフォルトの名無しさん
2010/02/06(土) 22:27:47お前は誰だ?
質問しといて自己解決の内容を書かないやつが一番たちが悪い
自己解決の内容かけ
0175デフォルトの名無しさん
2010/02/06(土) 22:31:180176デフォルトの名無しさん
2010/02/06(土) 22:31:420177165
2010/02/06(土) 22:35:27>>172
もちろんイベントハンドラーは割り当てているよ。
デザイナーが吐いたコードを実際にみてaddされているし。
そもそもイベントが来ないのがおかしいな。
0178デフォルトの名無しさん
2010/02/06(土) 22:36:190179デフォルトの名無しさん
2010/02/06(土) 22:37:05しね
>>177
家では全く問題ない
もう1度まっさらな状態からTESTコード書いてみたら?
0180デフォルトの名無しさん
2010/02/06(土) 22:40:400181デフォルトの名無しさん
2010/02/06(土) 22:44:000182デフォルトの名無しさん
2010/02/06(土) 22:44:480183165
2010/02/06(土) 22:45:44何か他のプロパティをセットしていると食い合わせがマズイのかな。
もう一度やってみますわ
0184デフォルトの名無しさん
2010/02/06(土) 22:48:03肝心のスクロールさせる命令を知りませんでした。
例えばホイールを半分回したら、画面を500インチスクロールさせるにはどう記述したらいいのでしょうか。
0185デフォルトの名無しさん
2010/02/06(土) 22:52:320186デフォルトの名無しさん
2010/02/06(土) 22:53:49とりあえず画面のスケール取ってきてdot/inchを出して500インチ辺りのドットを出します
あとはAutoScrollPosition使ってください
0187デフォルトの名無しさん
2010/02/06(土) 22:56:13500*96だから…5万くらいか
1200のモニタ50枚
0188デフォルトの名無しさん
2010/02/06(土) 23:35:28ありがとうございます。
ホイールでスクロールさせたいのがPrintPreviewコントロールなので、AutoScrollPositionプロパティがないんです。
その場合どのような方法があるでしょうか。
0189デフォルトの名無しさん
2010/02/06(土) 23:41:300190デフォルトの名無しさん
2010/02/07(日) 00:26:31Win32API使え
あと、ここはAPIスレではないので(ry
0191デフォルトの名無しさん
2010/02/07(日) 00:33:56ノートブックに
�@SQL Server 2008 Enteprise edition
�ASQL Server 2008 SP1
�BVS2008
�CVS2008SP1
を上記の順番で入れようとしたら�@のインストール時に
0x84B20001
というエラーが出てきて進めない。ググっても英語サイトばかり…。
これら4つをインストールする順番って何かあるものなの?
0192デフォルトの名無しさん
2010/02/07(日) 00:39:530193デフォルトの名無しさん
2010/02/07(日) 00:41:00Enterpriseがくそノートに入るかどうか、機器要件みろ。
CPUは要チェックな。
0194デフォルトの名無しさん
2010/02/07(日) 00:44:020195デフォルトの名無しさん
2010/02/07(日) 00:48:03確かにそのエラーコードでググると、英語か中国語のページしか検索されないな。
何で日本語ページがないのか…不気味だ。
0196デフォルトの名無しさん
2010/02/07(日) 00:49:23SQLをリストアしたらいけるみたいに英語で書いてあるぜ。間違っていたらごめんだけど。
古いバージョンのを消せよ。俺は責任を持てないが。
0197デフォルトの名無しさん
2010/02/07(日) 00:52:18買ったばかりのノートなので2005は入っていません。
さっき、�B、�Cと終えたあとに�@を試みたらだめでした。これからシステム要件を見てみます。38,000円で買ったノートブックにEnterpriseは無理かもしれないのか…
(>_<;)。
0198デフォルトの名無しさん
2010/02/07(日) 00:53:130199デフォルトの名無しさん
2010/02/07(日) 00:54:16SQLは知らんけどw
0200デフォルトの名無しさん
2010/02/07(日) 00:55:000201デフォルトの名無しさん
2010/02/07(日) 00:55:18�Bを入れたら標準的にSQL2005がインストールされるだろ?それは確認したか?
0202デフォルトの名無しさん
2010/02/07(日) 01:00:43確認してません…(>_<;)。
0203デフォルトの名無しさん
2010/02/07(日) 01:04:480204デフォルトの名無しさん
2010/02/07(日) 01:05:32SQL2008を入れようとしたらVS2008SP1がないから無理…みたいに怒られたことがあるっちゃ。
0205デフォルトの名無しさん
2010/02/07(日) 01:07:350206デフォルトの名無しさん
2010/02/07(日) 01:43:560207デフォルトの名無しさん
2010/02/07(日) 06:35:48なんでわざわざメンバ関数を別にしたりとかデフォでやってるんだろう
c#はよくできてるわ
0208デフォルトの名無しさん
2010/02/07(日) 06:37:460209165
2010/02/07(日) 08:42:49ドラッグイベントのハンドラーの中で、ファイル名を受け取るのに、
string[] filename = (string[])e.Data.GetData(DataFormats.FileDrop, false);
と書くべきを
string filename = (string)e.Data.GetData(DataFormats.FileDrop, false);
としていた。ドラッグは複数ファイル選択される場合もあるから、受け手は配列で受ける必要があるってことみたい。
0210デフォルトの名無しさん
2010/02/07(日) 09:46:20イベント来ないって言ってなかった?
あと、Listviewだって同じ問題起きると思うけど?
0211デフォルトの名無しさん
2010/02/07(日) 09:51:45この下の行にMessageBoxを書いていたんだが、なぜかそこに来ないんだよな。
だからイベントが来ていないと思っていたのさ。
0212デフォルトの名無しさん
2010/02/07(日) 10:53:30くだらん
0213デフォルトの名無しさん
2010/02/07(日) 11:07:440214デフォルトの名無しさん
2010/02/07(日) 11:09:360215デフォルトの名無しさん
2010/02/07(日) 11:12:110216デフォルトの名無しさん
2010/02/07(日) 13:33:49自己主張したいならコテでもつけろカス
0217デフォルトの名無しさん
2010/02/07(日) 13:35:440218デフォルトの名無しさん
2010/02/07(日) 13:49:560219デフォルトの名無しさん
2010/02/07(日) 14:26:400220デフォルトの名無しさん
2010/02/07(日) 15:33:43public Samp(string filePath);
このようにファイル名を渡してその内容からプロパティに値を代入するようなコンストラクタは
使ってはいけませんか。つまりコンストラクタは直接プロパティの値を渡すように設計すべきで、
ファイルから値を代入してインスタンスを生成したい場合、
Samp smp = Samp.ReadFile(filename);のようにファイルから読み取ってインスタンスを返すような
静的メソッドでも作った方が良いでしょうか
0221デフォルトの名無しさん
2010/02/07(日) 15:38:07後からLoadするか、staticなファクトリーメソッド使う方がいいかもねぇ。
まあ、百歩譲って、コンストラクター2個用意しとくか。
0222デフォルトの名無しさん
2010/02/07(日) 15:42:55C++界隈にはコンストラクタで例外は避けるべきという都市伝説や
古代のノウハウがはびこっている。
0223デフォルトの名無しさん
2010/02/07(日) 15:44:17どちらでも全く問題ない。
0224デフォルトの名無しさん
2010/02/07(日) 15:47:27開きっぱなしの場合→コンストラクタ
と区別すると直感的に分かりやすいと思う
0225デフォルトの名無しさん
2010/02/07(日) 15:47:56むしろコンストラクタで例外が出ると何に比べて何がどう面倒なのか知りたい
0226デフォルトの名無しさん
2010/02/07(日) 15:58:340227デフォルトの名無しさん
2010/02/07(日) 16:16:17大丈夫かどうかはもともとそのクラスの実装の責任であって
静的メンバでもコンストラクタでも同じこと
0228デフォルトの名無しさん
2010/02/07(日) 17:36:12アプリケーションがあると思うのですが、自分で同じこと(PageSetupDialogではない)をする場合、
自前でフォームを用意する必要がありますか?
0229デフォルトの名無しさん
2010/02/07(日) 17:37:530230デフォルトの名無しさん
2010/02/07(日) 17:39:14うわあああそれです。ありがとうございます!
0231デフォルトの名無しさん
2010/02/07(日) 18:23:560232デフォルトの名無しさん
2010/02/07(日) 20:16:410233デフォルトの名無しさん
2010/02/07(日) 20:20:490234デフォルトの名無しさん
2010/02/07(日) 21:02:480235デフォルトの名無しさん
2010/02/07(日) 22:33:060236デフォルトの名無しさん
2010/02/07(日) 22:44:040237デフォルトの名無しさん
2010/02/07(日) 23:01:47で?とか自己解決しましたとか
0238デフォルトの名無しさん
2010/02/07(日) 23:11:13その「馬鹿」に構うお前も、「馬鹿に構うお前」に構う俺も馬鹿なんだろうな
0239デフォルトの名無しさん
2010/02/07(日) 23:12:32ここまで俺の自演
0240デフォルトの名無しさん
2010/02/08(月) 00:33:370241デフォルトの名無しさん
2010/02/08(月) 01:29:410242デフォルトの名無しさん
2010/02/08(月) 01:42:170243デフォルトの名無しさん
2010/02/08(月) 01:52:360244デフォルトの名無しさん
2010/02/08(月) 01:56:370245デフォルトの名無しさん
2010/02/08(月) 02:02:280246デフォルトの名無しさん
2010/02/08(月) 02:08:010247デフォルトの名無しさん
2010/02/08(月) 02:40:340248デフォルトの名無しさん
2010/02/08(月) 08:25:59MarginBoundsの値を変更するにはどうすればいいでしょうか?
よろしくお願いします。
int sheetsize1 = 210;
int sheetsize2 = 297;
e.Graphics.PageUnit = GraphicsUnit.Millimeter;
e.PageSettings.Margins.Top = 20;
e.PageSettings.Margins.Left = 20;
e.PageSettings.Margins.Bottom = sheetsize2 - e.PageSettings.Margins.Top;
e.PageSettings.Margins.Right = sheetsize1 - e.PageSettings.Margins.Left;
MessageBox.Show("MarginBounds[Top,Bottom] = " + e.MarginBounds.Top.ToString() + "," + e.MarginBounds.Bottom.ToString(), "Program", MessageBoxButtons.OK, MessageBoxIcon.Information);
MessageBox.Show("MarginBounds[Left,Right] = " + e.MarginBounds.Left.ToString() + "," + e.MarginBounds.Right.ToString(), "Program", MessageBoxButtons.OK, MessageBoxIcon.Information);
MessageBox.Show("MarginBounds[Width,Height] = " + e.MarginBounds.Width.ToString() + "," + e.MarginBounds.Height.ToString(), "Program", MessageBoxButtons.OK, MessageBoxIcon.Information);
0249デフォルトの名無しさん
2010/02/08(月) 08:27:220250デフォルトの名無しさん
2010/02/08(月) 08:35:27ということはMarginBoundsは固定値だから気にしなくていいということなんですね。
ありがとうございます。
0251デフォルトの名無しさん
2010/02/08(月) 13:26:140252デフォルトの名無しさん
2010/02/08(月) 14:11:40変数とかそこらへんから読んでくのはしんどいし
かといって飛ばすとその中に結構肝心な点が書かれたりとかしてw・・・orz
0253デフォルトの名無しさん
2010/02/08(月) 14:14:56学問に王道なし
0254デフォルトの名無しさん
2010/02/08(月) 14:15:280255デフォルトの名無しさん
2010/02/08(月) 14:19:53http://dobon.net/vb/dotnet/index.html
++C++
http://ufcpp.net/study/index.html
緑のバイク
http://homepage3.nifty.com/midori_no_bike/CS/
ほかにもいっぱいあるけどね
0256デフォルトの名無しさん
2010/02/08(月) 14:21:080257デフォルトの名無しさん
2010/02/08(月) 14:21:34君は人の話を話半分に聞くタイプだね?
0258デフォルトの名無しさん
2010/02/08(月) 14:21:50C#->C++か
苦痛に感じそうなパターンだな
C++の構文糞だし
0259デフォルトの名無しさん
2010/02/08(月) 14:23:40昼飯終わってから眠くなる時間なんだよね〜
すまんすまん
0260デフォルトの名無しさん
2010/02/08(月) 14:24:380261デフォルトの名無しさん
2010/02/08(月) 15:12:35多分有償だろうけど
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=43877&forum=7
http://www.tangiblesoftwaresolutions.com/Product_Details/Instant_CPlusPlus_CSharp_Edition.html
0262デフォルトの名無しさん
2010/02/08(月) 15:40:12ことWindowsにおいては.NET Frameworkが動作している限りにおいて
C++でできることはほぼC#でもできるので、
C++で書かれたプログラムを以下にC#で利用するか、というところに絞って考えた方がいいと思う。
C言語、もしくはWINAPI互換で書かれた外部APIについては、DLLを直接参照してC#で利用することができる。
大抵のメジャーなライブラリはC言語形式のAPIセットがあるのでこれで十分。
C++のコードしかない場合はC++/CLIでラッパーライブラリを書くことになるが、これはかなりな茨の道。
.NET、C++双方の知識が必要になる上に、リソース管理が2重になるのでスゲー煩雑。
これもメジャーなものは.NET向けのラッパーライブラリや互換ライブラリがあるので
そのまま利用すればよい。
0263デフォルトの名無しさん
2010/02/08(月) 17:58:25いでしょうか?
picturebox1の上に小さいサイズのpicturebox2を配置してあり、ボタンが
押されたら2のimageを場所もサイズもそのままに1に反映するようにした
いと考えています。
picturebox1のこの場所にこのサイズで貼り付けるという指定方法が解ら
ず悪戦苦闘です。
0264デフォルトの名無しさん
2010/02/08(月) 18:08:27bitmapをpicturebox1に割り当てるとか
0265デフォルトの名無しさん
2010/02/08(月) 18:40:07{
//画像を当てはめ色を塗る
pictureBox1.Image = new Bitmap(
pictureBox1.ClientSize.Width,
pictureBox1.ClientSize.Height,
System.Drawing.Imaging.PixelFormat.Format24bppRgb);
Graphics g1 = Graphics.FromImage(pictureBox1.Image);
g1.FillRectangle(Brushes.AliceBlue, pictureBox1.ClientRectangle);
g1.Dispose();
pictureBox2.Image = new Bitmap(
pictureBox2.ClientSize.Width,
pictureBox2.ClientSize.Height,
System.Drawing.Imaging.PixelFormat.Format24bppRgb);
Graphics g2 = Graphics.FromImage(pictureBox2.Image);
g2.FillRectangle(Brushes.Aqua, pictureBox2.ClientRectangle);
g2.Dispose();
}
private void button1_Click(object sender, EventArgs e)
{
//コピー処理
Graphics g = Graphics.FromImage(pictureBox1.Image);
g.DrawImage(pictureBox2.Image,
pictureBox2.Location);
g.Dispose();
pictureBox2.Visible = false;//同じ位置とのことなので非表示にしてみる
}
private void pictureBox2_Click(object sender, EventArgs e)
{
//コピーが行われたことをわかりやすくするためにとりあえず
MessageBox.Show("pictureBox2がクリックされました");
}
0266デフォルトの名無しさん
2010/02/08(月) 18:41:380267デフォルトの名無しさん
2010/02/08(月) 18:46:400268デフォルトの名無しさん
2010/02/08(月) 19:26:020269デフォルトの名無しさん
2010/02/08(月) 19:49:030270デフォルトの名無しさん
2010/02/08(月) 23:38:000271デフォルトの名無しさん
2010/02/08(月) 23:44:42スレタイを音読3回。
君が要らない子だと分かったら、黙ってブラウザ閉じなさい
0272デフォルトの名無しさん
2010/02/09(火) 00:16:070273デフォルトの名無しさん
2010/02/09(火) 00:47:370274デフォルトの名無しさん
2010/02/09(火) 01:58:53http://dobon.net/vb/dotnet/programing/bitmapresource.html
これのように実行ファイルの中に入れてしまうのとではどっちが速いかという質問でございます
0275デフォルトの名無しさん
2010/02/09(火) 02:09:00テスト用のプログラムを書いて測ればわかる事だろ?
はやく作れよ
0276デフォルトの名無しさん
2010/02/09(火) 02:20:10その例ってのはリソースなんでツールバーのアイコン画像とかそんなのだよ
あと何をやろうとしてるの?
0277デフォルトの名無しさん
2010/02/09(火) 02:51:53何をやろうとしてるかは極秘です
0278デフォルトの名無しさん
2010/02/09(火) 03:11:04Class B : A
と2つのクラスがあったとします。
ここでたとえばデータフォルダ "C:\data" という情報を2つのクラスが共に共有しなければ
ならないとき、その情報をどう渡したらいいでしょうか?
いくつか方法を考えてみました。
a) Main()メソッドの中にデータフォルダの変数(string)を定義し、Class AやClass Bのコンストラクタ
を呼び出すときにその変数を渡す。
b) グローバル変数としてデータフォルダの変数(string)を定義し、Class AやClass Bのメソッドに
読み込ませる。
c) 外部ファイル(INIファイル)にデータフォルダの情報を保存しておき、Class AやClass Bのメソッドに
この外部ファイルを読み込ませてデータフォルダの情報を取得させる。
a)〜c)どの方法がいいでしょうか?あるいはこれよりいい方法がありましたら教えてください。
0279デフォルトの名無しさん
2010/02/09(火) 03:16:26正解はないよ
仕事でやる場合は力持った人の好みでルールが決まるだろうけど
0280デフォルトの名無しさん
2010/02/09(火) 05:46:18書いてない条件があるってのが恒例だろうけど
0281デフォルトの名無しさん
2010/02/09(火) 06:41:49俺はいつもa法だな。おかげで引数イッパーイさ(´・ω・`)
0282デフォルトの名無しさん
2010/02/09(火) 06:47:59そういう設定を持つクラスをstaticで扱えるようにしてそこを参照してる
その設定自体は基本xmlにしてるけど、面倒くさいときはそのまま内部で書いてる
0283デフォルトの名無しさん
2010/02/09(火) 07:50:15かってに書けばー(´・ω・`)
0284デフォルトの名無しさん
2010/02/09(火) 08:22:41その string を参照するのが A, B だけなんだったらコンストラクターで渡すし、
「アプリ全体の設定」みたいなものだったらそれ用のクラス作って
public const もしくは public static readonly メンバーにするかもしれないし。
0285デフォルトの名無しさん
2010/02/09(火) 08:34:270287デフォルトの名無しさん
2010/02/09(火) 09:54:16DrawImageの際にきっちりと矩形を設定しないとダメだぬぅ
(画像のDPIの値をみてうんぬんしているから位置だけ指定のときは2つの画像のDPIが違うとモヤっと描画されてしまう)
g.DrawImage(Image, Rectangle, Rectangle, GraphicsUnit.Pixel);
0288デフォルトの名無しさん
2010/02/09(火) 12:44:14C#, C♯, C#相談室 Part55
http://pc12.2ch.net/test/read.cgi/tech/1265283175/
をC#, C♯, C#相談室 Part57として再利用します
住民は被ってると思いますが一応報告
0289デフォルトの名無しさん
2010/02/09(火) 12:51:21誤爆乙
0290デフォルトの名無しさん
2010/02/09(火) 14:02:35勘違い乙
0291デフォルトの名無しさん
2010/02/09(火) 14:12:43でしゃばりキチは別のスレでオナヌーしてくれ
0292デフォルトの名無しさん
2010/02/09(火) 14:34:56新参者なんかな?
このスレはスレタイからわかるように初級者用C#スレッドで、
C#, C♯, C#相談室ではあまりにもくだらない、低レベルと思われる
ため質問する事をためらう人に対してできたスレッドで
2002年から初回スレ名「くだすれC#」として開始されたもの。
0293デフォルトの名無しさん
2010/02/09(火) 14:55:05> http://pc12.2ch.net/test/read.cgi/tech/1265283175/
がこのふらっと現スレPart55の立て損ない
(ふらっとのはずが相談室ってタイトルで立ててしまった)
という流れがあってだな
0294デフォルトの名無しさん
2010/02/09(火) 14:58:37そのスレッドは無視すればいいだけのことじゃね?
0295デフォルトの名無しさん
2010/02/09(火) 15:47:28下記のようにSayMove.site.jsを読み込んでflvのURLを取得して
alertで表示するところまではうまくいったのですが、取得したURLを
C#側に持ってくることができません。どのようにしても
持ってくればいいでしょうか?
HtmlDocument doc = web.Document;
if (doc == null) return;
HtmlElement jsElem = doc.CreateElement("SCRIPT");
jsElem.SetAttribute("language", @"JavaScript");
jsElem.SetAttribute("type", @"text/JavaScript");
jsElem.SetAttribute("src", @"e:\SayMove.site.js");
if (doc.Body == null) return;
doc.Body.InsertAdjacentElement(HtmlElementInsertionOrientation.BeforeEnd, jsElem);
string scripts;
scripts = "alert(getVideoDetail(location.href)['videoUrl0']);";
web.Url = new Uri("javascript:" + Uri.EscapeDataString(scripts));
0296デフォルトの名無しさん
2010/02/09(火) 15:54:18逮捕されればいいと思うよ。
0297デフォルトの名無しさん
2010/02/09(火) 16:39:35Windowsアプリケーションを作成してるのですが、
tableLayoutPanelのCellの中に文字を挿入するのはどうすればいいのでしょうか?
0298デフォルトの名無しさん
2010/02/09(火) 16:43:07文字を入れたい場合はTableLayoutPanelにLabelなどのコントロールを
配置して行うしかない。
0299デフォルトの名無しさん
2010/02/09(火) 16:53:01ありがとうございます!
エクセルのようなグリッドを作成することはできないのですか...?
0300デフォルトの名無しさん
2010/02/09(火) 16:54:340301295
2010/02/09(火) 16:57:46失礼しました。
0302デフォルトの名無しさん
2010/02/09(火) 17:08:08やはり文字が挿入できないです...
そして列は増えるのに行が増えない...
どうすればいいでしょうか><
0303デフォルトの名無しさん
2010/02/09(火) 17:09:25やはり文字が挿入できない...
そして、列は増えるのに行が増えません...
どうすればできますか?><
0304デフォルトの名無しさん
2010/02/09(火) 17:10:420305デフォルトの名無しさん
2010/02/09(火) 17:17:35C#のwindowsアプリケーションのコントロールについて詳しいサイトや書籍ありますか?
このまま頼りっきりになってしまうのは申し訳ないです
0306デフォルトの名無しさん
2010/02/09(火) 17:18:11http://dobon.net/vb/dotnet/index.html#datagridview
0307デフォルトの名無しさん
2010/02/09(火) 17:19:10ttp://dobon.net/vb/dotnet/index.html
ここをあさってみてわ
0308デフォルトの名無しさん
2010/02/09(火) 17:22:57自分なりにやってみます!
0309デフォルトの名無しさん
2010/02/09(火) 17:22:58それくらいやれよゆとり
0310デフォルトの名無しさん
2010/02/09(火) 17:25:27すいません...
0311デフォルトの名無しさん
2010/02/09(火) 17:32:410312デフォルトの名無しさん
2010/02/09(火) 17:41:19置き換えられる型が思い当たらないので、一言お願いします。
0313デフォルトの名無しさん
2010/02/09(火) 17:46:27DLLの関数って言ったって、色々あるだろ。
C言語?
0314デフォルトの名無しさん
2010/02/09(火) 17:47:380315デフォルトの名無しさん
2010/02/09(火) 17:54:080316デフォルトの名無しさん
2010/02/09(火) 17:57:18さすがにdllの関数でハッシュテーブルの実体を引数に取るものは滅多に見かけないが
もしそんな頭のおかしいものを使うならちゃんとしたCの知識がないと無理だと思う
0317312
2010/02/09(火) 19:40:14C#、VS2008でクラスライブラリを用いてWindows.Form,Dataを参照し、ジェネリックを使ったりと、
結果ビルドしたDLLを別プロジェクトでDllImportで読み込んだ末、
メソッドを呼び出し後、ジェネリックからマーシャリングできません(の様な例外)が出ました。
↓以下は私の誤認だと思いますが、
DLLは一緒くたにアンマネージドというものに変換され、
C#はそれを呼び出す時にマーシャリングという作業が必要で
その型に当てはめるための変換がいるため、ジェネリック型からは変換できない
と認知しておりました。
木構造のループ処理などができればと思っていたもので、TreeViewやら、
キーを持つDictionaryなどまとめて試行してみたという事です。
すみません。事後報告です。
0318デフォルトの名無しさん
2010/02/09(火) 19:46:13まったく正気の沙汰とは思えない
0319デフォルトの名無しさん
2010/02/09(火) 19:52:39クラスとかだとうまく渡せるのかね?
0320デフォルトの名無しさん
2010/02/09(火) 20:21:37> 「アプリ全体の設定」みたいなものだったらそれ用のクラス作って
> public const もしくは public static readonly メンバーにするかもしれないし。
通知専用のクラスを新たに設定するという方法もありましたか。
a)、もしくはその方法でトライしてみようと思います。
0321デフォルトの名無しさん
2010/02/09(火) 20:36:10かってにトライすればー(´・ω・`)
0322デフォルトの名無しさん
2010/02/09(火) 20:40:160323デフォルトの名無しさん
2010/02/09(火) 20:41:26ValidationEventHandlerで、エラーが発生したノードを特定することは可能でしょうか?
ex.Messageからノード名は取得できますが、名称だけなため、同名のノードが存在すると特定ができません。
アドバイスをお願いします。
0324デフォルトの名無しさん
2010/02/09(火) 20:43:41トライ結果を書き込む;
}
0325デフォルトの名無しさん
2010/02/10(水) 01:27:100326デフォルトの名無しさん
2010/02/10(水) 02:00:00ValidationEventArgsのExceptionが多分XmlSchemaValidationExceptionにキャストできるはず
0327デフォルトの名無しさん
2010/02/10(水) 03:44:09C#だとソース配ってるような物ってことでWTLに手を出したんだが
C#のあまりにも快適な開発環境と情報量の多さに慣れてしまってかなりシンドイw
よくわからなくてもドット打ったりしていけば中がどうなってるか
さぐれたc#がうらやましいw
0328デフォルトの名無しさん
2010/02/10(水) 07:12:280329デフォルトの名無しさん
2010/02/10(水) 08:40:530330デフォルトの名無しさん
2010/02/10(水) 08:56:020331デフォルトの名無しさん
2010/02/10(水) 08:59:130332デフォルトの名無しさん
2010/02/10(水) 09:01:20コメントのないソースなんて見れたもんじゃないだろ。
元のソースがあっても見たいとは思わないな。
0333デフォルトの名無しさん
2010/02/10(水) 09:05:07コメントの有無なんてどうってことはない
0334デフォルトの名無しさん
2010/02/10(水) 09:19:140335デフォルトの名無しさん
2010/02/10(水) 09:23:22お笑い種だ。
頭が30年前なんだろう。
0336デフォルトの名無しさん
2010/02/10(水) 09:27:40初心者乙にも程があらあ
0337デフォルトの名無しさん
2010/02/10(水) 09:28:11GPLにしたって違反してるやつがいたって粘着するにもいろいろ大変だし
あらかじめ対策しておくのもある意味普通だと思うけどね
0338デフォルトの名無しさん
2010/02/10(水) 09:30:14どの言語でも初心者が一番初めに気にする所だよな。
「ゲームは作れますか?」と「中身の暗号化できますか?」は。
少なくともそんなことを聞かなきゃ分からない内は全く関係のない話だ。
0339デフォルトの名無しさん
2010/02/10(水) 09:30:48今時はライセンスで縛るから丸見えでもどうでもいいのです
難読化くらいはしてるかもね
でも初心者には関係ないよ
お前のコードなんてわざわざ見る気にもならないからね
0340デフォルトの名無しさん
2010/02/10(水) 09:31:52つ 難読化 ・・が続く、いつもなながれだな。飽きないね。
65 名前:デフォルトの名無しさん[sage] 投稿日:2009/04/14(火) 16:59:37
そこまでして見たがる人間がどこまでいるのかと
自意識過剰なんじゃね?
0341デフォルトの名無しさん
2010/02/10(水) 09:35:09質問ならともかく、自分で選んだ道のクセに愚痴を書き込みに来るな。
0342デフォルトの名無しさん
2010/02/10(水) 09:36:27で、ライセンス縛りって具体的にどうやるの?
0343デフォルトの名無しさん
2010/02/10(水) 09:36:32( ゚д゚)…
( ゚д゚ )
0344デフォルトの名無しさん
2010/02/10(水) 09:36:44自分の汚いソースが見られたくない人
俺の天才的アルゴリズムがただ見されるのは辛抱できない
これ以外にパターンあるのかな
0345デフォルトの名無しさん
2010/02/10(水) 09:37:330346デフォルトの名無しさん
2010/02/10(水) 09:38:31参考 http://pc.2ch.net/tech/kako/1023/10237/1023766485.html
0347デフォルトの名無しさん
2010/02/10(水) 09:38:51こっちみんな
天才かどうかは知らんけど、なるべく需要がありそうだけど
競合がいないところへソフト出す場合は乱立避けるたに
わざわざヒント与える必要もないからねえ
0348デフォルトの名無しさん
2010/02/10(水) 09:39:301)めちゃくちゃ汚いソースだから
2)どっかからぱくって来たソースだから
0349デフォルトの名無しさん
2010/02/10(水) 09:39:560350デフォルトの名無しさん
2010/02/10(水) 09:40:24フリーで出すならブラッシュアップしたほうがいいだろ
0351デフォルトの名無しさん
2010/02/10(水) 09:42:57ああいうことにはならんの?
0352デフォルトの名無しさん
2010/02/10(水) 09:44:17なにそれw
俺のところのコードぱくったな!とか?
0353デフォルトの名無しさん
2010/02/10(水) 09:44:42パクる能もない。
パクって来ても使えないから。
前者のみ。
0354デフォルトの名無しさん
2010/02/10(水) 09:47:340355デフォルトの名無しさん
2010/02/10(水) 09:52:230356デフォルトの名無しさん
2010/02/10(水) 09:56:24プロジェクトービルドー詳細設定のデバッグ情報 pdb-only を none
0357デフォルトの名無しさん
2010/02/10(水) 11:19:130358デフォルトの名無しさん
2010/02/10(水) 11:21:25やってみればいいじゃん
0359デフォルトの名無しさん
2010/02/10(水) 11:27:360360デフォルトの名無しさん
2010/02/10(水) 11:31:310361デフォルトの名無しさん
2010/02/10(水) 11:57:39コンソールプログラムが終了したかどうかをMainプログラムから知るにはどうしたら良いのでしょうか?
今は、グローバル変数でフラッグを作っておいて、スレッド内で子プロセスを監視して、終了したらフラッグをたてていますが、
直接、Mainプログラムから知りたいのです。
普通はどうしてるのでしょうか?
0362デフォルトの名無しさん
2010/02/10(水) 11:59:540363デフォルトの名無しさん
2010/02/10(水) 12:01:360364デフォルトの名無しさん
2010/02/10(水) 12:03:32具体的にどうやるのでしょうか?
0365デフォルトの名無しさん
2010/02/10(水) 12:10:53Main内でやれよ
0366デフォルトの名無しさん
2010/02/10(水) 12:11:460367デフォルトの名無しさん
2010/02/10(水) 12:14:590368デフォルトの名無しさん
2010/02/10(水) 12:26:06http://msdn.microsoft.com/ja-jp/library/cc825640.aspx
SendMessage
http://www.geocities.jp/hatanero/sendmessage1.html
SendMessageだとコンソールアプリが処理終わって自分をたたむ前に
発行しておけばOSが読んでくれるので待ちスレッドとかいらない
0369デフォルトの名無しさん
2010/02/10(水) 16:04:270370デフォルトの名無しさん
2010/02/10(水) 16:06:360371デフォルトの名無しさん
2010/02/10(水) 16:35:270372デフォルトの名無しさん
2010/02/10(水) 17:23:50すげー便利だw
0373デフォルトの名無しさん
2010/02/10(水) 17:45:310374デフォルトの名無しさん
2010/02/10(水) 17:55:340375デフォルトの名無しさん
2010/02/10(水) 18:03:58>>372
親クラス・子クラスの意味を確認せい
http://ja.wikipedia.org/wiki/%E3%82%AF%E3%83%A9%E3%82%B9_%28%E3%82%B3%E3%83%B3%E3%83%94%E3%83%A5%E3%83%BC%E3%82%BF%29#.E7.B6.99.E6.89.BF_.28inheritance.E3.80.81extension.E3.80.81generalization.29
0376デフォルトの名無しさん
2010/02/10(水) 18:09:19Javaと違ってC#ではそういうことをする機会が少ないので滅多に使わないよね
0377デフォルトの名無しさん
2010/02/10(水) 18:13:260378デフォルトの名無しさん
2010/02/10(水) 18:14:520379デフォルトの名無しさん
2010/02/10(水) 18:20:34先頭大文字の方はCLRが定義しているクラス名 本来はSystem.Stringだけど普通using System;する
先頭小文字の方はC#の予約語 stringはSystem.Stringのエイリアス objectも同じ
0380デフォルトの名無しさん
2010/02/10(水) 18:22:01stringとstring とかでググレばいいのに
0381デフォルトの名無しさん
2010/02/10(水) 18:24:120382デフォルトの名無しさん
2010/02/10(水) 18:25:14IDEで書いてればわかると思うんだよね
それって
IDE使ってないのかな?
予約語とかはブルー系だし、クラスとかは水色のちょっと黒が入ったようなのだし
0383デフォルトの名無しさん
2010/02/10(水) 21:34:54ありがとうございます
0384デフォルトの名無しさん
2010/02/11(木) 00:24:180385デフォルトの名無しさん
2010/02/11(木) 12:06:31例えば、2007年4月10から今日までの日数とか
分かりますか?
よろしくお願いします。
0386デフォルトの名無しさん
2010/02/11(木) 12:18:19var b = DateTime.Now;
var days = (b - a).Days;
0387デフォルトの名無しさん
2010/02/11(木) 12:19:08これ使う
ttp://msdn.microsoft.com/ja-jp/library/system.timespan(VS.80).aspx
0388デフォルトの名無しさん
2010/02/11(木) 13:02:27普段C++を使う俺がたまにC#を使うとそのかんたんさに驚く
ちょっとしたWinアプリがささとできる
C++なんか文字列の分割すら自前でやらなきゃいかん
0389デフォルトの名無しさん
2010/02/11(木) 13:08:58低脳はC#でも使っとけw
0390デフォルトの名無しさん
2010/02/11(木) 13:19:440391デフォルトの名無しさん
2010/02/11(木) 13:34:56いいとこ取りすればいいのに、
0392デフォルトの名無しさん
2010/02/11(木) 13:39:54カレーをルーから作るのとはわけが違う
0393デフォルトの名無しさん
2010/02/11(木) 13:42:33自作のオムレツ専用フライパンをつくってなんとかしたとか、そういう雰囲気で。
プログラム的に味は、変わらんと思うけど。
0394デフォルトの名無しさん
2010/02/11(木) 14:18:11頭のいいヤツは、選べるなら C# を使うと思う。
0395デフォルトの名無しさん
2010/02/11(木) 14:46:56書きやすいし読みやすいから菜
0396デフォルトの名無しさん
2010/02/11(木) 14:49:47解析しやすいしパクリやすいから名
0397デフォルトの名無しさん
2010/02/11(木) 14:51:38そんなあからさまな煽りに反応しちゃうから馬鹿にされるんだろw
0398デフォルトの名無しさん
2010/02/11(木) 17:09:14おまえ、なにを必死になってるんだ。w
0399デフォルトの名無しさん
2010/02/11(木) 17:44:470400デフォルトの名無しさん
2010/02/11(木) 19:01:22まずは、コマンドラインオプション、正規表現、標準入出力で、
フィルターソフトが書ければいい。
できれば、http の記述があると助かる。
いまは、部品をペタペタ貼るようなGUIはいらんです。
0401デフォルトの名無しさん
2010/02/11(木) 19:03:170402デフォルトの名無しさん
2010/02/11(木) 19:08:130403デフォルトの名無しさん
2010/02/11(木) 19:10:070404デフォルトの名無しさん
2010/02/11(木) 19:22:280405デフォルトの名無しさん
2010/02/11(木) 19:23:35次の質問の方、どぞー。
0406デフォルトの名無しさん
2010/02/11(木) 19:30:19いろいろ書き換えなければならないんだよ。
Ruby 1.9.1 の歩き方
ttp://jp.rubyist.net/magazine/?0025-FirstStepRuby191
結構、メンドー。この労力を使うんだったら、C# を覚えちまった方がよさげ。
最近は、Windows ばかりで、Linux 使わないし、Ruby は Windows に冷たいし。
Visual C# Express Edition 本を立ち読みしたら、コマンドラインについて、
全く書いていない。
0407デフォルトの名無しさん
2010/02/11(木) 19:47:320408デフォルトの名無しさん
2010/02/11(木) 19:50:040409デフォルトの名無しさん
2010/02/11(木) 20:07:33VisualC#2008でコマンドラインプログラムを作りたいと思っています。
単純なものはできるのですが、
たとえばftpみたいに、
プロンプトを独自のものに置き換えて表示して、
対話的にコマンドを実行して、
処理が終わったら、exitで終了するようなものを作る場合、
どのように既存のプロンプトを消したらよいのでしょう?
0410デフォルトの名無しさん
2010/02/11(木) 20:10:38独自のプロンプトって要するにターミナルみたいなもんでしょ
0411デフォルトの名無しさん
2010/02/11(木) 20:13:140412デフォルトの名無しさん
2010/02/11(木) 20:26:130413デフォルトの名無しさん
2010/02/11(木) 20:35:44「数字を入力してください」とか出すのと同じ理屈だよ
0414デフォルトの名無しさん
2010/02/11(木) 21:06:53C#に無関係の部分で知識が不足しているようだから、CUIについて理解してからまたおいで
0415デフォルトの名無しさん
2010/02/11(木) 21:11:55うん。わかった。
0416デフォルトの名無しさん
2010/02/11(木) 21:15:100417デフォルトの名無しさん
2010/02/11(木) 22:01:52え?
0418デフォルトの名無しさん
2010/02/11(木) 22:05:21なにそれこわい
0419デフォルトの名無しさん
2010/02/11(木) 22:17:10たとえば col1 から col10 と言う名称で列を DataTable.Columns.Add で追加していたとして、
その後、新たに Columns[ 0 ] の位置に col0 を追加する。ってイメージなのですが。
これが出来ると、DataGrodView にそのままバインドすれば済むので楽かなーと。
0420デフォルトの名無しさん
2010/02/11(木) 22:25:00C#って、コメントを付けるときに
関数やクラスだったら
/// <summary>関数名</summary>
/// <param name="xx">なんちゃって変数</param>
見たいにXMLのタグでかけるじゃないですか
それで、namespaceにも同じように付けようとしら
XMLコメントが有効な言語要素の中にありません
というワーニングが出てしまいました
namespaceにもコメントを付けたいときはどうすればいいんでしょう
0421デフォルトの名無しさん
2010/02/11(木) 22:25:160422デフォルトの名無しさん
2010/02/11(木) 22:30:55できない
名前空間には実体がない
0423デフォルトの名無しさん
2010/02/11(木) 22:31:22MSのFormのソースだとこんな感じだね
//------------------------------------------------------------------------------
// <copyright file="Form.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//-----------------------------------------------------------------------------
/*
* Copyright (c) 1999, Microsoft Corporation. All Rights Reserved.
* Information Contained Herein is Proprietary and Confidential.
*/
namespace System.Windows.Forms {
using Microsoft.Win32;
<省略>
using System.Windows.Forms.VisualStyles;
0424デフォルトの名無しさん
2010/02/11(木) 22:32:04/// <include file='doc\Form.uex' path='docs/doc[@for="Form"]/*' />
/// <devdoc>
/// <para>Represents a window or dialog box that makes up an application's user interface.</para>
/// </devdoc>
[
ComVisible(true),
ClassInterface(ClassInterfaceType.AutoDispatch),
ToolboxItemFilter("System.Windows.Forms.Control.TopLevel"),
ToolboxItem(false),
DesignTimeVisible(false),
Designer("System.Windows.Forms.Design.FormDocumentDesigner, " + AssemblyRef.SystemDesign, typeof(IRootDesigner)),
DesignerCategory("Form"),
DefaultEvent("Load"),
InitializationEvent("Load"),
]
public class Form : ContainerControl {
0425デフォルトの名無しさん
2010/02/11(木) 22:34:33うるさいです
0426デフォルトの名無しさん
2010/02/11(木) 22:38:25ありがとうございます。
出来無いっぽいですね
MS自体も何事もなく普通のコメントを記述してるみたいだし・・・
0427デフォルトの名無しさん
2010/02/11(木) 22:44:32アセンブリ一つで完結できるならまだしも
複数のアセンブリに同じ名前空間を使えるわけで
そうなると何をその名前空間のドキュメントにするの? って話になる
0428デフォルトの名無しさん
2010/02/11(木) 22:52:57string[]
これらの従来の配列はジェネリックのList<T>を使って
List<int>
List<string>
と表すことも出来るようになった。従来の配列の機能は
ジェネリックのList<T>を使って全て再現することができるようになったわけだけど
これってすなわち従来の配列はもはや無用の長物に化したと言うこと?
それともジェネリックのList<T>にはできない芸当が従来の配列にはできたりする?
0429デフォルトの名無しさん
2010/02/11(木) 22:55:46そんなことは無いと思います
0430デフォルトの名無しさん
2010/02/11(木) 22:57:040431デフォルトの名無しさん
2010/02/11(木) 22:57:47固定長と可変長じゃ用途も違うでしょ
そういやどっかに配列死ね主義者のサイトがあったなぁ
0432デフォルトの名無しさん
2010/02/11(木) 23:02:30構造体の配列では構造体のメンバに直接アクセスできるけどList<T>だとそうはいかなかったりするし
P/Invokeの受け渡しには配列しか使えないし
作ったりアクセスしたりする速度は配列の方が遥かに速いし
0433デフォルトの名無しさん
2010/02/11(木) 23:10:09thx
そのメソッド、全然気付かなかったです。。。
助かりました。
0434デフォルトの名無しさん
2010/02/11(木) 23:13:404なんかほぼ確実にすぐオーバーして再確保することになると思うんだけど
0435デフォルトの名無しさん
2010/02/11(木) 23:32:21つまりint、stringといった値型の配列はList<T>に移行し、
構造体やクラスの配列は従来通りの配列を使うべし
というのがこのスレの総意ということでおk?
0436デフォルトの名無しさん
2010/02/11(木) 23:33:33List<string>でもかまわんでしょ
stringだと動的に増減できないんだし
0437デフォルトの名無しさん
2010/02/11(木) 23:33:552以上の適当な数字でいいんでしょ。
「特に指定しない限り富豪モード」より「特に指定しない限り節約モード」の方が
好まれる傾向なんだろうから悪くない数字だと思うけど。
0438デフォルトの名無しさん
2010/02/11(木) 23:43:22状況に応じろ
0439デフォルトの名無しさん
2010/02/11(木) 23:48:180440デフォルトの名無しさん
2010/02/11(木) 23:50:04文字はそのままにするにはどうしたらよいでしょうか?
0441デフォルトの名無しさん
2010/02/11(木) 23:51:38タイムリーだねえ
C#, C♯, C#相談室 Part55
http://pc12.2ch.net/test/read.cgi/tech/1265283175/80-93
0442デフォルトの名無しさん
2010/02/11(木) 23:51:53C#相談室の80辺りから
0443デフォルトの名無しさん
2010/02/12(金) 00:43:33Listは一度使うとはまるな。
なぜListをC#で最初からデフォルト配列として採用しなかったのか理解に苦しむ。
0444デフォルトの名無しさん
2010/02/12(金) 00:47:060445デフォルトの名無しさん
2010/02/12(金) 00:51:54配列の方が速度が出るケースが多いから。
C#は仕様の単純性と速度が比較に登れば速度が優先される、
実務を優先させたプログラミング言語だ。
0446デフォルトの名無しさん
2010/02/12(金) 01:00:26言語のとろさを許容できるほどマシンが成長したというかなんというか
C#ができたころだときついだろうな
0447デフォルトの名無しさん
2010/02/12(金) 01:05:53そのマシンの共有フォルダにファイルを書くには、
どうすればいいでしょう?
パスワードがなければ、
File.Copy("original.txt",@"\\other\shareddocs\copy.txt", true);
でよいのですが…。
アドバイスよろしくです。
0448デフォルトの名無しさん
2010/02/12(金) 01:10:32そこはOSに任せるべきところ。
0449デフォルトの名無しさん
2010/02/12(金) 01:13:39PCがどんなに高速化しても、それは全ての分野でパフォーマンスの考慮を不要に
するほどの物ではありえないから、そういう考えはナンセンス。
0450デフォルトの名無しさん
2010/02/12(金) 01:38:140451デフォルトの名無しさん
2010/02/12(金) 03:15:19http://info.2ch.net/wiki/index.php?monazilla%2Fdevelop%2Fdat#content_1_3
たとえば
< は &lt;
> は &gt;
" は &quot;
に置き換えられています。
これらの文字を相互変換したいわけですが
文字列を一括変換できるメソッドは無いでしょうか?
0452デフォルトの名無しさん
2010/02/12(金) 03:18:17もういないかもしれんが…Sandcastle 向けの話。
まず、ドキュメントコメント自体では namespace はサポートされている。
でも、C# は言語的にそれを生成できない、というのが前提。
なので、Sandcastle の場合、NamespaceDoc っていうクラス作って
それにつければそれを名前空間のコメントとして使用するようにしてある
ただこれは、正直美しくない(バイナリメタデータに残るしな)と思うので、
個人的に使っている方法は、NamespaceDoc.xml というファイルを作って
これを
<member name="N:MyNamespace">
<summary>...</summary>
...
</member>
こんな感じにして、ビルドプロセスいじって XSLT あたり使ってマージ
している。ドキュメントコメントファイルの生成結果は結局のところ XML
なので適当にやればいいんですよ
0453デフォルトの名無しさん
2010/02/12(金) 03:20:18もうその辺になってくると
System.Text.RegularExpressions.Regex
を使うしかない
0454デフォルトの名無しさん
2010/02/12(金) 03:25:49変数とかは自分で調整してくれ
>>451のアンカー処理
wk = System.Text.RegularExpressions.Regex.Replace(wk,
@"(<a href=\x22)(\x2e\x2e\x2ftest\x2fread\x2ecgi\x2f)([\w]+\x2f\d{10}\x2f\d+\x22\x20target=\x22_blank\x22>)(>>)(\d+)(</a>)",
"$1A$5\">>>$5</a>");
レス内のURL処理
wk = System.Text.RegularExpressions.Regex.Replace(wk,
@"s?https?://[-_.!~*'()a-zA-Z0-9;/?:@&=+$,%#]+",
"<a href=\"$&\">$&</a>");
BEアイコンの有効化
wk = System.Text.RegularExpressions.Regex.Replace(wk,
@"(s?sssp?)(://[-_.!~*'()a-zA-Z0-9;/?:@&=+$,%#]+)",
"<img src=\"http$2\"> <br>");
0455デフォルトの名無しさん
2010/02/12(金) 03:26:520456デフォルトの名無しさん
2010/02/12(金) 03:30:18スキン作ったりする人がいるように好きなようにやらせておけばいいんだけどね
専ブラとしてはサポート用タグの埋め込みさえやれば後はスクリプトなり正規表現なりで
余裕で対応できるし
0457デフォルトの名無しさん
2010/02/12(金) 03:30:320458デフォルトの名無しさん
2010/02/12(金) 03:30:49ありがとうございます。
専用関数は無いので自身で記述する必要があるわけですね。
0459デフォルトの名無しさん
2010/02/12(金) 03:37:51俺もあんまり詳しくないけど>>457のようにアンカーだけに限って言えばOKなのかもしれないけどね
datの中のアンカー部分は2chの鯖関連のアドレスが埋まってるので正規表現で自分のブラウザに
都合のいい形に直す必要があるかなあと思って俺は>>454のようにやってる
0460デフォルトの名無しさん
2010/02/12(金) 05:05:130461デフォルトの名無しさん
2010/02/12(金) 06:50:45WNetAddConnection() とかで接続する。
0462デフォルトの名無しさん
2010/02/12(金) 08:47:530463デフォルトの名無しさん
2010/02/12(金) 08:57:202chのdatの中のアンカーの表現ってこんな感じなんだわ
<a href="../test/read.cgi/news/1265910841/58" target="_blank">>>58</a>
それ以外のところってレスの本文の中のAAとかなんでIEコンポーネント使うのであれば
わざわざエンコードを戻す必要がないというか
0464デフォルトの名無しさん
2010/02/12(金) 08:58:26この部分は>をエンコードした状態ね
投稿したらだめだったw
0465デフォルトの名無しさん
2010/02/12(金) 09:01:470466デフォルトの名無しさん
2010/02/12(金) 10:52:110467デフォルトの名無しさん
2010/02/12(金) 11:05:080468デフォルトの名無しさん
2010/02/12(金) 11:14:52Using .NET: Deliver The Power Of Spy++ To Windows Forms
ttp://msdn.microsoft.com/en-us/magazine/cc163617.aspx
使い込んでないから何が出来るかしらない
0469デフォルトの名無しさん
2010/02/12(金) 12:22:340470デフォルトの名無しさん
2010/02/12(金) 12:32:030471デフォルトの名無しさん
2010/02/12(金) 12:41:450472デフォルトの名無しさん
2010/02/12(金) 15:07:060473デフォルトの名無しさん
2010/02/12(金) 15:12:16CLRのバージョンが帰ってくるので2.0/3.0/3.5の区別がつかない。
あとはSystem.Coreがあれば3.5とかで判断するかだな。
0474デフォルトの名無しさん
2010/02/12(金) 15:19:080475デフォルトの名無しさん
2010/02/12(金) 17:00:54と当然聞くわけでして・・・
0476デフォルトの名無しさん
2010/02/12(金) 19:17:480477デフォルトの名無しさん
2010/02/12(金) 19:21:05MenuItemなりを動的に作ってMenuに追加するだけと思うけど
0478デフォルトの名無しさん
2010/02/12(金) 20:40:17こういう場合、DoEventsをつけたほうがいいんですよね?
0479デフォルトの名無しさん
2010/02/12(金) 20:44:330480デフォルトの名無しさん
2010/02/12(金) 20:49:110481デフォルトの名無しさん
2010/02/12(金) 20:50:31印刷処理なげて終わりでいいじゃん。
0482デフォルトの名無しさん
2010/02/12(金) 20:54:52dataGridViewの入力データを読み込みながら出力してたんですけど
一回メモリに読み込んで印刷処理を別スレッドにしてもいいかもですね。
ありがとうございます。^^
0483デフォルトの名無しさん
2010/02/12(金) 21:02:35バインド元から引っ張ってくればいいだろ
0484デフォルトの名無しさん
2010/02/12(金) 21:10:23データベースとして使ってなくて、特定のフォルダの中身をよみながら
dataGridViewに反映させてたんです。。。
0485デフォルトの名無しさん
2010/02/12(金) 21:12:000486デフォルトの名無しさん
2010/02/12(金) 21:13:40詳しく教えて下さいよ。。。
0487デフォルトの名無しさん
2010/02/12(金) 21:16:26でぐぐればでてきそう
というかc#はいっぱいtips転がってるだろ
C++からこっちに来て部品の多さ情報の多さ使いやすさ
に感激したくらいだから
0488デフォルトの名無しさん
2010/02/12(金) 21:21:09わかりました。調べてみます。。。
御礼は調べて見つけたサイトでしますね。。。
0489デフォルトの名無しさん
2010/02/12(金) 21:22:48http://japan.internet.com/developer/20070522/26.html
0491デフォルトの名無しさん
2010/02/12(金) 21:31:03成りすましうざい
0492デフォルトの名無しさん
2010/02/12(金) 21:33:490493デフォルトの名無しさん
2010/02/12(金) 21:36:350494デフォルトの名無しさん
2010/02/12(金) 21:57:520495デフォルトの名無しさん
2010/02/12(金) 22:02:240496478■478TRIP
2010/02/12(金) 22:04:540497デフォルトの名無しさん
2010/02/12(金) 22:06:050498デフォルトの名無しさん
2010/02/12(金) 22:07:320499デフォルトの名無しさん
2010/02/13(土) 10:57:20ライブラリってありますか?
0500デフォルトの名無しさん
2010/02/13(土) 11:09:370501デフォルトの名無しさん
2010/02/13(土) 11:10:180502デフォルトの名無しさん
2010/02/13(土) 11:13:200503デフォルトの名無しさん
2010/02/13(土) 11:52:310504デフォルトの名無しさん
2010/02/13(土) 13:32:290505デフォルトの名無しさん
2010/02/13(土) 13:35:160506デフォルトの名無しさん
2010/02/13(土) 13:48:550507デフォルトの名無しさん
2010/02/13(土) 14:06:350508デフォルトの名無しさん
2010/02/13(土) 14:46:140509デフォルトの名無しさん
2010/02/13(土) 14:57:37System.IO.StreamReader myFile = new System.IO.StreamReader("D:\\output.txt
");
string myString = myFile.ReadToEnd();
という風に記述して、txtファイルからの読み取りを行っています。
この時にtxtファイルに新たな情報が書き込まれるはずなのですが、
実行中は新たな情報が書き込まれないようです。
一度、読み取りを開放すればよいのでしょうか?
開放する方法も合わせて、教えてください。
0510デフォルトの名無しさん
2010/02/13(土) 15:02:24ただ、それならSystem.IO.File.ReadAllText("D:\\output.txt")のほうが簡単。
0511デフォルトの名無しさん
2010/02/13(土) 15:14:02結構忘れちゃうんだよね。
人によっては using ステートメント使って Close() を呼び出さなくても
自動的に閉じるようにしてるらしいけど。
0512デフォルトの名無しさん
2010/02/13(土) 15:36:08ありがとうございました。
しかし、以下が出てダメでした。
別のプロセスで使用されているため、
プロセスはファイル 'D:\output.txt' にアクセスできません。
0513デフォルトの名無しさん
2010/02/13(土) 15:37:53output.txt使ってるアプリとじろ
0514デフォルトの名無しさん
2010/02/13(土) 16:34:100515デフォルトの名無しさん
2010/02/13(土) 16:34:540516デフォルトの名無しさん
2010/02/13(土) 16:38:16同時に起動しないといけなかったんです。
下記に、同時読み込みのソースがあったので解決できました。
ttp://www.atmarkit.co.jp/fdotnet/dotnettips/707shareread/shareread.html
>514
Visual Studioが叱ってくれるので(ry
0517デフォルトの名無しさん
2010/02/13(土) 16:40:34その辺はFAQレベル。
Windowsでは読み込みモードの他にFILE_SHAREフラグの設定がある。
詳しくはCreateFile APIのドキュメントを読め。
0518デフォルトの名無しさん
2010/02/13(土) 18:56:08何かいいコントロールありますか?
0519デフォルトの名無しさん
2010/02/13(土) 19:13:220520519
2010/02/13(土) 19:17:05探したらすぐ見つかった。
使い方はググレ
http://www.microsoft.com/downloads/details.aspx?FamilyID=130f7986-bf49-4fe5-9ca8-910ae6ea442c&displaylang=ja
0521デフォルトの名無しさん
2010/02/13(土) 22:27:16あなたがググって説明してあげましょう
0522デフォルトの名無しさん
2010/02/13(土) 22:29:180523デフォルトの名無しさん
2010/02/13(土) 22:31:120524デフォルトの名無しさん
2010/02/14(日) 14:36:07アクセスとか使ったことあるけど
プログラムソフトからDB操作とかやったことないから流れがわからない
ひょっとしたらDBに頼らずに配列とか構造体にガシガシ突っ込むやり方でいいの?
0525デフォルトの名無しさん
2010/02/14(日) 14:37:570526デフォルトの名無しさん
2010/02/14(日) 15:13:32NHibernate
0527デフォルトの名無しさん
2010/02/14(日) 15:16:080528デフォルトの名無しさん
2010/02/14(日) 15:19:21カス
0529デフォルトの名無しさん
2010/02/14(日) 15:37:510530デフォルトの名無しさん
2010/02/14(日) 15:41:310531デフォルトの名無しさん
2010/02/14(日) 15:42:57コマンドレベルなら、記録できる操作にあらかじめコマンドを割り振っておく。
そんで、記録のときに、何かのコレクションに突っ込んでいく、みたいな感じかね。
0532デフォルトの名無しさん
2010/02/14(日) 15:47:070533デフォルトの名無しさん
2010/02/14(日) 15:52:080534デフォルトの名無しさん
2010/02/14(日) 15:53:310535デフォルトの名無しさん
2010/02/14(日) 16:03:450536デフォルトの名無しさん
2010/02/14(日) 17:06:190537デフォルトの名無しさん
2010/02/14(日) 17:26:130538デフォルトの名無しさん
2010/02/14(日) 18:52:48上記サンプルを打ち込んだのですが、ローカルIPでは正常に
動くのですが、グローバルIPで指定するとタイムアウトして異常終了
してしまいます。
ポートも開放しているのですが、どうにも原因が分かりません。
どなたか分かる方、教えてください。
0539デフォルトの名無しさん
2010/02/14(日) 20:18:21とりあえず、サーバー実行時にListenしているIPアドレス、ポートが正しいか確認せよ。
確認方法やネットワーク構成についてはスレチなのでここで訊くな。
0540デフォルトの名無しさん
2010/02/14(日) 20:47:280541デフォルトの名無しさん
2010/02/14(日) 20:48:120542デフォルトの名無しさん
2010/02/14(日) 21:12:290543デフォルトの名無しさん
2010/02/15(月) 00:12:52予期せぬ例外が発生した時にログを出す方法は分かるんだが
応答せずに止まったりしたときにエラーログをtxtとかに保存する方法を知りたい。
0544デフォルトの名無しさん
2010/02/15(月) 00:20:100545デフォルトの名無しさん
2010/02/15(月) 00:24:040546デフォルトの名無しさん
2010/02/15(月) 00:27:060547538
2010/02/15(月) 00:35:21ありがとうございます
IP、ポート、ルータの設定等を確認してみました
IP、ポートは共に正しかったのですが、タイムアウトしていたのではなく
RST/ACKパケットが送信されていることが分かりました
確かに開放されているポートで、他ソフトでは正常に通信出来ています。
また、ファイアーウォールの例外設定も行なっています
何か原因と思われることは他にあるでしょうか?
0548デフォルトの名無しさん
2010/02/15(月) 00:44:050550デフォルトの名無しさん
2010/02/15(月) 01:19:470551デフォルトの名無しさん
2010/02/15(月) 01:52:38若干スレチではあるが「プログラミング一般」の範囲内に収まるように配慮して回答したのに、無駄にしないでくれよ。
0552デフォルトの名無しさん
2010/02/15(月) 01:57:04明日、会社からアクセスしてみろ。
0554デフォルトの名無しさん
2010/02/15(月) 05:12:330555デフォルトの名無しさん
2010/02/15(月) 07:26:500556デフォルトの名無しさん
2010/02/15(月) 08:22:510557デフォルトの名無しさん
2010/02/15(月) 10:05:100558デフォルトの名無しさん
2010/02/15(月) 11:15:100559デフォルトの名無しさん
2010/02/15(月) 11:27:540560デフォルトの名無しさん
2010/02/15(月) 11:42:550561デフォルトの名無しさん
2010/02/15(月) 19:19:37具体的には、IDとパス入れるサイトのログイン後のhtmlを取得したい
0562デフォルトの名無しさん
2010/02/15(月) 19:36:39(具体的には右クリックしたヘッダーの列全体を選択したい)のですが、
どういった方法がありますか?
0563デフォルトの名無しさん
2010/02/15(月) 19:40:22ヘッダをクリックしてるようなら選択すればいい
0564デフォルトの名無しさん
2010/02/15(月) 19:44:28ありがとうございます!
0565デフォルトの名無しさん
2010/02/15(月) 19:47:120566デフォルトの名無しさん
2010/02/15(月) 21:47:52これやっても足跡表示できません><
0567デフォルトの名無しさん
2010/02/15(月) 22:38:090568デフォルトの名無しさん
2010/02/15(月) 22:40:52すいません、続きです。
あるいはプロパティ値が変更になった時に発生するイベントは取れないでしょうか?
0569デフォルトの名無しさん
2010/02/15(月) 22:47:40mixi巡回ロボ作ったとき俺もそれ見ながらやったけどできたよ
0570デフォルトの名無しさん
2010/02/15(月) 23:18:20列にアイコンを表示することが出来ます。
これはひとつの列にひとつのアイコンと言うことなのですが、ひとつの列に複数のアイコンを表示することは出来るでしょうか?
0571デフォルトの名無しさん
2010/02/15(月) 23:21:25INotifyPropertyChanged
0572デフォルトの名無しさん
2010/02/16(火) 13:59:301枚のビットマップを走馬灯のようにスクロールさせたいのですが、どの
ようにしたらよいでしょうか。
0573デフォルトの名無しさん
2010/02/16(火) 14:03:59簡単にやりたかったらWPF使ってください
0574デフォルトの名無しさん
2010/02/16(火) 14:07:41走馬灯ってよくわからんが、横スクロールでループさせたいなら
基準点を右端にしたやつと左端にしたやつで2回書けばよろしい
0575デフォルトの名無しさん
2010/02/16(火) 14:12:010576572
2010/02/16(火) 14:15:13「走馬灯のように」ですが、一番左の列を一番右にもっていき、それを繰り
返したいです。
可能でしょうか。
0577デフォルトの名無しさん
2010/02/16(火) 14:19:37OnPaintをオーバーライドしてDrawImageを2回呼ぶ方が応用は利く
0578デフォルトの名無しさん
2010/02/16(火) 14:23:440579デフォルトの名無しさん
2010/02/16(火) 14:24:44トレードオフについては自分で判断するように
0580デフォルトの名無しさん
2010/02/16(火) 14:54:40Bitmap bitmap = Properties.Resources.MikuMiku;
Point p1 = new Point(0, 0);
private void pictureBox1_Paint(object sender, PaintEventArgs e) {
DrawScrollImage(e.Graphics);
}
private void timer1_Tick(object sender, EventArgs e) {
if (p1.X >= bitmap.Size.Width) p1.X = 0;
else p1.X = p1.X + 4;
using (Graphics g = pictureBox1.CreateGraphics()) {
DrawScrollImage(g);
}
}
private void DrawScrollImage(Graphics g) {
g.DrawImage(bitmap, p1);
g.DrawImage(bitmap, new Point(p1.X - bitmap.Size.Width, p1.Y));
}
0581デフォルトの名無しさん
2010/02/16(火) 14:58:540582572
2010/02/16(火) 15:24:35なぜDrawImageを2回呼ぶのかさっぱり意味がわかりませんでした
が、マイナスの値も使えるんですね。
本当にありがとうございました。
0583デフォルトの名無しさん
2010/02/16(火) 16:37:13と一応突っ込んでみる
0584デフォルトの名無しさん
2010/02/16(火) 16:38:170585デフォルトの名無しさん
2010/02/16(火) 16:42:30軽く添削してみようか
・計算の間違い
> if (p1.X >= bitmap.Size.Width) p1.X = 0;
> else p1.X = p1.X + 4;
確実に描画範囲を超える(おそらく、前回の描画が残って何pxか重複する)
増加直後に判定しないと駄目、というか剰余を使え
・描画処理は一箇所(Paint内)にまとめる
描画内容の更新をしたい場合は、InvalidateかRefreshを使う
・タイマーイベントでは描画処理を行わない
Invalidateを使って描画タイミングはOSに一任すべき
処理が重いときなどに、描画がフレーム落ちするのは許容される場合が多いが、
内部計算はできるだけ正確性を確保する必要がある
一般論なので、572が不正確でもフレーム落ちはNGというならRefreshを使う
0586デフォルトの名無しさん
2010/02/16(火) 17:03:280587デフォルトの名無しさん
2010/02/16(火) 17:06:240588デフォルトの名無しさん
2010/02/16(火) 17:15:310589デフォルトの名無しさん
2010/02/16(火) 17:20:020590デフォルトの名無しさん
2010/02/16(火) 17:26:21silverlightに持っていこうとすると度々それが無かったりするので困る。
0591デフォルトの名無しさん
2010/02/16(火) 17:38:55同時に行いたいです。DataGridViewにContextMenuStripを設定すると選択がされなくなってしまうのですが、
何か良い方法はありませんか?
一応CellMouseClickイベントハンドラの内部からContextMenuStrip.Show(int x,int y)を呼び出すことで
機能は果たせたのですが、もっと良いやり方がありそうな気がします。
0592デフォルトの名無しさん
2010/02/16(火) 21:10:020593デフォルトの名無しさん
2010/02/16(火) 21:12:560594デフォルトの名無しさん
2010/02/16(火) 21:44:120595デフォルトの名無しさん
2010/02/16(火) 22:22:25C#のクラスオブジェクトの取り扱いは、
C++で言うとnewでヒープに確保してそのポインタを持ち回っている状態。
だから、コピーコンストラクタは基本的に出番がない。
C++でもコピー不可のクラスなんて珍しくはなかったでしょ。
C#ではそっちのほうが基本というわけ。
XElementのように、自身と同じ型を引数に取るコンストラクタを持たせることは可能。
言語上、何か特別扱いされることはないだけ。
ただ、複製を作るには、Cloneメソッドを定義してやるほうが一般的。
0596デフォルトの名無しさん
2010/02/16(火) 22:28:56反対にユーザーは一切定義できない。
0597デフォルトの名無しさん
2010/02/16(火) 22:31:180598デフォルトの名無しさん
2010/02/16(火) 22:49:30> C#のクラスオブジェクトの取り扱いは、
> C++で言うとnewでヒープに確保してそのポインタを持ち回っている状態。
> だから、コピーコンストラクタは基本的に出番がない。
C#で
MyClass obj_1 = new MyClass();
MyClass obj_2 = obj_1;
とやっても obj_1 は obj_2 にコピーされるわけでなく共通のポインタが代入されるだけってこと?
obj_1 を変更すれば obj_2 にも反映され、 obj_2 を変更すれば obj_1 にも反映されるってこと?
0599デフォルトの名無しさん
2010/02/16(火) 22:51:27そうよ。
それ今まで知らなかったの?
0600デフォルトの名無しさん
2010/02/16(火) 22:51:360601デフォルトの名無しさん
2010/02/16(火) 22:53:180602デフォルトの名無しさん
2010/02/16(火) 22:55:47けどここは初心者用だからそれもありだと思った(南無
0603デフォルトの名無しさん
2010/02/16(火) 23:00:28> そうよ。
> それ今まで知らなかったの?
うん、あまりクラスオブジェクトを別のクラスオブジェクトに代入する機会って無かったから( ´・ω・)
0604デフォルトの名無しさん
2010/02/16(火) 23:01:18http://www.atmarkit.co.jp/fdotnet/dotnettips/326cookie/cookie.html
今もできる?
ログインページのURLとか存在しないんだけど
0605デフォルトの名無しさん
2010/02/16(火) 23:07:34コピーコンストラクタが無いってことはC#でメソッドにクラスオブジェクトを渡して
メソッド内でそのクラスオブジェクトをいじった場合って、元のクラスオブジェクトに
メソッドで施した変更が反映されちゃうってこと?
メソッドへのクラスの値渡しは不可能ってこと?
0606デフォルトの名無しさん
2010/02/16(火) 23:10:41シャローコピーのCloneは却下な。
0607デフォルトの名無しさん
2010/02/16(火) 23:13:210608デフォルトの名無しさん
2010/02/16(火) 23:14:240609デフォルトの名無しさん
2010/02/16(火) 23:17:28C#やJavaやるならいい傾向だよ。
0610デフォルトの名無しさん
2010/02/16(火) 23:17:40結局クラスの実装次第だからあんまり意味がないんだよ
0611デフォルトの名無しさん
2010/02/16(火) 23:20:37はあ?頭大丈夫か?
0612デフォルトの名無しさん
2010/02/16(火) 23:27:520613デフォルトの名無しさん
2010/02/17(水) 00:21:440614デフォルトの名無しさん
2010/02/17(水) 00:53:24それEffective C#にも書いてたのね。
ICloneableは使うなって。
0615デフォルトの名無しさん
2010/02/17(水) 00:59:24いやーいらないでしょ
C#になれるとC++が駄目すぎる・・・
ネイティブコンパイルできて早いだけの言語にしか見えない・・・
0616デフォルトの名無しさん
2010/02/17(水) 00:59:49C++だbニ>>598のコードでコピーされるって話(だよな?)に逆に驚いた
0617デフォルトの名無しさん
2010/02/17(水) 01:00:11むしろどういう場面で便利なんだか思いつかないよ
0618デフォルトの名無しさん
2010/02/17(水) 01:04:42C#なんかでコピーしないで成立するのはGCがいるからじゃないかな・・・と思ってるけど
0619デフォルトの名無しさん
2010/02/17(水) 02:05:56C#だと型が値型か参照型かでコピーされるか参照されるかが決まるから
コードを書くときに常に型に注意しておく必要があるんだよな。
それっていいスタイルなんだろうか?
0620デフォルトの名無しさん
2010/02/17(水) 03:16:560621デフォルトの名無しさん
2010/02/17(水) 07:25:390622デフォルトの名無しさん
2010/02/17(水) 09:05:46逆に変更されることを表してもいいんだが、まぁC++で言うconstの事だけどさ
0623デフォルトの名無しさん
2010/02/17(水) 09:21:49interface IFooRo { int X { get; } int Y { get; }}
class Foo : IFooRo {
public Foo(int x, int y) { X = x; Y = y; }
public int X { get; set; } public int Y { get; set; } }
イミュータブルオブジェクトを使うか。
class FooImutable {
public FooImutable(int x, int y) { X = x; Y = y; }
public int X { get; private set; } public int Y { get; private set; } }
どっちかだね。Stringは後者。
0624デフォルトの名無しさん
2010/02/17(水) 10:01:06他の言語の対応を考えると無理
0625デフォルトの名無しさん
2010/02/17(水) 10:40:190626デフォルトの名無しさん
2010/02/17(水) 10:48:51たいていヒープにメモリ取ると面倒だからでしょ
0627デフォルトの名無しさん
2010/02/17(水) 11:35:43ユーザーコントロール内であるファイルを呼んでリストボックスに流し込みたいのです。
それで、ユーザーコントロールが自分が貼り付けられているタブが選択されたというのを知るにはどうしたら良いのでしょうか?
0628デフォルトの名無しさん
2010/02/17(水) 11:41:30んなこたぁない
const参照渡しが好まれる
それにクラスインスタンスはポインタ・スマートポインタで管理する
初心者は値渡しを好むのは確かだが
0629デフォルトの名無しさん
2010/02/17(水) 12:01:49TabControl>TabPage>UserControlっていう構造になっている
TabControlのSelectedIndexChangedを拾って
選択中のTabPageがUserControlの親コンテナと等しいかどうか確認すればいい
0630デフォルトの名無しさん
2010/02/17(水) 12:38:49ユーザーコントロール内から自分の親コンテナを知るにはどうしたらよいですか?
0631デフォルトの名無しさん
2010/02/17(水) 12:43:18[自分のコントロール].Parent.Nameとかかな
0632デフォルトの名無しさん
2010/02/17(水) 12:47:260633デフォルトの名無しさん
2010/02/17(水) 12:47:560634デフォルトの名無しさん
2010/02/17(水) 13:01:270635デフォルトの名無しさん
2010/02/17(水) 14:17:01また俺が答えてあげるよ。安心しなw
0636デフォルトの名無しさん
2010/02/17(水) 14:33:240637デフォルトの名無しさん
2010/02/17(水) 15:12:450638デフォルトの名無しさん
2010/02/17(水) 15:45:430639デフォルトの名無しさん
2010/02/17(水) 16:15:020641デフォルトの名無しさん
2010/02/17(水) 20:29:170642デフォルトの名無しさん
2010/02/17(水) 20:31:22気にしないほうがいい
スレに居座ってるなり済ましクンだから
0643デフォルトの名無しさん
2010/02/17(水) 20:58:560644デフォルトの名無しさん
2010/02/17(水) 21:04:17C++ではクラスオブジェクトを関数に渡すときは効率を考えてほとんどconst参照渡ししてたね。
いちいち参照渡し指定するのが面倒だからC#ではデフォルトでクラスオブジェクトは
参照渡しするようにしたんだろうけどそれがかえって統一性を無くしちゃったね。
0645デフォルトの名無しさん
2010/02/17(水) 21:10:05でもさ、プログラム作るうえで一時的なコピーは必要かもしれないけど
それ以外ってほとんど参照で足りることの方が多くない?
C#の設計ってものすごくよく考えてあると思うんだけど
0646デフォルトの名無しさん
2010/02/17(水) 21:10:26だね
0647デフォルトの名無しさん
2010/02/17(水) 21:19:560648デフォルトの名無しさん
2010/02/17(水) 21:28:010649デフォルトの名無しさん
2010/02/17(水) 21:42:15処理が重いのでスクロールバーを早くを動かすと追いつきません。
それでスクロールバーのイベントが貯まってきたら、最新のものを除いて
キャンセルしたいのですが、どうやったら出来るのでしょうか?
0650デフォルトの名無しさん
2010/02/17(水) 21:43:48初心者が語ると嫌われるよ
0651デフォルトの名無しさん
2010/02/17(水) 21:43:540652デフォルトの名無しさん
2010/02/17(水) 21:45:10何をやってるんだろうw
0653デフォルトの名無しさん
2010/02/17(水) 21:45:140654デフォルトの名無しさん
2010/02/17(水) 21:50:200655デフォルトの名無しさん
2010/02/17(水) 22:27:33> C#の設計ってものすごくよく考えてあると思うんだけど
そういうこと。
無知な人間でも最良の選択肢を言語側が勝手に推測して選んでくれるという親切設計。
0656デフォルトの名無しさん
2010/02/17(水) 22:39:11C#にconstがないのは
constつける必要もなく大体データが変わるのは
メソッドを持っているクラスだからじゃないの?
class.foo(a);
とかあったらclassの内部データは変わるだろうけどaは普通変えないでしょ。
0657デフォルトの名無しさん
2010/02/17(水) 22:48:54プロパティを持ってるクラスは?
0658デフォルトの名無しさん
2010/02/17(水) 22:51:27値渡しの項目は書き換えじゃないの?
参照渡しの場合は参照の入れ変えだろうし
0659デフォルトの名無しさん
2010/02/17(水) 22:55:44値渡しの項目は書き換えじゃないの?
参照渡しの場合は参照の入れ変えだろうし
0660デフォルトの名無しさん
2010/02/17(水) 22:55:52引数に書き込むな
0661デフォルトの名無しさん
2010/02/17(水) 22:59:000662デフォルトの名無しさん
2010/02/17(水) 23:02:490663デフォルトの名無しさん
2010/02/17(水) 23:03:170664デフォルトの名無しさん
2010/02/17(水) 23:04:490665デフォルトの名無しさん
2010/02/17(水) 23:05:080666デフォルトの名無しさん
2010/02/17(水) 23:06:39C++の参照は危険だが
C#のref/outは安全
0667デフォルトの名無しさん
2010/02/17(水) 23:08:220668デフォルトの名無しさん
2010/02/17(水) 23:15:04refはともかくoutを使うな
http://msdn.microsoft.com/ja-jp/library/ms182131.aspx
0669デフォルトの名無しさん
2010/02/17(水) 23:15:580670デフォルトの名無しさん
2010/02/17(水) 23:19:17おことわりします
0671デフォルトの名無しさん
2010/02/17(水) 23:21:01カシオミニを掛けてもいい。
0672デフォルトの名無しさん
2010/02/17(水) 23:22:46根拠を言いなさい
0673デフォルトの名無しさん
2010/02/17(水) 23:26:02まあ期待しといてやる
0674デフォルトの名無しさん
2010/02/17(水) 23:32:14外から見える部分には推奨されないような気はする。
0675デフォルトの名無しさん
2010/02/17(水) 23:40:05refに統一するとして、初期化はどうするんだ?
intとかは適当に数字の0とか入れて渡せばいいがそれ以外の型に関してはどうする?
0676デフォルトの名無しさん
2010/02/17(水) 23:53:25refも使うな
殺すぞ
0677デフォルトの名無しさん
2010/02/17(水) 23:54:270678デフォルトの名無しさん
2010/02/17(水) 23:56:00http://carview-img02.bmcdn.jp/carlife/images/user/145983/p1.jpg
0679デフォルトの名無しさん
2010/02/17(水) 23:58:430680デフォルトの名無しさん
2010/02/18(木) 00:05:17通報してきた
0681デフォルトの名無しさん
2010/02/18(木) 03:38:190682デフォルトの名無しさん
2010/02/18(木) 03:39:230683デフォルトの名無しさん
2010/02/18(木) 03:40:390684デフォルトの名無しさん
2010/02/18(木) 07:37:51うん
0685デフォルトの名無しさん
2010/02/18(木) 11:52:03板住人の総意だけど…君は負け組です。
0686デフォルトの名無しさん
2010/02/18(木) 13:10:15そういう時って何かいい方法はいったい?
outをガンガン並べていくとか?
0687デフォルトの名無しさん
2010/02/18(木) 13:20:23IronPythonなどの動的言語では各自勝手に実装してIDynamicMetaObjectProviderでdynamicサポート
するのが普通だしC#でも匿名型+dynamicの方が可読性からいえばまだマシだし
0688687
2010/02/18(木) 13:26:47使うなってことだな
0689デフォルトの名無しさん
2010/02/18(木) 13:57:220690デフォルトの名無しさん
2010/02/18(木) 14:04:33var t20 = new Tuple<int,int,int,int,int,int,int,
Tuple<int,int,int,int,int,int,int, Tuple<int,int,int,int,int,int>>>
(1,2,3,4,5,6,7,new Tuple<int,int,int,int,int,int,int,
Tuple<int,int,int,int,int,int>>(8,9,10,11,12,13,14,
new Tuple<int,int,int,int,int,int>(15,16,17,18,19,20)));
0691デフォルトの名無しさん
2010/02/18(木) 14:08:34本当はコンパイラが生成するべき。C#でサポートされることはまずないだろうけど。
0692デフォルトの名無しさん
2010/02/18(木) 14:19:20ループで廻して並べ替えればもちろん出来るのですが、
一発で変換することはできませんでしょうか?
MATLABでいうところのreshape関数なんですが?
0693デフォルトの名無しさん
2010/02/18(木) 14:22:46.NETでは基本的に多次元配列は非常に冷遇されていてほとんど便利な機能がないので
できれば多次元配列は使わない方がいい
0694デフォルトの名無しさん
2010/02/18(木) 14:24:260695デフォルトの名無しさん
2010/02/18(木) 15:27:280696デフォルトの名無しさん
2010/02/18(木) 15:37:430697デフォルトの名無しさん
2010/02/18(木) 15:59:07戻り値を複数返したいとき、わざわざクラスか構造体作らなくても
Tupleで返せるようになる?
0698デフォルトの名無しさん
2010/02/18(木) 16:10:43Item1, Item2みたいな無意味な名前のプロパティを持った型にすぎないので可読性最悪。
匿名型をdynamicとして受け渡しするほうがずっとマシ。
0699デフォルトの名無しさん
2010/02/18(木) 18:15:070700デフォルトの名無しさん
2010/02/18(木) 18:18:250701デフォルトの名無しさん
2010/02/18(木) 18:25:490702デフォルトの名無しさん
2010/02/18(木) 18:29:410703デフォルトの名無しさん
2010/02/18(木) 21:34:03DataTable で DataTime.Ticks (UInt64) の列があります。
これをテーブルにデータを再設定することなく日付時刻型として表示することは可能でしょうか?
べたな方法では、Ticks の列の値を取得して DateTime 型の変数に代入し、
改めて同じテーブルの日付時刻型の列に代入する方法があると思うのですが、
レコード数が多いと時間が気に掛かります。
たとえば
DataTable.Columns.Add( new DataColumn( "name", typeof( DateTime ), "Convert( Ticks, 'DateTime' )" ) );
などの方法で出来ないものとか考えているのですがうまく行きません。
よい手抜き‥‥もとい。きれいなやり方はないでしょうか。
0704デフォルトの名無しさん
2010/02/18(木) 23:41:360705デフォルトの名無しさん
2010/02/19(金) 00:05:23>レコード数が多いと時間が気に掛かります
これってデータベース使って読みこんでいるデータ?
0706デフォルトの名無しさん
2010/02/19(金) 00:08:26Tuple.Createを使えばもう少しだけましになる。
0707デフォルトの名無しさん
2010/02/19(金) 00:12:29DataDridView にバインドして表示します。
出来たら、DataTable をそのままバインドするだけに出来ないかと。
>>705
はい。
ただ、DB 側との I/F は既に決まっていて、DataTable にシリアル値の
列として渡されてくるので。
出来るだけその部分には触らないで済ませられないかと考え中なのです。
0708デフォルトの名無しさん
2010/02/19(金) 00:17:280709デフォルトの名無しさん
2010/02/19(金) 00:24:110710デフォルトの名無しさん
2010/02/19(金) 00:33:50後悔はたくさんあるがとりあえずこんな感じで表示したいってことかな?
ttp://www.rupan.net/uploader/download/1266507166.png
0711デフォルトの名無しさん
2010/02/19(金) 06:02:12Tuple.Createが使えるのは8つ以下の最後だけ。
var hoge = new Tuple<int,int,int,int,int,int,int,Tuple<int,int>>(1,2,3,4,5,6,7, Tuple.Create(8,9));
(1, 2, 3, 4, 5, 6, 7, 8, 9)
2回使うと意味が変わる。
var hoge = Tuple.Create(1,2,3,4,5,6,7, Tuple.Create(8,9));
(1, 2, 3, 4, 5, 6, 7, (8, 9))
0712デフォルトの名無しさん
2010/02/19(金) 10:08:09ごひいきありがとうございまた。頑張ります(´・ω・`)
0713デフォルトの名無しさん
2010/02/19(金) 17:57:130714デフォルトの名無しさん
2010/02/19(金) 18:42:57System.IO.StreamReader sr;
string kaigyou = "改行コードは\rCRです。";
sr = new System.IO.StreamReader(kaigyou);
↑ArgumentExceptionというエラーが出てしまいます。
どうしたらエラーを回避できますか?
0715デフォルトの名無しさん
2010/02/19(金) 19:22:06> sr = new System.IO.StreamReader(kaigyou);
StreamReaderのコンストラクタに指定するstring型の引数はオープンするファイルパスだから
"改行コードは\rCRです。"というファイルパスが無効→引数エラーが返されるってことです。
文字列を指定して1行取得したいのならStringReaderで実現できますよ。
StringReaderのReadLineメソッドで改行文字までを一連の文字列として返してくれます。
System.IO.StringReader sr;
string kaigyou = "改行コードは\rCRです。";
sr = new System.IO.StringReader(kaigyou);
System.Windows.Forms.MessageBox.Show(sr.ReadLine());
0716デフォルトの名無しさん
2010/02/19(金) 19:53:05ありがとうございます。
0717デフォルトの名無しさん
2010/02/19(金) 20:05:260718デフォルトの名無しさん
2010/02/19(金) 20:33:34初心者向けだと「フォームの移動」「メッセージボックスの表示」など基本的なことしか書いてないので…。
オススメがあれば。
0719デフォルトの名無しさん
2010/02/19(金) 20:39:340720デフォルトの名無しさん
2010/02/19(金) 20:57:49C#をもっと深く使いたいとかいうこと?
Effective C#
More Effective C#
C# クックブック 3版
.NETフレームワークのためのC#システムプログラミング
0721703
2010/02/19(金) 21:41:29ありがとうございました。
会社で試して動作を確認できました。
>>710 素晴らしいです。こういう方法があったのですね。
こういうのを見ると C# って面白いと感じます。もっと引き出しを増やせるように頑張ってみようと思います。
0722デフォルトの名無しさん
2010/02/19(金) 21:56:56誰ですか?
0723デフォルトの名無しさん
2010/02/19(金) 22:11:450724デフォルトの名無しさん
2010/02/19(金) 22:18:020725デフォルトの名無しさん
2010/02/19(金) 22:20:380726デフォルトの名無しさん
2010/02/19(金) 22:38:180727デフォルトの名無しさん
2010/02/19(金) 22:43:480728デフォルトの名無しさん
2010/02/19(金) 23:05:400729デフォルトの名無しさん
2010/02/19(金) 23:24:040730デフォルトの名無しさん
2010/02/19(金) 23:41:250731デフォルトの名無しさん
2010/02/20(土) 06:56:33多分いろいろなクラスの使い方が分かる本ってことなんだろう(自分がそうだった)
だが、ちゃんとC#の文法が理解できてれば、参考書見なくても結構わかるよ。
主にメソッドの名前とか入力してるときに出てくるコメント文で。
ほかは、ネット見ながら自分のやりたいことを解決(コピペじゃ駄目)してくくらいでいいんじゃないだろうか
まあ、自分で書いてて、憶測にしかすぎないな、と思ったがとりあえず書きこ
違ったらごめんね
0732デフォルトの名無しさん
2010/02/20(土) 09:15:280733デフォルトの名無しさん
2010/02/20(土) 10:34:230734デフォルトの名無しさん
2010/02/20(土) 11:10:170735718
2010/02/20(土) 13:36:49クラスの使い方とか、Tipsとかが載っている本があれば
暇なときパラパラ見れるなぁと思っただけです。
>>734は誰だ?
0736デフォルトの名無しさん
2010/02/20(土) 15:18:550737デフォルトの名無しさん
2010/02/20(土) 15:26:240738デフォルトの名無しさん
2010/02/20(土) 15:32:420739デフォルトの名無しさん
2010/02/20(土) 16:52:18クラスの使い方はMSDN見た方がいいと思う。
0740デフォルトの名無しさん
2010/02/20(土) 16:54:220741デフォルトの名無しさん
2010/02/20(土) 17:00:130742デフォルトの名無しさん
2010/02/20(土) 18:04:20ぐぐればクラス名ぐらいはわかるから、後はMSDN見ればいいだろ。
XMLだったら「.NET XML」で検索すればいい。
0743デフォルトの名無しさん
2010/02/20(土) 19:21:200744デフォルトの名無しさん
2010/02/20(土) 19:26:040745デフォルトの名無しさん
2010/02/20(土) 19:48:540746デフォルトの名無しさん
2010/02/20(土) 20:10:36IDisposableって解放るものがなければ処理することもないので要らんよ。
そのインスタンス内に子オブジェクトがいて、それらを片付けたいとか、大量にメモリ確保
したので解放したいとか、そういうのを解放したい時に実装する。
だから、解放するべきものがなければ要らない。
0747デフォルトの名無しさん
2010/02/20(土) 20:16:35質問の意図から随分離れた回答のように見える
0748デフォルトの名無しさん
2010/02/20(土) 20:33:39http://msdn.microsoft.com/ja-jp/library/s9bwddyx(VS.80).aspx
正直、ずいぶんと間の抜けたコーディングにしか思えない。
何を意味するのか不明確なboolを引数にとるメソッドなんか書くより、
明確にマネージ、アンマネージそれぞれのリソースを解放する別々のメソッドを
書く方がずっと分かりやすいと思うんだけど
0749デフォルトの名無しさん
2010/02/20(土) 20:44:06別々にすると派生クラスでオーバーライドした時に呼び出し順がおかしくなる
0750デフォルトの名無しさん
2010/02/20(土) 20:49:09マネージドリソースとアンマネージドリソースの開放を区別する意味がいまいちわからんがいいか
0751デフォルトの名無しさん
2010/02/20(土) 20:54:54AをDisposeした場合はBも連鎖的にDisposeする。これがDispose(true)のパターン。
AがFinalizeした場合はBも個別にGCされるのでAは何もしない。
Aより先にBがGC済みのケースもありえる。これがDispose(false)のパターン。
0752デフォルトの名無しさん
2010/02/20(土) 20:57:49厳密に言うとそれはありえない
ファイナライザが呼び出されている可能性があるだけ
ファイナライザを実装するとGCのタイミングが遅れるというのは有名だけど
これは >Aより先にBがGC済み の状況を作らないようにするため
0753デフォルトの名無しさん
2010/02/20(土) 20:59:52Dispose(bool)は実装したことなかった。
そういう差があるんだ。勉強になるな。
後でよく調べておこう。
0754デフォルトの名無しさん
2010/02/20(土) 21:06:230755デフォルトの名無しさん
2010/02/20(土) 21:12:570756デフォルトの名無しさん
2010/02/20(土) 21:16:19class B : A;
class C : A;
void func1( B );
void func2( C );
があり、中で使用する func1 または func2 の関数のみが異なるある関数があったとします。
こういう関数が多く、中で呼び出す関数以外はすべて同じなのでこれをまとめたいと考えます。
そこでデリゲートを使用して呼び出す関数をパラメータで渡すことを考えました。
delegate void dele( A );
void commonFunc( int para1, int para2, dele callFunc );
これで、
commonFunc( 1, 2, func1 );
などとやると、もちろんデリゲートの型が違うためコンパイラに怒られます。
こういう場合にキレイにまとめるよい方法はあるでしょうか?
0757デフォルトの名無しさん
2010/02/20(土) 21:32:37func2をCのインスタンスメンバに
じゃダメなの?
0758デフォルトの名無しさん
2010/02/20(土) 21:33:01そ、そうなのか……。
ひょっとして、オレのアンマネージドなオブジェクトの管理は相当遅れてるのかもしれん……。
0759デフォルトの名無しさん
2010/02/20(土) 22:00:38void commonFunc<T>( int para1, int para2, dele<T> callFunc ) where T : A;
commonFunc<B>( 1, 2, func1 );
きちゃないな
0760デフォルトの名無しさん
2010/02/20(土) 22:25:34commonFunc( 1, 2, a => func1(a as B) );
でいけるが、拡張メソッドで
public static void CommonFunc<T>( this T obj, int p1, int p2, Action<T> f ) where T : A;
とするのがスマートかも
0761756
2010/02/20(土) 22:36:08>>757
そう言うやり方もありますね。
パラメータのクラスインスタンスはほぼデータ受け渡し用のものなので、
それ以外の情報を載せることは考えていませんでした。
できれば今の考えで進めたいのですが、ダメだった場合にその方向も考えてみます。
>>759
なるほど。ジェネリックってものがありましたね。
十分だと思います。試してみます。
>>760
上も下もどっちも知らなかったです。。。
キャストは大丈夫だと思います。
ずいぶんとキレイにまとまるものなのですね。すげー。
最低でも調べてモノにして置こうと思います。
0762デフォルトの名無しさん
2010/02/21(日) 01:10:44static void Main(string[] args)
{
var b = new B();
var c = new C();
CommandFunc(1, 2, b, a => Func1(b as B));
CommandFunc(1, 2, c, a => Func2(c as C));
}
delegate void dele(A a);
static void CommandFunc(int para1,int para2,A a, dele callFunc)
{
// Func1かFunc2を実行したい
callFunc(a);
}
static void Func1(B b) { b.MethodB(); }
static void Func2(C c) { c.MethodC(); }
}
class A { }
class B : A { public void MethodB() { Console.WriteLine("Bだよ"); } }
class C : A { public void MethodC() { Console.WriteLine("Cだよ"); } }
微妙すぎる
0763デフォルトの名無しさん
2010/02/21(日) 04:05:51toolstripを貼り付けたフォームで、フォームの内容をスクロールさせるとtoolstripもスクロールしてフォーム外
にいっちゃうのですが、スクロールしても上部に固定で表示させることはできないでしょうか?
ぐぐってみるとパネルをフォーム上に置いて、パネルをスクロールさせればいいという解決法はあったのですが
フォームに直接ビットマップを描画しているため、できればパネルを使わずになんとかしたいのですが他に方法
はないでしょうか?
ないようでしたら、諦めます。
0764デフォルトの名無しさん
2010/02/21(日) 04:19:14Form
├toolstrip
└label
Zオーダー調整して
labelの
・DockをFill
・AutoSizeをfalse(だったと思う
0765デフォルトの名無しさん
2010/02/21(日) 04:27:20やり方は色々あるが、とりあえずPanelを使え。
0766デフォルトの名無しさん
2010/02/21(日) 04:28:23PanelにUserControl貼り付けたら同じじゃん。
0767デフォルトの名無しさん
2010/02/21(日) 04:32:13コントロールが多段になるのがいやってことじゃないの?
C#のパネルって確か枠だけだったので描画したいなら
ラベルとかを代わりの台座にすればいいだけだし
0768デフォルトの名無しさん
2010/02/21(日) 05:53:410769デフォルトの名無しさん
2010/02/21(日) 07:01:540770デフォルトの名無しさん
2010/02/21(日) 09:02:05みたいに例えば System.Windows.Forms を指定してソースに書いておけば自動的に参照追加してくれるプリプロセッサないのかお(´・ω・`)
0771デフォルトの名無しさん
2010/02/21(日) 09:57:19センターに表示するようにしたんだけど、印刷プレビューで見ると
その引いた分だけ左によってしまっています。
これを直す方法はないでしょうか?
0772デフォルトの名無しさん
2010/02/21(日) 10:54:49thx
0773デフォルトの名無しさん
2010/02/21(日) 10:57:01それやろうとしたらたぶんこんなことになるよ
#pragma reference("System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089")
0774デフォルトの名無しさん
2010/02/21(日) 11:18:460775デフォルトの名無しさん
2010/02/21(日) 13:34:12ToolStrip系はDockしても、.NET1.1以前のMainMenuのようにフォームのクライアント領域を
削る形にはならないんだな。
こんな仕様望む奴いるのかしら。
0776デフォルトの名無しさん
2010/02/21(日) 13:38:260777デフォルトの名無しさん
2010/02/21(日) 14:03:220778デフォルトの名無しさん
2010/02/21(日) 15:35:08パネルとかコンテナ使えばいいので問題ない
0779デフォルトの名無しさん
2010/02/21(日) 16:46:210780デフォルトの名無しさん
2010/02/21(日) 17:43:37プラグインの仕様にもなってるし極力弄りたくなかったのですが、素直にパネルに変更します。
回答ありがとうございました。
0781デフォルトの名無しさん
2010/02/21(日) 18:15:480782デフォルトの名無しさん
2010/02/21(日) 18:18:17どういうものかは知らんがパネルはさもうが問題ねーだろ
どんなコードの書き方してるんだよ
0783デフォルトの名無しさん
2010/02/21(日) 22:26:31振り上げておけ 相手はパーだ
0784デフォルトの名無しさん
2010/02/21(日) 22:31:170785デフォルトの名無しさん
2010/02/21(日) 22:32:200786デフォルトの名無しさん
2010/02/21(日) 22:46:53いやいや、フォームに直接DirectXで描画しているからパネルのせると何も見えなくなって
しまうんですよ。
それと描画のルーチンにFormを渡しているからパネルに描画だとPanelに変えないといけない
というのがあって、それで聞いてただけです。
とりあえず、すいませんでした。
0787デフォルトの名無しさん
2010/02/21(日) 23:32:25じゃあPanelに貼り付けたUserControlでDirectXの描画やればいいじゃん。
そんなに難しくはないよ。
0788デフォルトの名無しさん
2010/02/21(日) 23:42:06質問者じゃないけど、無理矢理絡むなよw
意味不明すぎる。
0789デフォルトの名無しさん
2010/02/21(日) 23:57:22取るので Control なら何でも対象にできる。
0790デフォルトの名無しさん
2010/02/22(月) 09:10:390791デフォルトの名無しさん
2010/02/22(月) 14:10:42(int)'1'などとすると49=16進数の31とうが帰ってくるので正常でした。
7Eの~までは正常に動いているようなのですが、
半角カナのあ('ア')はなぜか65393=16進数のff71になってしまいます。
あれ?と思い、VB.NETでASC関数を使用したところ177=16進数のb1が帰ってきて問題ないようでした。
正しく変換を行うためにはどのように処理すればいいのでしょうか?
よろしくお願いいたします。
0792デフォルトの名無しさん
2010/02/22(月) 14:18:59で'ア'はUTF-16ではU+FF71にマップされているから、0xff71になるのは全く正しい
'ア'を0xb1にマップするのはShift_JISで、それらの文字符号化方式を扱うのはEncodingクラス
0793デフォルトの名無しさん
2010/02/22(月) 14:38:450794デフォルトの名無しさん
2010/02/22(月) 15:02:45ありがとうございます。
なるほど・・・
Encodingクラスを使用するといけそうですね・・・
もうすこしエンコード勉強してみます
ありがとうございました。
0795デフォルトの名無しさん
2010/02/22(月) 15:09:23半角も全角もcharだと1文字
今までの感覚で作ると問題になることがあるから注意
0796デフォルトの名無しさん
2010/02/22(月) 16:17:56ありがとうございます。
今のところこの仕様で2バイト文字を扱う必要はないようなので、ここでは気にしませんが、
そのうち・・・出てきたときには気をつけないといけないかと。
と、仰っている意図を勘違いしてたらダメダメですが・・・
0797デフォルトの名無しさん
2010/02/22(月) 16:20:040798デフォルトの名無しさん
2010/02/22(月) 17:53:01C#では通例すべてのメソッド名の頭文字が大文字なのはどうしてですか?
.NET Frameworkでの慣例がそうだから、というのであれば、どうしてそれが慣例なのか知りたいです。
0799デフォルトの名無しさん
2010/02/22(月) 18:19:51「.NET Frameworkでは」「public or protectedの」「メンバ名」がそういう命名規則
ついでに言うとこれは「クラスライブラリ開発者向け」ね
.NET Frameworkの標準ライブラリがそれに従ってるので
それを利用する側も自然とそうしたコーディングになりやすいだけ
理由? .NET Frameworkのデザイナがそうした方が見やすいと感じたからだろ
もうちょっと言うと
プロパティの先頭が小文字だとprivateフィールドと区別が付けにくい、
プロパティの先頭が大文字なのにメソッドの先頭が小文字とか不自然、
とかその辺考えられる
0800デフォルトの名無しさん
2010/02/22(月) 19:04:09なるほど、言われてみるとその通りと感じました。
ありがとうございます。
0801デフォルトの名無しさん
2010/02/22(月) 20:44:150802デフォルトの名無しさん
2010/02/22(月) 21:45:160803デフォルトの名無しさん
2010/02/23(火) 18:44:00自作しないと無理
0804デフォルトの名無しさん
2010/02/23(火) 22:25:09そんな関数ありますでしょうか?
自作しないと無理?
0805デフォルトの名無しさん
2010/02/23(火) 22:29:350806デフォルトの名無しさん
2010/02/23(火) 22:32:03ない。特に浮動小数点数に寄る0.75ならCLR上では実装依存だ。
基本的にはMemoryStreamに一旦書き出した後で
byte[]で読みなおす形になるだろうな。
0807デフォルトの名無しさん
2010/02/23(火) 22:52:530808デフォルトの名無しさん
2010/02/23(火) 23:18:170809デフォルトの名無しさん
2010/02/23(火) 23:19:02いや、CLIで浮動小数点数はIEEE754と決まっているでしょ。
実装依存ではないはず。
0810デフォルトの名無しさん
2010/02/23(火) 23:26:06夜遅くだ。
もういいから。
0811デフォルトの名無しさん
2010/02/23(火) 23:31:11いやもうじゃなくて最初からいらないけどね。
本人面白いと思ってるのか知らんが、本当にうっとうしいなこういう馬鹿は
0812デフォルトの名無しさん
2010/02/23(火) 23:45:53The Root of .NET Frameworkにそう書いてある。
0813デフォルトの名無しさん
2010/02/23(火) 23:54:570x3F=63
0x40=64
そっからどうやったら0.75に持っていけるのか教えてくださ〜い
(63/16)+(64/256)= 4.1875
あれ?( ゚д゚)ポカーン
0814デフォルトの名無しさん
2010/02/23(火) 23:59:23>3F40 0000
眠いのであまりまじめにやる気ないけどこれが浮動小数点なら
それは違うんじゃね?
0815デフォルトの名無しさん
2010/02/23(火) 23:59:42Wikipediaの浮動小数点数の項目でも見れ
0816デフォルトの名無しさん
2010/02/24(水) 00:00:51http://upload.wikimedia.org/wikipedia/commons/d/d2/Float_example.svg
サイズ的にfloatぽいのでこういうビットで分けて考えないと
0817デフォルトの名無しさん
2010/02/24(水) 00:04:080 0111 1110 100 0000 0000 0000 0000
これを
単精度の場合: (-1) 符号部×2指数部 ‐127 ×(1+仮数部)
に当てはめて計算しる
0818デフォルトの名無しさん
2010/02/24(水) 00:28:24調べてみてもいまいちピンときません・・・
0819デフォルトの名無しさん
2010/02/24(水) 00:31:27IDisposableなクラスを書き始めたら、すぐわかるさ。
0820デフォルトの名無しさん
2010/02/24(水) 00:39:07指数部:0111が5
仮数部:11101000000000000000000が7602176
で・・・
2*5-127*(1+7602176)=-965 476 469
あれぇ?
0821デフォルトの名無しさん
2010/02/24(水) 00:40:560822デフォルトの名無しさん
2010/02/24(水) 00:42:31馬鹿だ!おれ! 7
いっぺん風呂に入って頭冷やしてくる!
0823デフォルトの名無しさん
2010/02/24(水) 00:51:350824デフォルトの名無しさん
2010/02/24(水) 01:01:320825デフォルトの名無しさん
2010/02/24(水) 01:02:430826デフォルトの名無しさん
2010/02/24(水) 01:20:52異なる型のリスト全体に特定のメソッドを全て実行したいときに便利
あとはDIコンテナがらみの差し替えで便利というか必須
0827デフォルトの名無しさん
2010/02/24(水) 01:54:020.75をを二進法で書くと 0.1001011
小数点を左に移動させ、1だけを左に残す。1 001011*2^(-1) これが正規化された浮動小数点数である。
0 で埋め 23ビットにする 001 0110 0000 0000
指数-1に127加算。126で01111110
まとめると
0 01111110 001 0110 0000 0000
区切り直して
0011 1111 0001 0110 0000 0000
16進では
3 F 1 6 0 0
こうですか?添削お願いしま〜す!
0828デフォルトの名無しさん
2010/02/24(水) 02:38:340829デフォルトの名無しさん
2010/02/24(水) 06:43:020830デフォルトの名無しさん
2010/02/24(水) 06:46:560831デフォルトの名無しさん
2010/02/24(水) 08:15:050832デフォルトの名無しさん
2010/02/24(水) 09:59:160833デフォルトの名無しさん
2010/02/24(水) 10:18:45最上位の Form をフルスクリーン化して、親 Control を一つずつクライアントサイズまで拡張しないとダメ?
0834デフォルトの名無しさん
2010/02/24(水) 10:26:43Form1
namespace WindowsApplication {
public partial class Form1 : Form {
public Form() {
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e) {
string[] args = {"test","answer"};
Form2 form2 = new Form2(args);
form2.Show();
}
}
}
0835デフォルトの名無しさん
2010/02/24(水) 10:27:060836デフォルトの名無しさん
2010/02/24(水) 10:28:03namespace WindowsApplication {
public partial class Form2 : Form {
public Form(string[] args) {
InitializeComponent();
if (args[1] == "test") test();
else if (args[1] == "test2") test2();
}
private void test() {
MessageBox.Show(args[2]);
}
private void test2() {
MessageBox.Show(args[2]);
}
のように書くと、test()とtest2()の MessageBox.Show(args[2]);
で引数がない、とエラーになります。
Form2のどこでstring[] argsを宣言すれば、Form2全体で使えますか?
よろしくお願いいたします。
0837デフォルトの名無しさん
2010/02/24(水) 10:32:28取り敢えず「フィールド (C# プログラミング ガイド)」でぐぐれ
0838デフォルトの名無しさん
2010/02/24(水) 10:36:51やっぱり一発でフルスクリーン化してくれるような便利な仕組みはないってことか
0839デフォルトの名無しさん
2010/02/24(水) 10:39:150840デフォルトの名無しさん
2010/02/24(水) 10:44:05>最上位の Form をフルスクリーン化して、親 Control を一つずつクライアントサイズまで拡張しないとダメ?
基底のFormをフルスクリーンして子Control ・・・・の間違いじゃね?
サイズが変更した際に発生するイベントに調整用ロジック書いておけば
全部に連動するけどな
というかFormに貼られてるコントロールの状態でもかわる
DockでFillとかしてあれば勝手にサイズかわるけど
Noneとかされてると自分で計算するしかないだろうし
0841デフォルトの名無しさん
2010/02/24(水) 10:44:48スコープの概念をわかっていない超初歩的な話
基本的には{}の中だけ有効
0842デフォルトの名無しさん
2010/02/24(水) 11:35:20ありがとうございます。
Form2
namespace WindowsApplication {
public partial class Form2 : Form {
string[] args;
public Form() {
InitializeComponent();
if (args[1] == "test") test();
else if (args[1] == "test2") test2();
}
とすると、Form1の
private void button1_Click(object sender, EventArgs e) {
string[] args = {"test","answer"};
Form2 form2 = new Form2(args);
form2.Show();
}
で、引数をひとつ指定できるものはありません、とエラーになります。
かといって、
private void button1_Click(object sender, EventArgs e) {
string[] args = {"test","answer"};
Form2 form2 = new Form2();
form2.Show();
}
では、引数がわたらない、ということで途方にくれております。
0843デフォルトの名無しさん
2010/02/24(水) 11:38:100844デフォルトの名無しさん
2010/02/24(水) 11:40:36836と全然違うじゃねえか
Form2にプロパティ作ってShowする前に設定
0845デフォルトの名無しさん
2010/02/24(水) 11:41:100846デフォルトの名無しさん
2010/02/24(水) 11:43:02Form1からForm2に渡したい値がいろいろある、ということと、
初心者なので、引数ならできそうだ、ということです。
0847デフォルトの名無しさん
2010/02/24(水) 11:45:35Form1はForm2のインスタンスを持ってるんだから
Form2側で連絡用のエリアのset作るとかすればいいんでないの?
0849デフォルトの名無しさん
2010/02/24(水) 11:50:35初心者君、とりあえず教えてもらったコードがどういう意味なのかくらいは考えたまえ。
0850デフォルトの名無しさん
2010/02/24(水) 11:56:31>やっぱり一発でフルスクリーン化してくれるような便利な仕組みはないってことか
確かにそんな仕組みはないが、(基本的ににはタイトルバーとフレームを消去した上でプライマリスクリーンにはめ込む)
System.Windows.Formsのコントロールの自動再配置の仕組みは異常と言っていいくらい出来がいいぞ。
やり方が色々あるから勉強するべし。
0851デフォルトの名無しさん
2010/02/24(水) 11:57:13プロパティを使うか、setを使うからしいのですが、
コードで教えていただけるとうれしいです。
0852デフォルトの名無しさん
2010/02/24(水) 12:13:340853デフォルトの名無しさん
2010/02/24(水) 12:14:59どちらが一般的なのでしょうか。つまらない質問ですが、よろしくお願いします。
0854デフォルトの名無しさん
2010/02/24(水) 12:16:35タイミングはご自由に
0855デフォルトの名無しさん
2010/02/24(水) 12:21:48どちらも一般的に行われているということでしょうか…
0856デフォルトの名無しさん
2010/02/24(水) 12:27:20たとえばアプリの表示サイズとか見た目に関わる情報を復元したい場合は
Formが表示される前に読み込みを終えて、座標とかを反映しておきたいだろうし
特にそういうのがなければ表示した後任意に読み込みを行うボタン押してもらうとか
0857デフォルトの名無しさん
2010/02/24(水) 12:30:49それ以外はとりあえずウインドウを表示してからにしたい
0858デフォルトの名無しさん
2010/02/24(水) 12:39:490859デフォルトの名無しさん
2010/02/24(水) 12:41:50そんな設計までここの住人にやらせるのかよ
0860デフォルトの名無しさん
2010/02/24(水) 12:54:03その場合は、どちらを選ぶのでしょうか。
0861デフォルトの名無しさん
2010/02/24(水) 13:54:54Loadedなんかの中に書いてる
0862デフォルトの名無しさん
2010/02/24(水) 13:56:490863デフォルトの名無しさん
2010/02/24(水) 14:40:550864デフォルトの名無しさん
2010/02/24(水) 14:46:580865デフォルトの名無しさん
2010/02/24(水) 15:35:250866デフォルトの名無しさん
2010/02/24(水) 16:30:27デザイナーが勝手にあれこれやってくれるのであんまり意識はしないけど
プログラムの起動の順番としては
[Program.cs] Main()
↓
[Form1.cs] Form1()
↓
[Form1.Designer.cs] InitializeComponent()
[]はソース名称
InitializeComponent()はregionで折りたたまれてる
Form1のコンストラクタからInitializeComponentを呼び出してこの中で始めて
デザイナーでデザインした部品の初期化が行われるんだわ(あってるよね?
0867デフォルトの名無しさん
2010/02/24(水) 20:10:05まあその辺は機能的な要件さえ満たせるのならどうでもいいでしょ。
逆に聞きたいんだけど、今の世の中ただでさえ覚えることがたくさんあるのに、
そんなどうでもいいことまで一般的なルールとやらを覚えて、従いたいとか思う?
俺は思わんけどなあ。
そんなものに何のメリットも感じられないし。
0868デフォルトの名無しさん
2010/02/24(水) 21:08:38このサイトにログインした後のhtml取得したいんだけどどうしたらいいの?
0869デフォルトの名無しさん
2010/02/24(水) 21:46:150870868
2010/02/24(水) 21:48:00ログインできてない
0871デフォルトの名無しさん
2010/02/24(水) 21:51:11おれはこうするな〜でいいんだよw
0872804
2010/02/24(水) 23:20:19で、16進での正解は見れたけれど、>>827のどこから間違えたのか未だ悶々としてます。
何が悪いのでしょうか? (おつむが悪いのは既に自覚してます)
0873デフォルトの名無しさん
2010/02/24(水) 23:24:53というか、そういう低レベル(ハードウェアよりと言う意味で)な話をするのは
C#は向いてないから、C++に切り替えて同じことをやった方が早いよ。
というかfloatに値突っ込んでデバッガで止めてゴニョゴニョするだけですぐわかる。
0874デフォルトの名無しさん
2010/02/24(水) 23:38:410.75 = 0.5 + 0.25 = 2^(-1) + 2^(-2)だから、
二進法にすると0.11のはず。
0875デフォルトの名無しさん
2010/02/24(水) 23:43:43つうか、一通りどこかのサイトでC#学んでから質問したほうがいいよ。
質問も支離滅裂すぎてイミフすぎるし。
0876デフォルトの名無しさん
2010/02/24(水) 23:45:28そのカーソルの下のワードを取得したいんだけど
どうすればよかと?
GetCharFromPositionを使えば一文字だけ取得できるけど
一文字じゃなくて単語を取りたいんだ
0877デフォルトの名無しさん
2010/02/24(水) 23:50:510878デフォルトの名無しさん
2010/02/24(水) 23:54:12前後に伸ばしてって、区切り文字のとこで終了。
0879デフォルトの名無しさん
2010/02/24(水) 23:58:31そういう話じゃなくて、0.75がなぜ3F400000になるかが気になってるんだろ
0880デフォルトの名無しさん
2010/02/25(木) 00:03:08文字から伸ばす?
この方法じゃなくて、行数と左から何文字目かを取得して、そっから拡張するって事?
0881デフォルトの名無しさん
2010/02/25(木) 00:04:51GetCharIndexFromPositionで今の位置とってくるわけよ
0882デフォルトの名無しさん
2010/02/25(木) 00:06:470883デフォルトの名無しさん
2010/02/25(木) 00:11:14おぉできたぞー。ここまで出来ればあとは楽勝さ。サンキューベリーマッチ
0884デフォルトの名無しさん
2010/02/25(木) 00:13:21そんなの、.NET CLI上で浮動小数点数がどういう扱いになっているのかということと、
x86上で単精度浮動小数点数がどういう符号化が調べれば答えでるじゃん。
だいたいそんなのC#に関係ないし。
0885デフォルトの名無しさん
2010/02/25(木) 00:14:480886デフォルトの名無しさん
2010/02/25(木) 00:29:570.75(10) は 0 + 1/2 + 1/4 = 0.11(2)
間違えやすいのは暗黙の1を消して仮数部を10000000000000000000000にする部分だな。
0887デフォルトの名無しさん
2010/02/25(木) 00:31:530888デフォルトの名無しさん
2010/02/25(木) 00:54:42あ、女子小学生です
0889デフォルトの名無しさん
2010/02/25(木) 01:06:54正規化して
1.5 x 2^(-1) (1.5 = 1.10)
1.10 から1.を消して 10
つまり「(1.)10000000000000000000000」ってことか
0890デフォルトの名無しさん
2010/02/25(木) 03:51:43だからそれはc#じゃなく浮動小数点をどう記憶するかという規格の話で
完全にすれ違い
情報処理の試験スレとかIEEEの規格スレ(あるのか?)へ行けってことだ
0891デフォルトの名無しさん
2010/02/25(木) 13:02:280892デフォルトの名無しさん
2010/02/25(木) 20:57:460893デフォルトの名無しさん
2010/02/25(木) 21:47:16class D : B{ /... / }
class DD : D{ /... / }
//とあるクラス内
void attachList( B tmp )
{
ls.add( tmp );
}
// List<B> ls = new List<B>(); 済み
これって以下のように使ってもまったく問題なし?
エラーは出ないし使えるみたいなんだけど
B some1 = new B();
B some2 = new D();
B some3 = new DD();
attachList(some1);
attachList(some2);
attachList(some3);
0894デフォルトの名無しさん
2010/02/25(木) 21:49:180895デフォルトの名無しさん
2010/02/25(木) 21:52:17ありりん。
0896デフォルトの名無しさん
2010/02/26(金) 00:08:260897デフォルトの名無しさん
2010/02/26(金) 00:09:520898デフォルトの名無しさん
2010/02/26(金) 00:20:440899デフォルトの名無しさん
2010/02/26(金) 00:54:040900デフォルトの名無しさん
2010/02/26(金) 00:58:26リフレクションで取ってくるのが正当かな
0901デフォルトの名無しさん
2010/02/26(金) 00:58:40C/C++みたいに本当に万能な言語ではない。
0902デフォルトの名無しさん
2010/02/26(金) 01:01:080903デフォルトの名無しさん
2010/02/26(金) 01:04:03ところへ持っていけるけどC#はwindowsとべったりだしなあ
Monoとかにすれば多少幅は広がるけど
0904デフォルトの名無しさん
2010/02/26(金) 01:05:320905デフォルトの名無しさん
2010/02/26(金) 01:16:15それ以外は特に問題ないんだが。
0906デフォルトの名無しさん
2010/02/26(金) 01:19:100907デフォルトの名無しさん
2010/02/26(金) 01:19:370908デフォルトの名無しさん
2010/02/26(金) 01:22:010909デフォルトの名無しさん
2010/02/26(金) 01:24:04/ \ /\ キリッ
. / (ー) (ー)\ <C/C++みたいに本当に万能な言語ではない。
/ ⌒(__人__)⌒ \
| |r┬-| |
\ `ー’´ /
ノ \
/´ ヽ
| l \
ヽ -一””””~~``’ー?、 -一”””’ー-、.
ヽ ____(⌒)(⌒)⌒) ) (⌒_(⌒)⌒)⌒))
0910デフォルトの名無しさん
2010/02/26(金) 01:26:090911デフォルトの名無しさん
2010/02/26(金) 01:31:44/ \ /\ キリッ
. / (ー) (ー)\ <移植性の低さが一番のネックだよね。
/ ⌒(__人__)⌒ \
| |r┬-| |
\ `ー’´ /
ノ \
/´ ヽ
| l \
ヽ -一””””~~``’ー?、 -一”””’ー-、.
ヽ ____(⌒)(⌒)⌒) ) (⌒_(⌒)⌒)⌒))
0912デフォルトの名無しさん
2010/02/26(金) 05:49:27>ところへ持っていける
これは C# でも同じでは?
0913デフォルトの名無しさん
2010/02/26(金) 08:02:00(HTML上でマウスを移動させると、タグの部分が選択される)
を実装したいんですが、WebBrowserで可能でしょうか?
右のWebBrowser上のとある箇所をクリックすると、
そのクリックされた箇所(HTML)がコピーされ、
左のWebBrowserにペーストされる、ということをしたいのですが。
0914デフォルトの名無しさん
2010/02/26(金) 08:06:34>(HTML上でマウスを移動させると、タグの部分が選択される)
>を実装したいんですが、WebBrowserで可能でしょうか?
こっちはよくわからんけど
>右のWebBrowser上のとある箇所をクリックすると、
>そのクリックされた箇所(HTML)がコピーされ、
>左のWebBrowserにペーストされる、ということをしたいのですが。
こっちは可能でしょ
コピー元でクリックされた場所を取得してコピー処理してクリップボードへ転送
コピー先でペーストとか
0915デフォルトの名無しさん
2010/02/26(金) 08:13:55http://pc12.2ch.net/test/read.cgi/tech/1246520657/
0916デフォルトの名無しさん
2010/02/26(金) 08:15:04<p>div1</p>
<div>
<p>div2<p>
</div>
</div>
こんなHTMLがあるとして、
2つめのdiv内でクリックすると、
<div>
<p>div2<p>
</div>
がコピーされるようにしたいのですが、
0917913
2010/02/26(金) 08:20:43可能ですか!
ちなみにJane Styleなどの2chブラウザのスレ表示欄はどうやって実装しているかわかりますか?
WebBrowserでいけるんだろうか・・・?
0918デフォルトの名無しさん
2010/02/26(金) 08:25:12OpenJaneの派生のほとんどはTrident(windows用のIEのコア部分)使ってなくて
独自のコアだったような
まあ同じようなことはできるよ
ポップアップとかもね
自分のプログラムで書いてもいいしJavascriptに頼ってもいいし
0919913
2010/02/26(金) 08:41:56できるんですね。安心しました。
ありがとうございます。
0920デフォルトの名無しさん
2010/02/26(金) 08:51:242ch専用ブラウザの作り方
http://pc12.2ch.net/test/read.cgi/tech/1180406037/
この辺に行ってみるといいんじゃね?
最近何人かがVB.netやVC#で作ってるみたいだし
0921913
2010/02/26(金) 09:30:58お〜役立ちそうです。
ありがとうございます!
0922デフォルトの名無しさん
2010/02/27(土) 01:11:010923デフォルトの名無しさん
2010/02/27(土) 01:12:36勝手にtextの内容がクリップボードに入るんだけど
止めることできないかな
0924デフォルトの名無しさん
2010/02/27(土) 02:03:58はてそんな妙な仕様だったかな、と思って確認したけど
やっぱり勝手にtextの内容がクリップボードに入ったりしないよ。
それともWindows Formのラベルじゃないのか
0925923
2010/02/27(土) 02:58:11System.Windows.Forms.Label です。
新規でプロジェクト作って label1 だけ置いて実行。
label1をブルクリックで、
クリップボードに「label1」が張り付くんです。
Visual C# 2008 Express Edition 使ってます。
0926デフォルトの名無しさん
2010/02/27(土) 03:10:35確認したけど貼りつかないよ。
0927デフォルトの名無しさん
2010/02/27(土) 03:11:30PC再起動しろ
0928デフォルトの名無しさん
2010/02/27(土) 03:17:370929923
2010/02/27(土) 03:24:11もう少し調べてみます。お騒がせしました。
0930デフォルトの名無しさん
2010/02/27(土) 03:43:000931913
2010/02/27(土) 04:02:23WebBrowserだけを使って、HTMLにアクセス、操作するのは不可能みたいですね。
http://blog.rocaz.net/2004/07/76.html
0932デフォルトの名無しさん
2010/02/27(土) 04:09:22それ2004年7月の記事だけど・・・今のバージョンだとどうなってるか確認してみた?
>WebBrowserだけを使って、HTMLにアクセス、操作するのは不可能みたいですね。
それにまあMicrosoft.mshtml.dllを再配布配布するしないの問題は別として
VC#2008EESP1入れた段階だとWebBrowserでできたと思うけどな
きっちり検証はしてないけどHTML上でおきたイベントのキャンセルするコードも書いたし
HTMLDocumentで中身いじったりもしたよ
0933デフォルトの名無しさん
2010/02/27(土) 04:16:57labelコントロールだけおいたアプリを起動して確認中w
1台だけ正常(?)なクリップボードに張り付かないPCがありました。
共通点を探ってますが、
素のままのWin7(updateはしてる)でも発生してるので???状態です。
常駐系アプリはいれてないので
0934923
2010/02/27(土) 04:18:48>>933 の続き
常駐系アプリはいれてないので
ちょっとお手上げ。
環境的な問題ってことみたいなので
あとはこちらで調べて見ます。
ありがとうございました。
0935デフォルトの名無しさん
2010/02/27(土) 04:29:400936デフォルトの名無しさん
2010/02/27(土) 04:52:01Type value;
};
C#にはC++みたいにテンプレートにデフォルトの型を指定するような方法ある?
0937デフォルトの名無しさん
2010/02/27(土) 05:11:010938デフォルトの名無しさん
2010/02/27(土) 05:15:41うちの環境でもクリップボードにLabel1が!
ちなみにVirtualPC2007に入れたWindows2008 Ent SP2で発生
VSは2008Pro バージョンは9.0.30729.1 SP .NET Frameworkは3.5SP1
ちなみにVB.NETでも同様に発生した
発生したOSとしなかったOS書いてみて欲しいな
0939デフォルトの名無しさん
2010/02/27(土) 05:16:200940デフォルトの名無しさん
2010/02/27(土) 05:26:44サーバーから貰ったCookie情報は自前で管理しないとだめなのかな?
wininetの時は特に気にせずに保持されてたんだが・・・
IEの機能を使ってたのでIEと同じところへ保存されてただけなのかな?
0941913
2010/02/27(土) 06:02:45マジすか
http://support.microsoft.com/kb/312777/ja
この通りコード書いてプロジェクトつくったら、
タグを取得するアプリが作れたけど、
C#2008 Express EditionのWebBrowserでできるんですか?
ググってもmshtml使う方法しか出てこなかったので、
諦めたのですが・・・。
0942デフォルトの名無しさん
2010/02/27(土) 06:38:06webBrowser.Document.xxxでイベント登録すれ
ばなんとかなるんじゃないかな?
でも内部的にはどうやってるんだろ?
特にmshtmlなんとかを参照に加えたわけじゃないのに
解析もやってるしイベントも起きるよね・・・
0943デフォルトの名無しさん
2010/02/27(土) 06:52:04private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
webBrowser1.Document.Click += new HtmlElementEventHandler(Document_Click);
}
void Document_Click(object sender, HtmlElementEventArgs e)
{
MessageBox.Show("きたよ");
}
private void webBrowser1_Navigated(object sender, WebBrowserNavigatedEventArgs e)
{
webBrowser1.Document.Click += new HtmlElementEventHandler(Document_Click);
}
void Document_Click(object sender, HtmlElementEventArgs e)
{
MessageBox.Show("きたよ");
}
こんな感じで書けばレンダリング完了後のHPクリックするとイベント発生するしなあ
0944デフォルトの名無しさん
2010/02/27(土) 06:56:54あとこんな感じでHtmlDocumentの生成が終わってるタイミングだったらbodyに対してドラッグイベントとか
設定できるね
private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
webBrowser1.Document.Click += new HtmlElementEventHandler(Document_Click);
HtmlDocument doc = webBrowser1.Document;
doc.Body.Drag += new HtmlElementEventHandler(Body_Drag);
}
void Body_Drag(object sender, HtmlElementEventArgs e)
{
throw new NotImplementedException();
}
ほかにもDragEnd、DragLeave、DragOverとかあるね
問題は参照にmshtmlを追加してないけどこいつらを使うために内部で使ってる可能性もあるのかな?
0945デフォルトの名無しさん
2010/02/27(土) 07:11:24private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
//webBrowser1.Document.Click += new HtmlElementEventHandler(Document_Click);
HtmlDocument doc = webBrowser1.Document;
//doc.Body.Click += new HtmlElementEventHandler(Body_Click);
HtmlElementCollection elm = doc.GetElementsByTagName("dt");
elm[0].Click += new HtmlElementEventHandler(Form1_Click);
}
void Form1_Click(object sender, HtmlElementEventArgs e)
{
MessageBox.Show("きたよ");
}
これ試したときはwebBrowserにこのスレのアドレスを設定しておいた。
>>1のdtタグ(2chのレスの数字〜ID(BEがある場合はBEまで)をクリックするとイベント発生
0946デフォルトの名無しさん
2010/02/27(土) 07:33:01ちゃんとstatusStripをよけて広がってくれる(期待される当然の動き)
フォームにstatusStripとtextBoxを貼って、
textBoxのMultilineをTrue、DockをFillにすると
statusStripを無視してフォームのクライアント領域いっぱいに広がりやがる
textBoxバカなんじゃないの?
と、思うときはたいてい俺の方が(ry
0947デフォルトの名無しさん
2010/02/27(土) 07:35:310948デフォルトの名無しさん
2010/02/27(土) 08:18:13StatusStripを再背面にしたり最前面にしたりしてみろ
0949940
2010/02/27(土) 09:42:25wininetの関数はIEのクッキーを利用してたんですね・・
C#で同じことを実現するにはwininetを使えるようにして同じ関数で処理しないとだめっぽです・・・
ざんねん
0950デフォルトの名無しさん
2010/02/27(土) 09:44:08MSの標準ライブラリを馬鹿にするな。バカはお前の方(ry
ToolStripContainerを使え。
0951デフォルトの名無しさん
2010/02/27(土) 10:49:46静的コンストラクタってスレッドセーフですか?
0952デフォルトの名無しさん
2010/02/27(土) 11:15:030953デフォルトの名無しさん
2010/02/27(土) 11:18:54クラスがやっていることによる。
依存性がないならstaticだろうが通常のコンストラクタだろうがスレッドセーフだ。
0954デフォルトの名無しさん
2010/02/27(土) 11:20:19ありがとうございます。
0955913
2010/02/27(土) 12:35:07素晴らしい!それを見る限り、mshtml参照しなくても同じことできるっぽいですね。
mshtmlでイベント登録したときも、
なぜか3回呼ばれていました。
これはちょっとやっかいですね・・・
0956913
2010/02/27(土) 13:11:15ちなみにこういうことができるよ〜っていう情報はどこから手に入れたらいいでしょうか?
0957デフォルトの名無しさん
2010/02/27(土) 13:34:380958デフォルトの名無しさん
2010/02/27(土) 15:29:31自力で解析した
どう検索していいかワードが浮かばなかったのでドット打って一つ一つ見て回った
0959913
2010/02/27(土) 22:12:08MSDNはなんだか見づらいし・・・
ドット打って調べるとか、MSDNで頑張るしかないか
0960デフォルトの名無しさん
2010/02/28(日) 01:02:11タイマーを使わない方法ありますか?
GetForegroundWindow() を 100 ミリ秒ごとに
呼び出してもやりたいことはできるんですが、
タイマーはできれば使いたくないと思いまして。
0961デフォルトの名無しさん
2010/02/28(日) 01:24:280962デフォルトの名無しさん
2010/02/28(日) 06:59:05HDDに記録されている大文字小文字の正しいファイル名を取得する方法はありますでしょうか?
System.IO.FileInfo fi = new System.IO.FileInfo(filename);
string fn = Path.GetFullPath(filename);
とやっても取得できませんでした。
0963デフォルトの名無しさん
2010/02/28(日) 07:19:090964デフォルトの名無しさん
2010/02/28(日) 07:30:43あとは大文字小文字区別ってあったっけ?
0965デフォルトの名無しさん
2010/02/28(日) 07:30:550966デフォルトの名無しさん
2010/02/28(日) 07:32:27windows(というかDOS)は確か大文字小文字の区別は無かったはず・・・
0967デフォルトの名無しさん
2010/02/28(日) 07:44:07なのでwindows系はもしかしたら勝手にLowerもしくはUpperやってるかもしれん
0968デフォルトの名無しさん
2010/02/28(日) 07:52:47保存するときは大文字小文字は指定されたまま保存するでしょ?
でないと再度エクスプローラで表示したときに大文字小文字区別して表示できない。
0969デフォルトの名無しさん
2010/02/28(日) 07:56:030970デフォルトの名無しさん
2010/02/28(日) 08:09:42var dir = new DirectoryInfo(Path.GetDirectoryName(filename));
var file = dir.GetFiles(Path.GetFileName(filename));
これでファイルがあればfile[0].FullNameに入る
フォルダ名は駄目だから同じようなことをルートからdir.GetDirectoriesしていけばいいと思う
0971デフォルトの名無しさん
2010/02/28(日) 08:09:51System.IO.Path.GetDirectoryName(filename),System.IO.Path.GetFileName(filename))[0];
で、正しいパスは取れるけどなんかなぁ。FileInfoで取れないのが納得できん。
0972デフォルトの名無しさん
2010/02/28(日) 08:14:23それでも、見やすさが欲しい時のために大小区別して取得されるべきだと思う。
0973デフォルトの名無しさん
2010/02/28(日) 08:15:13string fn = Path.GetFullPath(filename);
この両方はfilenameで指定した物がそのままでるのか・・・
0974デフォルトの名無しさん
2010/02/28(日) 08:16:58まあ文字の扱いを知ってる人ならいいかもしれないがそんなの知らない人はおかしいと感じるかもなあ・・・
0975デフォルトの名無しさん
2010/02/28(日) 08:17:430976デフォルトの名無しさん
2010/02/28(日) 08:42:09string fullname = Path.GetFullPath(filename);
string[] paths = fullname.Split(':', '\\');
string fullpath = paths[0].ToUpper() + ":\\";
for (int i = 2; i < paths.Length - 1; i++)
fullpath = Directory.GetDirectories(fullpath, paths[i])[0];
fullpath = Directory.GetFiles(fullpath, paths[paths.Length - 1])[0];
0977デフォルトの名無しさん
2010/02/28(日) 09:14:500978デフォルトの名無しさん
2010/02/28(日) 09:17:58クラスとして追加して継承元コントロールを書く方がいいのか
それともユーザーコントロールとして追加するのがいいのか・・・
同じコントロールに同じ固定処理を施すだけなんだけで基本的には元のコントロール
として使うんだけどさ・・・
0979デフォルトの名無しさん
2010/02/28(日) 09:19:56今は前者でいいと思うよ。
0980デフォルトの名無しさん
2010/02/28(日) 09:20:37少ないというかHTML関連は雑音が多いんだよ
ASP.NETやjavascript関連でHTML部分をいじる解説は山ほど出るんだが
C#になるとぐっと減るし、あってもmshtmlを使うような方法とかになるんだよ
あとはVC++とかね・・・
なのでどうぐぐれば最適な答えに辿り付くかを探し当てるのがものすごく大変だったよ
0981デフォルトの名無しさん
2010/02/28(日) 09:21:26ありがとう
0982デフォルトの名無しさん
2010/02/28(日) 09:26:27でもさー。HtmlDocumentなんて、mshtmlをベースにしたものなんだし、
JavaScriptのgetElementByほげ系だって参考になるだろうよ。
0983デフォルトの名無しさん
2010/02/28(日) 09:27:53今はなんとなく見得てきたからその言い分はわかるけど、これから勉強って人にはノイズでしかなかったと思うよ・・・
0984デフォルトの名無しさん
2010/02/28(日) 09:35:17で、一生初心者やってれば。
0985デフォルトの名無しさん
2010/02/28(日) 09:37:44自分だって紆余曲折した時代だってあったろうに・・・
しかも初心者用とかかれたスレで・・・
0986デフォルトの名無しさん
2010/02/28(日) 11:10:080987デフォルトの名無しさん
2010/02/28(日) 11:33:40private static readonly StringBuilder buf = new StringBuilder(260);
public static string GetDisplayPath(string path) {
var pidl = ILCreateFromPath(path);
SHGetPathFromIDList(pidl, buf);
ILFree(pidl);
return (buf.Length > 0) ? buf.ToString() : path;
}
Win32APIを使うバージョンを作ってみた。P/Invokeの宣言は省略
非スレッドセーフでエラー処理もなし
0988デフォルトの名無しさん
2010/02/28(日) 17:19:27ファイラーのようなものを作っているのですが、
ファイルの「コピー」はClipboard.SetDataObjectでなんとかできました。
ファイルの「切り取り」はどうすれば実装できますか?
0989デフォルトの名無しさん
2010/02/28(日) 17:20:590990988
2010/02/28(日) 17:25:01コピー元を削除することになりますが、アプリケーションを
終了してしまっていると削除できないですよね?
0991デフォルトの名無しさん
2010/02/28(日) 17:29:41何で迷ってるかよくわからんが
クリップボードも確かファイルのコピーとか切り取りって
「xxをコピー予定」とか「xxを切り取り予定」
くらいで実際に貼り付けの段階まで実体は何もしてないと思うんだが
貼り付けが実行されたときに元と先のファイルをロックして自分の好きなように
作業すればいいだけと思うんだが
0992988
2010/02/28(日) 17:48:05そういう”予定”の情報をクリップボード側(もしくはOS?)が保持してそうですが、
「切り取り」ですよって情報をどうやって投げる事ができるのでしょうか?
0993デフォルトの名無しさん
2010/02/28(日) 17:51:23俺は制限で無理だった
0994デフォルトの名無しさん
2010/02/28(日) 17:51:59エクスプローラーはクリップボードに予定が入ってれば張り付けが黒字になりますよね?
それをクリックしたらイベント発生でクリップボード参照して動けばいいんでないの?
0995デフォルトの名無しさん
2010/02/28(日) 17:52:33Excelのセルを切り取ってメモ帳に貼ってみ。
で、メモ帳のテキストを切り取ってみ。
切り取りはそもそもアプリ内で閉じた話。
0996デフォルトの名無しさん
2010/02/28(日) 17:53:16ファイルのコピーとテキストとかの話は分けたほうがいいかも
テキストとかは多分選択した範囲全部持ってるだろうから
0997デフォルトの名無しさん
2010/02/28(日) 17:55:01たぶんとかじゃなくて・・・
想像語る前にクリップボード監視ソフトをまず作れよ。挙動分かるから。
0998996
2010/02/28(日) 17:56:56俺は質問者じゃない
クリップボードの挙動は見てればわかるよw
0999デフォルトの名無しさん
2010/02/28(日) 17:58:00分かってないから多分とかだろうとか言ってんだろw
1000デフォルトの名無しさん
2010/02/28(日) 17:59:2910011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。