Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

CSharp Spaltenbreite im Datagrid anpassen

Frage Entwicklung VB for Applications

Mitglied: Beowolf

Beowolf (Level 1) - Jetzt verbinden

07.10.2008, aktualisiert 10.10.2008, 13082 Aufrufe, 6 Kommentare

Hallo Zusammen,

ich habe mit Visual C# Express eine kleines Programm geschrieben, dass mir Daten aus einer Access Datenbank ausliest und in einem DataGrid anzeigt. Diese Anzeige wird dann an den Drucker übergeben, der die Spalten so druckt (breite), wie sie im Datagrid angezeigt werden. Ich möchte jetzt im Quelltext die exakte Breite jeder einzeln Splate festlegen. Google brachte mich leider nicht weiter.

Hier ein Auschnitt aus dem Quelltext:

private void btn_Inventar_Click(object sender, EventArgs e)
{
sql = "SELECT * FROM Inventar ORDER BY Inventarnummer;";
FillDataGrid();
dataGrid.CaptionText = "Inventar";
}

private void FillDataGrid()
{
try
{
conn = new OleDbConnection(connectionString);
OleDbDataAdapter adapter = new OleDbDataAdapter(sql, conn);
ds = new DataSet();
adapter.Fill(ds);
dataGrid.DataSource = ds.Tables[0].DefaultView;
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}

Ich hoffe Ihr habt eine Lösung.

Danke im Voraus

Gruß Steffen
Mitglied: Kosh
08.10.2008 um 09:48 Uhr
das schon versucht?

01.
DataGridView dgvtest = new DataGridView(); 
02.
dgvtest.Columns[0].Width = 50; 
03.
// oder 
04.
dgvtest.Columns["Spaltenname"].Width = 50;
Bitte warten ..
Mitglied: Beowolf
09.10.2008 um 08:34 Uhr
Hallo Kosh,

Vielen Dank für die schnelle Hilfe.
Deine Lösung funktioniert für ein DataGridView wunderbar.
Das Grundprogramm wurde jedoch vor meiner Zeit geschrieben und enthält ein DataGrid. Meines Wissens wurde das DataGridView erst mit der Version 2005 eingeführt. Im DataGrid wird eine Inventurliste mit fester breite angezeigt, welche exakt so Ausgedruckt werden kann.
Werden die Zeilen per "Hand" größer gezogen, werden sie jedoch in "Standardgröße" gedruckt.

Der Druckerklasse kann leider nur ein DataGrid und kein DataGridView übergeben werden. Deine Lösung funktioniert leider nur mit einem DataGridView.
Hast du noch ne Idee für das DataGrid?

Danke

Mfg Steffen
Bitte warten ..
Mitglied: Kosh
09.10.2008 um 15:10 Uhr
stimmt sorry. hab hier standardmässig VS2008.

Beim "alten" datagrid konnte man ein tablestyle definieren.

versuchs mal so:

01.
DataGrid dgtest = new DataGrid(); 
02.
DataGridTableStyle ts = new DataGridTableStyle(); 
03.
ts.MappingName = "Tabelle"; 
04.
dgtest.TableStyles.Clear(); 
05.
dgtest.TableStyles.Add(ts); 
06.
dgtest.TableStyles["Tabelle"].GridColumnStyles["Spalte"].Width = 50;
Bitte warten ..
Mitglied: Beowolf
10.10.2008 um 08:33 Uhr
Hallo Kosh,

nochmals vielen Dank.
Da es in meinem Projekt leider nicht funktioniert habe ich mal ein neues angelgt.

Hier der Quelltext:

private void button1_Click(object sender, EventArgs e)
{
DataGrid dataGrid = new DataGrid();
sql = "SELECT * FROM Raum;";
FillDataGrid();
}

private void FillDataGrid()
{
try
{
con = new OleDbConnection(connection);
OleDbDataAdapter da = new OleDbDataAdapter(sql, con);
ds = new DataSet();
da.Fill(ds);
dataGrid.DataSource = ds.Tables[0];

DataGridTableStyle ts = new DataGridTableStyle();
ts.MappingName = "Raum";
dataGrid.TableStyles.Clear();
dataGrid.TableStyles.Add(ts);
dataGrid.TableStyles["Raum"].GridColumnStyles["RaumID"].Width = 300;
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}

}

Meine DataGrid wird mit den korrekten Werten gefüllt. Jeodch wird keine Spalte in der Größe geändert und auch kein Fehler gemeldet.
Zur Info:
Die Tabelle nennt sich Raum und beinhaltet die Spalten Raum und RaumID.

Was mache ich falsch?

Mfg Steffen
Bitte warten ..
Mitglied: Kosh
10.10.2008 um 08:55 Uhr
da hab ich grad was gefunden, wo der code etwas ausführlicher angeführt wird.

http://www.thescarms.com/dotnet/ColumnStyles.aspx

einfach etwas runterscrollen zu "For the C# coder:"
Bitte warten ..
Mitglied: Beowolf
10.10.2008 um 09:24 Uhr
Damit funktionierts.

Vielen Dank und ein schönes Wochenende.

Gruß Steffen.
Bitte warten ..
Neuester Wissensbeitrag
Ähnliche Inhalte
Batch & Shell
gelöst Powershellscript zum konvertieren und anpassen einer XML für Elster Import (9)

Frage von Shaijan zum Thema Batch & Shell ...

Microsoft Office
gelöst Excel Makro zum Sortieren von Spalten an größeres Dokument Anpassen (2)

Frage von Rolfor zum Thema Microsoft Office ...

Batch & Shell
gelöst Aktive Directory anpassen mit Powershell (3)

Frage von Footy75 zum Thema Batch & Shell ...

IDE & Editoren
gelöst Code:Blocks auto complete anpassen (10)

Frage von TheBattleWolf zum Thema IDE & Editoren ...

Heiß diskutierte Inhalte
Hardware
Laptop ins Salzwasser gefallen (18)

Frage von Marcel94 zum Thema Hardware ...

Switche und Hubs
LAG zwischen Cisco SG300 und Dlink DGS1100 herstellen - wie? (13)

Frage von White-Rabbit2 zum Thema Switche und Hubs ...

Hardware
Lenovo Yoga 500 über angeschlossene USB Tastatur booten (13)

Frage von thomasreischer zum Thema Hardware ...

CPU, RAM, Mainboards
Hardware Fragen (12)

Frage von xaver-2 zum Thema CPU, RAM, Mainboards ...