C#, C♯, C#相談室 Part55at TECH
C#, C♯, C#相談室 Part55 - 暇つぶし2ch617:デフォルトの名無しさん
10/03/12 16:09:08
VC#に、クラスとか関数の関連を表示するナビとかハイパーリンクとかの機能ありますか?
いわゆるなんちゃってフローチャート的なやつ

618:デフォルトの名無しさん
10/03/12 17:23:17
よくわからんが IDE の話か?
VisualStudio のクラスビューとかのことかね?

619:デフォルトの名無しさん
10/03/12 17:28:56
クラス図(クラスとか関数の関連を表示するやつ)と、流れ図(フローチャート)は全く別物だが。
クラスビューにはリンク機能は無いけど。一度使ってみれば。

620:デフォルトの名無しさん
10/03/12 17:31:54
HSPみたいなもの言ってるのでは

621:デフォルトの名無しさん
10/03/12 17:35:50
フローって作れるか?

VC++だったら確か関数の上で右クリックすると関連が見得たりしたけど
VC#の場合基本ネームスペース、クラス、メンバ関数とか
なのでそんなフローが必要になることってあんまり無いような

622:デフォルトの名無しさん
10/03/12 19:26:25
TextBoxを普段非表示にしておいて、マウスオーバーで表示されるようにしたいんだけども
Hide()使うとイベント受けてくれない
何かいい手はありますか?

623:デフォルトの名無しさん
10/03/12 19:27:30
表示位置覚えといて親コンテナのマウス移動で表示するかどうか決めるとか?



624:デフォルトの名無しさん
10/03/12 19:28:26
>>622
透明にすればいいんじゃない

625:デフォルトの名無しさん
10/03/12 19:31:30
>>624
textboxは透明にするのは難しいんじゃないかな?
なんかこのスレかふらっとC#でバックカラーとかをいじっても透明にできなかった
とか書き込みがあった記憶が

626:デフォルトの名無しさん
10/03/12 19:33:03
GDI+を使えばいいと思うよ

627:デフォルトの名無しさん
10/03/12 20:27:14
今日気がついたんだけど、Windows Form上のコントロールのアプリケーション設定
(プロパティバインディングって言った方がいいのかな)ってローカライズに
対応してないのかな。

何が言いたいかというと、FormのLanguageで設定する各言語ごとに
プロパティバインディングされたプロパティのデフォルト値を設定する方法がないものかと。

とりあえずリソースと同じようにSettings.settingsをコピーしてSettings.en.settings
とかやってみたがダメだった。

628:デフォルトの名無しさん
10/03/12 20:38:29
>>622
普通に誰でも思いつく泥臭い法でいいんじゃない?
つまりFormのMouseMoveイベントでマウスの座標を監視して、(hideしてある)
TextBoxの場所にマウスポインタが来たらShow()すると。

629:デフォルトの名無しさん
10/03/12 22:36:28
同じ座標に無地のピクチャーボックスを置いて
そっちでイベントを受け取ってみるとか

630:622
10/03/12 23:35:19
WPFのトンネルイベントみたいなのがあるかと思ったらそんなことはなかったぜ!と言う事かあ
見た目だけじゃなく存在自体が消えてしまうのは何とかならないのかなあ>Hide()

631:デフォルトの名無しさん
10/03/12 23:38:19
>>630
Visible=false;

632:デフォルトの名無しさん
10/03/13 00:13:56
派生クラスで適当に幾つかオーバーライドするだけじゃないの

とりあえず、OnPaint, OnMouseEnter(OnMouseHover), OnMouseLeave あたり
もしかしたら、OnPaintBackground も必要かも

633:デフォルトの名無しさん
10/03/13 00:26:36
マウスオーバーでテキストボックス出てくるとか使いにくすぎるw
どういう使い道なんだ

634:デフォルトの名無しさん
10/03/13 00:31:33
>>622
作ってみた。でもかなり対症療法的なコードなのであまり真に受けない方がいいかも。
class TextBoxEx:TextBox
{
  private bool SuppressesPaint { get; set; }

  private bool mIsTransparent = false;
  private bool IsTransparent
  {
    get { return mIsTransparent; }
    set
    {
      if (value != mIsTransparent)
      {
        mIsTransparent = value;
        if (IsTransparent)
        {
          SetVisibleCore(false);
          SuppressesPaint = true;
          SetVisibleCore(true);
        }
        else
        {
          SuppressesPaint = false;
          SetVisibleCore(false);
          SetVisibleCore(true);
        }
      }
    }
  }

635:634
10/03/13 00:32:35
  protected override void OnMouseEnter(EventArgs e)
  {
    base.OnMouseEnter(e);
    IsTransparent = false;
  }

  protected override void OnMouseLeave(EventArgs e)
  {
    base.OnMouseLeave(e);
    IsTransparent = !Focused;
  }

  protected override void OnEnter(EventArgs e)
  {
    base.OnEnter(e);
    IsTransparent = false;
  }

  protected override void OnLeave(EventArgs e)
  {
    base.OnLeave(e);
    IsTransparent = true;
  }

636:634
10/03/13 00:34:10
  protected override void WndProc(ref Message m)
  {
    const int WM_PAINT = 0x000F;
    const int WM_NCPAINT = 0x0085;
    switch (m.Msg)
    {
      case WM_PAINT:
      case WM_NCPAINT:
        if (SuppressesPaint) return;
        break;

      default:
        break;
    }
    base.WndProc(ref m);  
  }
}

- 以上 -

637:634
10/03/13 00:50:28
親がアクティブじゃない時の挙動がおかしいな。
コントロール関係はいろいろ面倒臭いなやっぱりw
思いもよらないところに落とし穴が潜んでたりするし。

638:デフォルトの名無しさん
10/03/13 01:15:19
VC#に最初から入ってるコントロールはイベント処理が微妙なのが多い気がする。
やりたいことがなかなかできなくて、結局自前でフラグ立てながら状態遷移を管理するハメになったり。

639:デフォルトの名無しさん
10/03/13 07:05:42
配列構造体で、
struct vector
{
public int x;
public int y;
}
private void method{
vector[,] point = new vector[100, 100];
for (int i = 0; i < 100; i++)
{
for (int j = 0; j < 100; j++)
{
point[i, j].x = i;
point[i, j].y = j;
}
}
}
private void exchange()
{

}
このプログラムで、exchangeでmethodで定義したpoint[,].xを使いたいですけれども、どうすればいいんだ

640:デフォルトの名無しさん
10/03/13 07:14:17
無理だろ。引数で渡すとかスコープを変えるとかせんと。

641:デフォルトの名無しさん
10/03/13 08:09:02
関数の戻値か同じクラス内ならメンバーに持てばいいだろ。
private vector[,] method() {
  :
 return point;
}

642:デフォルトの名無しさん
10/03/13 11:23:51
それじゃまだ実現不可能。

643:デフォルトの名無しさん
10/03/13 11:27:49
一応>>634がいい奴だってことはわかった


644:デフォルトの名無しさん
10/03/13 11:48:19
認識しないからといってインデントに全角スペースを使う男の人って…


645:デフォルトの名無しさん
10/03/13 11:57:19
>>644
やめて~!!

646:デフォルトの名無しさん
10/03/13 12:03:13
2ちゃんねるではよく使うなぁ

647:デフォルトの名無しさん
10/03/13 12:16:55
全角スペース便利
みんなこれからもどんどん使おうね

648:デフォルトの名無しさん
10/03/13 12:17:39
むしろ2ちゃんだと先頭の半角とかは無視されなかった?

649:デフォルトの名無しさん
10/03/13 12:54:23
無視はされない。datでもcgiでもちゃんと残っている

650:デフォルトの名無しさん
10/03/13 13:02:08
codepadとか使えよ
URLリンク(codepad.org)

C#は選択肢にないけどCにしておいて右下のRun Codeのチェックはずしてsubmitボタン押すだけじゃねーか
URLリンク(codepad.org)

651:デフォルトの名無しさん
10/03/13 13:02:29
2ちゃんビューワとかブラウザで見ると無視されるな

652:デフォルトの名無しさん
10/03/13 13:14:46
通常WWW UAは連続するホワイトスペースは一つの半角スペースに置き換えて表示するからね
こういった利用者が書式を指定できない掲示板では仕方がない

653:デフォルトの名無しさん
10/03/13 13:19:46
preタグを認識してくれればいいんだけどな

654:デフォルトの名無しさん
10/03/13 13:58:19
nbsp使えよ

655:デフォルトの名無しさん
10/03/13 16:18:37
 nbsp使ったら、>>レス番 でポップアップしたときに
 nbspって文字列でてこなかったっけ?

656:655
10/03/13 16:19:39
でてきませんでした。

657:デフォルトの名無しさん
10/03/13 16:44:27
test
\s
\t
%89
test
 test

658:デフォルトの名無しさん
10/03/13 17:44:29
C#4.0も良いけど、C#からC++のクラスや関数をC++/CLIを経由すること
なしに簡単に(透過的に)呼び出せるようにしてほしい。

C++/CLIなんていらない。文法がややこしくなるだけだ。VC++は
.Net Frameworkと同じインターフェースをもったNativeなGUI
ライブラリの開発に専念してほしい。

C++0xが正式に確定していない現在、動きがとれんだろうけど
以上の事をMSがやってくれたらC#を使う気になる。

659:デフォルトの名無しさん
10/03/13 17:46:58
使わなくていいよ。

660:デフォルトの名無しさん
10/03/13 17:49:08
>>658
使う気になるとか
C#しか使えない人に失礼だろw

661:デフォルトの名無しさん
10/03/13 17:57:45
そんなに使いたくないなら使わなければいいのに
他にも選択肢はあるよ

662:デフォルトの名無しさん
10/03/13 18:11:53
自分の好みやわがままで言語を選べるなんて、ずいぶんと恵まれた職場だな

663:デフォルトの名無しさん
10/03/13 18:19:57
>662
それなんの社畜自慢?

664:デフォルトの名無しさん
10/03/13 18:27:50
一生その職場にいて自分だけがメンテするならなんでも選べます

665:デフォルトの名無しさん
10/03/13 18:34:30
既存のシステムがあったら大きく外れられないだろ
というかコンベンションというかガイドラインくらいどこにでもあるだろw

666:デフォルトの名無しさん
10/03/13 18:36:56
うちはむしろ特別な事情(ユーザーの指定とか旧環境との兼ね合いとか)
がないかぎり Windows アプリは C# にするってことにしたけどな

667:デフォルトの名無しさん
10/03/13 18:38:19
制約なければwindowsはc#で書きたいなあ
部分的にC/C++は入れたとしてもGUIはC#だわ

668:デフォルトの名無しさん
10/03/13 18:42:36
「チッ.NET入れるのかよ」
というお客様も最近は減ってきました

669:デフォルトの名無しさん
10/03/13 18:44:21
Vista以降で入ってるしね。

670:デフォルトの名無しさん
10/03/13 19:41:48
とりあえず、意味不明のダイアログを表示して落ちるのもアレなので、
.NETが必要だというメッセージを表示するぐらいの配慮はするべき。

671:デフォルトの名無しさん
10/03/13 19:44:11
デフォルトで出る様になってなかったっけ?
ただ英語なのでアホは読んでくれない

672:デフォルトの名無しさん
10/03/13 19:46:47
確かにあれはいただけないな

673:デフォルトの名無しさん
10/03/13 19:52:50
まあバイナリを裸で配布するのは邪道、っていう前提に立ってるんでしょう。
イストーラで配れと。

それにしても、.NET Frameworkは単独でアンインストール可能なわけだから、
そういうケースをもう少し想定すべきとは思うけど。

674:デフォルトの名無しさん
10/03/13 22:07:38
ちっ、うっせーな

675:デフォルトの名無しさん
10/03/13 23:04:13
うっ、ちっせーな

676:デフォルトの名無しさん
10/03/13 23:08:52
C++のクラスとか旧時代のゴミ持ち込むなよ

677:デフォルトの名無しさん
10/03/13 23:54:40
C#もろくに使えねぇ癖に

黙ってろカス

678:デフォルトの名無しさん
10/03/14 01:59:46
反省してまーす

679:デフォルトの名無しさん
10/03/14 02:10:53
>>617-621
クラスやそれ以上の粗さ(アセンブリなど)でよければ、
Visual Studio 2010の依存関係グラフというやつで、図にしてくれるぞ。
URLリンク(www.microsoft.com)

680:デフォルトの名無しさん
10/03/14 03:12:02
doxygenもいいぞ

681:デフォルトの名無しさん
10/03/14 07:10:37
コンボボックスのドロップダウンリスト部で右クリックが押されたことを検知するには
どうしたらいいでしょうか?
MouseClickやMouseDownで見張っていても呼ばれないようです

682:デフォルトの名無しさん
10/03/14 07:25:31
そんなマニアックなイベントは無いと思う
一番簡単そうなのはドロップダウン部分のウィンドウハンドルを
NativeWindowに食わせることかなぁ
ハンドルはGetComboBoxInfoで取れる

683:デフォルトの名無しさん
10/03/14 08:32:47
2010またソリューションとか変わるんだよな…
2008と混在できるけど、いまやってるプロジェクトまわりのやつは皆が2010に切り替えるまで2010でいじれないよね。
依存関係グラフで見たいのあるけど、なんかうまいやりかたある?


684:デフォルトの名無しさん
10/03/14 08:33:39
>>682
ドロップダウン部分をサブクラス化してメッセージを自前で処理ですか・・・
ちょっと敷居が高そうですが頑張ってみます
ありがとうございました

685:デフォルトの名無しさん
10/03/14 11:05:03
そんなアメリカンなUI、使う方にも敷居が高そうだ。

686:デフォルトの名無しさん
10/03/14 11:43:24
>>679

2010か

687:デフォルトの名無しさん
10/03/14 21:45:42
Visual C# ExpressEditionのエディタで、
半角スペースを可視化する設定はありませんか?

688:デフォルトの名無しさん
10/03/14 21:50:36
>>687
編集→詳細→スペースの表示
ショートカットはCtrl+R→Ctrl+W

689:デフォルトの名無しさん
10/03/14 22:00:28
>>688
ありがとうございます。
続いて質問ですが、半角スペースと全角スペースを区別する方法はありませんか?
見た目の幅が微妙に違うだけで、一目で判断するのは難しいのですが

690:デフォルトの名無しさん
10/03/14 22:17:13
>>689
微妙っていっても表示される点の位置がずれるのでそれで区別しかないと思う。
インデントをタブにして普段は半角スペースを入れない方が判りやすいと思うんだけどね。

691:デフォルトの名無しさん
10/03/14 22:19:48
全角が混ざったかわからないときはプロジェクトで考えるより
普通のテキストとみたてて置換した方が早くない?

692:デフォルトの名無しさん
10/03/14 22:23:42
全角を気にしないというのはどうか?

693:デフォルトの名無しさん
10/03/14 22:26:18
開発環境が何かしらないけど
スペースの可視化くらいできるだろ

694:デフォルトの名無しさん
10/03/14 22:26:58
って上に書いてあったか

695:689
10/03/14 22:36:44
皆様回答ありがとうございます。
>>690-692辺りを参考に、使い勝手を試しながら使いやすい設定を探していこうと思います。

696:デフォルトの名無しさん
10/03/14 22:43:42
まあリテラル文字列中以外は、全角スペースは勝手に半角に修正されるんですけどね
違ったっけ。

697:デフォルトの名無しさん
10/03/15 13:30:35
全角スペースも空白として扱われる、だろう

698:622
10/03/15 16:17:26
>>634
亀ですがありがとう
参考にさせてもらいます


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