C♯, C#相談室 Part35
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2006/11/03(金) 03:07:45前スレ
C♯, C#相談室 Part34
http://pc8.2ch.net/test/read.cgi/tech/1157549657/
過去スレは>>2-5あたり。
※スレタイに「#」を入れても消えちゃうので新スレ立てる人は要注意だ。
0792デフォルトの名無しさん
2006/12/02(土) 23:47:24外部の設定ファイルに応じて自由に変える機能を作りたいのですが
方法はないでしょうか?
0793デフォルトの名無しさん
2006/12/02(土) 23:50:050794デフォルトの名無しさん
2006/12/02(土) 23:50:33サイズ0のメインウィンドウを作る
0796デフォルトの名無しさん
2006/12/02(土) 23:57:59ソリューションの関連先がかわってしまった!
しばらく沈黙します。
0797デフォルトの名無しさん
2006/12/03(日) 00:00:45どういったやり方があるのでしょうか?
次に起動したときに読み込みたいのです
0798デフォルトの名無しさん
2006/12/03(日) 00:04:190799デフォルトの名無しさん
2006/12/03(日) 00:13:32その方法だと
シリアル化できない設定ですってエラーがでるんです
0800デフォルトの名無しさん
2006/12/03(日) 00:23:380801デフォルトの名無しさん
2006/12/03(日) 00:27:22ttp://module.jp/blog/RTFM_Hell.html
ttp://oldriver.org/torumemo/065.html
0802デフォルトの名無しさん
2006/12/03(日) 00:45:08TreeViewを継承して[Serialized]でもできませんでしたし・・・
[NonSerialized()]も使わなきゃいけないんですか?
0803デフォルトの名無しさん
2006/12/03(日) 00:58:18{
List<TreeNode> lst = new List<TreeNode>();
foreach( TreeNode node in this.treeView1.Nodes )
{
lst.Add( node );
}
BinaryFormatter bf = new BinaryFormatter();
using( FileStream fs = new FileStream( "unko.dat", FileMode.Create ) )
{
bf.Serialize( fs, lst );
}
}
private void button3_Click( object sender, EventArgs e )
{
BinaryFormatter bf = new BinaryFormatter();
List<TreeNode> lst;
using( FileStream fs = new FileStream( "unko.dat", FileMode.Open ) )
{
lst = (List<TreeNode>)bf.Deserialize( fs );
}
this.treeView1.Nodes.AddRange( lst.ToArray() );
}
0804デフォルトの名無しさん
2006/12/03(日) 01:04:130805デフォルトの名無しさん
2006/12/03(日) 01:07:340806デフォルトの名無しさん
2006/12/03(日) 01:48:12何を永続化する必要があるのかをよく考えるべき。
0807デフォルトの名無しさん
2006/12/03(日) 02:47:40nddeapi.dllのAPIを使おうと下記のように書いてみたのですが、呼び出し時にインスタンスが
なんたらとかいうエラーが出てしまいます。
たぶん構造体の受渡に失敗しているような気がするのですが、みなさん助けてください(><)
[StructLayout(LayoutKind.Sequential, Pack=1)]
public struct NDdeShareInfo {
public long lRevision;
public char[] lpszShareName;
public long lShareType;
public char[] lpszAppTopicList;
public long fSharedFlag;
public long fService;
public long fStartAppFlag;
public long nCmdShow;
public long[] qModifyId;
public long cNumItmes;
public string lpszItemList;
}
[DllImport("nddeapi.dll", EntryPoint="NDdeShareAdd", CharSet=CharSet.Ansi)]
public static extern uint NDdeShareAdd(
string lpszServer,
int level,
ref SecurityDescriptor pSD,
ref NDdeShareInfo lpNDdeShareInfo,
long cbShareInfo
);
0808デフォルトの名無しさん
2006/12/03(日) 03:36:190,2,3,5列目
の値がそれぞれ
hoge0, hoge2, hogeee, hoge
の行を探す
みたいな機能はdataGridViewにはないですか?
もしくは、
0,2,3,5列目
の値がそれぞれ
hoge0, hoge2, hogeee, hoge
だったらtrueを返す
みたいな比較メソッドはないですか?
0809デフォルトの名無しさん
2006/12/03(日) 06:16:49MSDN の「アンマネージ コードとの相互運用」以下を嫁。
型のサイズがめちゃくちゃだ。
そう言えば Vista では NetDDE 完全廃止らしいな。
>>808
そんなのが標準で用意されてたら却ってイヤだ。
素直にループ回せ。
0810デフォルトの名無しさん
2006/12/03(日) 07:34:43まだC#でプログラミングしてはいないのですが、その前に既存の Word2003 が
インストールされているところへ、
・ .NET Framework 2.0
・ Visual C# 2005 Express Edition 日本語版
をインストールしたところ、 Word2003 が起動するときによくわからないエラー
が出るようになってしまいました。(そのエラーメッセージをエンターで解除した
あとは Word2003 自体は使えていました)
そうこうするうちに、Word2003 の使用頻度が高くなり、一方 C# の緊急度が下がり、
逆に別のアプリケーションを入れる関係で .NET Framework 1.1 の導入の必要が
出て、一旦 C# も .NET Framework 2.0 もアンインストールしてしまいました。
すると Word2003 の起動時に出ていたエラーは出なくなりました。
今度また C# や VB.NET を学習するために再び同様にインストールしようと
考えているのですが、同じ問題が起こるとちょっと困るなと思いました。
出ていたエラーメッセージは記録していなかったのですが、こうしたことは起こるもの
でしょうか?それとも Express Edition であったために起こった問題の可能性もある
でしょうか?申し訳ないですが、よろしければ教えていただけたらありがたく。
環境: Windows2000 (Updateはネット経由で随時更新)
0811デフォルトの名無しさん
2006/12/03(日) 07:42:36大抵はインストールする人が変なコトしたからだろう。
あと .NET 1.1 入れるからって .NET 2.0 消す必要も意味もないぞ。
別物だから。
0812デフォルトの名無しさん
2006/12/03(日) 07:54:15さっそくどうもです。助かります。
.NET Framework 2.0 や C# Express を入れるときにトラブルしたり
その他のNG等が出たわけでもなく、すんなり普通に終わっていたかと思います。
そこで思いましたのは、もしかしたら Express を入れるとそうなってしまうのか
ということでした。製品版だと問題ないのだとしたらしょうがないのかなと。
>.NET 1.1 入れるからって .NET 2.0 消す必要も意味もない
あ、そうだったのですか!問題起こすといけないと思って抜いてしまいました。
だとすると これからこのまま 2.0 入れてしまえばいいわけですね。
それでその上で
Visual C# 2005 Express Edition 日本語版
や同 VB.NET Express も入れてしまえばよいと。
ありがとうございました。またやってみてわからないことが出たら教えてください。
大変どうもでした。
0813デフォルトの名無しさん
2006/12/03(日) 10:59:28でXMLのルートノードの最初の子を取り出せますよね?
その次の子が欲しい場合は
rootXmlNode = myXmlDocument.DocumentElement.FirstChild.NextSibling;
で取り出せるんですけど、次の子がnullになるまで取り出したい場合、
XmlNode rootXmlNode = myXmlDocument.DocumentElement.FirstChild;
(rootMxlNodeを使った処理)
if(rootXmlNode = myXmlDocument.DocumentElement.FirstChild.NextSibling != null)
{
rootXmlNode = myXmlDocument.DocumentElement.FirstChild.NextSibling;
(rootMxlNodeを使った処理)
if(myXmlDocument.DocumentElement.FirstChild.NextSibling.NextSibling != null)
{
rootXmlNode = myXmlDocument.DocumentElement.FirstChild.NextSibling.NextSibling
(rootMxlNodeを使った処理)
}
・
・
・
}
ってやらなきゃいけないんですか?
For文を使うわけにはいけないし・・・
他にいい方法ないですかね?
0814デフォルトの名無しさん
2006/12/03(日) 11:01:02無能っぽく再帰でもしてろよボケ
0815デフォルトの名無しさん
2006/12/03(日) 11:11:55ファイル読み込みなので再帰の方法が思いつかないんですが
こういう場合でもできますか?
0816デフォルトの名無しさん
2006/12/03(日) 11:12:27{
Console.WriteLine( "ふらっとC♯, C#(初心者用) Part10" );
Console.WriteLine( "http://pc8.2ch.net/test/read.cgi/tech/1162193452/" );
Console.WriteLine( " へどうぞ" );
}
0817デフォルトの名無しさん
2006/12/03(日) 11:34:54ありがとうございました。
0818デフォルトの名無しさん
2006/12/03(日) 11:36:34rootXmlNode = myXmlDocument.DocumentElement.FirstChild;
do{
//
}while(null!=(rootXmlNode = rootXmlNode.NextSibling));
0819デフォルトの名無しさん
2006/12/03(日) 11:41:27foreach(rootXmlNode in myXmlDocument.DocumentElement.ChildNodes){
//
}
0820デフォルトの名無しさん
2006/12/03(日) 12:06:05>>819
ありがとうございます
0821デフォルトの名無しさん
2006/12/03(日) 13:05:15すみませんが、ついでにもう一つ教えてくださいませ。申し訳ありません。
もしかして、.NET は Windows2000 はサポート外ではないですよね
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnnetdep/html/ndp2_prere.asp
では
Microsoft Windows 2000 Professional with SP4
がありましたのでOKのようですが、今 Microsoft のサイトを見ましたら、
現在の Framework の最新バージョンは 3.0 になっていました、それで対応OSに関しては
http://www.microsoft.com/japan/msdn/windowsvista/general/netfx30.aspx
-------------------------
.NET Framework 3.0 の導入
このセクションでは、.NET Framework 3.0 を導入してアプリケーションで使用する方法について説明します。
ソフトウェア要件
.NET Framework 3.0 をインストールするには、対象のコンピュータに次のいずれかのオペレーティング システムがインストールされている必要があります。
Microsoft Windows XP Home または Microsoft Windows XP Home Professional、Service Pack 2 以降
Microsoft Windows Server 2003 ファミリ、Service Pack 1 以降
-------------------------
とありました、これは 3.0 以降はこのバージョン以上からしか対応しない
ということになるでしょうか?Windows2000 は安定性がいいのでずっと使っていましたが、
.NET 3.0 以降が必要な場合は上記OS以上に Upgrade しないといかんということになる
でしょうか?
0822デフォルトの名無しさん
2006/12/03(日) 13:25:23その通り。
WinFX改め.NET3.0からは2kサポートがドロップされてる。
0823デフォルトの名無しさん
2006/12/03(日) 13:25:502.0 までは Win98 以降
あと今更 2k の方が安定性がとか無い
0824デフォルトの名無しさん
2006/12/03(日) 13:58:15早速にどうもです。
そうだったんですか、うーん。
早急な Upgrade はまだとしても、いずれはやらないと
いけないんですね。わかりました。
とりあえずは 2.0 を入れて VS2005 を勉強してみます。
どうもありがとうございました。
>あと今更 2k の方が安定性がとか無い
そうでしたか、自分がいた会社でも去年ぐらいまではずっと
これを言っていて業務用は2000で統一していたりしていました。
ありがとうございました。
それではまたよろしくお願い致しますです。
0825デフォルトの名無しさん
2006/12/03(日) 14:43:14それは機材の更新を先延ばしにしたい鯖缶の常套句
0826デフォルトの名無しさん
2006/12/03(日) 15:52:420828デフォルトの名無しさん
2006/12/03(日) 18:00:23金ないのもあるだろうがむしろ
め ん ど く さ い 仕 事 増 や す な
だと思う > 鯖缶
0829デフォルトの名無しさん
2006/12/03(日) 18:13:55C#には、FTPサーバにファイルを
アップデートする方法(クラスライブラリ)
があるのでしょうか。
0830デフォルトの名無しさん
2006/12/03(日) 18:46:02当然MSDNぐらいは検索したんだろうな?
0831デフォルトの名無しさん
2006/12/03(日) 20:03:31すいません、MSDNってなんですか?
0832デフォルトの名無しさん
2006/12/03(日) 20:10:48>すいません、MSDNってなんですか?
>すいません、MSDNってなんですか?
>すいません、MSDNってなんですか?
>すいません、MSDNってなんですか?
0833デフォルトの名無しさん
2006/12/03(日) 20:13:270834デフォルトの名無しさん
2006/12/03(日) 20:16:570835デフォルトの名無しさん
2006/12/03(日) 20:25:360836デフォルトの名無しさん
2006/12/03(日) 20:35:51すみません初心者なので略されると学習できません
おはずかしいのですが
0837デフォルトの名無しさん
2006/12/03(日) 20:37:570838デフォルトの名無しさん
2006/12/03(日) 20:46:54Virtuoso Sound
0839デフォルトの名無しさん
2006/12/03(日) 20:56:420840デフォルトの名無しさん
2006/12/03(日) 20:57:200841デフォルトの名無しさん
2006/12/03(日) 21:19:25飽きたのでマジレス。まず、ここは初心者スレ(ふらっとスレ)ではないです。
ましてや「C#初心者」よりもっと前の段階の人なんて初心者スレでもお断りです
入門書でも買ってそこからはじめてください。
0842デフォルトの名無しさん
2006/12/03(日) 21:25:010843デフォルトの名無しさん
2006/12/03(日) 22:57:240844デフォルトの名無しさん
2006/12/03(日) 23:02:01検索はYahooで行っています。
なにか、問題ありますか?
0845デフォルトの名無しさん
2006/12/03(日) 23:04:56問題ないから他所に池
0846デフォルトの名無しさん
2006/12/04(月) 00:31:38変数に格納する作業をしたいのですがエラーが発生します。
string ErrCode = "";
"DECLARE @ErrCode exec [STP_SelectKoshinSiire] @ErrCode OUTPUT SET @ErrCode = " + ErrCode;
どこか間違っていますでしょうか?
0847デフォルトの名無しさん
2006/12/04(月) 00:39:14基本がナットラン・・・
0848デフォルトの名無しさん
2006/12/04(月) 00:44:10たぶんコンパイラも呆れてるよ?
x = y;
右辺yを左辺xに代入
0849デフォルトの名無しさん
2006/12/04(月) 01:02:12エラーメッセージ
=付近に不適切な構文があります。
となってしまいます。
0850デフォルトの名無しさん
2006/12/04(月) 01:06:21Visual Studio 2005のスレがあるから、次からはそちらへ。
0851847
2006/12/04(月) 01:06:23不適切な構文があるんです
0852デフォルトの名無しさん
2006/12/04(月) 01:25:16いえ自分の見る限りですがそんな構文あり得ないです
0853デフォルトの名無しさん
2006/12/04(月) 02:00:49おまいは C# が使いたいのか C# に似たオリジナル脳内言語が
使いたいのかどっちなんだ?
前者ならコンパイラのほうがまず正しい。後者なら C# のコンパイラは
使えない。
0855デフォルトの名無しさん
2006/12/04(月) 08:29:520856デフォルトの名無しさん
2006/12/04(月) 08:48:500857デフォルトの名無しさん
2006/12/04(月) 09:51:26全力をもって食い付くのが俺のジャスティス。
0858デフォルトの名無しさん
2006/12/04(月) 09:59:53がんばれ。
0859デフォルトの名無しさん
2006/12/04(月) 11:43:310861デフォルトの名無しさん
2006/12/04(月) 21:21:520862デフォルトの名無しさん
2006/12/04(月) 21:22:540863デフォルトの名無しさん
2006/12/05(火) 16:50:07FontプロパティをMS ゴシック, 9ptにしているのですが、Textプロパティに文字列をセットしたときと
RichTextBoxに直接入力したときでフォントが変わってしまいます。
なぜだかご存知の方はおられますか?
0864デフォルトの名無しさん
2006/12/05(火) 17:24:140865デフォルトの名無しさん
2006/12/05(火) 17:25:180866デフォルトの名無しさん
2006/12/05(火) 18:56:08メニューなしでショートカット(Ctrl+Oで開くなど)を実現する方法はありますか?
0867デフォルトの名無しさん
2006/12/05(火) 19:05:120868デフォルトの名無しさん
2006/12/05(火) 19:13:07アジア言語圏特有の仕様。
この機能を抑制するにはWin32ではEM_SETLANGOPTIONSメッセージでIMF_AUTOFONTをクリアする。
.NETでもP/Invokeを使わない方法が何かあったと思ったが出てこないな。
0870デフォルトの名無しさん
2006/12/05(火) 20:31:12ログ紛失してしまったorz
0871デフォルトの名無しさん
2006/12/05(火) 20:43:53これ?
uint opt = (uint) richTextBox1.LanguageOption;
opt &= ~((uint)RichTextBoxLanguageOptions.DualFont);
richTextBox1.LanguageOption = (RichTextBoxLanguageOptions) opt;
0872デフォルトの名無しさん
2006/12/05(火) 21:52:29おおおおおおおおおおおおおおおおおおおおおおお
ありがとうございます!!!
0873871
2006/12/05(火) 22:06:35richTextBox1.LanguageOption &= ~RichTextBoxLanguageOptions.DualFont;
でいいな。
0874デフォルトの名無しさん
2006/12/05(火) 22:29:33enumを直接演算に使うと警告かエラーが出た気がする。それでuintにキャストしているはず。
0875デフォルトの名無しさん
2006/12/05(火) 22:36:410876デフォルトの名無しさん
2006/12/05(火) 22:43:18別に問題ないよ。
今回は大丈夫だけど、enumを32ビットと仮定しているところのが怖い。
0877デフォルトの名無しさん
2006/12/05(火) 23:45:060878デフォルトの名無しさん
2006/12/06(水) 12:12:370879デフォルトの名無しさん
2006/12/06(水) 12:29:44ここで現在表示されているUnix Epochからの経過秒数を、普通の日付に直したいと思います。
これは非バインドされた列を新たに追加して、バインドされた列を元にデータを作らないといけないのでしょうか。
それとも、バインドされた列に「そのように見えるフィルタ」のようなものをほどこしてやる事は可能でしょうか?
方針を教えていただければ幸いです。
0880デフォルトの名無しさん
2006/12/06(水) 12:43:39普通SQLの段階で直す。DataSetはあくまでコンテナ。クエリエンジン
ではない。
0881デフォルトの名無しさん
2006/12/06(水) 12:50:35そうなんですけど。レコード件数が多いのでサーバ負荷がすこしでも減ればと思って。
あまり意味はないのでしょうか。
0882デフォルトの名無しさん
2006/12/06(水) 14:33:33FieldOffset
ところでVARIANTARGには死んでもらっていいですか?
0883デフォルトの名無しさん
2006/12/06(水) 15:29:290884デフォルトの名無しさん
2006/12/06(水) 15:32:58アークエンジェル副砲。艦尾両舷に1基ずつ装備されているリニアガン。連射能力も高く精密射撃が可能だが、長時間連続使用すると砲身温度が上昇して使用出来なくなるのが欠点。
右舷が1番、左舷が2番である。ゴットフリートと違って側面に配置されているために上下方向の旋回が可能であるため、地表や海面を空中から直接狙撃することも可能である。
また、潜水航行が可能である本艦にとって数少ない水中での攻撃が可能な兵器である。
「DESTINY」最終話では、これによりミネルバの武装を破壊、戦闘不能に追い込んだ。
0885デフォルトの名無しさん
2006/12/06(水) 15:41:430886デフォルトの名無しさん
2006/12/06(水) 17:04:03普通にinvalidate()するよりも軽くなるんでしょうか?
[DllImport("user32.dll")]
private static extern IntPtr GetDC(IntPtr hwnd);
[DllImport("user32.dll")]
private static extern bool InvalidateRect(
IntPtr hWnd,
ref Rectangle r,
bool bErase
);
private void button2_Click(object sender, EventArgs e)
{
Graphics gra = pictureBox1.CreateGraphics();
IntPtr hwnd = gra.GetHdc();
Rectangle rect = new Rectangle(100,100,100,100);
InvalidateRect(hwnd, rect, false);
}
調べたんですがこの程度しか分かりませんでした。あってるのかも分からないです
0887デフォルトの名無しさん
2006/12/06(水) 17:17:380888デフォルトの名無しさん
2006/12/06(水) 17:42:12メソッド名にインタフェースを表すようなプレフィックスつけてる?
それとも衝突覚悟で同じ名前つける漢ですか?
0889デフォルトの名無しさん
2006/12/06(水) 17:46:12InvalidateRectが引数にとるのはRECT構造体へのポインタ。
マネージドのRectangleではない。メンバの意味が違う。MSDNで探せ。
GetHdcしたらReleaseHdcする。
CreateGraphicsしたらDisposeする。
あと細かいけど
>IntPtr hwnd = gra.GetHdc();
hwndはHWND型
hDCはHDC型
マネージドだとどっちもIntPtrで型はあってるけど
ふつうそういうときにhwndは使わない
つーか>>887でFA
0890889
2006/12/06(水) 17:54:02よく考えたらデバイスコンテキスト取得する必要ないじゃんorz
InvalidateRectの第一引数はウインドウハンドルっす。
どうしてもInvalidateRectしたいなら
struct RECT
{
public int left;
public int top;
public int right;
public int bottom;
}
で
RECT rct = new RECT();
//ここでrctのメンバ入れる。rightとbottomにちゅうい
InvalidateRect( pictureBox1.Handle, ref rct, false );
0891886
2006/12/06(水) 18:34:56教えてもらったとおりがんばってみます。
0892デフォルトの名無しさん
2006/12/06(水) 19:32:32そこにリストボックスを配置、DockをFillにしました。
が、表示させるとなぜか下のほうにFormがはみ出ます。
(グレーの背景が見える)
なぜなんでしょう?
■ このスレッドは過去ログ倉庫に格納されています