ふらっとC#, C♯, C#(初心者用) Part15
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2007/04/12(木) 23:14:25「どんなにくだらないC#プログラミングに関する発言でも誰かが優しくレスをしてくれるスレッド」です。
ほかのスレッドでは恐ろしくて書き込めないような低レベル、もしくは質問者自身なんだか意味がよく分からない質問など、
勇気をもって書き込んでください。
内容に応じて、他スレ・他板へ行くことを勧められる、あるいは誘導される場合がありますがご了承下さい。
前スレ: ふらっとC♯, C#(初心者用) Part14
http://pc11.2ch.net/test/read.cgi/tech/1172662746/
0153デフォルトの名無しさん
2007/04/19(木) 21:46:53まさか、お前、本気でSelectedIndicesの使い方しらんのか?
MSDN読んどけよ。
0154デフォルトの名無しさん
2007/04/19(木) 21:47:41色々勘違いしているようだ
つか ListView.SelectedIndices ってスナップショットじゃないのな
ちょっと驚き
0155デフォルトの名無しさん
2007/04/19(木) 22:02:43listView1.Focus();
listView1.Items[n].Selected = true;
で,出ますね
items[]なんてあるとわからないで items.で捜してしまって初心者にはわからないのですよ
ヒントもらえるとホント助かります
0156デフォルトの名無しさん
2007/04/19(木) 22:03:420157デフォルトの名無しさん
2007/04/19(木) 22:19:08心配なんですが、そこらへんの情報ありませんか?
0158デフォルトの名無しさん
2007/04/19(木) 23:22:240159デフォルトの名無しさん
2007/04/19(木) 23:30:42VS2005からコンパイルするとRelaseモードでも/debug:pdb-onlyになってるから
*.pdbファイルへのフルパスが埋め込まれている。
そのパスにユーザー名が入ってたらそれはわかる。
0160デフォルトの名無しさん
2007/04/19(木) 23:35:020161デフォルトの名無しさん
2007/04/19(木) 23:37:250162デフォルトの名無しさん
2007/04/19(木) 23:38:520163デフォルトの名無しさん
2007/04/20(金) 00:12:16よる単語選択ができません。
トリプルクリックによる行選択は出来るのですが、ダブルクリックでは1文字だけが
選択されてしまいます。
また、ドラッグによるテキスト選択を行おうとすると、カーソルの彼方の方まで選択
してしまったりと、謎の挙動で困っております。
このような挙動を、一般的なアプリ風にするには、どのようにしたらいいのでしょうか?
0164デフォルトの名無しさん
2007/04/20(金) 00:29:46ダブルクリックで単語選択できるし。
新しいフォームに RichTextBox 貼り付けただけのプロジェクトで試してみた?
0165デフォルトの名無しさん
2007/04/20(金) 01:03:56新規プロジェクトを作ってRichTextBoxを1つだけ貼り付けて、何も設定していない状態で
試してみましたが、英語とひらがな・カタカナは正常に選択されますが、漢字がダメです。
「これは機能テストです。」という文字列を入力して試してみたのですが、
「これは」「テスト」「です」は正常、「機能」の部分だけ選択されないという状況でした。
通常、ダブルクリックで選択するような場合は、漢字の変換ミスの時が多いと思うので、
なんとかしたいのですが、解決方法がまったく思いつきません。。。
もしかしたら、.NET2.0では直っているのでしょうか。。。
0166デフォルトの名無しさん
2007/04/20(金) 01:08:51ワードパットで試してみ。
自分でクリック位置の前後の単語区切りを探して選択するようなコードを書けばいい。
0167デフォルトの名無しさん
2007/04/20(金) 01:14:26あーそりゃ RichEdit の仕様だ。ワードパッドでもそうなる。
漢字は一文字で 1 ワード。ひらがなやカタカナは同じ文字種の範囲で 1 ワード。
どうにかするには……思いつかんな。
一般的なエディタは RichEdit なぞ使わんからなぁ。
0168デフォルトの名無しさん
2007/04/20(金) 01:25:37あぁ、確認しました。。。
> 自分でクリック位置の前後の単語区切りを探して選択するようなコードを書けばいい。
(´A`)
0169デフォルトの名無しさん
2007/04/20(金) 07:42:07http://pc11.2ch.net/test/read.cgi/tech/1173763436/592
592 名前:デフォルトの名無しさん[] 投稿日:2007/04/18(水) 01:31:56
.NET1.1とC#で勉強を兼ねてワードパットのようなモノを作っているのですが、
RichTextBoxで一般的なWindowsアプリにあるようなダブルクリックによる
単語選択ができません。
トリプルクリックによる行選択は出来るのですが、ダブルクリックでは1文字だけが
選択されてしまいます。
また、ドラッグによるテキスト選択を行おうとすると、カーソルの彼方の方まで選択
してしまったりと、謎の挙動で困っております。
このような場合は、どのようにしたらいいのでしょうか?
0170デフォルトの名無しさん
2007/04/20(金) 08:19:00タイピングする前に当たり前の確認作業をしようと思わないのかね。
少なくとも俺には精神分析の対象程度には人格が壊れてるとしか思えない。
0171デフォルトの名無しさん
2007/04/20(金) 08:38:45精神分析厨
0172デフォルトの名無しさん
2007/04/20(金) 12:24:45Resources1.designer.csが作られて
Resource1.imgHogeとプロパティでアクセスできるんですが、
この場合返ってきたBitmapオブジェクトは、使い終わったら
Disposeするべきなんですか?
Disposeした場合、
もう一度Resource1.imgHogeってアクセスしても普通に使えるんですが
これは安全ですか?
ResourceManager.GetObjectをMSDNで読むと
「……複数回呼び出した場合、戻り値が同じオブジェクトの参照になるとは限りません。……」
とあるので、同じ参照になる場合もあるってことですかね?
0173デフォルトの名無しさん
2007/04/20(金) 16:30:090174デフォルトの名無しさん
2007/04/20(金) 19:52:45Paintイベントで使ってて >>172 のような疑問を持ったらオレは夜も眠れない
っていうかもう眠れないじゃねーか!w
0175デフォルトの名無しさん
2007/04/20(金) 21:02:19PaintEventArgs.GraphicsはDisposeしてはならん。
0176165
2007/04/20(金) 21:43:15public class RichTextBoxCustom : System.Windows.Forms.RichTextBox {
protected override void OnDoubleClick(EventArgs e) {
MessageBox.Show("test");
}
}
という風にしたものをフォームに貼り付けてダブルクリックしてみたのですが、反応がありません。
で、VisualStudioでブレイクポイントを設定してみたのですが、入ってきている形跡がないようなのですが、
なんででしょうか?
0177デフォルトの名無しさん
2007/04/20(金) 23:00:18{
MessageBox.Show( "test" );
base.OnMouseDoubleClick( e );
}
だけどテキストが選択されてからMessageBoxがでるようだから
もっとメッセージ的に前のイベントをとるか
WndProcでマウスメッセージ捕まえるかしたほうがいい。
まずはReflectorでRichTextBoxの挙動を調べろ
話はそれからだ
0178デフォルトの名無しさん
2007/04/21(土) 00:34:08>話はそれからだ
北方謙三にでもなったつもりかねw
頭オカシイんじゃねえの
0179デフォルトの名無しさん
2007/04/21(土) 00:49:33Reflector使うのがかっこいい年頃なんだろw
0180デフォルトの名無しさん
2007/04/21(土) 01:29:160181デフォルトの名無しさん
2007/04/21(土) 02:35:450182デフォルトの名無しさん
2007/04/21(土) 04:14:38おっさん年いくつだよ
0183北方謙三
2007/04/21(土) 07:37:110184デフォルトの名無しさん
2007/04/21(土) 08:05:510185デフォルトの名無しさん
2007/04/21(土) 10:54:21いいねぇ趣味でやってる学生プログラムマーは。コストなんて無関係でw
0186デフォルトの名無しさん
2007/04/21(土) 10:56:20手っ取り早く挙動を確認するのに、早い場合「も」あるわな。
0187デフォルトの名無しさん
2007/04/21(土) 11:08:230188デフォルトの名無しさん
2007/04/21(土) 12:01:350189デフォルトの名無しさん
2007/04/21(土) 13:52:220190デフォルトの名無しさん
2007/04/21(土) 14:10:420191デフォルトの名無しさん
2007/04/21(土) 14:11:50ほんとう
ttp://www.atmarkit.co.jp/fdotnet/insiderseye/20060215cscommunity/cscommunity_01.html
0192デフォルトの名無しさん
2007/04/21(土) 14:41:03一応コードポイント 81F8 ということになってはいる。
0193デフォルトの名無しさん
2007/04/21(土) 14:47:09JIS X 0213 には入ってるし、だから当然 Unicode にも入ってるし、メイリオ や Tahoma にはグリフもあるんだけど、
Windows の持ってるコード変換テーブルにはなぜか含まれない。
0194デフォルトの名無しさん
2007/04/21(土) 17:58:23アクティブウインドウのX・Y座標とWidthとHeightを知りたいのですが、
WIN32APIのGetActiveWindow使いますか?
0195デフォルトの名無しさん
2007/04/21(土) 18:38:46System.Windows.Forms.Form.ActiveForm()
0196デフォルトの名無しさん
2007/04/21(土) 18:41:47取得するフォームが自分のアプリケーションだけならば >>195 を
そうで無いならば GetActiveWindow を
0197デフォルトの名無しさん
2007/04/21(土) 22:30:55とりあえず色々コントロールを使ってみようと思ってフォームにステータスバーを置いたら
見た目が普通のものと違う、、、
コレって普通の見た目のステータスバーにはできないでしょうか?
0198デフォルトの名無しさん
2007/04/21(土) 22:40:220199デフォルトの名無しさん
2007/04/21(土) 22:55:410200デフォルトの名無しさん
2007/04/21(土) 23:24:220201デフォルトの名無しさん
2007/04/22(日) 00:07:23先が思いやられるな
0202デフォルトの名無しさん
2007/04/22(日) 00:21:350203デフォルトの名無しさん
2007/04/22(日) 01:33:520204202
2007/04/22(日) 01:36:470205デフォルトの名無しさん
2007/04/22(日) 01:45:36Main()の最初にこの一行追加して実行したまへ
ToolStripManager.VisualStylesEnabled = false;
0206デフォルトの名無しさん
2007/04/22(日) 10:54:110207デフォルトの名無しさん
2007/04/22(日) 11:00:470208デフォルトの名無しさん
2007/04/22(日) 11:08:31思って、メッセージのキューの方法で実現できる方法を探していました。
でも今挫折してデリゲートを関数ポインタとして使って親に通知しようとしてます。。。
だめ?
0209デフォルトの名無しさん
2007/04/22(日) 11:22:050210デフォルトの名無しさん
2007/04/22(日) 12:12:42メッセージキューの方法って? ポストするってこと?
関数ポインタで親に通知って?
よのなか謎でいっぱい
0211デフォルトの名無しさん
2007/04/22(日) 12:45:110212デフォルトの名無しさん
2007/04/22(日) 12:46:150213デフォルトの名無しさん
2007/04/22(日) 14:02:000214デフォルトの名無しさん
2007/04/22(日) 14:07:11ttp://www.atmarkit.co.jp/fdotnet/easyvs2nd/easyvs2nd01/easyvs2nd01_04.html
にあるように[新規プロジェクト]→[Windowsアプリケーション]で生成されたプログラムを、
素の状態でビルドして実行してもフォームが表示されません。ビルドされたファイルを直接開いても同様です。
見たところタスクマネージャーにも変化が見られないんですが、これって何かの設定ミスとかなのでしょうか?
環境はWin XP SP2、VC#2005 Express Editionです
0215デフォルトの名無しさん
2007/04/22(日) 14:44:060216デフォルトの名無しさん
2007/04/22(日) 15:00:450217214
2007/04/22(日) 15:39:57・VC#で[F5]または[Ctrl+F5]で実行
・ビルドしたファイルはデフォルトの設定のままで設定してるので
「マイドキュメント」→[Visual Studio 2005]→[Projects]→[Windows Aplication1]→[bin]→[Release]
にあった実行ファイルを直接開く
の2種類をトライしました。
他作業をしているときに気付いたのですが、どうやら一応実行だけはされているようです。
ただし開いた瞬間にアプリケーションが終了しているようでした。
ウィンドウサイズやタイトルのパラメータを弄ってビルドすると反映されることから、
一応ビルドはうまくいっているようです
0218デフォルトの名無しさん
2007/04/22(日) 16:33:370219デフォルトの名無しさん
2007/04/22(日) 16:43:36Eclipseにあるようなtry〜catch()で囲むの機能
(選択範囲のスローされる例外のcatchを自動で生成してくれる)機能ってないでしょうか?
0220デフォルトの名無しさん
2007/04/22(日) 16:49:42C#にはJavaのthrowsに相当するものがないから
0221デフォルトの名無しさん
2007/04/22(日) 16:49:570222デフォルトの名無しさん
2007/04/22(日) 17:03:26空のcatchブロックが意味内のはわかりますが
catchする気がなくてもどんな例外が出るか一気に調べられて便利だと思うんですが
0223デフォルトの名無しさん
2007/04/22(日) 17:07:35MSDNのいい加減さをみりゃわかるだろうが、
発生する可能性のある例外を調べる方法はない。
0224デフォルトの名無しさん
2007/04/22(日) 17:15:52ありがとうございます。
0225デフォルトの名無しさん
2007/04/22(日) 19:59:45203さんの言うとおりStatusStripとStatusBarで見た目が違うので戸惑いました。
205さん解答ありがとうございました。これからちょっと試してみます。
0226デフォルトの名無しさん
2007/04/22(日) 20:08:01General.walker[0].printtest();
public class StartWalker
{
public void printtest()
{
General.PRTMSG_LIST += "----------------------------------------\r\n";
}
}
public struct General
{
public static List<StartWalker> walker = new List<StartWalker>();
}
こんばんは、上記のような使い方をしたいのですが設定の方法がわかりません
おしえていただけないでしょうか?
0227デフォルトの名無しさん
2007/04/22(日) 20:16:560228デフォルトの名無しさん
2007/04/22(日) 20:51:30GeneralにPRTMSG_LISTなどというメンバはないようだが
0229デフォルトの名無しさん
2007/04/22(日) 21:20:140230デフォルトの名無しさん
2007/04/22(日) 21:22:470231デフォルトの名無しさん
2007/04/22(日) 21:23:450232デフォルトの名無しさん
2007/04/22(日) 21:24:480233デフォルトの名無しさん
2007/04/22(日) 21:29:270234デフォルトの名無しさん
2007/04/22(日) 21:30:41Positionはいろいろある。
何のPositionか書け。
0235デフォルトの名無しさん
2007/04/22(日) 21:32:09DataSet.Datatable.Position
0236デフォルトの名無しさん
2007/04/22(日) 21:42:30General.walker[0].printtest();
General.walker.Add(null);
General.walker[1].printtest();
int c = General.walker[1].intB();
General.walker[1].intB() = 5;
public class StartWalker
{
string a = "";
string msgstack = "";
int b =0;
public void printtest()
{
//メインになる動作を入れます
msgstack += "test you"+"\r\n";
}
public int intB {
get { return b;}
set { b = value}
}
}
public struct General
{
public static List<StartWalker> walker = new List<StartWalker>();
}
説明不足で申し訳ありません
マルチスレッドでStartWalkerの部分をGeneral.walker.Add(null);で任意の数ついかしたいのですが
うまく説明できません・・・
0237デフォルトの名無しさん
2007/04/22(日) 21:45:310238デフォルトの名無しさん
2007/04/22(日) 21:46:360239デフォルトの名無しさん
2007/04/22(日) 21:47:080240デフォルトの名無しさん
2007/04/22(日) 21:49:08helpトピック25件も出るぞ。
0241デフォルトの名無しさん
2007/04/22(日) 21:49:590242デフォルトの名無しさん
2007/04/22(日) 21:50:07かまねんねやけどな。
なんでnullをAddするんかいな。
おっちゃんそこんとこわからへんねん。
うごかへんのとちゃうんかいな。
0243デフォルトの名無しさん
2007/04/22(日) 21:54:17ボタンを押す
設定した数のサブプログラムスレッドを起動
ボタン2を押す
n番目のスレッドの変数cを参照して表示する
//サブプログラム
乱数ベースでさまざまな演算を行い変数を格納
int a =1;
int b =2;
int c =3;
上記のようなプログラムが組みたいのですが
0244デフォルトの名無しさん
2007/04/22(日) 21:56:54いままでなんでそれを書かなかったの?
ゆとり世代?
0245デフォルトの名無しさん
2007/04/22(日) 21:57:28組めば?
0246デフォルトの名無しさん
2007/04/22(日) 21:57:42何をAddすれば動くのかわからなくって
とりあえずnull入れちゃってます・・・
0247デフォルトの名無しさん
2007/04/22(日) 21:59:16全くかすってない。
センスないよ。
いきなりスレッドなんかやらずに基礎から地道にやれよ。
0248デフォルトの名無しさん
2007/04/22(日) 22:00:38>>236を見る限りだと勉強不足が否めないな
スレッドなんか触るべきじゃない
0249デフォルトの名無しさん
2007/04/22(日) 22:24:11このあたりも全くスレッドを理解してない証拠。
0250デフォルトの名無しさん
2007/04/22(日) 22:55:37int view = a[threadnumber];
int view2 = a2[threadnumber];
のような参照の仕方だったのですが。
int view = Thread[0].getint();
int view2 = Thread[1].getint2();
クラスを作成してそれをマルチスレッドで動かし
後にそれぞれのクラスから計算結果を取り出そうと思ったのですが
public static List<StartWalker> walker = new List<StartWalker>();
でクラスのもとを作成して
walker.Add();
で要素(class)の数を追加
ThreadPool.QueueUserWorkItem(new WaitCallback(walker[0].main), 0);
でスレッドを起動みたいなイメージでした。
独学なのでいまいちわからなくてこまっています。。
0251デフォルトの名無しさん
2007/04/22(日) 23:01:07『独学でそこまでやったことは素直に評価できると思う。セオリーとは乖離しているが』
walker に追加する理由は何だい?
後で参照するん?
0252デフォルトの名無しさん
2007/04/22(日) 23:02:26初心者とか関係なくこの言葉は常に頭に入れておいたほうがいいよ
Keep it Simple, Stupid.
■ このスレッドは過去ログ倉庫に格納されています