2012年04月14日

フォーム呼び出し

VS2010
大量にタブを使用するにあたって、画面がかなり重くなってきました。
いえ、表示の際にはそんなに問題は無いのですが、デザイン時にorz
しかも、ビルドするとタブ内のコントローラーのラベルがすべて消えるという変なエラー頻発。

そこで、それぞれのタブの中身を別フォームに配置し、ロード時にそれらを呼び出すという方法を取ることにしました。

んが、しかし!

タブ内に呼び出したフォームの中身が拡大されるorzorz

何これ気持ち悪い。


一日かけてようやく解決策を見つけました。
AutoScaleModeで何とかなります!

では、コードをメモっておきますね。
Form1のtab1にForm2を呼び出します。

Form2 f = new Form2();
f.TopLevel = false;
f.FormBorderStyle = FormBorderStyle.None;
f.AutoScaleMode = AutoScaleMode.None;
this.tab1.Controls.Add(f);
f.Show();
f.BringToFront();

データ取り出しとか呼び出しは こちらのサイトを参考にさせていただきました。

それにしても…VSが言うこと聞いてくれなくてマジ困る。
何なんだこの反抗期(`ε´)


タグ:Visual Studio C#
posted by 尻尾泥棒 at 18:20| Comment(0) | C# | このブログの読者になる | 更新情報をチェックする

2012年02月11日

複数削除

データグリッドに表示されたデータを複数選択して削除する処理のメモです。
private void OnDeleteButtonClick()
{
 List target = getCheckedNos();
 if (target.Count() < 0)
 {
  this.ShowNotSelectedDeleteLineMessage();  // エラーメッセージ
  return;
 }

 if (this.ShowDeleteConfirmMessage() == System.Windows.Forms.DialogResult.OK)
 {
  try
  {
   // 砂時計に変更
   Cursor.Current = Cursors.WaitCursor;
   int currentRowIndex = dataGridViewList.CurrentRow.Index;
   using (var context = new HyoteiSystemContext())
   {
    var q = from m_hyoutei m in context.m_hyoutei
         where target.Contains(m.student_id)
         select m;
    if (q.Count() <= 0)
    {
     this.ShowErrorMessage("選択されたデータが存在しない為、削除出来ませんでした。");
     return;
    }
    else
    {
     foreach (var row in q)
     {
      context.m_hyoutei.DeleteObject(row);
     }
     context.SaveChanges();
    }
   }

   // 削除後に検索と表示を再びしてる(あんま関係ないし意味ないけどついでに置いとく)
   this.OnSearchButtonClick();
   this.dataGridViewList.ReselectDataGridViewRow(currentRowIndex);
  }
  catch (Exception)
  {
   this.ShowErrorMessage("削除に失敗しました。");
   return;
  }
 }
}


private List getCheckedNos()
{
 List nos = new List();
 foreach (DataGridViewRow row in this.dataGridViewList.Rows)
 {
  // "select"ってのがチェックボックスカラム
  // チェックされていないとValueはnullになっちゃうので二段階層
  // "&"一個でできると思ったんだけどなあ…。
  if (null != row.Cells["select"].Value)
  {
   if (int.Parse(row.Cells["select"].Value.ToString()) == 1)
   {
    // 選択された生徒IDをじゃんじゃか追加
    nos.Add((int)row.Cells["student_id"].Value);
   }
  }
 }
 return nos;
}

初めてSyntaxHighlighterを使ってみたけど、あんまり上手くいってないなあ。
インデントがきつい…w
最初VisualStudioからコピペしたら、えらい空白空いてたんで、全角スペースでがんばった。
けど、見づらいね。
全角スペース2個分が良いかも。今日はもう疲れたのでこれでいく。

それにしても見辛い。
テンプレの所為かな。もっと全画面使えるテンプレがほしいんだけど…。
また探しておきます。

ソースコードの最後にintが四つ並べてあるんだけど、これは勝手に入ってるものです。謎。何これ。


タグ:C# Visual Studio
posted by 尻尾泥棒 at 18:18| Comment(0) | Linq | このブログの読者になる | 更新情報をチェックする

2011年11月23日

はじめましてこんにちは

漸くブログ調整が終わったあああ。
作ってから何ヶ月なんだよっつぅ。


とりあえずこれからこっちに書いていきます。
以前のブログはこちら。
http://moon.ap.teacup.com/kazatoriha/

引越しの経緯
あまりにもコードを書くのに向いていないブログの仕様に嫌気がさし、お引越しを決意。
しかし、teacupは引越し用にログを纏めてくれなかった!なんと、ログ持ち出しは有料だったのだー!

ということで、前ブログはそのまま残します。
また放置ブログが一個増えたよ!


えー、このブログは
主にテニプリオタクな尻尾泥棒という人が、プログラム関係のメモを残していくブログです。

よろしくです。

posted by 尻尾泥棒 at 17:32| Comment(0) | 日記 | このブログの読者になる | 更新情報をチェックする
司法書士事務所

広告


この広告は60日以上更新がないブログに表示がされております。

以下のいずれかの方法で非表示にすることが可能です。

・記事の投稿、編集をおこなう
・マイブログの【設定】 > 【広告設定】 より、「60日間更新が無い場合」 の 「広告を表示しない」にチェックを入れて保存する。


×

この広告は1年以上新しい記事の投稿がないブログに表示されております。