ふらっとC#,C♯,C#(初心者用) Part55at TECH
ふらっとC#,C♯,C#(初心者用) Part55 - 暇つぶし2ch2:デフォルトの名無しさん
10/02/04 22:08:52
ログ残しのために移動

A4 - 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程度ずれてる計算?
プリンターが古かったりすると多少ずれるかもしれないし

3:デフォルトの名無しさん
10/02/04 22:26:18
>>1
ありがとうございました。
久しぶりにスレ立てしたらこのざま・・・

>>2
ありがとうございます。
全ての謎がとけました。^^

4:デフォルトの名無しさん
10/02/05 00:10:40
PrintPreviewControl の AutoScrollOffset
ってどういうときに設定するの?msdn読んでも分かりません。

5:デフォルトの名無しさん
10/02/05 00:17:21
AutoScroll有効にしたScrollableControlの子になったときに使われる
のでまあ気にする必要なし
基底のControlが持ってるのを引き継いでるだけ

6:デフォルトの名無しさん
10/02/05 00:34:52
指定ディレクトリにサブディレクトリが存在するかどうか調べる方法はありませんか?
Directory(Info).GetDirectories だとエントリが多いと時間がかかるので、なるべくO(1)に近いものがいいんですが

7:デフォルトの名無しさん
10/02/05 00:46:40
ないね

8:デフォルトの名無しさん
10/02/05 00:47:40
標準ライブラリには存在しない
Win32APIのFindFirstFile/FindNextFileとか

9:デフォルトの名無しさん
10/02/05 00:49:54
ないお

10:デフォルトの名無しさん
10/02/05 00:56:26
>>7-9
レスありがとうございます
FindFirstFileEx も少し試してみたんですが、ディレクトリのみ取得するオプションは未実装でした。
結局ディレクトリとファイルを同時に列挙することになるので、ファイルのみが大量にある
ディレクトリだと逆に遅くなりそうな気もしますが、もう少し調べてみます。

11:デフォルトの名無しさん
10/02/05 01:00:24
>指定ディレクトリにサブディレクトリが存在するか
ただ調べるだけなの?

12:デフォルトの名無しさん
10/02/05 01:02:28
「逆に遅くなる」ことはないよ
GetFilesもGetDirectoriesも内部じゃFindFirstFile使ってるんだから
まあ実装の上手い下手の差は出るかもだが

13:デフォルトの名無しさん
10/02/05 01:03:44
( ^ω^)

14:デフォルトの名無しさん
10/02/05 01:04:52
そもそもNTFSとかのファイルシステム上O(1)とかって可能なのか?

15:デフォルトの名無しさん
10/02/05 01:07:25
近くってんだからなるべく少なくでええんじゃないか

16:デフォルトの名無しさん
10/02/05 01:11:43
B+木でO(1)達成できたらすげーよ
チューリング賞取れるよ

17:デフォルトの名無しさん
10/02/05 01:14:39
メモリ上にフォルダ階層のキャッシュとか置く機能はないの?

18:デフォルトの名無しさん
10/02/05 01:18:56
実現可能な範囲で一番早いのはやはりFindFirstFile系列でディレクトリ見つけたらリターンだろ
ディレクトリとファイルはファイルシステム上のオブジェクトとしては区別されてない
ディレクトリは”ディレクトリ属性を持っていて下層ディレクトリへのリンクをデータに持ってるファイル”だから
どちらかだけを列挙っていうのはできない

19:デフォルトの名無しさん
10/02/05 01:48:00
>>14
ディレクトリがファイル/ディレクトリを含むかどうかのフラグを持つファイルシステムを作ればO(1)

20:デフォルトの名無しさん
10/02/05 10:17:09
ファイル名の前に@を書くのはどうしてなんでしょうか?
いつも書いていませんが、なんとかなっていますは。

string program = @"C:\Program Files\Internet Explorer\IEXPLORE.EXE";

21:デフォルトの名無しさん
10/02/05 10:19:43
\の意味が変わるから

22:デフォルトの名無しさん
10/02/05 10:25:35
>>20
お前Cもやったことないのか?
初心者は帰れ

23:デフォルトの名無しさん
10/02/05 10:32:51
>>20
文字列をあらわす ""の中の文字の扱いが若干変わるのが@の有無なんですよね

verbatim文字列(ページの最後の方)
URLリンク(www.atmarkit.co.jp)

24:デフォルトの名無しさん
10/02/05 10:33:31
初心者用のスレなのに(笑


25:20
10/02/05 10:37:20
なるほど。
確かに\\を2つ書いてませんね。
ちなみに初心者ではありませんよ。
Windows2.0の時代からSDKつかって苦労してプログラム作っていますからね。
いや、でもC#は1月目の初心者です。
生意気言ってゴメンナサイ( ・ω・)y─┛~~

26:デフォルトの名無しさん
10/02/05 10:37:43
日本語では公式には逐語的文字列という
古い記事だから仕方ないか

27:23
10/02/05 10:38:55
>Windows2.0の時代からSDKつかって苦労してプログラム作っていますからね。
>いや、でもC#は1月目の初心者です。
>生意気言ってゴメンナサイ( ・ω・)y─┛~~
一言多いw

顔見えないので若い初心者です~ぽく振舞っておけばいいのに

28:デフォルトの名無しさん
10/02/05 10:40:36
ファイルのパスくらいならどちらでもいいが、正規表現は@がないとつらい。

29:デフォルトの名無しさん
10/02/05 10:42:22
便利なんだけど"を""に置換しないといけないのがうざい
"をそのまま使えるように@"~"@とかクォーテーションを変えてほしかった

30:デフォルトの名無しさん
10/02/05 10:43:34
>>28
確かにw
正規表現をソースに埋めるのはめんどくさいよね

>>29
まあこの手の回避策はどうしてもねえ

31:デフォルトの名無しさん
10/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でクリアすることで、その都度テキストを
新規に書き込めるかと考えたのですが、この方法だとピクチャーボッ
クスが最後空白になってしまいました。

他にも何か方法はあるのでしょうか?

32:デフォルトの名無しさん
10/02/05 11:23:22
textboxにフォーカスがある間はタイマーを起動して一定周期で
そのロジック呼び出すとか?

もっと負荷の少なそうなのありそうだけど思いつかん

33:デフォルトの名無しさん
10/02/05 11:27:49
picturebox1は背景にイメージを使ってるの?
そうでなければ塗りつぶせばいいはず。
g.Clear(pictureBox1.BackColor);

34:デフォルトの名無しさん
10/02/05 11:36:11
Paintイベントに書いて
TextChangedではInvalidateするだけにする

35:デフォルトの名無しさん
10/02/05 11:44:31
>>32>>33
レスありがとうございました。
>g.Clear(pictureBox1.BackColor);
こちらの方法で上手く動作させることができました。

>picturebox1は背景にイメージを使ってるの?
ピクチャーボックスに文字を入れるにはどうするかを調べて、サイト
を参考にしてたため、背景をどうするか等を考えていませんでした。

36:デフォルトの名無しさん
10/02/05 11:44:53
private void textbox1_TextChanged(object sender, EventArgs e)
{
  //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();
}

37:デフォルトの名無しさん
10/02/05 11:45:07
さて一服しようぜ( ・ω・)y─┛~~

38:デフォルトの名無しさん
10/02/05 11:50:18
g.Clear(BackColor);

39:デフォルトの名無しさん
10/02/05 11:52:12
( ・ω・)y─┛~~.Clear(BackColor);

おかしいなあぼーんされない

40:デフォルトの名無しさん
10/02/05 11:53:38
textbox1と出力するIDEがあるのか
VC#2008EEだとtextBox1なんだが

41:デフォルトの名無しさん
10/02/05 12:00:04
Paintイベントにも何か書かないと、他のウインドウの後ろにしたときに消えてしまうな。
もしかしてAeroだと消えないのかな?


42:デフォルトの名無しさん
10/02/05 12:20:13
Aeroでも消えるよ
Paintイベントに描画処理書いて、textBox1_TextChangedで再描画させればおk

43:デフォルトの名無しさん
10/02/05 12:25:33
>>42で?( ・ω・)y─┛~~

44:デフォルトの名無しさん
10/02/05 14:12:23
ソフトを立ち上げた時、前回に終了した時に開いていたメニューの再現をさせたいんですけど、どうしたらよいんでしょう。
メニューをクリックした時にToolStripMenuItemのインスタンスを覚えさせておけば再現できることがわかりましたが、どうやって保存したらよいのかわかりません。

45:デフォルトの名無しさん
10/02/05 14:19:26
>>44
XMLでもいいし昔ながらのiniファイルに書き出した文字列でもいいし
そういう形で保存しておいて、起動の際にそれを読み直してコントロールの設定を行う

46:デフォルトの名無しさん
10/02/05 14:26:26
>>44
「XML 直列化 」でググれ
インスタンスの値をまるごとXMLで読み書きできるのがある。

47:デフォルトの名無しさん
10/02/05 14:30:12
>>46
シリアライズそのものは簡単なんだけど既存のコントロールってこれにかけられないよね?
URLリンク(dobon.net)

48:デフォルトの名無しさん
10/02/05 14:35:41
コントロールはやったことないわ・・・すまん。
できなければ必要なプロパティだけをクラス化して、
それを読み書きすればいいと思う。


49:デフォルトの名無しさん
10/02/05 15:32:32


50:デフォルトの名無しさん
10/02/05 15:43:53
20年選手で文字リテラルすっとばしてて何の疑問ももたないアホはひさしぶりに見た

51:デフォルトの名無しさん
10/02/05 15:47:06
ピクチャーボックス上にあるテキストボックスの背景を透過にする方
法はあるでしょうか?

.backcolor=Color.Transparentとすればピクチャーボックス等は透過
にできるのですが、ControlStyles.SupportsTransparentBackColorス
タイルを適用しなくてはならないとありました。
テキストボックスではTransparentをサポートしていないとエラーが出
たので適用していないとわかったのですが、適用する方法がわからず
にいます。

52:デフォルトの名無しさん
10/02/05 15:47:51
「サポートしていない」の意味は分かるかな?

53:デフォルトの名無しさん
10/02/05 15:50:13
オーナードローできるならそこでARGB指定で透過色で塗りつぶすとかできなかったっけ?

54:デフォルトの名無しさん
10/02/05 15:52:05
Paintすらないのなw

55:デフォルトの名無しさん
10/02/05 15:55:20
ビジュアル的にうんぬんしたいならWPFに移行しちゃえよ

56:デフォルトの名無しさん
10/02/05 16:15:37
>>52
.SetStyle(ControlStyles.SupportsTransparentBackColor, true);
となっていないので、そのエラーが出たのかと思ってしまいました。
もともとダメという事だったんですね。

>>33さんに教えていただいた方法でテキストの文字列をピクチャーに
きれいに反映させる方法ができたのですが、それを>>51の方法で透過
にしたんです。
しかし子のピクチャーボックスを動かすと黒く塗りつぶされてしまう
という現象が起きました。

g.Clear(pictureBox1.BackColor);
の部分にColor.Transparentを入れたかったのですが、.Clearは色しか
受け付けてくれなくて悩んでいたんです。
そこでピクチャーではなくテキストを使えば解決できるかと思ったの
ですが

57:デフォルトの名無しさん
10/02/05 16:31:10
URLリンク(blogs.wankuma.com)
ここの方法でバックカラーにアルファ付きを使えたんだが(たぶん大丈夫)
でもそのさらに後ろに何か居てそいつが描画してるのでうまくいかなかった

58:デフォルトの名無しさん
10/02/05 16:45:27
親のピクチャーボックスには画像を表示させてるの?
その画像はImageプロパティに設定させているの?
BackGroundImageプロパティに設定している場合
BackGroundImageLayoutは何に設定しているの?

59:デフォルトの名無しさん
10/02/05 16:48:31
親のピクチャーボックスには画像を表示させてるの?
その画像はImageプロパティに設定させているの?
BackGroundImageプロパティに設定している場合
BackGroundImageLayoutは何に設定しているの?

60:デフォルトの名無しさん
10/02/05 16:57:08
>>57
ありがとうございます。読んでみます。

>>58
ArrayList files = new ArrayList();
と変数を宣言しておいて、ここに画像ファイルのパスが入るように
なっています。

これを
親ピクチャー.Image = Image.FromFile(files[0].ToString());
のようにして親に移しています。

61:デフォルトの名無しさん
10/02/05 17:04:25
>>55
やだやだやだ~

62:デフォルトの名無しさん
10/02/05 17:18:25
ソフトは見た目が9割だからな( ・ω・)y─┛~~

63:デフォルトの名無しさん
10/02/05 17:23:45
こんにちは。
xmltext
<result>
<words>
<word>クワガタ</word>
<word>オオクワガタ</word>
<word>メダロット</word>
<word>ミヤマクワガタ</word>
<word>ヒラタクワガタ</word>
<word>ノコギリクワガタ</word>
<word>パラワン島</word>
<word>ルイスツノヒョウタンクワガタ</word>
</words>
</result>




64:デフォルトの名無しさん
10/02/05 17:25:10
List<string> lists = new List<string>();
<?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に入れられると思ったのですが、クワガタしかはいりません。
どこがまずいでしょう?
ご指摘お願いします。


65:デフォルトの名無しさん
10/02/05 17:39:08
> var query = from result in xdoc.Root.Elements()
> select result.Element("word").Value;
xdoc.Rootがresult要素でそのElementsはwords要素
words要素を列挙してその中のword要素を取り出すんだからクワガタだけだろ
word要素を列挙してないんだから

66:デフォルトの名無しさん
10/02/05 17:39:54
foreach (var q in xdoc.selectNodes("/results/words/word")) {
lists.add(q.value);
}

67:デフォルトの名無しさん
10/02/05 17:41:58
xdoc.Root.Elements()ってなんだかわかってる?

68:デフォルトの名無しさん
10/02/05 17:51:12
前スレで専ブラの話が出てたけど
書き込むときってどうやるの?

69:デフォルトの名無しさん
10/02/05 17:55:11
cgiにリクエスト投げるだけだろ
てか、スレチだからここで聞くな

70:デフォルトの名無しさん
10/02/05 17:55:19
ググレカス

71:デフォルトの名無しさん
10/02/05 18:21:50
>>60
画像を親ピクチャーの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);
}

72:デフォルトの名無しさん
10/02/05 18:23:07
なんかすでにこのスレのレベルじゃないところの話になってるな
中級スレあったっけ?

73:デフォルトの名無しさん
10/02/05 18:24:22
>>68
URLリンク(cc3.org)
こういうものがあってだな

Windows + .Net Framework 2.0
ということらしいんだわ

ソースの配布はされてないけどな・・・・そういうことや

74:71
10/02/05 18:27:05
修正
e.Graphics.DrawRectangle(Pens.Yellow, Rectangle.Round(vtb));

e.Graphics.DrawRectangle(Pens.Yellow, vtb);

75:デフォルトの名無しさん
10/02/05 19:14:51
WPFで質問があります。
Imageを配置してサムネイル画像を表示しました。
その画像をダブルクリック(あるいはクリック)したら、実画像を開きたいと思います。
Process.Start("Paint", filename);
ダブルクリックのイベントハンドラって、どう書けばよいですか?
Imageのプロパティを見ても、MouseDown,Enter,Leave,Left(Right)ButtonDown,LeftButtonUp,Move,Up,Wheelがあるだけで、クリックのイベントが見当たりません。
ご教示ください。

76:デフォルトの名無しさん
10/02/05 19:18:13
MouseButtonEventArgsにはClickCountプロパティがある

77:デフォルトの名無しさん
10/02/05 19:23:43
>>65
早速ありがとうございます。
列挙するにはどうしたらよいですか?
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 ディレクティブまたはアセンブリ参照が不足しています。


78:デフォルトの名無しさん
10/02/05 19:24:49
GroupBoxの形って四角形で固定ですか?
自由に変形させることはできませんか?

79:デフォルトの名無しさん
10/02/05 19:26:00
>>75
こちらへ
WPF(XAML, XBAP, .Net3.5)GUIプログラミング Part5
スレリンク(tech板)

80:デフォルトの名無しさん
10/02/05 19:29:45
>>77
> 列挙するにはどうしたらよいですか?
from a in b

foreach (var a in b)
と同じ意味
だから
from result in xdoc.Root.Elements()

foreach (var result in xdoc.Root.Elements())
と同じで、さて何回ループ回る?

81:デフォルトの名無しさん
10/02/05 19:42:12
>>77はC#の要素を除いたら普通に頭が悪いだけの発言だな

82:デフォルトの名無しさん
10/02/05 20:02:13
>>75
<ContentControl MouseDoubleClick="ContentControl_MouseDoubleClick">
    <Image Source="mikumiku.jpg"/>
</ContentControl>


83:デフォルトの名無しさん
10/02/05 20:36:15
>>80
xdoc.Root.Elements()には、デバッグモードで見ると、
xmltextがそのまま入ってます。
ということは1回ですか?
これをタグ別にわけるには、どのようにしたら?


84:デフォルトの名無しさん
10/02/05 20:41:52
75です。
>>79
WPFの掲示板は初心者の質問を受けつけてくれないのです。
それでこちらで質問しました。
>>82
xamlのimageに入れて試してみました。
'ContentControl_MouseDoubleClick' の定義が含まれていません、
というエラーとなったのですが、
なにか前もってすることがありますか?
よろしくお願いします。


85:デフォルトの名無しさん
10/02/05 20:48:42
>>84
文字通りイベント用の関数を作ってないんだろ。
その部分は消して、プロパティウインドウからイベントを選びなおす。


86:デフォルトの名無しさん
10/02/05 20:50:27
>>83
まずLINQじゃなくてforeachで普通に表現してみ

87:デフォルトの名無しさん
10/02/05 21:03:40
>>86
foreachでxmlをどうわけたら?
string[] lines = xmltext.Replace("<word>","").Replace("</word>","").Split('\n');
とかですか?
それならできます。
foreach (string line in lines) {
lists.Add(line);
}


88:デフォルトの名無しさん
10/02/05 21:08:26
……。
foreach (var element in xdoc.Root.Elements()) {
    // この中のコードを書いてみろってこと
}

89:デフォルトの名無しさん
10/02/05 22:14:30
DataTable.WriteXML で、テーブルに数値型の列があったとして、
XML ファイルの該当箇所を 16 進数表記で出力するコトって出来ますか?

90:デフォルトの名無しさん
10/02/05 22:30:14
WriteXmlじゃ無理だな

91:デフォルトの名無しさん
10/02/05 22:48:01
>>86
xdoc.Root.Elementsをわける方法がわからないですが、
次のとおりで、項目ごとには分けられます。
string[] lines = element.Replace("<word>","").Replace("</word","").Replace(" ","").Split('>');
foreach (string line in lines) {
lists.Add(line);
}


92:デフォルトの名無しさん
10/02/05 22:49:50
でもこれではLINQはぜんぜん使っていないし、知りたいのはLINQなのですが…。


93:デフォルトの名無しさん
10/02/05 22:59:09
まず>>88ができなければLINQでできるようにはなりません
横着しないでやれ

94:デフォルトの名無しさん
10/02/05 23:01:02
…低脳にLINQを使わせるな。

95:デフォルトの名無しさん
10/02/05 23:08:25
その前にXMLから理解すべきでは

96:デフォルトの名無しさん
10/02/05 23:09:07
首吊って死ぬのが先かな。

97:デフォルトの名無しさん
10/02/05 23:11:01
それ以前に、言われた通りにしないのなら質問しなくてよろしい

98:デフォルトの名無しさん
10/02/05 23:12:45
>>85
ありがとうございます。
まず、xamlでContentControl MouseDoubleClickをコメントアウトしました。
Imageのプロパティを見ましたが、ContentControlの項目は見つかりません。
なんのイベントを選べばよいですか?


99:デフォルトの名無しさん
10/02/05 23:17:17
選ぶのはMouseDoubleClickだよ

100:デフォルトの名無しさん
10/02/05 23:20:01
うっほうっほ

101:デフォルトの名無しさん
10/02/05 23:22:55
>>99
ねぇよ
嘘つきばっかだな

102:デフォルトの名無しさん
10/02/05 23:28:11
ContentControlのだよ? Imageの親にした

103:デフォルトの名無しさん
10/02/05 23:31:36
思うに、Windowに直接Image貼ってるんだろう?

104:デフォルトの名無しさん
10/02/05 23:40:05
>>90
そっか、残念。ありがとうございました。

105:デフォルトの名無しさん
10/02/05 23:45:07
テキストボックスの中にカーソルを表示させないようにするにはどうしたらよいのでしょうか?

106:デフォルトの名無しさん
10/02/05 23:51:08
りいどおんりい

107:デフォルトの名無しさん
10/02/06 00:35:36
>>102
75です。
ありました。できました。
ありがとうございます。


108:デフォルトの名無しさん
10/02/06 00:38:43
>>93、97
横着せずにいうとおり91のとおりやってると思いますけど。
で、91でLINQなしでできてしまったです。
それがちがうのなら、方法を教えてください。

で、あらためてLINQだとどう書くんでしょう?


109:デフォルトの名無しさん
10/02/06 00:42:18
>>91でいくらできても意味は無いのよ。
正しく理解するってのが大事なんだから。

教えません。

110:デフォルトの名無しさん
10/02/06 00:43:06
>>108
そうか~できてしまったか^^
良かったね
一生そうやってろ

111:デフォルトの名無しさん
10/02/06 00:43:09
キミの仕事だか趣味だかのプログラムが完成しなくてもおれたちにはどうでもいいことなので
自分で努力してください

112:デフォルトの名無しさん
10/02/06 00:45:39
>>109
正しく理解するヒントくらいください。
>>110
そうやってたくないから聞いてるんですけど。


113:デフォルトの名無しさん
10/02/06 00:47:02
ヒントが>>88だろ
もう死ねよ

114:デフォルトの名無しさん
10/02/06 00:48:12
…構ってちゃんをいつまでも相手してなくてよろしい(`・ω・´)

115:デフォルトの名無しさん
10/02/06 00:50:35
>>113
だから、88の回答は91で、
それでできちゃったのではLINQを使う点では間違えているわけだから、
どう間違えているのかって訊いてるんですけど。


116:デフォルトの名無しさん
10/02/06 00:52:57
始まりはどこからなの?

117:デフォルトの名無しさん
10/02/06 00:54:33
>>116
63

118:デフォルトの名無しさん
10/02/06 00:55:42
>>115
foreach (string line in lines) {

じゃなくて

foreach (var element in xdoc.Root.Elements()) {

で書き始めろって言ってんだよ
会話が成り立たない(´・ω・`)

119:デフォルトの名無しさん
10/02/06 00:57:07
>>118
お前も何マジになってんだ。
こういうのはニヤニヤしてればいいんだよ。

120:デフォルトの名無しさん
10/02/06 00:58:07
>>64
名前欄に64って書いとけ

121:デフォルトの名無しさん
10/02/06 01:00:18
>>120
そしてそっこうでDispose()が呼び出される。

122:116
10/02/06 01:00:50
>>117
サンクス

まあ質問者も回答者もどっちもどっちだな

質問者は問題解決の探索の仕方がまずいし
回答者も無駄にあおりすぎ

123:デフォルトの名無しさん
10/02/06 01:03:12
XMLは手だしてないのでしらんけど似たような解析がいるHTMLから考えると
よくわからなければtextbox貼り付けて片っ端からToString()すればいいのに
とか思うんだけどな

124:64
10/02/06 01:03:18
>>118
なるほど。そういうことでしたか。

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()をわける方法がわからないのです。


125:デフォルトの名無しさん
10/02/06 01:04:27
もう俺がLinq使った回答教えてやるよ。

var 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));

こうね。
これでお開き。寝ろ。

126:デフォルトの名無しさん
10/02/06 01:05:52
だから xdoc.Root.Elements()はなんなのか理解しろ
かんがえろ
要素1個しかないだろ?
だから1回しか実行されないんだよ?


127:64
10/02/06 01:06:11
>>122
なるほど。たしかに探索の仕方はまずい気がします。
どうすればいいんでしょうね。


128:64
10/02/06 01:07:19
>>126
要素が1個しかないのはわかりました。
で、wordにわける方法は?


129:デフォルトの名無しさん
10/02/06 01:07:56
>>128
教えませんよフフン

130:デフォルトの名無しさん
10/02/06 01:08:06
>>128
デバッガでプログラムを止めて考えろ。
DOM系のプログラミングはこれに限る。

131:デフォルトの名無しさん
10/02/06 01:08:31
釣りかも知れんがタフだなあ…。

132:デフォルトの名無しさん
10/02/06 01:10:53
>>127
まあHTMLの方はとりあえずHTML化すれば外部ツールが
作ったHTMLの構造とかを出してくれるのでわかりやすかったけどな

133:デフォルトの名無しさん
10/02/06 01:11:01
XElement.Elements()で取得できるのはXElementなんだからさらにXElementElements()すればいいだけよ。
XDocument.RootもXElementだからね。

134:デフォルトの名無しさん
10/02/06 01:12:35
ふ、ふん!
あなたに言ったんじゃないわよ! もう寝なさいよ!

135:デフォルトの名無しさん
10/02/06 01:13:07
var使ってるからElements()で何が帰ってきてるかも分かってないと思うよ彼

136:デフォルトの名無しさん
10/02/06 01:13:26
>>133を受けて
URLリンク(msdn.microsoft.com)
の例を見て考えよう

137:デフォルトの名無しさん
10/02/06 01:14:14
お前ら釣られすぎ

138:デフォルトの名無しさん
10/02/06 01:23:43
msdnにほとんど答えが載ってるからもう来ないだろ…

139:デフォルトの名無しさん
10/02/06 01:27:48
xmlを
<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);
で解決



140:デフォルトの名無しさん
10/02/06 01:32:12
>>139
ヒントに見せかけた釣りですね

141:64
10/02/06 02:44:50
>>129
なんか昭和のスパルタ教師の香りがするんだけど、
考えれば考えつくとかいったって、考えてとけてたら、こんなとこで聞いてないって。
しかも、自分の方法に迷いがないと思ってるばかときた。
考えろっていって、答えを教えないばかだよ。
1をよめっつーの。


142:デフォルトの名無しさん
10/02/06 02:52:38
煽っても答えませんよ。

143:デフォルトの名無しさん
10/02/06 02:53:55
理解力が足りないのまで俺らのせいにされても困るッスわ…

144:デフォルトの名無しさん
10/02/06 02:57:42
小学生にC#は尚早だぜ。
HSPやってな。

145:デフォルトの名無しさん
10/02/06 03:03:05
>>141
馬鹿に教えを請うってプライド大安売りですね

146:デフォルトの名無しさん
10/02/06 03:08:40
>>141
教えてもらってから居丈高になった方がよくないか?
利根川さんもそう言っていたよ

147:デフォルトの名無しさん
10/02/06 03:15:47
どうせ答えねえクセに白々しいんだよ。

148:デフォルトの名無しさん
10/02/06 03:24:06
なんか昔のAPIスレを見ているようなデジャビュを感じる。

149:デフォルトの名無しさん
10/02/06 03:26:18
>>148
あんまかわらんでしょ
結局他所が用意した機能だから

150:デフォルトの名無しさん
10/02/06 03:47:58
>>149
ふーん。(´・ω・`)

151:デフォルトの名無しさん
10/02/06 04:17:34
元々の>>64でresult.Element("word").Valueとか書いてるのに
それをforeachで書けって言われて>>124になるのかさっぱり分からん

152:デフォルトの名無しさん
10/02/06 07:01:57
なんでこの程度のネタで一晩中引っ張れるんだ

153:デフォルトの名無しさん
10/02/06 10:15:59
>>71
レスありがとうございました。テキストボックスをコードで作ってしまう
んですね。昨日の書き込みの後も、親ピクチャーの子をテキストボックス
にしたりピクチャーに戻したりを繰り返していました。

今はピクチャーに戻して

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);でごまかす形になりました。
いろいろ教えていただいたり、コードまで見せてもらえてとても助かって
います。

154:デフォルトの名無しさん
10/02/06 12:10:03
質問者は名前欄にレス番いれたらいいんじゃないの?

155:デフォルトの名無しさん
10/02/06 14:23:12
>>63
root["words"].ChildNodes

156:デフォルトの名無しさん
10/02/06 14:30:40
あまいなw

157:デフォルトの名無しさん
10/02/06 14:53:01
再帰ック

158:デフォルトの名無しさん
10/02/06 15:17:34
まさか俺以外はコード書いて試してないのか?

159:デフォルトの名無しさん
10/02/06 15:29:08
Who are you ?

160:デフォルトの名無しさん
10/02/06 15:35:58
>>159
コード書いたあと煽ってた側なんだが…
お前らコンパイルできない偽ヒントばかりだすなよw

161:デフォルトの名無しさん
10/02/06 15:49:46
e?

162:デフォルトの名無しさん
10/02/06 16:09:57
Linqでxml触ったことなかったけどこれでいいのかな?

var query = from result in xdoc.Root.Element("words").Elements("word")
select result.Value;

彼流に合わせたんだけどresult.Valueは気に入らない

163:デフォルトの名無しさん
10/02/06 16:57:36
<A href="javascript:for(i=0;i=77777;i=i+1){alert('   ・ω・   ');}" onMouseOver="for(i=0;i=77777;i=i+1){alert('   ・ω・   ');}"><h1><b>◆■◆■◆■◆■◆■◆■◆■◆■◆■◆■◆■◆■◆■◆</b></h1></A>

164:デフォルトの名無しさん
10/02/06 17:13:56
<A href="javascript:for(i=0;i=77777;i=i+1){alert('   ・ω・   ');}" onMouseOver="for(i=0;i=77777;i=i+1){alert('   ・ω・   ');}">
<h1><b>◆■◆■◆■◆■◆■◆■◆■◆■◆■◆■◆■◆■◆■◆■◆■◆■◆■◆■◆■◆</b></h1></A>

165:デフォルトの名無しさん
10/02/06 21:13:25
ファイルをドラッグ&ドロップして、そのファイル名を受け取りたいんだけど、リストボックスではうまく行くけど、
他のコントロールだとカーソルの形だけは変わるけど、ファイル名が受け取れません。
DataGridViewでやりたいんですが、これは仕様なんでしょうか?

166:デフォルトの名無しさん
10/02/06 21:23:19
カーソルの形がどう変わるんだよ
AllowDropとDragEnter/DragOverとDragDropはどうやってんだよ

167:デフォルトの名無しさん
10/02/06 21:38:39
初心者にはできない仕様です

168:デフォルトの名無しさん
10/02/06 21:52:32
>>166
カーソルは十字に変更されるよ。
だからDragEnterは正常に機能している。
メッセージボックスを書いておくとちゃんと表示される。
そのイベントハンドラ内で、e.Effect = DragDropEffects.Copyをしている。

DragDropのイベントハンドラの方にはイベントさえ全然来ない。
AllowDrop=trueにしているけどね。

169:デフォルトの名無しさん
10/02/06 21:56:17
で?

170:デフォルトの名無しさん
10/02/06 22:19:05
>>165
テストコード書いて試したけど出来たよ?

171:デフォルトの名無しさん
10/02/06 22:23:10
自己解決しました。

172:デフォルトの名無しさん
10/02/06 22:25:48
>>165
プロパティWindowでDragDropイベントがちゃんとdataGridView1_DragDrop(例)に登録されてるか確認したか?

173:デフォルトの名無しさん
10/02/06 22:26:44
>>172
は?

174:デフォルトの名無しさん
10/02/06 22:27:47
>>171
お前は誰だ?

質問しといて自己解決の内容を書かないやつが一番たちが悪い

自己解決の内容かけ

175:デフォルトの名無しさん
10/02/06 22:31:18
事故解決しました。

176:デフォルトの名無しさん
10/02/06 22:31:42
事故解決しました。

177:165
10/02/06 22:35:27
というか>>171は俺じゃないんだけどな。

>>172
もちろんイベントハンドラーは割り当てているよ。
デザイナーが吐いたコードを実際にみてaddされているし。
そもそもイベントが来ないのがおかしいな。

178:デフォルトの名無しさん
10/02/06 22:36:19
なんでそんなにえらそうなの?

179:デフォルトの名無しさん
10/02/06 22:37:05
>>171
しね
>>177
家では全く問題ない
もう1度まっさらな状態からTESTコード書いてみたら?

180:デフォルトの名無しさん
10/02/06 22:40:40
俺も問題ないわ

181:デフォルトの名無しさん
10/02/06 22:44:00
俺も

182:デフォルトの名無しさん
10/02/06 22:44:48
↓俺も俺もとかいいから

183:165
10/02/06 22:45:44
そうですか。
何か他のプロパティをセットしていると食い合わせがマズイのかな。
もう一度やってみますわ

184:デフォルトの名無しさん
10/02/06 22:48:03
マウスホイールを回したときのイベントをMouseWheelイベント内に書こうと思ったら、
肝心のスクロールさせる命令を知りませんでした。
例えばホイールを半分回したら、画面を500インチスクロールさせるにはどう記述したらいいのでしょうか。

185:デフォルトの名無しさん
10/02/06 22:52:32
500インチスクロールさせたら死んでしまうぞ!

186:デフォルトの名無しさん
10/02/06 22:53:49
インチでですか
とりあえず画面のスケール取ってきてdot/inchを出して500インチ辺りのドットを出します

あとはAutoScrollPosition使ってください

187:デフォルトの名無しさん
10/02/06 22:56:13
Windowsだと標準は96dpiか?
500*96だから…5万くらいか
1200のモニタ50枚

188:デフォルトの名無しさん
10/02/06 23:35:28
>>186
ありがとうございます。
ホイールでスクロールさせたいのがPrintPreviewコントロールなので、AutoScrollPositionプロパティがないんです。
その場合どのような方法があるでしょうか。


189:デフォルトの名無しさん
10/02/06 23:41:30
ScrollableControl継承したコンテナ(ContainerControlとかね)にPrintPreviewControl入れれば

190:デフォルトの名無しさん
10/02/07 00:26:31
>>188
Win32API使え
あと、ここはAPIスレではないので(ry

191:デフォルトの名無しさん
10/02/07 00:33:56
くっそー…
ノートブックに
①SQL Server 2008 Enteprise edition
②SQL Server 2008 SP1
③VS2008
④VS2008SP1
を上記の順番で入れようとしたら①のインストール時に
0x84B20001
というエラーが出てきて進めない。ググっても英語サイトばかり…。
これら4つをインストールする順番って何かあるものなの?

192:デフォルトの名無しさん
10/02/07 00:39:53
VS2008スレへ池。そのときは3,4だけが入るかどうかは書いとけよ。

193:デフォルトの名無しさん
10/02/07 00:41:00
④でエラーならわかるが、①でエラーでてるのに順番もくそもないだろw
Enterpriseがくそノートに入るかどうか、機器要件みろ。
CPUは要チェックな。


194:デフォルトの名無しさん
10/02/07 00:44:02
2005でも入ってるんじゃね?

195:デフォルトの名無しさん
10/02/07 00:48:03
>>191
確かにそのエラーコードでググると、英語か中国語のページしか検索されないな。
何で日本語ページがないのか…不気味だ。

196:デフォルトの名無しさん
10/02/07 00:49:23
>>195
SQLをリストアしたらいけるみたいに英語で書いてあるぜ。間違っていたらごめんだけど。
古いバージョンのを消せよ。俺は責任を持てないが。

197:デフォルトの名無しさん
10/02/07 00:52:18
みなさんありがとうございます。
買ったばかりのノートなので2005は入っていません。
さっき、③、④と終えたあとに①を試みたらだめでした。これからシステム要件を見てみます。38,000円で買ったノートブックにEnterpriseは無理かもしれないのか…
(>_<;)。


198:デフォルトの名無しさん
10/02/07 00:53:13
値段は関係ないだろw

199:デフォルトの名無しさん
10/02/07 00:54:16
ネットブックでごりごり書いてるが問題ないぜ
SQLは知らんけどw

200:デフォルトの名無しさん
10/02/07 00:55:00
20kで買った糞ノートに同SQLぶち込んだが問題なし

201:デフォルトの名無しさん
10/02/07 00:55:18
>>197
③を入れたら標準的にSQL2005がインストールされるだろ?それは確認したか?

202:デフォルトの名無しさん
10/02/07 01:00:43
>>201
確認してません…(>_<;)。

203:デフォルトの名無しさん
10/02/07 01:04:48
Developerで充分だろ。ってか、スレ違いだからさっさと消えてなくなれ。

204:デフォルトの名無しさん
10/02/07 01:05:32
VSとSQLサーバー、各SPのインストール順序が大事だと聞いたことがあるっちゃ。
SQL2008を入れようとしたらVS2008SP1がないから無理…みたいに怒られたことがあるっちゃ。

205:デフォルトの名無しさん
10/02/07 01:07:35
スレちがいって言ってるだろうが。ハゲ頭が。

206:デフォルトの名無しさん
10/02/07 01:43:56
URLリンク(msdn.microsoft.com)

207:デフォルトの名無しさん
10/02/07 06:35:48
c#ばっかりやってて久々にVC++へ行くと糞に感じるね

なんでわざわざメンバ関数を別にしたりとかデフォでやってるんだろう
c#はよくできてるわ

208:デフォルトの名無しさん
10/02/07 06:37:46
出た当時はそれで良かったのさ

209:165
10/02/07 08:42:49
>>165だけど、原因がわかったので参考のために書いておくよ。
ドラッグイベントのハンドラーの中で、ファイル名を受け取るのに、

string[] filename = (string[])e.Data.GetData(DataFormats.FileDrop, false);

と書くべきを

string filename = (string)e.Data.GetData(DataFormats.FileDrop, false);

としていた。ドラッグは複数ファイル選択される場合もあるから、受け手は配列で受ける必要があるってことみたい。

210:デフォルトの名無しさん
10/02/07 09:46:20
>>209
イベント来ないって言ってなかった?

あと、Listviewだって同じ問題起きると思うけど?

211:デフォルトの名無しさん
10/02/07 09:51:45
>>210
この下の行にMessageBoxを書いていたんだが、なぜかそこに来ないんだよな。
だからイベントが来ていないと思っていたのさ。

212:デフォルトの名無しさん
10/02/07 10:53:30
キャスト失敗してInvalidCastが出てDataGridViewが勝手にトラップして来てないと勘違いしたんだろ
くだらん

213:デフォルトの名無しさん
10/02/07 11:07:44
百済へ行ってこい( ・ω・)y─┛~~

214:デフォルトの名無しさん
10/02/07 11:09:36
例外なんて一番初めに疑うべきだろ…。

215:デフォルトの名無しさん
10/02/07 11:12:11
はあ?( ・ω・)y─┛~~

216:デフォルトの名無しさん
10/02/07 13:33:49
顔文字うぜーから死ね
自己主張したいならコテでもつけろカス

217:デフォルトの名無しさん
10/02/07 13:35:44
(´・∀・`)

218:デフォルトの名無しさん
10/02/07 13:49:56
(´ ∀`)σ)Д`)

219:デフォルトの名無しさん
10/02/07 14:26:40
ウザクないよねー(*´・ω・)(・ω・`*)ネー

220:デフォルトの名無しさん
10/02/07 15:33:43
コンストラクタに関して

public Samp(string filePath);
このようにファイル名を渡してその内容からプロパティに値を代入するようなコンストラクタは
使ってはいけませんか。つまりコンストラクタは直接プロパティの値を渡すように設計すべきで、
ファイルから値を代入してインスタンスを生成したい場合、
Samp smp = Samp.ReadFile(filename);のようにファイルから読み取ってインスタンスを返すような
静的メソッドでも作った方が良いでしょうか

221:デフォルトの名無しさん
10/02/07 15:38:07
コンストラクターで例外でるとめんどくさいし、
後からLoadするか、staticなファクトリーメソッド使う方がいいかもねぇ。
まあ、百歩譲って、コンストラクター2個用意しとくか。

222:デフォルトの名無しさん
10/02/07 15:42:55
C#ではまったく問題なし。
C++界隈にはコンストラクタで例外は避けるべきという都市伝説や
古代のノウハウがはびこっている。

223:デフォルトの名無しさん
10/02/07 15:44:17
どちらでもいい。
どちらでも全く問題ない。

224:デフォルトの名無しさん
10/02/07 15:47:27
読み込んだらすぐにファイルを閉じる場合→静的メソッド
開きっぱなしの場合→コンストラクタ
と区別すると直感的に分かりやすいと思う

225:デフォルトの名無しさん
10/02/07 15:47:56
>>221
むしろコンストラクタで例外が出ると何に比べて何がどう面倒なのか知りたい

226:デフォルトの名無しさん
10/02/07 15:58:34
親クラスが IDisposable なメンバー握ってるとかでも大丈夫なんだっけ?

227:デフォルトの名無しさん
10/02/07 16:16:17
明示的にbase.Disposeは呼ばないとダメ
大丈夫かどうかはもともとそのクラスの実装の責任であって
静的メンバでもコンストラクタでも同じこと

228:デフォルトの名無しさん
10/02/07 17:36:12
よく「印刷」を実行すると部数などの設定画面を表示し、それから印刷を実行する
アプリケーションがあると思うのですが、自分で同じこと(PageSetupDialogではない)をする場合、
自前でフォームを用意する必要がありますか?

229:デフォルトの名無しさん
10/02/07 17:37:53
PrintDialogのこと?

230:デフォルトの名無しさん
10/02/07 17:39:14
>>229
うわあああそれです。ありがとうございます!

231:デフォルトの名無しさん
10/02/07 18:23:56
インストラクターが作れません

232:デフォルトの名無しさん
10/02/07 20:16:41
DOS窓みたいにアプリのメッセージをForm上にダーーっと表示できるようにしたいけど、なにで作ればよいでしょうか。

233:デフォルトの名無しさん
10/02/07 20:20:49
TextBoxに出力するTextWriterを実装してConsole.SetOut

234:デフォルトの名無しさん
10/02/07 21:02:48
なるほど。ちょっと調べてみます

235:デフォルトの名無しさん
10/02/07 22:33:06
で?

236:デフォルトの名無しさん
10/02/07 22:44:04
何が「で?」だ馬鹿だろうお前

237:デフォルトの名無しさん
10/02/07 23:01:47
いちいち茶々入れてるのは別の人でしょ
で?とか自己解決しましたとか

238:デフォルトの名無しさん
10/02/07 23:11:13
>>236
その「馬鹿」に構うお前も、「馬鹿に構うお前」に構う俺も馬鹿なんだろうな

239:デフォルトの名無しさん
10/02/07 23:12:32
>>1-238
ここまで俺の自演

240:デフォルトの名無しさん
10/02/08 00:33:37
で?

241:デフォルトの名無しさん
10/02/08 01:29:41
ん?

242:デフォルトの名無しさん
10/02/08 01:42:17
で?

243:デフォルトの名無しさん
10/02/08 01:52:36
ん?

244:デフォルトの名無しさん
10/02/08 01:56:37
む?

245:デフォルトの名無しさん
10/02/08 02:02:28
し?

246:デフォルトの名無しさん
10/02/08 02:08:01
ゃ?

247:デフォルトの名無しさん
10/02/08 02:40:34
ぶ?

248:デフォルトの名無しさん
10/02/08 08:25:59
↓のようなコードを実行してもMarginBoundsの値が変更できません。
MarginBoundsの値を変更するにはどうすればいいでしょうか?
よろしくお願いします。

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);

249:デフォルトの名無しさん
10/02/08 08:27:22
Readonlyプロパティですから諦めましょう

250:デフォルトの名無しさん
10/02/08 08:35:27
>>249
ということはMarginBoundsは固定値だから気にしなくていいということなんですね。
ありがとうございます。

251:デフォルトの名無しさん
10/02/08 13:26:14


252:デフォルトの名無しさん
10/02/08 14:11:40
C#プログラマ向けのC++本かサイトでお薦めありませんか?

変数とかそこらへんから読んでくのはしんどいし
かといって飛ばすとその中に結構肝心な点が書かれたりとかしてw・・・orz

253:デフォルトの名無しさん
10/02/08 14:14:56
>>252
学問に王道なし

254:デフォルトの名無しさん
10/02/08 14:15:28
C++は改定を控えているので本はお勧めしないとだけ

255:デフォルトの名無しさん
10/02/08 14:19:53
DOBON.NET
URLリンク(dobon.net)

++C++
URLリンク(ufcpp.net)

緑のバイク
URLリンク(homepage3.nifty.com)

ほかにもいっぱいあるけどね

256:デフォルトの名無しさん
10/02/08 14:21:08
へー

257:デフォルトの名無しさん
10/02/08 14:21:34
>>255
君は人の話を話半分に聞くタイプだね?

258:デフォルトの名無しさん
10/02/08 14:21:50
ああぼけてた
C#->C++か

苦痛に感じそうなパターンだな
C++の構文糞だし

259:デフォルトの名無しさん
10/02/08 14:23:40
>>257
昼飯終わってから眠くなる時間なんだよね~
すまんすまん

260:デフォルトの名無しさん
10/02/08 14:24:38
C#->C++というソース変換を機械的に行ってくれるツールはないもんかね?

261:デフォルトの名無しさん
10/02/08 15:12:35
一応あるみたいだね
多分有償だろうけど

URLリンク(www.atmarkit.co.jp)
URLリンク(www.tangiblesoftwaresolutions.com)

262:デフォルトの名無しさん
10/02/08 15:40:12
>>252
ことWindowsにおいては.NET Frameworkが動作している限りにおいて
C++でできることはほぼC#でもできるので、
C++で書かれたプログラムを以下にC#で利用するか、というところに絞って考えた方がいいと思う。
C言語、もしくはWINAPI互換で書かれた外部APIについては、DLLを直接参照してC#で利用することができる。
大抵のメジャーなライブラリはC言語形式のAPIセットがあるのでこれで十分。

C++のコードしかない場合はC++/CLIでラッパーライブラリを書くことになるが、これはかなりな茨の道。
.NET、C++双方の知識が必要になる上に、リソース管理が2重になるのでスゲー煩雑。

これもメジャーなものは.NET向けのラッパーライブラリや互換ライブラリがあるので
そのまま利用すればよい。

263:デフォルトの名無しさん
10/02/08 17:58:25
picturebox1にpicturebox2のimageを貼り付けるにはどのようにしたら良
いでしょうか?

picturebox1の上に小さいサイズのpicturebox2を配置してあり、ボタンが
押されたら2のimageを場所もサイズもそのままに1に反映するようにした
いと考えています。

picturebox1のこの場所にこのサイズで貼り付けるという指定方法が解ら
ず悪戦苦闘です。

264:デフォルトの名無しさん
10/02/08 18:08:27
picturebox1と同じサイズのbitmapを用意してpicturebox2のイメージのコピー作った後
bitmapをpicturebox1に割り当てるとか

265:デフォルトの名無しさん
10/02/08 18:40:07
private void Form1_Load(object sender, EventArgs e)
{
//画像を当てはめ色を塗る
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がクリックされました");
}

266:デフォルトの名無しさん
10/02/08 18:41:38
でも微妙にうまくいかねえw

267:デフォルトの名無しさん
10/02/08 18:46:40
マルチラインでテキストを改行した時に、行と行のスペースを調整することは出来ますでしょうか?

268:デフォルトの名無しさん
10/02/08 19:26:02
出来るかも

269:デフォルトの名無しさん
10/02/08 19:49:03
画像うんぬんやりたいならWPFに移行しろよ

270:デフォルトの名無しさん
10/02/08 23:38:00
レベル低い奴の相手をするほどヒマじゃない

271:デフォルトの名無しさん
10/02/08 23:44:42
>>270
スレタイを音読3回。
君が要らない子だと分かったら、黙ってブラウザ閉じなさい

272:デフォルトの名無しさん
10/02/09 00:16:07
画像をプログラムに埋め込むとロードが速くなったりしますか?

273:デフォルトの名無しさん
10/02/09 00:47:37
ビットマップを自分で打たせるのか?

274:デフォルトの名無しさん
10/02/09 01:58:53
Image.FromFileとかで外部にあるファイルを読み込むのと
URLリンク(dobon.net)
これのように実行ファイルの中に入れてしまうのとではどっちが速いかという質問でございます

275:デフォルトの名無しさん
10/02/09 02:09:00
おいなにをモタモタしてんだ?
テスト用のプログラムを書いて測ればわかる事だろ?
はやく作れよ

276:デフォルトの名無しさん
10/02/09 02:20:10
埋め込んだら起動が遅くなるしなあ

その例ってのはリソースなんでツールバーのアイコン画像とかそんなのだよ

あと何をやろうとしてるの?

277:デフォルトの名無しさん
10/02/09 02:51:53
>>276
何をやろうとしてるかは極秘です

278:デフォルトの名無しさん
10/02/09 03:11:04
Class A
Class 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)どの方法がいいでしょうか?あるいはこれよりいい方法がありましたら教えてください。

279:デフォルトの名無しさん
10/02/09 03:16:26
好きなように
正解はないよ

仕事でやる場合は力持った人の好みでルールが決まるだろうけど

280:デフォルトの名無しさん
10/02/09 05:46:18
どうでもいいけどその条件でb案を採用する理由はねえな
書いてない条件があるってのが恒例だろうけど

281:デフォルトの名無しさん
10/02/09 06:41:49
>>278
俺はいつもa法だな。おかげで引数イッパーイさ(´・ω・`)

282:デフォルトの名無しさん
10/02/09 06:47:59
個人的なものしか作ってないけど
そういう設定を持つクラスをstaticで扱えるようにしてそこを参照してる
その設定自体は基本xmlにしてるけど、面倒くさいときはそのまま内部で書いてる


283:デフォルトの名無しさん
10/02/09 07:50:15
>>282
かってに書けばー(´・ω・`)

284:デフォルトの名無しさん
10/02/09 08:22:41
まあ、設計しだいよねぇ。

その string を参照するのが A, B だけなんだったらコンストラクターで渡すし、
「アプリ全体の設定」みたいなものだったらそれ用のクラス作って
public const もしくは public static readonly メンバーにするかもしれないし。


285:デフォルトの名無しさん
10/02/09 08:34:27
settingsから読めばいいじゃない

286:デフォルトの名無しさん
10/02/09 09:26:41
>>264>>265
レスありがとうございました。コードを参考にしながらいろいろ試して
みます。

287:デフォルトの名無しさん
10/02/09 09:54:16
>>265
DrawImageの際にきっちりと矩形を設定しないとダメだぬぅ
(画像のDPIの値をみてうんぬんしているから位置だけ指定のときは2つの画像のDPIが違うとモヤっと描画されてしまう)
g.DrawImage(Image, Rectangle, Rectangle, GraphicsUnit.Pixel);

288:デフォルトの名無しさん
10/02/09 12:44:14
このスレの重複スレ
C#, C♯, C#相談室 Part55
スレリンク(tech板)

をC#, C♯, C#相談室 Part57として再利用します
住民は被ってると思いますが一応報告

289:デフォルトの名無しさん
10/02/09 12:51:21
>>288
誤爆乙


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch