トップページ⇒tech
1001コメント308KB

C♯, C#相談室 Part35

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2006/11/03(金) 03:07:45
(#゚ー゚)つ < C#、.NETの話題はこちらでどうぞ。

前スレ
C♯, C#相談室 Part34
http://pc8.2ch.net/test/read.cgi/tech/1157549657/

過去スレは>>2-5あたり。
※スレタイに「#」を入れても消えちゃうので新スレ立てる人は要注意だ。
0669デフォルトの名無しさん2006/11/29(水) 15:51:22
>>668
サルベージする
0670デフォルトの名無しさん2006/11/29(水) 15:53:34
アプリケーションの設定を保存する
http://dobon.net/vb/dotnet/programing/storeappsettings.html

上のサイトで紹介されているアプリケーションの設定を保持するクラスを、”俺”ライブラリに追加しようとして難儀しています。
各々の静的メソッドとシングルトンであることを基本クラスで定義しておき、これを継承するクラスでシリアライズするプロパティを追加したいのです。
試行錯誤してみましたが、「静的メソッドとシングルトンであること」を基本クラスでうまく定義できなくて行き詰っています。
最近ようやくOOPを意識しはじめたので的外れな質問かもしれませんが、指針についてアドバイス頂ければと思います。
0671デフォルトの名無しさん2006/11/29(水) 16:37:53
つーかシングルトンクラスを継承だと?
その時点で破綻してないか?
0672デフォルトの名無しさん2006/11/29(水) 17:07:36
>>671
Orz
恥の書き捨てで伺いますが、それなら継承後のクラスをシングルトンにするのは如何なものなのでしょうか。
でも、それだと当初の目論見から外れてめんどうになりそうだなぁ。
0673デフォルトの名無しさん2006/11/29(水) 17:14:28
>>672
その程度のシングルトンなら
class MyClass {
 static MyClass _cur = new MyClass();
 static public MyClass Current {
  get { return _cur; }
 }
}
でいいんじゃないか?
何のためにがやりたいのか日本語で普通に説明してみて。
0674デフォルトの名無しさん2006/11/29(水) 17:27:33
>>673
>>670のURLを参考に、「アプリの設定を保持するためのクラス」を作りました。
シリアライズしたいオブジェクトをプロパティに持たせて使います。
シングルトンなのは「設定が複数できるとマズいから」です。

それを使ってみて便利だったので、シリアライズ用のメソッドと、保存する値を書き込むプロパティを別個のクラスにしたいなと思いました。
ここまで書いておもったのだけど、シリアライズ用のメソッドがstaticである必要は特に無いのかもしれません。
派生したオブジェクトについてはインスタンスが複数できるとマズいけど、>>673で頂いたような手法で良いのかも…。
検討してみまふ。どうもありがとうございました。
0675デフォルトの名無しさん2006/11/29(水) 17:42:30
こういうとき、C#3.0ならExtension Methodを使うようになるんだろうな。
0676デフォルトの名無しさん2006/11/29(水) 18:53:41
VSからrichTextBoxにコピペして気付いたけど
VSってRTFでコピーできるんだね。
色がついてて驚いた。
06776642006/11/29(水) 20:46:21
ちなみに俺は670ではありません。

今まで俺Setting的 Singleton 使ってたけど、
.NET Framework 2.0 での System.Configuration.ApplicationSetting が用意されてるから
わざわざ自分でつくるのは、すでに「車輪の再発明」的かな、と思ったです。

Settings.cs のコンストラクタに、this.Upgrade() 入れておけば
バージョンアップの際、結構自動で管理してくれるみたいだし。

ただ、デフォルトの LocalFileSettingsProvider がタコだなーと
バージョンアップした時の、以前の user.config の扱い次第では
自分で Provider 実装か、LocalFileSettingProvider か、
そこまではよくわかってません。

ttp://msdn2.microsoft.com/ja-jp/library/ms181001(vs.80).aspx


# Mono を意識するなら、現時点では
# 俺Setting になるから、これがベストかどうかはわからない
06786562006/11/29(水) 21:00:40
>>662
ありがとう。やっぱりWin32API使うしかないんですかー。
その方法使います。どもども
06796452006/11/29(水) 21:17:51
>>646
レスが遅れて申し訳ありません。補完して頂き大変参考になりました。m(_ _)m
自分は2003なので、多少修正したのと返すクラスがシングルトンでもOKなように
改造しました。一応載せますです。

   public interface IHoge
   {
      void ShowMessage(string str);
   }

   public interface IHogeFactory
   {
      IHoge CreateInstance();
   }

   public sealed class HogeCatalog
   {
      private static Hashtable catalog = new Hashtable();

      public static IHoge CreateInstance( string key )
      {
         return ((IHogeFactory)catalog[key]).CreateInstance();
      }
      public static void Register( string key, IHogeFactory factory )
      {
         catalog[key] = factory;
      }
      private HogeCatalog(){}
   }

0680645(続き)2006/11/29(水) 21:18:15
   public sealed class HogeFactoryA : IHogeFactory
   {
      public static void Register() { HogeCatalog.Register( "A", new HogeFactoryA()); }
      public IHoge CreateInstance() { return HogeA.CreateInstance(); }
      private HogeFactoryA(){}
   }

   sealed class HogeA: IHoge
   {
      private static HogeA myclass = new HogeA();
      public void ShowMessage(string str)
      {
         Console.WriteLine(str);
      }
      public static HogeA CreateInstance()
      {
         return myclass;
      }
      private HogeA(){}
   }

   [STAThread]
   static void Main()
   {

     HogeFactoryA.Register();

     IHoge hoge = HogeCatalog.CreateInstance("A");

     hoge.ShowMessage("ぬるぽ");
         
   }
0681デフォルトの名無しさん2006/11/30(木) 00:37:44
Visual C# 2005のフリー版をつかってるんですが、
これってEclipseのような自動インポート機能ってないのでしょうか?
いちいち
using
を自分で書いていかなきゃだめっすか?
0682デフォルトの名無しさん2006/11/30(木) 00:54:32
スマートタグで using を追加してくれるでしょ
0683デフォルトの名無しさん2006/11/30(木) 00:54:54
自分で発見shift+alt+F10ですか。
0684デフォルトの名無しさん2006/11/30(木) 01:18:32
>>681
Ctrl+スペース
0685デフォルトの名無しさん2006/11/30(木) 01:23:01
>>684
それだと
using
追加知れくれませんでした。
eclipseなら追加してくれるんだけど・・。
0686デフォルトの名無しさん2006/11/30(木) 01:34:43
eclipseにしとけ
0687デフォルトの名無しさん2006/11/30(木) 02:00:34
VSは最初にusingを記述するスタイルじゃなくて、
最初に使うときに型名を明示的に書かせてusingに追加させるスタイルなんだね
0688デフォルトの名無しさん2006/11/30(木) 08:44:20
パスで指定された形にたいしてぼかした影のようなものをつけたいんですがいまいちわかりません。
パスから鋭角を丸める→パスグラディエントブラシ?
0689デフォルトの名無しさん2006/11/30(木) 10:28:28
>>685
ReSharperっつーアドオンいれるとQuickFixでusingの追加できる。
けど、アドオンってことでVS2005 Expressだと無理で、ReShaperも有料だ。
ReSharperいれると、リファクタリングもeclipseレベルにまで拡張される。
0690デフォルトの名無しさん2006/11/30(木) 17:37:21
ソース今印刷したんだけど、印刷のときは表示のときのカラー設定とか一切無視するのね・・・




なんつーか( ゚Д゚)<氏ね!
0691デフォルトの名無しさん2006/11/30(木) 17:53:21
>>690
印刷と表示と色の設定で別々になってるよ
0692デフォルトの名無しさん2006/11/30(木) 18:10:16
>>691
それ設計思想が間違ってるだろう。
0693デフォルトの名無しさん2006/11/30(木) 18:14:05
>>692
画面でみるときには黒背景にしてるやつってたまにいるぞ。
うちの会社にも1人いる。
0694デフォルトの名無しさん2006/11/30(木) 18:37:14
>>692
テキストエディタの設定をコピーする機能があるから問題なし
0695デフォルトの名無しさん2006/11/30(木) 19:21:43
ガベレージコレクションは無効にできないの?
0696デフォルトの名無しさん2006/11/30(木) 19:24:48
仮に無効にできたとしたらメモリ開放できないぞ。
0697デフォルトの名無しさん2006/11/30(木) 19:31:29
>>695
無効にしてどうしたいんだ?
0698デフォルトの名無しさん2006/11/30(木) 19:33:56
ガベレージじゃなくてガベージだぞ。
0699デフォルトの名無しさん2006/11/30(木) 20:01:29
白地の液晶画面だと目が悪くなるよ…
蛍光灯凝視しているようなもの。
黒地に白がベター

印刷は別設定できるほうが絶対優れていると思うが、>>692みたいに
ねじ曲がった奴もいるんだな。
0700デフォルトの名無しさん2006/11/30(木) 22:07:30
黒地に白は見辛くて困る
薄緑地に黒が良い
0701デフォルトの名無しさん2006/11/30(木) 23:53:49
えくりぷちゅは色そのままだお・・・あほかと
0702デフォルトの名無しさん2006/12/01(金) 09:38:10
スレ違いではあるが
当方 CRT で背景 rgb(215,215,215)
結構見易い
0703デフォルトの名無しさん2006/12/01(金) 16:05:00
データベース(PostgreSQL)を参照するデスクトップアプリを作っています。
ユーザIDとパスワードを入力して、ログオンする機能をつけたいのですが、作り方の定石があれば教えてください。ID/Passは両方ともサーバ側で認証を行います。
ちなみに前身のAccessアプリではID/Passテーブルというものが設けられていました。
0704デフォルトの名無しさん2006/12/01(金) 19:32:11
sql serverのだったら本があるんだがな。
ODBC接続の接続文字列変えるだけでいいのかも。
0705デフォルトの名無しさん2006/12/01(金) 22:01:25
以前にPropertyGridの件で書き込んだ者です。
PropertyGridで、項目を展開できるようにしたはいいのですが、その数値変化した時にイベント取得が出来ません。

基本的に、位置は関係なく起こりさえすればいいのですが、ABCの値変化はMyClassChangedが発生しません。
結果、ABC変化は取得できない状況です。この取得は難しいでしょうか?

ソースはこんな感じです。
0706デフォルトの名無しさん2006/12/01(金) 22:04:05
[TypeConverter(typeof(CustomClassConverter))]
public Class Class1
{private CustomClass myClass;
public event EventHandler MyClassChanged;
public Class1()
{ myClass.DataChanged += new EventHandler(Triggar);}
[DefaultValue(0,0,0)]
public CustomClass MyClass
{get{return myClass;} set{ myClass = value; Triggar(); }}
public void Triggar()
{if(MyClassChanged != null) MyClassChanged(this,EventArgs.Empty);}}
public Class CustomClass
{private int a,b,c;
public event EventHandler DataChanged;
public CustomClass(){a = 0; b = 0; c = 0;}
public int A
{ get{return a;} set{a = value; Triggar(); }
public int B
{ get{return b;} set{b = value; Triggar();}}
public int C
{ get{return c;} set{c = value; Triggar(); }}
public void Triggar()
{if(DataChanged != null) DataChanged(this,EventArgs.Empty);} }
0707デフォルトの名無しさん2006/12/01(金) 22:12:01
こんなに汚いソースは久しぶりだ
0708デフォルトの名無しさん2006/12/01(金) 22:12:19
Class1 のコンストラクタを呼んだらヌルリの予感
0709デフォルトの名無しさん2006/12/01(金) 22:13:14
[TypeConverter(typeof(CustomClassConverter))]
public class Class1{
  private CustomClass myClass;
  public event EventHandler MyClassChanged;
  public Class1(){
    myClass.DataChanged += new EventHandler(Triggar);
  }
  [DefaultValue(0,0,0)]
  public CustomClass MyClass{
    get{return myClass;} set{myClass = value; Triggar();}
  }
  public void Triggar(){
    if(MyClassChanged != null) MyClassChanged(this,EventArgs.Empty);
  }
}
public class CustomClass{
  private int a,b,c;
  public event EventHandler DataChanged;
  public CustomClass(){ a = 0; b = 0; c = 0; }
  public int A{
    get{return a;} set{a = value; Triggar();
  }
  public int B{
    get{return b;} set{b = value; Triggar();}
  }
  public int C{
    get{return c;} set{c = value; Triggar();}
  }
  public void Triggar(){
    if(DataChanged != null) DataChanged(this,EventArgs.Empty);
  }
}
0710酔いちくれ ◆J0rwikii8c 2006/12/01(金) 22:14:21
もう、一体何がしたいんだと子一時間(ry
0711デフォルトの名無しさん2006/12/01(金) 22:16:24
せめてコンパイル通るコードを貼ってくれよ。もう嫌がらせのレベルだろ
07127052006/12/01(金) 22:17:51
>>707
スミマセン、携帯手打ちな上に改行規制でかなり削りました。
>>708
申し訳ないですが、Class1()内でnewを脳内補完していただけますよう。
0713デフォルトの名無しさん2006/12/01(金) 22:21:55
ぱっと見問題外のコードだな。どこから突っ込めばいいのか。
とりあえずここでやるには長すぎる。
0714デフォルトの名無しさん2006/12/01(金) 22:21:57
さっさとパケ死しろ
0715デフォルトの名無しさん2006/12/01(金) 22:28:36
エラー1デリゲート 'System.EventHandler' に一致する 'Triggar' のオーバーロードはありません。
0716デフォルトの名無しさん2006/12/01(金) 22:35:29
最大の問題はtrigg'a'rかな
0717デフォルトの名無しさん2006/12/01(金) 22:47:23
本当にスミマセン、粗がありすぎて……。
とりあえずこちらではコンパイル通っているので、基本的なエラーは目を瞑って下さい。

CustomClassでA、B、Cという値が設定できる状態で、
それをまとめたものとして"0,0,0"というstringをCustomClassのABCに代入出来るように、
ExpandableObjectConverterを継承したCustomClassConverterで変換してます。
CustomClassの各ABCset{}の時にイベントを発生させる形で、
それをさらにClass1で受け取って発生させるつもりでした。
しかしながら、一度Class1のプロパティとしてMyClassの値を変化させると、
DataChangedイベントは取得されなくなります。
どうやらMyClassで設定した後はDataChanged==nullとなってしまうようで、
これがなぜだか分かりません。

何をすれば再びABCの変化を取得出来るのでしょうか?
0718デフォルトの名無しさん2006/12/01(金) 22:52:22
MyClass { set; } で別インスタンスにしてるからだろ
イベント登録しなおせ
0719デフォルトの名無しさん2006/12/01(金) 23:36:58
TreeViewに動的に親や子を追加するにはどうすればいいですか?
また、親や子に名前以外のデータ(構造体やクラス)をもたせることって出来ますか?
0720デフォルトの名無しさん2006/12/01(金) 23:42:19
できません
0721酔いちくれ ◆J0rwikii8c 2006/12/01(金) 23:43:21
できるにきまってるだろwwww
0722デフォルトの名無しさん2006/12/01(金) 23:43:42
両方できないのですか?
0723デフォルトの名無しさん2006/12/01(金) 23:43:55
TreeNodeCollection.Add
Tag は .NET 2.0 以降だっけ?
それ以前なら TreeNode の派生クラス作るなり外部で Hashtable/Dictionary<TreeNode, Hoge>使うなり
0724デフォルトの名無しさん2006/12/01(金) 23:50:57
ふつう黒に緑じゃないか?
0725デフォルトの名無しさん2006/12/02(土) 00:40:20
デリゲートの意味がわからん・・・・
0726デフォルトの名無しさん2006/12/02(土) 00:43:27
関数ポインタのようなもの
0727デフォルトの名無しさん2006/12/02(土) 00:45:49
デリゲートに好きして
0728デフォルトの名無しさん2006/12/02(土) 00:46:24
使ったことないからピンとこないです。
つかなんでserialPostの受信ハンドラから同じクラス内の
コントロールハンドラを呼べないんだろ
0729デフォルトの名無しさん2006/12/02(土) 00:58:45
>>727
おっさん乙
0730デフォルトの名無しさん2006/12/02(土) 01:02:15
>>725
意味なら「委譲」。

.NETの機能のことなら、「型」の一種(delegate型)。
その型のインスタンスは、オブジェクト、または静的な「メソッド」へ
の参照を保持して呼び出すことが可能な実体。

型の一種として定義されるのでタイプセーフ。ポインタではなく
呼び出しのための実体として抽象化されているので、オブジェクトのメソッド、
静的なメソッド区別なく呼び出し可能。

別の機能である「イベント」と関連性が深い。

さらに言語機能として、C# 2.0で匿名メソッドが追加。これにより、「手続き」を
持ち運びできるように「見せ掛ける」機能にもなるように。BCLのコレクションク
ラスにもこの機能の使用を前提とした設計が見受けられるように。

3.0になるとさらに(ry
0731デフォルトの名無しさん2006/12/02(土) 01:03:24
そんなに言わなくても。
脳内補完で充分通るソースだと思うのですが・・
スペルが変、名前おかしい(インスタンスとクラスの区別ができていない?etc)、デリゲートの型があわない。
DefaultValueAttributeの使い方があわない、Frameworkの初期化ルールがわかっていないかも?
インスタンスとイベント(デリゲート)の関係が怪しいところ。くらい?

myClassオブジェクトに関するあらゆる変更を監視して、イベントMyClassChangedを呼び出すようにしたいはずなので
フィールドが変更されたときもイベントを購読(subscribe)するようにするとよいと思われ。
public CustomClass MyClass
 {get{return myClass;}
 set{
  if(myClass==value){return;}
  if(myClass!=null){ myClass -= new EventHandler(value_OnDataChanged);}
  value += new EventHandler(value_OnDataChanged);//value_OnDataChangedはEventHandler型メソッド
  myClass = value;
  Triggar();
 }
 public Class1(){ this.MyClass = new CustomClass();}
}
こんなのでよい?
0732デフォルトの名無しさん2006/12/02(土) 01:08:24
>>725
GenericsのList<T>クラスを使ってみると分かるかも
delegateを引数に取る奴、FindとかForEachとか
0733デフォルトの名無しさん2006/12/02(土) 01:09:50
>>731
それじゃコンパイル通らないよ
0734デフォルトの名無しさん2006/12/02(土) 01:12:04
>>728
スレッドが違うから。別のスレッドにアクセスするならInvokeしないと。
0735デフォルトの名無しさん2006/12/02(土) 01:14:41
>>731
TypeConverterがなんでClass1についてるのとか、
TypeConverterの中身はどうやねん(InstanceDescriptorの実装とか)とか、
DataChangedにするよりINotifyProertyChanged使えとか、
そもそもCustomClassはstructでいいやんとか、
class使うならDesignerSerializationVisibilityはContentのにしろよとか、
あーもうきりがない。

だからただ一言問題外と。
0736デフォルトの名無しさん2006/12/02(土) 01:20:29
ちょっとは脳内補完してやったら?
回答者の負荷が増えるじゃん
関数ポインタ知らない人にデリゲート教えるのメンドイよね。

Javaスクールの危険 - The Joel on Software Translation Project
http://local.joelonsoftware.com/mediawiki/index.php/Java%E3%82%B9%E3%82%AF%E3%83%BC%E3%83%AB%E3%81%AE%E5%8D%B1%E9%99%BA
じゃないけど、C#が便利すぎて逆に怖い。
0737デフォルトの名無しさん2006/12/02(土) 01:27:18
private void TreeView1_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
{
Point p = new Point();
p.X = e.X;
p.Y = e.Y;
ContextMenu1.Show(this,p);

}
ツリービューを右クリックした時にメニューを表示したいのですが
これは間違ってますか?表示されないんですが

0738デフォルトの名無しさん2006/12/02(土) 01:34:30
if( e.Button == MouseButtons.Right )
{
 ContextMenu1.Show( this.TreeView1, e.Location );
}


あるいは
this.TreeView1.ContextMenu = this.ContextMenu1;
としておくだけ。
0739デフォルトの名無しさん2006/12/02(土) 01:34:58
>>735
TypeConverter(typeof(ExpandableObjectConverter))はプロパティグリッドで展開して編集できるようにするためでは
プロパティグリッドにバインディングした奴は
DesignerSerializationVisibilityを特に設定しなくても実オブジェクトのプロパティは変更されると思われ
この場合は特に要らないかと。
structは特性を熟知している人が少ないから使わ(せ)ない派なんですが、あまりよくないのかな?

どうでもいいけど、INotifyProertyChangedを知ったときはちょっとショックだった。
後からこんなクラスあったんだって・・
Frameworkだだっぴろいよね。
0740デフォルトの名無しさん2006/12/02(土) 01:49:28
>>735
TypeConverterつけるべきはこの場合CustomClassのほうだと思うのだが?
それにCustomClass型のプロパティを使用するとして、これを代入させるのなら
TypeConverterにInstanceDescriptorの変換を定義しないとデザイナがプロパティ
代入時シリアライゼーションできない。直接ExtendableObjectConverterだけでは不可。

方法論としてはDesignerSerializationVisibilityがContentにして、その場合は
プロパティとしてgetのみにする(というかsetがあったら明示指定しないとContentと
デシリアライゼーション&代入とデザイナは区別できないはず、どっちが優先されるか
知らんが)。

または、この実装のように代入も許可するなら、この辺のシリアライゼーションを
きちんと実装した上でさっき誰かが書いたコードのようにイベント登録、解除の処理も
きちんと入れてやる。INotifyPropertyChangedにしたほうがいいが。あるいは代入クラスを
Componentにしてしまうのもありだろう。

ほかには動的なのでDefaultValueの代わりにShouldSerializePropertyの実装に切り替えるとか
ぐらいか。

つーかこの辺まじめに解説するとこのように長くなるっつーの。これでも省きまくっているのだが。
基礎知識ぐらいはつけてから聞いてほしいよ。
0741デフォルトの名無しさん2006/12/02(土) 02:00:43
>>738
ありがとうございます
しかしe.Locationの定義がありませんと出てしまいました
07427402006/12/02(土) 02:04:11
失礼。もう一つ方法追加。

CustomClassをstructに変更。CustomClass用のTypeConverterを実装(
stringの双方向変換、InstanceDescriptorへの変換、サブプロパティの許可等)して、
CustomClassに結びつける。InstanceDescriptorの関係から、組み込み型のみ使用
したコンストラクタor静的メソッドの実装あたりも。

ちなみに、これが最も標準的な方法で、使い方も楽。参照型のプロパティで
かつImmutableでない型をプロパティに使用し、代入許可するのはかなり異端な方法。
整合性を取るのが大変だからね。
0743デフォルトの名無しさん2006/12/02(土) 02:11:11
文字列がひとつ入力できるメッセージボックスって標準でありますか?
0744デフォルトの名無しさん2006/12/02(土) 02:12:14
VB用のInputBox
0745デフォルトの名無しさん2006/12/02(土) 02:27:19
>>744
ありがとうございます
0746デフォルトの名無しさん2006/12/02(土) 04:25:20
>>719です、まだ解らないので質問します
TreeViewの親や子に名前以外のデータ(構造体やクラス)をもたせることって出来ますか?
0747デフォルトの名無しさん2006/12/02(土) 08:30:36
>>746
>>723
0748デフォルトの名無しさん2006/12/02(土) 09:20:50
>>747
ああ、ありどとうございます!
もう一つ質問ですがハッシュテーブルをそのままファイルに書き出すことってできますか?
もちろん見ることではなく、次の起動の時読み込むのが目的です
0749デフォルトの名無しさん2006/12/02(土) 09:27:34
SoapFormatter やら BinaryFormatter やらなら
0750デフォルトの名無しさん2006/12/02(土) 15:40:14
デリゲートの正確な説明面倒だよな。

変数にメソッド代入して実行できるなんて適当に言ってみようか…
0751デフォルトの名無しさん2006/12/02(土) 15:47:33
デリゲートはデリケートな説明が必要だからな
0752デフォルトの名無しさん2006/12/02(土) 15:51:36
いい加減そのだじゃれ飽きたYO
0753デフォルトの名無しさん2006/12/02(土) 16:28:56
エディタを作っていて、TeraPadのように、行番号と桁数を表すルーラー
をつけたいと思うのですが、どのように実装すればいいでしょうか?
0754デフォルトの名無しさん2006/12/02(土) 17:25:29
Controlを継承して、ひたすら描画する。
C#でかかれたテキストエディタって、どこかにないのかな?
かなりP/Invokeを自分でラップすることになると思うんだけど・・
0755デフォルトの名無しさん2006/12/02(土) 17:46:11
DataGridViewで、
SelectionModeにFullRowSelect
を設定してるとき、選択されるのは行単位で、SelectedCellsも
その行のセルすべてになってるけど、これを本当にクリックして選択してる
1セル(点々で囲まれてるセル)を知るにはどーすればいいでしょう?

0756デフォルトの名無しさん2006/12/02(土) 18:04:59
全て選択されているが答えじゃないのか?
0757デフォルトの名無しさん2006/12/02(土) 18:14:03
>>750
C/C++でいうところのの関数ポインタだよというとか。
1メソッドInvokeだけを含むインターフェースだよというとか。
0758デフォルトの名無しさん2006/12/02(土) 18:20:24
>>755
>これを本当にクリックして選択してる
間違いじゃないかな。

アクティブ≠選択している

DataGridView.CurrentCellAddress あたりじゃないかなと勘で答える。
0759デフォルトの名無しさん2006/12/02(土) 18:26:08
>>757
関数ポインタ知らない奴結構いるよ…
俺も使ってないし。
0760デフォルトの名無しさん2006/12/02(土) 18:37:23
>>758
これのこと!!
どうもありがとう!
07617532006/12/02(土) 18:40:31
>>754
ありがとうございます。でも意味が全然分かりません・・・
どこかにソースが転がってないか探してみます。
0762デフォルトの名無しさん2006/12/02(土) 18:41:13
>>760
そりゃよかった。
適当に答えたけどあたってて良かった。
俺は知識無かったけどMSDN探せば簡単に見つかったよ。
0763デフォルトの名無しさん2006/12/02(土) 18:45:05
TreeViewをそのままxmlに書き出すのって簡単に出来ますか?
0764デフォルトの名無しさん2006/12/02(土) 18:49:36
そんなに手間ではない
0765デフォルトの名無しさん2006/12/02(土) 18:56:24
>>764
そうですか

XmからTreeViewへのサンプルコードはたくさんあるんですが
逆は全く無いので難しいのかと思ってました、もうちょっと探してみます

ありがとうございました
0766デフォルトの名無しさん2006/12/02(土) 19:10:39
それがわかるんならxml.saveをすればいいものを最初から作るのか。ご苦労な話だな。
0767デフォルトの名無しさん2006/12/02(土) 19:20:05
>>766
まんまコピーして使っているので仕組みを理解してません
ちょっと改造すればできるんですか?
0768デフォルトの名無しさん2006/12/02(土) 19:29:07
改造?なんの話だよ。xmlとTreeViewの同期がとれてるんなら
xmlの保存だけで事は済むってことだろ。
■ このスレッドは過去ログ倉庫に格納されています