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, 13292 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 ..
Ähnliche Inhalte
Windows Server
Windows Terminal Server 2016 User Startmenü anpassen ? (3)

Frage von erken1337 zum Thema Windows Server ...

Microsoft Office
Office 2016 Oberfläche anpassen per Group Policy

Frage von johnde zum Thema Microsoft Office ...

C und C++
gelöst Wie spreche ich diese Cpp Datei unter CSharp an (1)

Frage von Aicher1998 zum Thema C und C ...

VB for Applications
gelöst Messagbox anpassen (5)

Frage von freshman2017 zum Thema VB for Applications ...

Neue Wissensbeiträge
Tipps & Tricks

Wie Hackt man sich am besten in ein Computernetzwerk ein

(29)

Erfahrungsbericht von Herbrich19 zum Thema Tipps & Tricks ...

Humor (lol)

Bester Vorschlag eines Supporttechnikers ever: APC

(15)

Erfahrungsbericht von DerWoWusste zum Thema Humor (lol) ...

Heiß diskutierte Inhalte
Netzwerke
LAN2LAN Verbindung sehr langsam flaschenhals gesucht (27)

Frage von PixL86 zum Thema Netzwerke ...

LAN, WAN, Wireless
Rogue Access Point (20)

Frage von Axel90 zum Thema LAN, WAN, Wireless ...

Webbrowser
Windows 7 unbeliebte Internetseite sperren (13)

Frage von Daoudi1973 zum Thema Webbrowser ...

E-Mail
Fake E-Mail in Outlook für Demonstartionszwecke (12)

Frage von sascha382 zum Thema E-Mail ...