Anonymní profil Richard Bayer – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Anonymní profil Richard Bayer – Programujte.comAnonymní profil Richard Bayer – Programujte.com

 

Příspěvky odeslané z IP adresy 81.19.3.–

Richard Bayer
.NET › C# klavesnice
30. 7. 2008   #81428

To H12 : event, to je když... :-)

V editoru máš okno Properties a Events, tak v events dvakrát klikni do políčka u KeyDown, vygeneruje ti metodu, která se bude volat při stisku klávesy.

Richard Bayer
.NET › C# klavesnice
30. 7. 2008   #81423

Řekl bych, že na hlavním formuláři (Form1) nastavíš KeyPreview na true, tím mu přijdou všechny klávesy i když patří komponentám na něm, pak v eventu KeyDown koukneš, zda (e.KeyCode == Keys.Left) apod. a případně reaguješ.

Richard Bayer
.NET › Řazení DataGridView pokud zd…
30. 7. 2008   #81421

V aplikaci, na které pracuji, je tato situace:

Jeden formulář "Form1", obsahuje DataGridView, který má jako DataSource jeden BindingSource, který je napojen na List<RowType>.

Napojení Listu na BindingSource dělám až v metodě Load formuláře Form1, do té doby je tam z designéru nastaveno přímo RowType, podle něhož nageneruje sloupce.

RowType jen nějaký typ s public propoertami.
Onen list naplním také v metodě Load. Potom, po napojení Listu na BindingSource na BindingSourcu volám ResetBindings(false).

Vše funguje, ale DataGridView nedovolí řadit řádky dle sloupců.
- Proč?
- Jak to napravit (nejsnáze)?
_________________________________

Tady je kód Form1.cs. Kdo by chtěl simulovat, přikládám přílohu - celý projekt (VC#2008) bez binárek (nutno rebuildnout).



public partial class Form1 : Form
{
IList<TestRow> theList;
public Form1()
{
InitializeComponent();
}

private void Form1_Load(object sender, EventArgs e)
{
theList = new List<TestRow>();
theList.Add(new TestRow("abc", "xyz", 12, 12.222m));
theList.Add(new TestRow("ccc", "yzx", 10, 100.222m));
theList.Add(new TestRow("bbc", "yzz", 13, 2.222m));

bindingSource1.DataSource = theList;
bindingSource1.ResetBindings(false);
}
}

public class TestRow
{
public TestRow(string one, string two, int number, decimal another) {
this.one = one; this.two = two; this.number = number; this.another = another;
}

public string one { get; set; }
public string two { get; set; }
public int number { get; set; }
public decimal another { get; set; }
}

 

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032017 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý